diff options
author | Michael Cahill <michael.cahill@wiredtiger.com> | 2015-02-11 14:26:58 +1100 |
---|---|---|
committer | Michael Cahill <michael.cahill@wiredtiger.com> | 2015-02-11 14:26:58 +1100 |
commit | 64f1df4ef5e14a46c1cbf16009a2c3a4f7decf63 (patch) | |
tree | c85632aac86bbd1f012c6066689e78bf48bdbfe5 | |
parent | d8263d46c1aa136d24ef194a8f62f0b02b92b9b0 (diff) | |
parent | fe02a6bb56b1f51064b1c585844ed3d219b06ef2 (diff) | |
download | mongo-64f1df4ef5e14a46c1cbf16009a2c3a4f7decf63.tar.gz |
Merge branch 'develop' into large-page-lru-eviction
81 files changed, 12692 insertions, 104 deletions
diff --git a/dist/api_data.py b/dist/api_data.py index 65af833c4a2..82335e3f831 100644 --- a/dist/api_data.py +++ b/dist/api_data.py @@ -88,6 +88,12 @@ lsm_config = [ create a bloom filter on the oldest LSM tree chunk. Only supported if bloom filters are enabled''', type='boolean'), + Config('chunk_count_limit', '0', r''' + the maximum number of chunks to allow in an LSM tree. This + option automatically times out old data. As new chunks are + added old chunks will be removed. Enabling this option + disables LSM background merges''', + type='int'), Config('chunk_max', '5GB', r''' the maximum size a single chunk can be. Chunks larger than this size are not considered for further merges. This is a soft diff --git a/dist/s_copyright b/dist/s_copyright index a0e3d588e18..73f45ffc4aa 100755 --- a/dist/s_copyright +++ b/dist/s_copyright @@ -83,7 +83,7 @@ for i in `cd .. && -e '/api\/leveldb\/leveldb\//d' \ -e '/api\/leveldb\/rocksdb\//d' \ -e '/test\/3rdparty\//d' \ - -e '/tools\/3rdparty\//d' \ + -e '/tools\/wtperf_stats\/3rdparty\//d' \ -e 's/^\.\///'` do check $i diff --git a/dist/s_copyright.list b/dist/s_copyright.list index 8e25f931e94..c6a5910087b 100644 --- a/dist/s_copyright.list +++ b/dist/s_copyright.list @@ -36,5 +36,7 @@ skip src/support/stat.c skip test/packing/intpack-test.c skip test/packing/intpack-test2.c skip test/packing/packing-test.c -skip tools/stat_data.py +skip tools/wtperf_stats/wt_nvd3_util.py +skip tools/wtperf_stats/wtperf_stats.py +skip tools/wtstats/stat_data.py skip wiredtiger_config.h diff --git a/dist/s_release.list b/dist/s_release.list index 06adae39e46..232336c43e7 100644 --- a/dist/s_release.list +++ b/dist/s_release.list @@ -7,3 +7,5 @@ test/packing test/salvage test/snapshot test/thread +tools/wtstats/template +tools/wtstats/test diff --git a/dist/s_wtstats b/dist/s_wtstats index e55157431f1..834b011110e 100644 --- a/dist/s_wtstats +++ b/dist/s_wtstats @@ -5,7 +5,6 @@ t=__wt.$$ trap 'rm -f $t; exit 0' 0 1 2 3 13 15 -out=wtstats.html.template # We require npm which may not be installed. type npm > /dev/null 2>&1 || { echo 's_wtstats: npm not found' >&2 @@ -13,25 +12,33 @@ type npm > /dev/null 2>&1 || { exit 1 } -cd ../tools/template || exit 1 -rm -f ./$out -# Note: we don't do the npm install here, it downloads files +cd ../tools/wtstats/template || exit 1 + +out=wtstats.html.template +rm -f $out + +# Run npm install. test -d ./node_modules || { - echo 's_wtstats: missing node_modules directory, install by:' >&2 - echo ' cd ../tools/template; npm install' >&2 - exit 1 + echo 'Running: npm install' + npm --quiet install >$t 2>&1 || { + echo "s_wtstats: npm install failed" >&2 + cat $t + exit 1 + } } -npm run build >$t 2>&1 || { - echo "s_wtstats: npm failed" >&2 +echo 'Running: npm run build' +npm --quiet run build >$t 2>&1 || { + echo "s_wtstats: npm run build failed" >&2 cat $t exit 1 } -test -f ./$out || { +test -f $out || { echo "s_wtstats: $out not created" >&2 cat $t exit 1 } + f=../$out -cmp ./$out $f > /dev/null 2>&1 || - (echo "Building tools/$out" && rm -f $f && cp ./$out $f) +cmp $out $f > /dev/null 2>&1 || + (echo "Building $out" && rm -f $f && cp $out $f) exit 0 diff --git a/dist/stat.py b/dist/stat.py index 503753ddd01..53cbf30cf16 100644 --- a/dist/stat.py +++ b/dist/stat.py @@ -191,4 +191,4 @@ f.write(clear_info) f.write(prefix_info) f.write(group_info) f.close() -compare_srcfile(tmp_file, '../tools/stat_data.py') +compare_srcfile(tmp_file, '../tools/wtstats/stat_data.py') diff --git a/src/config/config_def.c b/src/config/config_def.c index a7e9419a65c..052fbf3d0b4 100644 --- a/src/config/config_def.c +++ b/src/config/config_def.c @@ -203,6 +203,7 @@ static const WT_CONFIG_CHECK confchk_lsm_subconfigs[] = { { "bloom_config", "string", NULL, NULL }, { "bloom_hash_count", "int", "min=2,max=100", NULL }, { "bloom_oldest", "boolean", NULL, NULL }, + { "chunk_count_limit", "int", NULL, NULL }, { "chunk_max", "int", "min=100MB,max=10TB", NULL }, { "chunk_size", "int", "min=512K,max=500MB", NULL }, { "merge_max", "int", "min=2,max=100", NULL }, @@ -628,11 +629,12 @@ static const WT_CONFIG_ENTRY config_entries[] = { "internal_page_max=4KB,key_format=u,key_gap=10,leaf_item_max=0," "leaf_key_max=0,leaf_page_max=32KB,leaf_value_max=0," "lsm=(auto_throttle=,bloom=,bloom_bit_count=16,bloom_config=," - "bloom_hash_count=8,bloom_oldest=0,chunk_max=5GB,chunk_size=10MB," - "merge_max=15,merge_min=0),memory_page_max=5MB," - "os_cache_dirty_max=0,os_cache_max=0,prefix_compression=0," - "prefix_compression_min=4,source=,split_deepen_min_child=0," - "split_deepen_per_child=0,split_pct=75,type=file,value_format=u", + "bloom_hash_count=8,bloom_oldest=0,chunk_count_limit=0," + "chunk_max=5GB,chunk_size=10MB,merge_max=15,merge_min=0)," + "memory_page_max=5MB,os_cache_dirty_max=0,os_cache_max=0," + "prefix_compression=0,prefix_compression_min=4,source=," + "split_deepen_min_child=0,split_deepen_per_child=0,split_pct=75," + "type=file,value_format=u", confchk_session_create }, { "session.drop", diff --git a/src/docs/spell.ok b/src/docs/spell.ok index 00f37378c23..6af9a19fbf2 100644 --- a/src/docs/spell.ok +++ b/src/docs/spell.ok @@ -150,6 +150,7 @@ dNOff dT dataN dataitem +dataset datasets datastore dbc @@ -273,6 +274,7 @@ maxintlpage maxleafitem maxleafpage md +mem memalloc memfree memp @@ -399,6 +401,7 @@ structs subdatabases subdirectory subpage +substring superset sys sz @@ -412,8 +415,10 @@ timestamp timestamps todo toolchain +touchpad tpc tpcb +trackpad transactional transactionally tt diff --git a/src/docs/statistics.dox b/src/docs/statistics.dox index 7fdc4125254..453da34c51a 100644 --- a/src/docs/statistics.dox +++ b/src/docs/statistics.dox @@ -82,8 +82,12 @@ or logged: @section statistics_log Statistics logging WiredTiger will optionally log database statistics into a file when the -the ::wiredtiger_open \c statistics_log configuration is set. The -following example logs statistics every 30 seconds: +the ::wiredtiger_open \c statistics_log configuration is set. + +The resulting statistics can be displayed using the \c wtstats visualization +tool. For more information, see @ref_single wtstats. + +The following example logs statistics every 30 seconds: @snippet ex_all.c Statistics logging diff --git a/src/docs/tune-statistics.dox b/src/docs/tune-statistics.dox index a7d0f56455e..1fa67d8b7cd 100644 --- a/src/docs/tune-statistics.dox +++ b/src/docs/tune-statistics.dox @@ -5,8 +5,13 @@ WiredTiger optionally maintains a variety of statistics, when the see @ref statistics for general information about statistics, and @ref data_statistics for information about accessing the statistics. +The resulting statistics can be displayed using the \c wtstats visualization +tool. For more information, see @ref wtstats. + +<b> Note that maintaining run-time statistics involves updating shared-memory data structures and may decrease application performance. +</b> The statistics gathered by WiredTiger can be combined to derive information about the system's behavior. For example, a cursor can be opened on the diff --git a/src/docs/wtperf.dox b/src/docs/wtperf.dox index b0139286ab4..2cadc6ed05b 100644 --- a/src/docs/wtperf.dox +++ b/src/docs/wtperf.dox @@ -81,50 +81,65 @@ Specify configuration strings for the WT_SESSION::create function. This argument is additive to the \c table_config parameter in the configuration file. -@section monitor Monitoring wtperf performance +@section monitor Monitoring wtperf -In addition to testing a particular configuration, \c wtperf can monitor -performance and operation latency times. Monitoring can be enabled -using the \c sample_interval configuration setting. For example to -record information every 10 seconds, add the following to the \c wtperf -configuration file: +Like all WiredTiger applications, the \c wtperf command can be configured +with statistics logging, and the resulting output displayed using the +\c wtstats visualization tool. For more information, see @ref wtstats. + +In addition to statistics logging, \c wtperf can monitor performance and +operation latency times. Monitoring is enabled using the \c sample_interval +configuration. For example to record information every 10 seconds, set the +following on the command line or add it to the \c wtperf configuration file: @code sample_interval=10 @endcode Enabling monitoring causes \c wtperf to create a file \c monitor in the -database home directory, or another directory as specified in the \c -m -option to \c wtperf. +database home directory (or another directory as specified using the +\c -m option to \c wtperf). -A visualization tool to see the performance over the course of the -\c wtperf run can be found in \c tools/wtperf_stats.py. +A visualization tool to see the performance over the course of the \c wtperf +run can be found in \c tools/wtperf_stats/wtperf_stats.py. -The following example shows how to run the \c large-lsm.wtperf -configuration to a subdirectory of \c build_posix called \c WTPERF_RUN with -monitoring enabled, and then generate a graph. This example assumes you -have all the necessary tools already installed to build WiredTiger, -Python and python-nvd3. +The following example shows how to run the \c medium-btree.wtperf configuration +with monitoring enabled, and then generate a graph. @code -cd $WIREDTIGER_SOURCE +# Change into the WiredTiger directory. +cd wiredtiger + +# Configure and build WiredTiger if not already built. ./configure && make -mkdir WTPERF_RUN && ./bench/wtperf/wtperf -h WTPERF_RUN -O ./bench/wtperf/runners/large-lsm.wtperf -cd WTPERF_RUN; python ../tools/wtperf_stats.py monitor + +# Remove and re-create the run directory. +rm -rf WTPERF_RUN && mkdir WTPERF_RUN + +# Run the medium-btree.wtperf workload, sampling performance every 5 seconds. +bench/wtperf/wtperf \ + -h WTPERF_RUN \ + -o sample_interval=5 \ + -O bench/wtperf/runners/medium-btree.wtperf + +# Use the visualization tool to create HTML graph output; the output file is +# named wtperf_stats.html. +python tools/wtperf_stats/wtperf_stats.py WTPERF_RUN/monitor @endcode -The python tool creates a file named \c wtperf_stats.html in the current +The python command creates a file named \c wtperf_stats.html in the current working directory. You can open the generated HTML document in your browser and see the generated statistics. The keys in the graph are clickable, including the graph included on this page. Double clicking on one of the keys will show only that item. Single clicking will enable or disable a particular item. -The script as a few optional arguments. For example, <code> -o file </code> -or <code> --output file </code> to redirect the HTML output to another filename, -and \c --abstime to display time on the X-axis in absolute time. +The script has a few optional arguments: <code>-o file</code> or +<code>--output file</code> to redirect the HTML output to another +filename, and \c --abstime to display time on the X-axis in absolute +time. -For example, the file will have content like this: +The following is example HTML output: \htmlinclude wtperf-sample.html diff --git a/src/docs/wtstats.dox b/src/docs/wtstats.dox index 1a792849124..a07dfd4ca8f 100644 --- a/src/docs/wtstats.dox +++ b/src/docs/wtstats.dox @@ -1,47 +1,119 @@ /*! @page wtstats Visualizing performance with wtstats -The WiredTiger distribution includes the \b wtstats tool that can be used to -examine information generated using statistics logging (see @ref -statistics_log). +The WiredTiger distribution includes the \b wtstats tool that can be +used to examine information generated using statistics logging (see +@ref statistics_log). After running an application with statistics logging configured, the -statistics output files will be in the database home directory. By default, -these are named \c WiredTigerStat.* . In the database home directory, run -this command, replacing \c \<wiredtiger\> with the path to the -WiredTiger installation directory: +statistics output files will be in the database home directory. By +default they are the files named with a \c WiredTigerStat prefix and a +day and hour timestamp. + +To create an HTML file with a graphical representation of the statistics +run the following command, replacing \c wiredtiger with the path to the +WiredTiger build directory, and replacing \c database-directory with the +application's database home directory: + \code{.sh} -python <wiredtiger>/tools/wtstats.py WiredTigerStat.* +python wiredtiger/tools/wtstats/wtstats.py database-directory \endcode -Another way to process all the stats files in a directory is: +If not all of the statistics files are being processed, a subset can be +specified to the tool. For example: \code{.sh} -python <wiredtiger>/tools/wtstats.py <directory> +python wiredtiger/tools/wtstats.py database-directory/WiredTigerStat.06.* \endcode -In either case, a \c wtstats.html file will be generated in the \e current -directory that you can open in your browser to examine statistics. -Additional options are available, use <tt>wtstats.py --help</tt> -to display them. +In either case, a \c wtstats.html file will be generated in the current +directory that you can open in your browser. + +Additional options are available, use <tt>wtstats.py --help</tt> to +display them. -Here is a sample of what is displayed using \c wtstats.html: +The following is an example \c wtstats.html display: \image html wtstats.png "wtstats.html" -Some things to note about the interface: +@section wtstats_display Manipulating the wtstats display + +When you open the generated HTML file, you will see an empty page with +some basic instructions in the middle, a sidebar containing grouped +sections on the left, and buttons to toggle axis settings at the top +right. + +To look at specific statistics, open the respective section by clicking +on the section heading or the little arrow on the right. For example, +click on the word "connection" in the sidebar to reveal the _connection_ +stats. Inside a group, click on any of the contained stats to toggle +them on or off. You should see the stats graph appear in the main +window. To toggle the entire group on or off, you can click on the +circle next to the group heading. To look at one specific isolated +statistic, you can shift-click on the stat. This will disable all but +the chosen stat. Shift-clicking it again will return to the previous +selection. + +Depending on your WiredTiger settings, you may have gathered a large +number of stats. Use the search bar above the stats groups to filter +stats on keywords. For example, typing `mem` into the search bar will +show all stats that have the substring "mem" in them. Press the "Clear" +button to clear the filter again. + +Once some stats are showing in the main view panel, use the mouse to +hover over the graphs. A cross-hair will appear highlighting the data +point closest to the mouse cursor and showing the stat name and value +(y-axis). A small gray label below the x-axis will additionally show the +exact x-axis value for the current data point. + +You can zoom into the graph via various mouse/trackpad gestures (some +of which may not be supported by your input device): + +- use the scroll wheel (mouse) +- use two-finger vertical scroll (touchpad) +- use pinch-to-zoom gesture (touchpad) +- use double-click to zoom in, shift+double-click to zoom out (mouse, touchpad) + +If you zoom into a dataset far enough to see individual data points, +they will be displayed as little circles along the graph line. + +You can pan the graphs left/right by click-dragging the area +horizontally. + +If your data contains a lot of sample points (more than pixels available +in the current window), \c wtstats will sub-sample your data for +efficiency reasons. When this happens, a yellow warning box will appear +at the top next to the buttons. Due to sub-sampling, narrow spikes in a +graph may not always be visible and you may experience some jitter when +panning the data left/right. To ensure that all data points are +rendered, widen your browser window or zoom into the data until the +sub-sampling warning disappears. -- The left sidebar has statistics groups that can each be expanded -to show individual statistics. Clicking on a circle toggles whether an -individual statistic or statistics group is displayed or not. +The \c wtstats display lets you switch modes for both the x- and y-axis +with the buttons at the top right. -- The search box at the upper left can be used to search for statistics -matching a string. +The x-axis button switches between relative and absolute time, with the +default being relative time. -- Hovering over values in the graph will show what the value is, and what -statistic is being shown. +In "relative time" mode, every individual stat is assumed to start at +time 0, and the x-axis displays the duration in seconds that have passed +since the start. A useful use case for relative mode is when you record +multiple stat files of the same data workload in succession, and want +to compare them against each other. Relative mode will show the stat +files overlapping, despite them being recorded at different times. -- The graph can be panned using two fingered scroll or mouse wheel. +Absolute time plots the stats at their exact recording times. The x-axis +shows date and time of the events. If stat files are recorded at +different times, they appear in the graph at different intervals on the +x-axis. This mode is most useful to correlate events in \c wtstats with +other data sources, for example system profiling or monitoring data, +based on their timestamp. -- Scaling of the entire graph can be changed using the buttons at the right top. +The y-axis button toggles between linear and logarithmic scaling mode, +the default is linear. Linear mode is most useful if the visible stats +have similar value ranges. However, if you compare stats of different +magnitudes, for example "bytes in cache" vs. "files open", you can +switch to "log-scale" mode to avoid having one graph dominate the entire +range. The same is true for outliers in a single graph: if the outlier +dominates the range, switch to log mode for better scaling. */ diff --git a/src/include/extern.h b/src/include/extern.h index e47f4ba09c0..7716336bff1 100644 --- a/src/include/extern.h +++ b/src/include/extern.h @@ -375,6 +375,7 @@ extern int __wt_lsm_tree_get(WT_SESSION_IMPL *session, const char *uri, int excl extern void __wt_lsm_tree_release(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree); extern void __wt_lsm_tree_throttle( WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree, int decrease_only); extern int __wt_lsm_tree_switch(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree); +extern int __wt_lsm_tree_retire_chunks(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree, u_int start_chunk, u_int nchunks); extern int __wt_lsm_tree_drop( WT_SESSION_IMPL *session, const char *name, const char *cfg[]); extern int __wt_lsm_tree_rename(WT_SESSION_IMPL *session, const char *olduri, const char *newuri, const char *cfg[]); extern int __wt_lsm_tree_truncate( WT_SESSION_IMPL *session, const char *name, const char *cfg[]); diff --git a/src/include/lsm.h b/src/include/lsm.h index 8d50f3ea73b..7dd8c9f97af 100644 --- a/src/include/lsm.h +++ b/src/include/lsm.h @@ -193,8 +193,9 @@ struct __wt_lsm_tree { /* Configuration parameters */ uint32_t bloom_bit_count; uint32_t bloom_hash_count; + uint32_t chunk_count_limit; /* Limit number of chunks */ uint64_t chunk_size; - uint64_t chunk_max; + uint64_t chunk_max; /* Maximum chunk a merge creates */ u_int merge_min, merge_max; u_int merge_idle; /* Count of idle merge threads */ @@ -206,7 +207,7 @@ struct __wt_lsm_tree { WT_LSM_CHUNK **chunk; /* Array of active LSM chunks */ size_t chunk_alloc; /* Space allocated for chunks */ - u_int nchunks; /* Number of active chunks */ + uint32_t nchunks; /* Number of active chunks */ uint32_t last; /* Last allocated ID */ int modified; /* Have there been updates? */ @@ -218,9 +219,10 @@ struct __wt_lsm_tree { #define WT_LSM_TREE_ACTIVE 0x01 /* Workers are active */ #define WT_LSM_TREE_COMPACTING 0x02 /* Tree being compacted */ -#define WT_LSM_TREE_NEED_SWITCH 0x04 /* New chunk needs creating */ -#define WT_LSM_TREE_OPEN 0x08 /* The tree is open */ -#define WT_LSM_TREE_THROTTLE 0x10 /* Throttle updates */ +#define WT_LSM_TREE_MERGES 0x04 /* Tree should run merges */ +#define WT_LSM_TREE_NEED_SWITCH 0x08 /* New chunk needs creating */ +#define WT_LSM_TREE_OPEN 0x10 /* The tree is open */ +#define WT_LSM_TREE_THROTTLE 0x20 /* Throttle updates */ uint32_t flags; }; diff --git a/src/include/wiredtiger.in b/src/include/wiredtiger.in index 17e381d162b..80e0975d7e6 100644 --- a/src/include/wiredtiger.in +++ b/src/include/wiredtiger.in @@ -1094,11 +1094,16 @@ struct __wt_session { * @config{ bloom_oldest, * create a bloom filter on the oldest LSM tree chunk. Only supported * if bloom filters are enabled., a boolean flag; default \c false.} - * @config{ chunk_max, the maximum size a single - * chunk can be. Chunks larger than this size are not considered for - * further merges. This is a soft limit\, and chunks larger than this - * value can be created. Must be larger than chunk_size., an integer - * between 100MB and 10TB; default \c 5GB.} + * @config{ chunk_count_limit, the maximum number + * of chunks to allow in an LSM tree. This option automatically times + * out old data. As new chunks are added old chunks will be removed. + * Enabling this option disables LSM background merges., an integer; + * default \c 0.} + * @config{ chunk_max, the maximum + * size a single chunk can be. Chunks larger than this size are not + * considered for further merges. This is a soft limit\, and chunks + * larger than this value can be created. Must be larger than + * chunk_size., an integer between 100MB and 10TB; default \c 5GB.} * @config{ chunk_size, the maximum size of the * in-memory chunk of an LSM tree. This limit is soft - it is possible * for chunks to be temporarily larger than this value. This overrides diff --git a/src/lsm/lsm_manager.c b/src/lsm/lsm_manager.c index 27bdf526ba2..75d3e8ef6e8 100644 --- a/src/lsm/lsm_manager.c +++ b/src/lsm/lsm_manager.c @@ -658,6 +658,21 @@ __wt_lsm_manager_push_entry(WT_SESSION_IMPL *session, manager = &S2C(session)->lsm_manager; + /* + * Don't add merges or bloom filter creates if merges + * or bloom filters are disabled in the tree. + */ + switch (type) { + case WT_LSM_WORK_BLOOM: + if (FLD_ISSET(lsm_tree->bloom, WT_LSM_BLOOM_OFF)) + return (0); + break; + case WT_LSM_WORK_MERGE: + if (!F_ISSET(lsm_tree, WT_LSM_TREE_MERGES)) + return (0); + break; + } + WT_RET(__wt_epoch(session, &lsm_tree->work_push_ts)); WT_RET(__wt_calloc_one(session, &entry)); diff --git a/src/lsm/lsm_merge.c b/src/lsm/lsm_merge.c index 8724807432c..923d8fd2837 100644 --- a/src/lsm/lsm_merge.c +++ b/src/lsm/lsm_merge.c @@ -22,18 +22,9 @@ __wt_lsm_merge_update_tree(WT_SESSION_IMPL *session, WT_LSM_CHUNK *chunk) { size_t chunks_after_merge; - u_int i; - WT_ASSERT(session, start_chunk + nchunks <= lsm_tree->nchunks); - - /* Setup the array of obsolete chunks. */ - WT_RET(__wt_realloc_def(session, &lsm_tree->old_alloc, - lsm_tree->nold_chunks + nchunks, &lsm_tree->old_chunks)); - - /* Copy entries one at a time, so we can reuse gaps in the list. */ - for (i = 0; i < nchunks; i++) - lsm_tree->old_chunks[lsm_tree->nold_chunks++] = - lsm_tree->chunk[start_chunk + i]; + WT_RET(__wt_lsm_tree_retire_chunks( + session, lsm_tree, start_chunk, nchunks)); /* Update the current chunk list. */ chunks_after_merge = lsm_tree->nchunks - (nchunks + start_chunk); diff --git a/src/lsm/lsm_meta.c b/src/lsm/lsm_meta.c index f9bf10ca208..fa051413c5e 100644 --- a/src/lsm/lsm_meta.c +++ b/src/lsm/lsm_meta.c @@ -24,6 +24,10 @@ __wt_lsm_meta_read(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree) chunk = NULL; /* -Wconditional-uninitialized */ + /* LSM trees inherit the merge setting from the connection. */ + if (F_ISSET(S2C(session), WT_CONN_LSM_MERGE)) + F_SET(lsm_tree, WT_LSM_TREE_MERGES); + WT_RET(__wt_metadata_search(session, lsm_tree->name, &lsmconfig)); WT_ERR(__wt_config_init(session, &cparser, lsmconfig)); while ((ret = __wt_config_next(&cparser, &ck, &cv)) == 0) { @@ -74,7 +78,11 @@ __wt_lsm_meta_read(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree) lsm_tree->bloom_bit_count = (uint32_t)cv.val; else if (WT_STRING_MATCH("bloom_hash_count", ck.str, ck.len)) lsm_tree->bloom_hash_count = (uint32_t)cv.val; - else if (WT_STRING_MATCH("chunk_max", ck.str, ck.len)) + else if (WT_STRING_MATCH("chunk_count_limit", ck.str, ck.len)) { + lsm_tree->chunk_count_limit = (uint32_t)cv.val; + if (cv.val != 0) + F_CLR(lsm_tree, WT_LSM_TREE_MERGES); + } else if (WT_STRING_MATCH("chunk_max", ck.str, ck.len)) lsm_tree->chunk_max = (uint64_t)cv.val; else if (WT_STRING_MATCH("chunk_size", ck.str, ck.len)) lsm_tree->chunk_size = (uint64_t)cv.val; @@ -187,6 +195,7 @@ __wt_lsm_meta_write(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree) session, buf, ",collator=%s", lsm_tree->collator_name)); WT_ERR(__wt_buf_catfmt(session, buf, ",last=%" PRIu32 + ",chunk_count_limit=%" PRIu32 ",chunk_max=%" PRIu64 ",chunk_size=%" PRIu64 ",auto_throttle=%" PRIu32 @@ -195,7 +204,8 @@ __wt_lsm_meta_write(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree) ",bloom=%" PRIu32 ",bloom_bit_count=%" PRIu32 ",bloom_hash_count=%" PRIu32, - lsm_tree->last, lsm_tree->chunk_max, lsm_tree->chunk_size, + lsm_tree->last, lsm_tree->chunk_count_limit, + lsm_tree->chunk_max, lsm_tree->chunk_size, F_ISSET(lsm_tree, WT_LSM_TREE_THROTTLE) ? 1 : 0, lsm_tree->merge_max, lsm_tree->merge_min, lsm_tree->bloom, lsm_tree->bloom_bit_count, lsm_tree->bloom_hash_count)); diff --git a/src/lsm/lsm_tree.c b/src/lsm/lsm_tree.c index ed09d7544a8..1141710aa63 100644 --- a/src/lsm/lsm_tree.c +++ b/src/lsm/lsm_tree.c @@ -378,6 +378,12 @@ __wt_lsm_tree_create(WT_SESSION_IMPL *session, lsm_tree->bloom_bit_count = (uint32_t)cval.val; WT_ERR(__wt_config_gets(session, cfg, "lsm.bloom_hash_count", &cval)); lsm_tree->bloom_hash_count = (uint32_t)cval.val; + WT_ERR(__wt_config_gets(session, cfg, "lsm.chunk_count_limit", &cval)); + lsm_tree->chunk_count_limit = (uint32_t)cval.val; + if (cval.val == 0) + F_SET(lsm_tree, WT_LSM_TREE_MERGES); + else + F_CLR(lsm_tree, WT_LSM_TREE_MERGES); WT_ERR(__wt_config_gets(session, cfg, "lsm.chunk_max", &cval)); lsm_tree->chunk_max = (uint64_t)cval.val; WT_ERR(__wt_config_gets(session, cfg, "lsm.chunk_size", &cval)); @@ -744,12 +750,16 @@ __wt_lsm_tree_throttle( * Don't throttle if the tree has less than a single level's number * of chunks. */ - if (lsm_tree->nchunks < lsm_tree->merge_max) - lsm_tree->merge_throttle = 0; - else if (gen0_chunks < WT_LSM_MERGE_THROTTLE_THRESHOLD) - WT_LSM_MERGE_THROTTLE_DECREASE(lsm_tree->merge_throttle); - else if (!decrease_only) - WT_LSM_MERGE_THROTTLE_INCREASE(lsm_tree->merge_throttle); + if (F_ISSET(lsm_tree, WT_LSM_TREE_MERGES)) { + if (lsm_tree->nchunks < lsm_tree->merge_max) + lsm_tree->merge_throttle = 0; + else if (gen0_chunks < WT_LSM_MERGE_THROTTLE_THRESHOLD) + WT_LSM_MERGE_THROTTLE_DECREASE( + lsm_tree->merge_throttle); + else if (!decrease_only) + WT_LSM_MERGE_THROTTLE_INCREASE( + lsm_tree->merge_throttle); + } /* Put an upper bound of 1s on both throttle calculations. */ lsm_tree->ckpt_throttle = WT_MIN(1000000, lsm_tree->ckpt_throttle); @@ -788,7 +798,7 @@ __wt_lsm_tree_switch(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree) { WT_DECL_RET; WT_LSM_CHUNK *chunk, *last_chunk; - uint32_t nchunks, new_id; + uint32_t chunks_moved, nchunks, new_id; int first_switch; WT_RET(__wt_lsm_tree_writelock(session, lsm_tree)); @@ -833,10 +843,40 @@ __wt_lsm_tree_switch(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree) lsm_tree->modified = 1; - /* Set the switch transaction in the previous chunk, if necessary. */ - if (last_chunk != NULL && last_chunk->switch_txn == WT_TXN_NONE) + /* + * Set the switch transaction in the previous chunk unless this is + * the first chunk in a new or newly opened tree. + */ + if (last_chunk != NULL && last_chunk->switch_txn == WT_TXN_NONE && + !F_ISSET(last_chunk, WT_LSM_CHUNK_ONDISK)) last_chunk->switch_txn = __wt_txn_new_id(session); + /* + * If a maximum number of chunks are configured, drop the any chunks + * past the limit. + */ + if (lsm_tree->chunk_count_limit != 0 && + lsm_tree->nchunks > lsm_tree->chunk_count_limit) { + chunks_moved = lsm_tree->nchunks - lsm_tree->chunk_count_limit; + /* Move the last chunk onto the old chunk list. */ + WT_ERR(__wt_lsm_tree_retire_chunks( + session, lsm_tree, 0, chunks_moved)); + + /* Update the active chunk list. */ + lsm_tree->nchunks -= chunks_moved; + /* Move the remaining chunks to the start of the active list */ + memmove(lsm_tree->chunk, + lsm_tree->chunk + chunks_moved, + lsm_tree->nchunks * sizeof(*lsm_tree->chunk)); + /* Clear out the chunks at the end of the tree */ + memset(lsm_tree->chunk + lsm_tree->nchunks, + 0, chunks_moved * sizeof(*lsm_tree->chunk)); + + /* Make sure the manager knows there is work to do. */ + WT_ERR(__wt_lsm_manager_push_entry( + session, WT_LSM_WORK_DROP, 0, lsm_tree)); + } + err: WT_TRET(__wt_lsm_tree_writeunlock(session, lsm_tree)); /* * Errors that happen during a tree switch leave the tree in a state @@ -851,6 +891,32 @@ err: WT_TRET(__wt_lsm_tree_writeunlock(session, lsm_tree)); } /* + * __wt_lsm_tree_retire_chunks -- + * Move a set of chunks onto the old chunks list. + * It's the callers responsibility to update the active chunks list. + * Must be called with the LSM lock held. + */ +int +__wt_lsm_tree_retire_chunks(WT_SESSION_IMPL *session, + WT_LSM_TREE *lsm_tree, u_int start_chunk, u_int nchunks) +{ + u_int i; + + WT_ASSERT(session, start_chunk + nchunks <= lsm_tree->nchunks); + + /* Setup the array of obsolete chunks. */ + WT_RET(__wt_realloc_def(session, &lsm_tree->old_alloc, + lsm_tree->nold_chunks + nchunks, &lsm_tree->old_chunks)); + + /* Copy entries one at a time, so we can reuse gaps in the list. */ + for (i = 0; i < nchunks; i++) + lsm_tree->old_chunks[lsm_tree->nold_chunks++] = + lsm_tree->chunk[start_chunk + i]; + + return (0); +} + +/* * __wt_lsm_tree_drop -- * Drop an LSM tree. */ diff --git a/src/lsm/lsm_work_unit.c b/src/lsm/lsm_work_unit.c index 980d910ff33..2e87dd539db 100644 --- a/src/lsm/lsm_work_unit.c +++ b/src/lsm/lsm_work_unit.c @@ -360,8 +360,8 @@ __wt_lsm_checkpoint_chunk(WT_SESSION_IMPL *session, WT_RET(__wt_verbose(session, WT_VERB_LSM, "LSM worker checkpointed %s", chunk->uri)); - /* - * Schedule a bloom filter create for our newly flushed chunk */ + + /* Schedule a bloom filter create for our newly flushed chunk. */ if (!FLD_ISSET(lsm_tree->bloom, WT_LSM_BLOOM_OFF)) WT_RET(__wt_lsm_manager_push_entry( session, WT_LSM_WORK_BLOOM, 0, lsm_tree)); diff --git a/tools/wtperf_stats/3rdparty/nvd3/CONTRIBUTORS b/tools/wtperf_stats/3rdparty/nvd3/CONTRIBUTORS new file mode 100644 index 00000000000..17d06bec646 --- /dev/null +++ b/tools/wtperf_stats/3rdparty/nvd3/CONTRIBUTORS @@ -0,0 +1,16 @@ +areski (Areski Belaid) +shrenik (Shrenik Patel) +DZPM (David Arcos) +goulu (Philippe Guglielmetti) +jordanvg +RodrigoPrior (Rodrigo Prior) +DanMeakin +nzjrs (John Stowers) +RaD (Ruslan Popov) +cmorgan (Chris Morgan) +imom0 +kbsali (Kevin Saliou) +zebulon2 +bevanj +frewie +agorrod diff --git a/tools/wtperf_stats/3rdparty/nvd3/MIT-LICENSE.txt b/tools/wtperf_stats/3rdparty/nvd3/MIT-LICENSE.txt new file mode 100644 index 00000000000..1add6249e57 --- /dev/null +++ b/tools/wtperf_stats/3rdparty/nvd3/MIT-LICENSE.txt @@ -0,0 +1,24 @@ +The MIT License (MIT) + +Python-nvd3 + +Copyright (c) 2013 Arezqui Belaid <areski@gmail.com> and other contributors + +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/tools/wtperf_stats/3rdparty/nvd3/NVD3Chart.py b/tools/wtperf_stats/3rdparty/nvd3/NVD3Chart.py new file mode 100644 index 00000000000..52cbf168ddc --- /dev/null +++ b/tools/wtperf_stats/3rdparty/nvd3/NVD3Chart.py @@ -0,0 +1,547 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +""" +Python-nvd3 is a Python wrapper for NVD3 graph library. +NVD3 is an attempt to build re-usable charts and chart components +for d3.js without taking away the power that d3.js gives you. + +Project location : https://github.com/areski/python-nvd3 +""" + +from optparse import OptionParser +from string import Template +import json + +template_content_nvd3 = """ +$container +$jschart +""" + +template_page_nvd3 = """ +<!DOCTYPE html> +<html lang="en"> +<head> +$header +</head> +<body> +%s +</body> +""" % template_content_nvd3 + + +def stab(tab=1): + """ + create space tabulation + """ + return ' ' * 4 * tab + + +class NVD3Chart: + """ + NVD3Chart Base class + + **Attributes**: + + * ``axislist`` - All X, Y axis list + * ``charttooltip_dateformat`` - date fromat for tooltip if x-axis is in date format + * ``charttooltip`` - Custom tooltip string + * ``color_category`` - Defien color category (eg. category10, category20, category20c) + * ``color_list`` - used by pieChart (eg. ['red', 'blue', 'orange']) + * ``container`` - Place for graph + * ``containerheader`` - Header for javascript code + * ``count`` - chart count + * ``custom_tooltip_flag`` - False / True + * ``d3_select_extra`` - + * ``date_flag`` - x-axis contain date format or not + * ``dateformat`` - see https://github.com/mbostock/d3/wiki/Time-Formatting + * ``header_css`` - False / True + * ``header_js`` - Custom tooltip string + * ``height`` - Set graph height + * ``htmlcontent`` - Contain the htmloutput + * ``htmlheader`` - Contain the html header + * ``jschart`` - Javascript code as string + * ``margin_bottom`` - set the bottom margin + * ``margin_left`` - set the left margin + * ``margin_right`` - set the right margin + * ``margin_top`` - set the top margin + * ``model`` - set the model (ex. pieChart, LineWithFocusChart, MultiBarChart) + * ``resize`` - False / True + * ``series`` - Series are list of data that will be plotted + * ``stacked`` - False / True + * ``style`` - Special style + * ``template_page_nvd3`` - template variable + * ``width`` - Set graph width + * ``x_axis_date`` - False / True + * ``show_legend`` - False / True + * ``show_labels`` - False / True + * ``assets_directory`` directory holding the assets (./bower_components/) + """ + count = 0 + dateformat = '%x' + series = [] + axislist = {} + style = '' + htmlcontent = '' + htmlheader = '' + height = None + width = None + margin_bottom = None + margin_left = None + margin_right = None + margin_top = None + model = '' + d3_select_extra = '' + x_axis_date = False + resize = False + stacked = False + template_page_nvd3 = None + container = None + containerheader = '' + jschart = None + custom_tooltip_flag = False + date_flag = False + charttooltip = '' + tooltip_condition_string = '' + color_category = 'category10' # category10, category20, category20c + color_list = [] # for pie chart + tag_script_js = True + charttooltip_dateformat = None + x_axis_format = '' + show_legend = True + show_labels = True + assets_directory = './bower_components/' + + def __init__(self, **kwargs): + """ + Constructor + """ + #set the model + self.model = self.__class__.__name__ + + #Init Data + self.series = [] + self.axislist = {} + self.template_page_nvd3 = Template(template_page_nvd3) + self.template_content_nvd3 = Template(template_content_nvd3) + self.charttooltip_dateformat = '%d %b %Y' + + self.name = kwargs.get('name', self.model) + self.jquery_on_ready = kwargs.get('jquery_on_ready', False) + self.color_category = kwargs.get('color_category', None) + self.color_list = kwargs.get('color_list', None) + self.margin_bottom = kwargs.get('margin_bottom', 20) + self.margin_left = kwargs.get('margin_left', 60) + self.margin_right = kwargs.get('margin_right', 60) + self.margin_top = kwargs.get('margin_top', 30) + self.stacked = kwargs.get('stacked', False) + self.resize = kwargs.get('resize', False) + self.show_legend = kwargs.get('show_legend', True) + self.show_labels = kwargs.get('show_labels', True) + self.tag_script_js = kwargs.get('tag_script_js', True) + self.chart_attr = kwargs.get("chart_attr", {}) + self.assets_directory = kwargs.get('assets_directory', './bower_components/') + + #CDN http://cdnjs.com/libraries/nvd3/ needs to make sure it's up to date + self.header_css = [ + '<link href="%s" rel="stylesheet">\n' % h for h in + ( + self.assets_directory + 'nvd3/src/nv.d3.css', + ) + ] + + self.header_js = [ + '<script src="%s"></script>\n' % h for h in + ( + self.assets_directory + 'd3/d3.min.js', + self.assets_directory + 'nvd3/nv.d3.min.js' + ) + ] + + def add_serie(self, y, x, name=None, extra={}, **kwargs): + """ + add serie - Series are list of data that will be plotted + y {1, 2, 3, 4, 5} / x {1, 2, 3, 4, 5} + + **Attributes**: + + * ``name`` - set Serie name + * ``x`` - x-axis data + * ``y`` - y-axis data + + kwargs: + + * ``shape`` - for scatterChart, you can set different shapes (circle, triangle etc...) + * ``size`` - for scatterChart, you can set size of different shapes + * ``type`` - for multiChart, type should be bar + * ``bar`` - to display bars in Chart + * ``color_list`` - define list of colors which will be used by pieChart + * ``color`` - set axis color + * ``disabled`` - + + extra: + + * ``tooltip`` - set tooltip flag + * ``date_format`` - set date_format for tooltip if x-axis is in date format + + """ + if not name: + name = "Serie %d" % (len(self.series) + 1) + + # For scatterChart shape & size fields are added in serie + if 'shape' in kwargs or 'size' in kwargs: + csize = kwargs.get('size', 1) + cshape = kwargs.get('shape', 'circle') + + serie = [{ + 'x': x[i], + 'y': y, + 'shape': cshape, + 'size': csize[i] if isinstance(csize, list) else csize + } for i, y in enumerate(y)] + else: + if self.model == 'pieChart': + serie = [{'label': x[i], 'value': y} for i, y in enumerate(y)] + elif self.model == 'linePlusBarWithFocusChart': + serie = [[x[i], y] for i, y in enumerate(y)] + else: + serie = [{'x': x[i], 'y': y} for i, y in enumerate(y)] + + data_keyvalue = {'values': serie, 'key': name} + + #multiChart + #Histogram type='bar' for the series + if 'type' in kwargs and kwargs['type']: + data_keyvalue['type'] = kwargs['type'] + + if self.model == 'pieChart': + if 'color_list' in extra and extra['color_list']: + self.color_list = extra['color_list'] + + #Define on which Y axis the serie is related + #a chart can have 2 Y axis, left and right, by default only one Y Axis is used + if 'yaxis' in kwargs and kwargs['yaxis']: + data_keyvalue['yAxis'] = kwargs['yaxis'] + else: + if self.model != 'pieChart' and self.model != 'linePlusBarWithFocusChart': + data_keyvalue['yAxis'] = '1' + + if 'bar' in kwargs and kwargs['bar']: + data_keyvalue['bar'] = 'true' + + if 'disabled' in kwargs and kwargs['disabled']: + data_keyvalue['disabled'] = 'true' + + if 'color' in extra and extra['color']: + data_keyvalue['color'] = extra['color'] + + if extra.get('date_format'): + self.charttooltip_dateformat = extra['date_format'] + + if extra.get('tooltip'): + self.custom_tooltip_flag = True + + if self.model != 'pieChart': + _start = extra['tooltip']['y_start'] + _end = extra['tooltip']['y_end'] + _start = ("'" + str(_start) + "' + ") if _start else '' + _end = (" + '" + str(_end) + "'") if _end else '' + + if self.model == 'linePlusBarChart' or self.model == 'linePlusBarWithFocusChart': + self.tooltip_condition_string += stab(3) + "if(key.indexOf('" + name + "') > -1 ){\n" +\ + stab(4) + "var y = " + _start + " String(graph.point.y) " + _end + ";\n" +\ + stab(3) + "}\n" + elif self.model == 'cumulativeLineChart': + self.tooltip_condition_string += stab(3) + "if(key == '" + name + "'){\n" +\ + stab(4) + "var y = " + _start + " String(e) " + _end + ";\n" +\ + stab(3) + "}\n" + else: + self.tooltip_condition_string += stab(3) + "if(key == '" + name + "'){\n" +\ + stab(4) + "var y = " + _start + " String(graph.point.y) " + _end + ";\n" +\ + stab(3) + "}\n" + + if self.model == 'pieChart': + _start = extra['tooltip']['y_start'] + _end = extra['tooltip']['y_end'] + _start = ("'" + str(_start) + "' + ") if _start else '' + _end = (" + '" + str(_end) + "'") if _end else '' + self.tooltip_condition_string += \ + "var y = " + _start + " String(y) " + _end + ";\n" + + self.series.append(data_keyvalue) + + def set_graph_height(self, height): + """Set Graph height""" + self.height = str(height) + + def set_graph_width(self, width): + """Set Graph width""" + self.width = str(width) + + def set_containerheader(self, containerheader): + """Set containerheader""" + self.containerheader = containerheader + + def set_date_flag(self, date_flag=False): + """Set date falg""" + self.date_flag = date_flag + + def set_custom_tooltip_flag(self, custom_tooltip_flag): + """Set custom_tooltip_flag & date_flag""" + self.custom_tooltip_flag = custom_tooltip_flag + + def __str__(self): + """return htmlcontent""" + self.buildhtml() + return self.htmlcontent + + def buildcontent(self): + """Build HTML content only, no header or body tags. To be useful this + will usually require the attribute `juqery_on_ready` to be set which + will wrap the js in $(function(){<regular_js>};) + """ + self.buildcontainer() + self.buildjschart() + self.htmlcontent = self.template_content_nvd3.substitute(container=self.container, + jschart=self.jschart) + + def buildhtml(self): + """Build the HTML page + Create the htmlheader with css / js + Create html page + Add Js code for nvd3 + """ + self.buildhtmlheader() + self.buildcontainer() + self.buildjschart() + + self.htmlcontent = self.template_page_nvd3.substitute(header=self.htmlheader, + container=self.container, + jschart=self.jschart) + + def buildhtmlheader(self): + """generate HTML header content""" + self.htmlheader = '' + for css in self.header_css: + self.htmlheader += css + for js in self.header_js: + self.htmlheader += js + + def buildcontainer(self): + """generate HTML div""" + self.container = self.containerheader + #Create SVG div with style + if self.width: + if self.width[-1] != '%': + self.style += 'width:%spx;' % self.width + else: + self.style += 'width:%s;' % self.width + if self.height: + if self.height[-1] != '%': + self.style += 'height:%spx;' % self.height + else: + self.style += 'height:%s;' % self.height + if self.style: + self.style = 'style="%s"' % self.style + + self.container += '<div id="%s"><svg %s></svg></div>\n' % (self.name, self.style) + + def build_custom_tooltip(self): + """generate custom tooltip for the chart""" + if self.custom_tooltip_flag: + if not self.date_flag: + if self.model == 'pieChart': + self.charttooltip = stab(2) + "chart.tooltipContent(function(key, y, e, graph) {\n" + \ + stab(3) + "var x = String(key);\n" +\ + stab(3) + self.tooltip_condition_string +\ + stab(3) + "tooltip_str = '<center><b>'+x+'</b></center>' + y;\n" +\ + stab(3) + "return tooltip_str;\n" + \ + stab(2) + "});\n" + else: + self.charttooltip = stab(2) + "chart.tooltipContent(function(key, y, e, graph) {\n" + \ + stab(3) + "var x = String(graph.point.x);\n" +\ + stab(3) + "var y = String(graph.point.y);\n" +\ + self.tooltip_condition_string +\ + stab(3) + "tooltip_str = '<center><b>'+key+'</b></center>' + y + ' at ' + x;\n" +\ + stab(3) + "return tooltip_str;\n" + \ + stab(2) + "});\n" + else: + self.charttooltip = stab(2) + "chart.tooltipContent(function(key, y, e, graph) {\n" + \ + stab(3) + "var x = d3.time.format('%s')(new Date(parseInt(graph.point.x)));\n" \ + % self.charttooltip_dateformat +\ + stab(3) + "var y = String(graph.point.y);\n" +\ + self.tooltip_condition_string +\ + stab(3) + "tooltip_str = '<center><b>'+key+'</b></center>' + y + ' on ' + x;\n" +\ + stab(3) + "return tooltip_str;\n" + \ + stab(2) + "});\n" + + def buildjschart(self): + """generate javascript code for the chart""" + + self.jschart = '' + if self.tag_script_js: + self.jschart += '\n<script>\n' + + self.jschart += stab() + + if self.jquery_on_ready: + self.jschart += '$(function(){' + + self.jschart += 'nv.addGraph(function() {\n' + + self.jschart += stab(2) + 'var chart = nv.models.%s();\n' % self.model + + if self.model != 'pieChart' and not self.color_list: + if self.color_category: + self.jschart += stab(2) + 'chart.color(d3.scale.%s().range());\n' % self.color_category + + if self.stacked: + self.jschart += stab(2) + "chart.stacked(true);" + + self.jschart += stab(2) + \ + 'chart.margin({top: %s, right: %s, bottom: %s, left: %s})\n' % \ + (self.margin_top, self.margin_right, \ + self.margin_bottom, self.margin_left) + + """ + We want now to loop through all the defined Axis and add: + chart.y2Axis + .tickFormat(function(d) { return '$' + d3.format(',.2f')(d) }); + """ + if self.model != 'pieChart': + for axis_name, a in list(self.axislist.items()): + self.jschart += stab(2) + "chart.%s\n" % axis_name + for attr, value in list(a.items()): + self.jschart += stab(3) + ".%s(%s);\n" % (attr, value) + + if self.width: + self.d3_select_extra += ".attr('width', %s)\n" % self.width + if self.height: + self.d3_select_extra += ".attr('height', %s)\n" % self.height + + if self.model == 'pieChart': + datum = "data_%s[0].values" % self.name + else: + datum = "data_%s" % self.name + + # add custom tooltip string in jschart + # default condition (if build_custom_tooltip is not called explicitly with date_flag=True) + if self.tooltip_condition_string == '': + self.tooltip_condition_string = 'var y = String(graph.point.y);\n' + + self.build_custom_tooltip() + self.jschart += self.charttooltip + + # the shape attribute in kwargs is not applied when + # not allowing other shapes to be rendered + if self.model == 'scatterChart': + self.jschart += 'chart.scatter.onlyCircles(false);' + + if self.model != 'discreteBarChart': + if self.show_legend: + self.jschart += stab(2) + "chart.showLegend(true);\n" + else: + self.jschart += stab(2) + "chart.showLegend(false);\n" + + #showLabels only supported in pieChart + if self.model == 'pieChart': + if self.show_labels: + self.jschart += stab(2) + "chart.showLabels(true);\n" + else: + self.jschart += stab(2) + "chart.showLabels(false);\n" + + # add custom chart attributes + for attr, value in self.chart_attr.items(): + self.jschart += stab(2) + "chart.%s(%s);\n" % (attr, value) + + #Inject data to D3 + self.jschart += stab(2) + "d3.select('#%s svg')\n" % self.name + \ + stab(3) + ".datum(%s)\n" % datum + \ + stab(3) + ".transition().duration(500)\n" + \ + stab(3) + self.d3_select_extra + \ + stab(3) + ".call(chart);\n\n" + + if self.resize: + self.jschart += stab(1) + "nv.utils.windowResize(chart.update);\n" + self.jschart += stab(1) + "return chart;\n});" + + if self.jquery_on_ready: + self.jschart += "\n});" + + #Include data + series_js = json.dumps(self.series) + + if self.model == 'linePlusBarWithFocusChart': + append_to_data = ".map(function(series) {" + \ + "series.values = series.values.map(function(d) { return {x: d[0], y: d[1] } });" + \ + "return series; })" + self.jschart += """data_%s=%s%s;\n""" % (self.name, series_js, append_to_data) + else: + self.jschart += """data_%s=%s;\n""" % (self.name, series_js) + + if self.tag_script_js: + self.jschart += "</script>" + + def create_x_axis(self, name, label=None, format=None, date=False, custom_format=False): + """ + Create X-axis + """ + axis = {} + if custom_format and format: + axis['tickFormat'] = format + else: + if format: + if format == 'AM_PM': + axis['tickFormat'] = "function(d) { return get_am_pm(parseInt(d)); }" + else: + axis['tickFormat'] = "d3.format(',%s')" % format + + if label: + axis['axisLabel'] = label + + #date format : see https://github.com/mbostock/d3/wiki/Time-Formatting + if date: + self.dateformat = format + axis['tickFormat'] = "function(d) { return d3.time.format('%s')(new Date(parseInt(d))) }\n" % self.dateformat + #flag is the x Axis is a date + if name[0] == 'x': + self.x_axis_date = True + + #Add new axis to list of axis + self.axislist[name] = axis + + def create_y_axis(self, name, label=None, format=None, custom_format=False): + """ + Create Y-axis + """ + axis = {} + + if custom_format and format: + axis['tickFormat'] = format + else: + if format: + axis['tickFormat'] = "d3.format(',%s')" % format + + if label: + axis['axisLabel'] = label + + #Add new axis to list of axis + self.axislist[name] = axis + + +def _main(): + """ + Parse options and process commands + """ + # Parse arguments + usage = "usage: nvd3.py [options]" + parser = OptionParser(usage=usage, version="python-nvd3 - Charts generator with nvd3.js and d3.js") + parser.add_option("-q", "--quiet", + action="store_false", dest="verbose", default=True, + help="don't print messages to stdout") + + (options, args) = parser.parse_args() + + +if __name__ == '__main__': + _main() diff --git a/tools/wtperf_stats/3rdparty/nvd3/README.rst b/tools/wtperf_stats/3rdparty/nvd3/README.rst new file mode 100644 index 00000000000..31a04d958cc --- /dev/null +++ b/tools/wtperf_stats/3rdparty/nvd3/README.rst @@ -0,0 +1,134 @@ +Python Wrapper for NVD3 - It's time for beautiful charts +======================================================== + +:Description: Python-nvd3 is a wrapper for NVD3 graph library +:nvd3: NVD3 http://nvd3.org/ +:d3: Data-Driven Documents http://d3js.org/ + + +NVD3 is an attempt to build re-usable charts and chart components +for d3.js without taking away the power that d3.js offers you. + + +.. image:: https://www.travis-ci.org/areski/python-nvd3.png?branch=master + + +Installation +------------ + +Install, upgrade and uninstall python-nvd3 with these commands:: + + $ pip install python-nvd3 + $ pip install --upgrade python-nvd3 + $ pip uninstall python-nvd3 + + +Dependecies +----------- + +D3 and NvD3 can be installed through bower (which itself can be installed through npm). See http://bower.io/ and https://npmjs.org for further information. +To install bower globally execute:: + + $ npm install -g bower + +Note : you might prefer to save your npm dependencies locally in a ``package.json`` file. + +Then in the directory where you will use python-nvd3, just execute the following commands:: + + $ bower install d3#3.3.8 + $ bower install nvd3#1.1.12-beta + +This will create a directory "bower_components" where d3 & nvd3 will be saved. + +Note : you might prefer to save your bower dependencies locally in a ``bower.json`` file. You can also configure the directory where your bower dependencies will be saved adding a ``.bowerrc`` file in your project root directory. + + +Usage +----- + +After installation use python-nvd3 as follows :: + + from nvd3 import pieChart + + #Open File to write the D3 Graph + output_file = open('test-nvd3.html', 'w') + + type = 'pieChart' + chart = pieChart(name=type, color_category='category20c', height=450, width=450) + chart.set_containerheader("\n\n<h2>" + type + "</h2>\n\n") + + #Create the keys + xdata = ["Orange", "Banana", "Pear", "Kiwi", "Apple", "Strawberry", "Pineapple"] + ydata = [3, 4, 0, 1, 5, 7, 3] + + #Add the serie + extra_serie = {"tooltip": {"y_start": "", "y_end": " cal"}} + chart.add_serie(y=ydata, x=xdata, extra=extra_serie) + chart.buildhtml() + output_file.write(chart.htmlcontent) + + #close Html file + output_file.close() + + +See the file examples.py for more samples. + + +Live demo of NVD3 +----------------- + +See a live demo on jsfiddle : http://jsfiddle.net/areski/z4zuH/3/ + + +Supported nvd3 charts +--------------------- + +Charts list: + +.. image:: https://raw.github.com/areski/python-nvd3/master/docs/source/_static/screenshot/lineWithFocusChart.png + +.. image:: https://raw.github.com/areski/python-nvd3/master/docs/source/_static/screenshot/lineChart.png + +.. image:: https://raw.github.com/areski/python-nvd3/master/docs/source/_static/screenshot/multiBarChart.png + +.. image:: https://raw.github.com/areski/python-nvd3/master/docs/source/_static/screenshot/pieChart.png + +.. image:: https://raw.github.com/areski/python-nvd3/master/docs/source/_static/screenshot/stackedAreaChart.png + +.. image:: https://raw.github.com/areski/python-nvd3/master/docs/source/_static/screenshot/multiBarHorizontalChart.png + +.. image:: https://raw.github.com/areski/python-nvd3/master/docs/source/_static/screenshot/linePlusBarChart.png + +.. image:: https://raw.github.com/areski/python-nvd3/master/docs/source/_static/screenshot/cumulativeLineChart.png + +.. image:: https://raw.github.com/areski/python-nvd3/master/docs/source/_static/screenshot/discreteBarChart.png + +.. image:: https://raw.github.com/areski/python-nvd3/master/docs/source/_static/screenshot/scatterChart.png + +.. image:: https://raw.github.com/areski/python-nvd3/master/docs/source/_static/screenshot/linePlusBarWithFocusChart.png + + +Documentation +------------- + +Documentation is available on 'Read the Docs': +http://python-nvd3.readthedocs.org + + +Changelog +--------- + +Changelog summary : https://github.com/areski/python-nvd3/blob/master/CHANGELOG.rst + + +Do you like Django? +------------------- + +There is also a django wrapper for nvd3 available: +https://github.com/areski/django-nvd3 + + +License +------- + +Python-nvd3 is licensed under MIT, see `MIT-LICENSE.txt`. diff --git a/tools/wtperf_stats/3rdparty/nvd3/WIREDTIGER_README b/tools/wtperf_stats/3rdparty/nvd3/WIREDTIGER_README new file mode 100644 index 00000000000..e9eb0a8b081 --- /dev/null +++ b/tools/wtperf_stats/3rdparty/nvd3/WIREDTIGER_README @@ -0,0 +1,20 @@ +This is a pre-build python-nvd3 library. It was built from the +Git repository: +https://github.com/areski/python-nvd3 + +Based on revision: +commit deb12255fa61f0ff3fa4b41699e0ef8e62fbd4a6 +Author: Areski Belaid <areski@gmail.com> +Date: Mon Feb 10 15:27:20 2014 +0100 + +Using Python 2.7.5 + +To reproduce run: + +$ cd wiredtiger/tools/third_party +$ git clone https://github.com/areski/python-nvd3 +$ cd python-nvd3 +$ git checkout deb12255 +$ python27 setup.py build +$ cp build/lib/nvd3/* nvd3/ + diff --git a/tools/wtperf_stats/3rdparty/nvd3/__init__.py b/tools/wtperf_stats/3rdparty/nvd3/__init__.py new file mode 100644 index 00000000000..72bb4608230 --- /dev/null +++ b/tools/wtperf_stats/3rdparty/nvd3/__init__.py @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +""" +Python-nvd3 is a Python wrapper for NVD3 graph library. +NVD3 is an attempt to build re-usable charts and chart components +for d3.js without taking away the power that d3.js gives you. + +Project location : https://github.com/areski/python-nvd3 +""" + +__version__ = '0.11.0' # edit also docs/source/conf.py +__all__ = ['lineChart', 'pieChart', 'lineWithFocusChart', + 'stackedAreaChart', 'multiBarHorizontalChart', + 'linePlusBarChart', 'cumulativeLineChart', + 'scatterChart', 'discreteBarChart', 'multiBarChart', + 'linePlusBarWithFocusChart'] + + +from .lineChart import lineChart +from .pieChart import pieChart +from .lineWithFocusChart import lineWithFocusChart +from .stackedAreaChart import stackedAreaChart +from .multiBarHorizontalChart import multiBarHorizontalChart +from .linePlusBarChart import linePlusBarChart +from .cumulativeLineChart import cumulativeLineChart +from .scatterChart import scatterChart +from .discreteBarChart import discreteBarChart +from .multiBarChart import multiBarChart +from .linePlusBarWithFocusChart import linePlusBarWithFocusChart diff --git a/tools/wtperf_stats/3rdparty/nvd3/cumulativeLineChart.py b/tools/wtperf_stats/3rdparty/nvd3/cumulativeLineChart.py new file mode 100644 index 00000000000..3ffbc66127c --- /dev/null +++ b/tools/wtperf_stats/3rdparty/nvd3/cumulativeLineChart.py @@ -0,0 +1,118 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +""" +Python-nvd3 is a Python wrapper for NVD3 graph library. +NVD3 is an attempt to build re-usable charts and chart components +for d3.js without taking away the power that d3.js gives you. + +Project location : https://github.com/areski/python-nvd3 +""" + +from .NVD3Chart import NVD3Chart + + +class cumulativeLineChart(NVD3Chart): + """ + A cumulative line chart is used when you have one important grouping representing + an ordered set of data and one value to show, summed over time. + + .. image:: ../_static/screenshot/cumulativeLineChart.png + + Python example:: + + from nvd3 import cumulativeLineChart + chart = cumulativeLineChart(name='cumulativeLineChart', x_is_date=True) + xdata = [1365026400000000, 1365026500000000, 1365026600000000] + ydata = [-6, 5, -1] + y2data = [36, 55, 11] + + extra_serie = {"tooltip": {"y_start": "There are ", "y_end": " calls"}} + chart.add_serie(name="Serie 1", y=ydata, x=xdata, extra=extra_serie) + + extra_serie = {"tooltip": {"y_start": "", "y_end": " mins"}} + chart.add_serie(name="Serie 2", y=y2data, x=xdata, extra=extra_serie) + chart.buildhtml() + + Javascript generated:: + + data_lineWithFocusChart = [ + { + "key" : "Serie 1", + "values" : [ + { "x" : "1365026400000000", + "y" : -6 + }, + { "x" : "1365026500000000", + "y" : -5 + }, + { "x" : "1365026600000000", + "y" : -1 + }, + ], + }, + { + "key" : "Serie 2", + "values" : [ + { "x" : "1365026400000000", + "y" : 34 + }, + { "x" : "1365026500000000", + "y" : 56 + }, + { "x" : "1365026600000000", + "y" : 32 + }, + ], + } + ] + + nv.addGraph(function() { + var chart = nv.models.cumulativeLineChart(); + + chart.xAxis + .tickFormat(function(d) { return d3.time.format('%d %b %Y')(new Date(d)) }); + chart.y1Axis + .tickFormat(d3.format('.1%')); + chart.tooltipContent(function(key, y, e, graph) { + var x = d3.time.format('%d %b %Y')(new Date(parseInt(graph.point.x))); + var y = String(graph.point.y); + if(key == 'Serie 1'){ + var y = 'There are ' + String(e) + ' calls'; + } + if(key == 'Serie 2'){ + var y = String(e) + ' mins'; + } + tooltip_str = '<center><b>'+key+'</b></center>' + y + ' on ' + x; + return tooltip_str; + }); + d3.select('#cumulativeLineChart svg') + .datum(data_linePlusBarChart) + .transition().duration(500) + .attr('height', 350) + .call(chart); + return chart; + }); + """ + def __init__(self, **kwargs): + NVD3Chart.__init__(self, **kwargs) + + height = kwargs.get('height', 450) + width = kwargs.get('width', None) + + if kwargs.get('x_is_date', False): + self.set_date_flag(True) + self.create_x_axis('xAxis', + format=kwargs.get('x_axis_format', '%d %b %Y'), + date=True) + self.set_custom_tooltip_flag(True) + else: + self.create_x_axis('xAxis', format=kwargs.get('x_axis_format', '.2f')) + + self.create_y_axis('yAxis', format=kwargs.get('y_axis_format', '.1%')) + + # must have a specified height, otherwise it superimposes both chars + if height: + self.set_graph_height(height) + if width: + self.set_graph_width(width) diff --git a/tools/wtperf_stats/3rdparty/nvd3/discreteBarChart.py b/tools/wtperf_stats/3rdparty/nvd3/discreteBarChart.py new file mode 100644 index 00000000000..a16c32a9265 --- /dev/null +++ b/tools/wtperf_stats/3rdparty/nvd3/discreteBarChart.py @@ -0,0 +1,96 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +""" +Python-nvd3 is a Python wrapper for NVD3 graph library. +NVD3 is an attempt to build re-usable charts and chart components +for d3.js without taking away the power that d3.js gives you. + +Project location : https://github.com/areski/python-nvd3 +""" + +from .NVD3Chart import NVD3Chart + + +class discreteBarChart(NVD3Chart): + """ + A discrete bar chart or bar graph is a chart with rectangular bars with + lengths proportional to the values that they represent. + + .. image:: ../_static/screenshot/discreteBarChart.png + + Python example:: + + from nvd3 import discreteBarChart + chart = discreteBarChart(name='discreteBarChart', height=400, width=400) + + xdata = ["A", "B", "C", "D", "E"] + ydata = [3, 4, 0, -3, 5, 7] + + extra_serie = {"tooltip": {"y_start": "", "y_end": " balls"}} + chart.add_serie(y=ydata, x=xdata, extra=extra_serie) + chart.buildhtml() + + Javascript generated:: + + data = [{ key: "Cumulative Return", + values: [ + { + "label": "A", + "value" : 10 + }, + { + "label": "B", + "value" : 0 + }, + { + "label": "C", + "value" : -3 + }, + ] + }] + + nv.addGraph(function() { + var chart = nv.models.discreteBarChart() + .x(function(d) { return d.label }) + .y(function(d) { return d.value }) + .showLabels(true); + chart.tooltipContent(function(key, y, e, graph) { + var x = String(graph.point.x); + var y = String(graph.point.y); + if(key == 'Serie 1'){ + var y = String(graph.point.y) + ' balls'; + } + tooltip_str = '<center><b>'+key+'</b></center>' + y + ' at ' + x; + return tooltip_str; + }); + d3.select("#div_id") + .datum(data) + .transition() + .duration(1200) + .call(chart); + + return chart; + }); + """ + def __init__(self, **kwargs): + NVD3Chart.__init__(self, **kwargs) + self.name = kwargs.get('name', 'discreteBarChart') + height = kwargs.get('height', 450) + width = kwargs.get('width', None) + + if kwargs.get('x_is_date', False): + self.set_date_flag(True) + self.create_x_axis('xAxis', + format=kwargs.get('x_axis_format', "%d %b %Y %H %S"), + date=True) + else: + self.create_x_axis('xAxis', format=None) + + self.set_custom_tooltip_flag(True) + + # must have a specified height, otherwise it superimposes both charts + if height: + self.set_graph_height(height) + if width: + self.set_graph_width(width) diff --git a/tools/wtperf_stats/3rdparty/nvd3/lineChart.py b/tools/wtperf_stats/3rdparty/nvd3/lineChart.py new file mode 100644 index 00000000000..b0dc1796863 --- /dev/null +++ b/tools/wtperf_stats/3rdparty/nvd3/lineChart.py @@ -0,0 +1,111 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +""" +Python-nvd3 is a Python wrapper for NVD3 graph library. +NVD3 is an attempt to build re-usable charts and chart components +for d3.js without taking away the power that d3.js gives you. + +Project location : https://github.com/areski/python-nvd3 +""" + +from .NVD3Chart import NVD3Chart, stab + + +class lineChart(NVD3Chart): + """ + A line chart or line graph is a type of chart which displays information + as a series of data points connected by straight line segments. + + .. image:: ../_static/screenshot/lineChart.png + + Python example:: + + from nvd3 import lineChart + chart = lineChart(name='lineChart', height=400, width=400, x_is_date=True, x_axis_format="%d %b %Y %H") + xdata = [1365026400000000, 1365026500000000, 1365026600000000] + ydata = [-6, 5, -1] + + extra_serie = {"tooltip": {"y_start": "There is ", "y_end": " calls"}, + "date_format": "%d %b %Y %H:%S"} + chart.add_serie(name="Serie 1", y=ydata, x=xdata, extra=extra_serie) + chart.buildhtml() + + Javascript generated:: + + data_lineChart = [{ + "key" : "Serie 1", + "values" : [ + { "x" : "1365026400000000", + "y" : -6 + }, + { "x" : "1365026500000000", + "y" : -5 + }, + { "x" : "1365026600000000", + "y" : -1 + }, + ], + "yAxis" : "1" + }] + + nv.addGraph(function() { + var chart = nv.models.lineChart(); + chart.xAxis + .tickFormat(function(d) { return d3.time.format('%d %b %y %H')(new Date(d)) }); + chart.yAxis + .tickFormat(d3.format(',.2f')); + chart.tooltipContent(function(key, y, e, graph) { + var x = d3.time.format('%d %b %Y %H:%S')(new Date(parseInt(graph.point.x))); + var y = String(graph.point.y); + if(key == 'Serie 1'){ + var y = 'There is ' + String(graph.point.y) + ' calls'; + } + tooltip_str = '<center><b>'+key+'</b></center>' + y + ' on ' + x; + return tooltip_str; + }); + d3.select('#lineChart svg') + .datum(data_lineChart) + .transition() + .duration(500) + .call(chart); + return chart; + }); + """ + def __init__(self, **kwargs): + NVD3Chart.__init__(self, **kwargs) + height = kwargs.get('height', 450) + width = kwargs.get('width', None) + + if kwargs.get('x_is_date', False): + self.set_date_flag(True) + self.create_x_axis('xAxis', + format=kwargs.get('x_axis_format', '%d %b %Y'), + date=True) + self.set_custom_tooltip_flag(True) + else: + if kwargs.get('x_axis_format') == 'AM_PM': + self.x_axis_format = format = 'AM_PM' + else: + format = kwargs.get('x_axis_format', 'r') + self.create_x_axis('xAxis', format=format) + self.create_y_axis('yAxis', format=kwargs.get('y_axis_format', '.02f')) + + # must have a specified height, otherwise it superimposes both chars + self.set_graph_height(height) + if width: + self.set_graph_width(width) + + def buildjschart(self): + NVD3Chart.buildjschart(self) + am_pm_js = '' + if self.x_axis_format == 'AM_PM': + am_pm_js += stab(2) + "function get_am_pm(d){\n" + am_pm_js += stab(3) + "if(d > 12){ d = d - 12; return (String(d) + 'PM');}\n" + am_pm_js += stab(3) + "else{ return (String(d) + 'AM');}\n" + am_pm_js += stab(2) + "};\n" + + start_js = self.jschart.find('nv.addGraph') + replace_index = start_js + if start_js > 0: + self.jschart = self.jschart[:replace_index] + am_pm_js + self.jschart[replace_index:] diff --git a/tools/wtperf_stats/3rdparty/nvd3/linePlusBarChart.py b/tools/wtperf_stats/3rdparty/nvd3/linePlusBarChart.py new file mode 100644 index 00000000000..b4b3ca139b0 --- /dev/null +++ b/tools/wtperf_stats/3rdparty/nvd3/linePlusBarChart.py @@ -0,0 +1,125 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +""" +Python-nvd3 is a Python wrapper for NVD3 graph library. +NVD3 is an attempt to build re-usable charts and chart components +for d3.js without taking away the power that d3.js gives you. + +Project location : https://github.com/areski/python-nvd3 +""" + +from .NVD3Chart import NVD3Chart + + +class linePlusBarChart(NVD3Chart): + """ + A linePlusBarChart Chart is a type of chart which displays information + as a series of data points connected by straight line segments + and with some series with rectangular bars with lengths proportional + to the values that they represent + + .. image:: ../_static/screenshot/linePlusBarChart.png + + Python example:: + + from nvd3 import linePlusBarChart + chart = linePlusBarChart(name='linePlusBarChart', x_is_date=True, x_axis_format="%d %b %Y") + + xdata = [1365026400000000, 1365026500000000, 1365026600000000] + ydata = [-6, 5, -1] + y2data = [36, 55, 11] + + extra_serie = {"tooltip": {"y_start": "There is ", "y_end": " calls"}, + "date_format": "%d %b %Y %H:%S" } + chart.add_serie(name="Serie 1", y=ydata, x=xdata, extra=extra_serie) + + extra_serie = {"tooltip": {"y_start": "There is ", "y_end": " min"}} + chart.add_serie(name="Serie 2", y=y2data, x=xdata, extra=extra_serie) + chart.buildhtml() + + Javascript generated:: + + data_lineWithFocusChart = [ + { + "key" : "Serie 1", + "bar": "true", + "values" : [ + { "x" : "1365026400000000", + "y" : -6 + }, + { "x" : "1365026500000000", + "y" : -5 + }, + { "x" : "1365026600000000", + "y" : -1 + }, + ], + }, + { + "key" : "Serie 2", + "values" : [ + { "x" : "1365026400000000", + "y" : 34 + }, + { "x" : "1365026500000000", + "y" : 56 + }, + { "x" : "1365026600000000", + "y" : 32 + }, + ], + } + ] + + nv.addGraph(function() { + var chart = nv.models.linePlusBarChart(); + + chart.xAxis + .tickFormat(function(d) { return d3.time.format('%d %b %Y')(new Date(d)) }); + chart.y1Axis + .tickFormat(d3.format(',f')); + chart.y2Axis + .tickFormat(function(d) { return '$' + d3.format(',f')(d) }); + chart.tooltipContent(function(key, y, e, graph) { + var x = d3.time.format('%d %b %Y %H:%S')(new Date(parseInt(graph.point.x))); + var y = String(graph.point.y); + if(key.indexOf('Serie 1') > -1 ){ + var y = '$ ' + String(graph.point.y) ; + } + if(key.indexOf('Serie 2') > -1 ){ + var y = String(graph.point.y) + ' min'; + } + tooltip_str = '<center><b>'+key+'</b></center>' + y + ' on ' + x; + return tooltip_str; + }); + d3.select('#linePlusBarChart svg') + .datum(data_linePlusBarChart) + .transition().duration(500) + .attr('height', 350) + .call(chart); + return chart; + }); + """ + def __init__(self, **kwargs): + NVD3Chart.__init__(self, **kwargs) + height = kwargs.get('height', 450) + width = kwargs.get('width', None) + + if kwargs.get('x_is_date', False): + self.set_date_flag(True) + self.create_x_axis('xAxis', + format=kwargs.get('x_axis_format', '%d %b %Y %H %S'), + date=True) + self.set_custom_tooltip_flag(True) + else: + self.create_x_axis('xAxis', format=kwargs.get('x_axis_format', '.2f')) + + self.create_y_axis('y1Axis', format="f") + self.create_y_axis('y2Axis', format="function(d) { return d3.format(',f')(d) }", custom_format=True) + + # must have a specified height, otherwise it superimposes both chars + if height: + self.set_graph_height(height) + if width: + self.set_graph_width(width) diff --git a/tools/wtperf_stats/3rdparty/nvd3/linePlusBarWithFocusChart.py b/tools/wtperf_stats/3rdparty/nvd3/linePlusBarWithFocusChart.py new file mode 100644 index 00000000000..6067b7a5bbb --- /dev/null +++ b/tools/wtperf_stats/3rdparty/nvd3/linePlusBarWithFocusChart.py @@ -0,0 +1,153 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +""" +Python-nvd3 is a Python wrapper for NVD3 graph library. +NVD3 is an attempt to build re-usable charts and chart components +for d3.js without taking away the power that d3.js gives you. + +Project location : https://github.com/areski/python-nvd3 +""" + +from .NVD3Chart import NVD3Chart, stab + + +class linePlusBarWithFocusChart(NVD3Chart): + """ + A linePlusBarWithFocusChart Chart is a type of chart which displays information + as a series of data points connected by straight line segments + and with some series with rectangular bars with lengths proportional + to the values that they represent + + .. image:: ../_static/screenshot/linePlusBarWithFocusChart.png + + Python example:: + + from nvd3 import linePlusBarWithFocusChart + chart = linePlusBarWithFocusChart(name='linePlusBarChart', x_is_date=True, x_axis_format="%d %b %Y") + + xdata = [1365026400000000, 1365026500000000, 1365026600000000] + ydata = [-6, 5, -1] + y2data = [36, 55, 11] + kwargs = {} + kwargs['bar'] = True + extra_serie = {"tooltip": {"y_start": "There is ", "y_end": " calls"}, + "date_format": "%d %b %Y %H:%S" } + chart.add_serie(name="Serie 1", y=ydata, x=xdata, extra=extra_serie, **kwargs) + + extra_serie = {"tooltip": {"y_start": "There is ", "y_end": " min"}} + chart.add_serie(name="Serie 2", y=y2data, x=xdata, extra=extra_serie) + chart.buildhtml() + + Javascript generated:: + + data_linePlusBarWithFocusChart = [ + { + "key" : "Quantity" , + "bar": true, + "values" : [ [ 1136005200000 , 1271000.0] , [ 1138683600000 , 1271000.0] , ] + }, + { + "key" : "Price" , + "values" : [ [ 1136005200000 , 71.89] , [ 1138683600000 , 75.51]] + } + ].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('#linePlusBarWithFocusChart svg') + .datum(testdata) + .call(chart); + + nv.utils.windowResize(chart.update); + + return chart; + }); + """ + def __init__(self, **kwargs): + NVD3Chart.__init__(self, **kwargs) + height = kwargs.get('height', 450) + width = kwargs.get('width', None) + + if kwargs.get('x_is_date', False): + self.set_date_flag(True) + + with_focus_chart_1 = """function(d) { + var dx = data_%s[0].values[d] && data_%s[0].values[d].x || 0; + if (dx > 0) { return d3.time.format('%s')(new Date(dx)) } + return null; + }""" % (self.name, self.name, kwargs.get('x_axis_format', '%d %b %Y %H %S')) + self.create_x_axis('xAxis', format=with_focus_chart_1, date=False, custom_format=True) + + with_focus_chart_2 = """function(d) { + var dx = data_%s[0].values[d] && data_%s[0].values[d].x || 0; + return d3.time.format('%s')(new Date(dx)); + }""" % (self.name, self.name, kwargs.get('x_axis_format', '%d %b %Y %H %S')) + + self.create_x_axis('x2Axis', format=with_focus_chart_2, date=False, custom_format=True) + + self.set_custom_tooltip_flag(True) + else: + self.create_x_axis('xAxis', format=".2f") + + self.create_y_axis('y1Axis', format="f") + self.create_y_axis('y3Axis', format="f") + + self.create_y_axis('y2Axis', format="function(d) { return d3.format(',.2f')(d) }", custom_format=True) + + self.create_y_axis('y4Axis', format="function(d) { return d3.format(',.2f')(d) }", custom_format=True) + + # must have a specified height, otherwise it superimposes both chars + if height: + self.set_graph_height(height) + if width: + self.set_graph_width(width) + + def buildjschart(self): + NVD3Chart.buildjschart(self) + + string_jschart = '\n' + stab(2) + 'chart.margin({top: 30, right: 60, bottom: 50, left: 70})\n' + \ + stab(3) + '.x(function(d,i) { return i });\n' + if self.width: + string_jschart += stab(2) + 'chart.width(%s);\n' % self.width + if self.height: + string_jschart += stab(2) + 'chart.height(%s);\n' % self.height + + start_index = self.jschart.find('.linePlusBarWithFocusChart();') + string_len = len('.linePlusBarWithFocusChart();') + replace_index = start_index + string_len + if start_index > 0: + self.jschart = self.jschart[:replace_index] + string_jschart + self.jschart[replace_index:] diff --git a/tools/wtperf_stats/3rdparty/nvd3/lineWithFocusChart.py b/tools/wtperf_stats/3rdparty/nvd3/lineWithFocusChart.py new file mode 100644 index 00000000000..4a6cd778551 --- /dev/null +++ b/tools/wtperf_stats/3rdparty/nvd3/lineWithFocusChart.py @@ -0,0 +1,101 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +""" +Python-nvd3 is a Python wrapper for NVD3 graph library. +NVD3 is an attempt to build re-usable charts and chart components +for d3.js without taking away the power that d3.js gives you. + +Project location : https://github.com/areski/python-nvd3 +""" + +from .NVD3Chart import NVD3Chart + + +class lineWithFocusChart(NVD3Chart): + """ + A lineWithFocusChart or line graph is a type of chart which displays information + as a series of data points connected by straight line segments. + The lineWithFocusChart provide a smaller chart that act as a selector, + this is very useful if you want to zoom on a specific time period. + + .. image:: ../_static/screenshot/lineWithFocusChart.png + + Python example:: + + from nvd3 import lineWithFocusChart + chart = lineWithFocusChart(name='lineWithFocusChart', x_is_date=True, x_axis_format="%d %b %Y") + xdata = [1365026400000000, 1365026500000000, 1365026600000000] + ydata = [-6, 5, -1] + + extra_serie = {"tooltip": {"y_start": "", "y_end": " ext"}, + "date_format": "%d %b %Y"} + chart.add_serie(name="Serie 1", y=ydata, x=xdata, extra=extra_serie) + chart.buildhtml() + + Javascript generated:: + + data_lineWithFocusChart = [{ "key" : "Serie 1", + "values" : [ + { "x" : "1365026400000000", + "y" : -6 + }, + { "x" : "1365026500000000", + "y" : -5 + }, + { "x" : "1365026600000000", + "y" : -1 + }, + ], + "yAxis" : "1" + }] + + nv.addGraph(function() { + var chart = nv.models.lineWithFocusChart(); + chart.yAxis + .tickFormat(d3.format(',.2f')); + chart.y2Axis + .tickFormat(d3.format(',.2f')); + chart.xAxis + .tickFormat(function(d) { return d3.time.format('%d %b %y')(new Date(d)) }); + chart.x2Axis + .tickFormat(function(d) { return d3.time.format('%d %b %y')(new Date(d)) }); + chart.tooltipContent(function(key, y, e, graph) { + var x = d3.time.format('%d %b %Y')(new Date(parseInt(graph.point.x))); + var y = String(graph.point.y); + if(key == 'serie 1'){ + var y = 'There is ' + String(graph.point.y) + ' calls'; + } + tooltip_str = '<center><b>'+key+'</b></center>' + y + ' on ' + x; + return tooltip_str; + }); + d3.select('#lineWithFocusChart svg') + .datum(data_lineWithFocusChart) + .transition() + .duration(500) + .call(chart); + return chart; + }); + """ + def __init__(self, **kwargs): + NVD3Chart.__init__(self, **kwargs) + height = kwargs.get('height', 450) + width = kwargs.get('width', None) + + if kwargs.get('x_is_date', False): + self.set_date_flag(True) + self.create_x_axis('xAxis', format=kwargs.get('x_axis_format', '%d %b %Y %H %S'), date=True) + self.create_x_axis('x2Axis', format=kwargs.get('x_axis_format', '%d %b %Y %H %S'), date=True) + self.set_custom_tooltip_flag(True) + else: + self.create_x_axis('xAxis', format=kwargs.get('x_axis_format', '.2f')) + self.create_x_axis('x2Axis', format=kwargs.get('x_axis_format', '.2f')) + + self.create_y_axis('yAxis', format=kwargs.get('y_axis_format', '.2f')) + self.create_y_axis('y2Axis', format=kwargs.get('y_axis_format', '.2f')) + + # must have a specified height, otherwise it superimposes both chars + if height: + self.set_graph_height(height) + if width: + self.set_graph_width(width) diff --git a/tools/wtperf_stats/3rdparty/nvd3/multiBarChart.py b/tools/wtperf_stats/3rdparty/nvd3/multiBarChart.py new file mode 100644 index 00000000000..991f0f48174 --- /dev/null +++ b/tools/wtperf_stats/3rdparty/nvd3/multiBarChart.py @@ -0,0 +1,93 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +""" +Python-nvd3 is a Python wrapper for NVD3 graph library. +NVD3 is an attempt to build re-usable charts and chart components +for d3.js without taking away the power that d3.js gives you. + +Project location : https://github.com/areski/python-nvd3 +""" + +from .NVD3Chart import NVD3Chart + + +class multiBarChart(NVD3Chart): + """ + A multiple bar graph contains comparisons of two or more categories or bars. + One axis represents a quantity and the other axis identifies a specific feature + about the categories. Reading a multiple bar graph includes looking at extremes + (tallest/longest vs. shortest) in each grouping. + + .. image:: ../_static/screenshot/multiBarChart.png + + Python example:: + + from nvd3 import multiBarChart + chart = multiBarChart(name='multiBarChart', height=400, width=400) + xdata = [0, 1, 3, 4] + ydata = [6, 12, 9, 16] + + extra_serie = {"tooltip": {"y_start": "", "y_end": " balls"}} + chart.add_serie(name="Serie 1", y=ydata, x=xdata) + chart.buildhtml() + + Javascript generated:: + + data_MultiBarChart = [{ "key" : "Serie 1", + "values" : [ + { "x" : 0 + "y" : 6 + }, + { "x" : 1, + "y" : 12 + }, + { "x" : 3, + "y" : 9 + }, + ], + "yAxis" : "1" + }] + + nv.addGraph(function() { + var chart = nv.models.multiBarChart(); + chart.xAxis + .tickFormat(d3.format(',.2f')); + chart.yAxis + .tickFormat(d3.format(',.2f')); + chart.tooltipContent(function(key, y, e, graph) { + var x = String(graph.point.x); + var y = String(graph.point.y); + if(key == 'Serie 1'){ + var y = String(graph.point.y) + ' balls'; + } + tooltip_str = '<center><b>'+key+'</b></center>' + y + ' at ' + x; + return tooltip_str; + }); + d3.select('#MultiBarChart svg') + .datum(data_MultiBarChart) + .transition() + .duration(500) + .call(chart); + return chart; + }); + """ + def __init__(self, **kwargs): + NVD3Chart.__init__(self, **kwargs) + height = kwargs.get('height', 450) + width = kwargs.get('width', None) + + if kwargs.get('x_is_date', False): + self.set_date_flag(True) + self.create_x_axis('xAxis', + format=kwargs.get('x_axis_format', '%d %b %Y'), + date=True) + self.set_custom_tooltip_flag(True) + else: + self.create_x_axis('xAxis', format=kwargs.get('x_axis_format', '.2f')) + self.create_y_axis('yAxis', format=kwargs.get('y_axis_format', '.2f')) + # must have a specified height, otherwise it superimposes both chars + if height: + self.set_graph_height(height) + if width: + self.set_graph_width(width) diff --git a/tools/wtperf_stats/3rdparty/nvd3/multiBarHorizontalChart.py b/tools/wtperf_stats/3rdparty/nvd3/multiBarHorizontalChart.py new file mode 100644 index 00000000000..8f2c8dbaaee --- /dev/null +++ b/tools/wtperf_stats/3rdparty/nvd3/multiBarHorizontalChart.py @@ -0,0 +1,104 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +""" +Python-nvd3 is a Python wrapper for NVD3 graph library. +NVD3 is an attempt to build re-usable charts and chart components +for d3.js without taking away the power that d3.js gives you. + +Project location : https://github.com/areski/python-nvd3 +""" + +from .NVD3Chart import NVD3Chart + + +class multiBarHorizontalChart(NVD3Chart): + """ + A multiple horizontal bar graph contains comparisons of two or more categories or bars. + + .. image:: ../_static/screenshot/multiBarHorizontalChart.png + + Python example:: + + from nvd3 import multiBarHorizontalChart + chart = multiBarHorizontalChart(name='multiBarHorizontalChart', height=400, width=400) + xdata = [-14, -7, 7, 14] + ydata = [-6, 5, -1, 9] + y2data = [-23, -6, -32, 9] + + extra_serie = {"tooltip": {"y_start": "", "y_end": " balls"}} + chart.add_serie(name="Serie 1", y=ydata, x=xdata, extra=extra_serie) + + extra_serie = {"tooltip": {"y_start": "", "y_end": " calls"}} + chart.add_serie(name="Serie 2", y=y2data, x=xdata, extra=extra_serie) + chart.buildhtml() + + Javascript generated:: + + data_lineChart = [ { "key" : "Serie 1", + "values" : [ { "x" : 0, + "y" : -2 + }, + { "x" : 1, + "y" : 4 + }, + { "x" : 2, + "y" : -7 + }, + ], + "yAxis" : "1" + }, + { "key" : "Serie 2", + "values" : [ { "x" : 0, + "y" : -4 + }, + { "x" : 1, + "y" : 8 + }, + { "x" : 2, + "y" : -14 + }, + ], + "yAxis" : "1" + } + ] + + nv.addGraph(function() { + var chart = nv.models.multiBarHorizontalChart(); + chart.xAxis + .tickFormat(d3.format(',.2f')); + chart.yAxis + .tickFormat(d3.format(',.2f')); + chart.tooltipContent(function(key, y, e, graph) { + var x = String(graph.point.x); + var y = String(graph.point.y); + if(key == 'Serie 1'){ + var y = String(graph.point.y) + ' balls'; + } + if(key == 'Serie 2'){ + var y = String(graph.point.y) + ' calls'; + } + tooltip_str = '<center><b>'+key+'</b></center>' + y + ' at ' + x; + return tooltip_str; + }); + d3.select('#multiBarHorizontalChart svg') + .datum(data_multiBarHorizontalChart) + .transition().duration(500) + .attr('height', 350) + .call(chart); + + return chart; + }); + """ + def __init__(self, **kwargs): + NVD3Chart.__init__(self, **kwargs) + height = kwargs.get('height', 450) + width = kwargs.get('width', None) + + self.create_x_axis('xAxis', format=kwargs.get('x_axis_format', '.2f')) + self.create_y_axis('yAxis', format=kwargs.get('y_axis_format', '.2f')) + # must have a specified height, otherwise it superimposes both chars + if height: + self.set_graph_height(height) + if width: + self.set_graph_width(width) diff --git a/tools/wtperf_stats/3rdparty/nvd3/pieChart.py b/tools/wtperf_stats/3rdparty/nvd3/pieChart.py new file mode 100644 index 00000000000..5c542bd8d3c --- /dev/null +++ b/tools/wtperf_stats/3rdparty/nvd3/pieChart.py @@ -0,0 +1,125 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +""" +Python-nvd3 is a Python wrapper for NVD3 graph library. +NVD3 is an attempt to build re-usable charts and chart components +for d3.js without taking away the power that d3.js gives you. + +Project location : https://github.com/areski/python-nvd3 +""" + +from .NVD3Chart import NVD3Chart, stab + + +class pieChart(NVD3Chart): + """ + A pie chart (or a circle graph) is a circular chart divided into sectors, + illustrating numerical proportion. In chart, the arc length of each sector + is proportional to the quantity it represents. + + .. image:: ../_static/screenshot/pieChart.png + + Python example:: + + from nvd3 import pieChart + chart = pieChart(name='pieChart', color_category='category20c', height=400, width=400) + + xdata = ["Orange", "Banana", "Pear", "Kiwi", "Apple", "Strawberry", "Pineapple"] + ydata = [3, 4, 0, 1, 5, 7, 3] + + extra_serie = {"tooltip": {"y_start": "", "y_end": " cal"}} + chart.add_serie(y=ydata, x=xdata, extra=extra_serie) + chart.buildhtml() + + Javascript generated:: + + data = [{ key: "Cumulative Return", + values: [ + { + "label": "One", + "value" : 29.765957771107 + }, + { + "label": "Two", + "value" : 0 + }, + { + "label": "Three", + "value" : 32.807804682612 + }, + ] + }] + + nv.addGraph(function() { + var chart = nv.models.pieChart() + .x(function(d) { return d.label }) + .y(function(d) { return d.value }) + .showLabels(true); + + chart.color(d3.scale.category20c().range()); + + chart.tooltipContent(function(key, y, e, graph) { + var x = String(key); + var y = String(y) + ' cal'; + tooltip_str = '<center><b>'+x+'</b></center>' + y; + return tooltip_str; + }); + + d3.select("#div_id") + .datum(data) + .transition() + .duration(1200) + .call(chart); + + return chart; + }); + """ + def __init__(self, **kwargs): + NVD3Chart.__init__(self, **kwargs) + height = kwargs.get('height', 450) + width = kwargs.get('width', None) + + self.create_x_axis('xAxis', format=None) + self.create_y_axis('yAxis', format=None) + # must have a specified height, otherwise it superimposes both chars + if height: + self.set_graph_height(height) + if width: + self.set_graph_width(width) + + def buildjschart(self): + NVD3Chart.buildjschart(self) + + color_js = '' + if self.color_list: + color_js += "var mycolor = new Array();\n" + color_count = 0 + for i in self.color_list: + color_js += stab(2) + "mycolor[" + str(color_count) + "] = '" + i + "';\n" + color_count = int(color_count) + 1 + + # add mycolor var in js before nv.addGraph starts + if self.color_list: + start_js = self.jschart.find('nv.addGraph') + #start_js_len = len('nv.addGraph') + replace_index = start_js + if start_js > 0: + self.jschart = self.jschart[:replace_index] + color_js + self.jschart[replace_index:] + + pie_jschart = '\n' + stab(2) + 'chart.x(function(d) { return d.label })\n' + \ + stab(3) + '.y(function(d) { return d.value });\n' + if self.width: + pie_jschart += stab(2) + 'chart.width(%s);\n' % self.width + if self.height: + pie_jschart += stab(2) + 'chart.height(%s);\n' % self.height + + # add custom colors for pieChart + if self.color_list and color_js: + pie_jschart += stab(2) + 'chart.color(mycolor);\n' + + start_index = self.jschart.find('.pieChart();') + string_len = len('.pieChart();') + replace_index = start_index + string_len + if start_index > 0: + self.jschart = self.jschart[:replace_index] + pie_jschart + self.jschart[replace_index:] diff --git a/tools/wtperf_stats/3rdparty/nvd3/scatterChart.py b/tools/wtperf_stats/3rdparty/nvd3/scatterChart.py new file mode 100644 index 00000000000..74e1e08475f --- /dev/null +++ b/tools/wtperf_stats/3rdparty/nvd3/scatterChart.py @@ -0,0 +1,137 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +""" +Python-nvd3 is a Python wrapper for NVD3 graph library. +NVD3 is an attempt to build re-usable charts and chart components +for d3.js without taking away the power that d3.js gives you. + +Project location : https://github.com/areski/python-nvd3 +""" + +from .NVD3Chart import NVD3Chart, stab + + +class scatterChart(NVD3Chart): + """ + A scatter plot or scattergraph is a type of mathematical diagram using Cartesian + coordinates to display values for two variables for a set of data. + The data is displayed as a collection of points, each having the value of one variable + determining the position on the horizontal axis and the value of the other variable + determining the position on the vertical axis. + + .. image:: ../_static/screenshot/scatterChart.png + + Python example:: + + from nvd3 import scatterChart + chart = scatterChart(name='scatterChart', height=400, width=400) + xdata = [3, 4, 0, -3, 5, 7] + ydata = [-1, 2, 3, 3, 15, 2] + ydata = [1, -2, 4, 7, -5, 3] + + kwargs1 = {'shape': 'circle', 'size': '1'} + kwargs2 = {'shape': 'cross', 'size': '10'} + + extra_serie = {"tooltip": {"y_start": "", "y_end": " call"}} + chart.add_serie(name="series 1", y=ydata, x=xdata, extra=extra_serie, **kwargs1) + + extra_serie = {"tooltip": {"y_start": "", "y_end": " min"}} + chart.add_serie(name="series 2", y=ydata, x=xdata, extra=extra_serie, **kwargs2) + chart.buildhtml() + + Javascript generated:: + + data = [{ key: "series 1", + values: [ + { + "x": 2, + "y": 10, + "shape": "circle" + }, + { + "x": -2, + "y" : 0, + "shape": "circle" + }, + { + "x": 5, + "y" : -3, + "shape": "circle" + }, + ] + }, + { key: "series 2", + values: [ + { + "x": 4, + "y": 10, + "shape": "cross" + }, + { + "x": 4, + "y" : 0, + "shape": "cross" + }, + { + "x": 3, + "y" : -3, + "shape": "cross" + }, + ] + }] + + nv.addGraph(function() { + var chart = nv.models.scatterChart() + .showLabels(true); + + chart.showDistX(true); + chart.showDistY(true); + + chart.tooltipContent(function(key, y, e, graph) { + var x = String(graph.point.x); + var y = String(graph.point.y); + if(key == 'serie 1'){ + var y = String(graph.point.y) + ' calls'; + } + if(key == 'serie 2'){ + var y = String(graph.point.y) + ' min'; + } + tooltip_str = '<center><b>'+key+'</b></center>' + y + ' at ' + x; + return tooltip_str; + }); + + d3.select("#div_id") + .datum(data) + .transition() + .duration(1200) + .call(chart); + + return chart; + }); + """ + def __init__(self, **kwargs): + NVD3Chart.__init__(self, **kwargs) + height = kwargs.get('height', 450) + width = kwargs.get('width', None) + + self.create_x_axis('xAxis', format=kwargs.get('x_axis_format', '.02f')) + self.create_y_axis('yAxis', format=kwargs.get('y_axis_format', '.02f')) + # must have a specified height, otherwise it superimposes both chars + if height: + self.set_graph_height(height) + if width: + self.set_graph_width(width) + + def buildjschart(self): + NVD3Chart.buildjschart(self) + + scatter_jschart = '\n' + stab(3) + '.showDistX(true)\n' + \ + stab(3) + '.showDistY(true)\n' + \ + stab(3) + '.color(d3.scale.category10().range())' + + start_index = self.jschart.find('.scatterChart()') + string_len = len('.scatterChart()') + replace_index = start_index + string_len + if start_index > 0: + self.jschart = self.jschart[:replace_index] + scatter_jschart + self.jschart[replace_index:] diff --git a/tools/wtperf_stats/3rdparty/nvd3/stackedAreaChart.py b/tools/wtperf_stats/3rdparty/nvd3/stackedAreaChart.py new file mode 100644 index 00000000000..9913929f4cf --- /dev/null +++ b/tools/wtperf_stats/3rdparty/nvd3/stackedAreaChart.py @@ -0,0 +1,112 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +""" +Python-nvd3 is a Python wrapper for NVD3 graph library. +NVD3 is an attempt to build re-usable charts and chart components +for d3.js without taking away the power that d3.js gives you. + +Project location : https://github.com/areski/python-nvd3 +""" + +from .NVD3Chart import NVD3Chart + + +class stackedAreaChart(NVD3Chart): + """ + The stacked area chart is identical to the area chart, except the areas are stacked + on top of each other, rather than overlapping. This can make the chart much easier to read. + + .. image:: ../_static/screenshot/stackedAreaChart.png + + Python example:: + + from nvd3 import stackedAreaChart + chart = stackedAreaChart(name='stackedAreaChart', height=400, width=400) + + xdata = [100, 101, 102, 103, 104, 105, 106,] + ydata = [6, 11, 12, 7, 11, 10, 11] + ydata2 = [8, 20, 16, 12, 20, 28, 28] + + extra_serie = {"tooltip": {"y_start": "There is ", "y_end": " min"}} + chart.add_serie(name="Serie 1", y=ydata, x=xdata, extra=extra_serie) + chart.add_serie(name="Serie 2", y=ydata2, x=xdata, extra=extra_serie) + chart.buildhtml() + + Javascript generated:: + + data_stackedAreaChart = [{ + "values":[ + { + "y":9, + "x":100 + }, + { + "y":5, + "x":101 + }, + ], + "key":"Serie 1", + "yAxis":"1" + }, + { + "values":[ + { + "y":18, + "x":100 + }, + { + "y":10, + "x":101 + }, + ], + "key":"Serie 2", + "yAxis":"1" + } + ] + + nv.addGraph(function() { + var chart = nv.models.stackedAreaChart(); + chart.xAxis + .tickFormat(d3.format(',.2f')); + chart.yAxis + .tickFormat(d3.format(',.2f')); + chart.tooltipContent(function(key, y, e, graph) { + var x = String(graph.point.x); + var y = String(graph.point.y); + if(key == 'serie 1'){ + var y = 'There is ' + String(graph.point.y) + ' min'; + } + if(key == 'serie 2'){ + var y = 'There is ' + String(graph.point.y) + ' min'; + } + tooltip_str = '<center><b>'+key+'</b></center>' + y + ' at ' + x; + return tooltip_str; + }); + d3.select('#stackedAreaChart svg') + .datum(data_stackedAreaChart) + .transition() + .duration(500) + .call(chart); + return chart; + }); + """ + def __init__(self, **kwargs): + NVD3Chart.__init__(self, **kwargs) + height = kwargs.get('height', 450) + width = kwargs.get('width', None) + + if kwargs.get('x_is_date', False): + self.set_date_flag(True) + self.create_x_axis('xAxis', + format=kwargs.get('x_axis_format', '%d %b %Y'), + date=True) + self.set_custom_tooltip_flag(True) + else: + self.create_x_axis('xAxis', format=kwargs.get('x_axis_format', '.2f')) + self.create_y_axis('yAxis', format=kwargs.get('y_axis_format', '.2f')) + # must have a specified height, otherwise it superimposes both chars + if height: + self.set_graph_height(height) + if width: + self.set_graph_width(width) diff --git a/tools/wtperf_stats/3rdparty/nvd3/translator.py b/tools/wtperf_stats/3rdparty/nvd3/translator.py new file mode 100644 index 00000000000..ffde2c2a1ce --- /dev/null +++ b/tools/wtperf_stats/3rdparty/nvd3/translator.py @@ -0,0 +1,71 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- + + +class Tag(object): + """Tag class""" + + def __init__(self, content=None): + self.content = content + self.attrs = ' '.join(['%s="%s"' % (attr, value) + for attr, value in self.attrs]) + + def __str__(self): + return '<%s%s>\n %s\n</%s>' % (self.name, + ' ' + self.attrs if self.attrs else '', + self.content, + self.name) + + +class ScriptTag(Tag): + name = 'script' + attrs = (('type', 'text/javascript'),) + + +class AnonymousFunction(object): + def __init__(self, arguments, content): + self.arguments = arguments + self.content = content + + def __str__(self): + return 'function(%s) { %s }' % (self.arguments, self.content) + + +class Function(object): + + def __init__(self, name): + self.name = name + self._calls = [] + + def __str__(self): + operations = [self.name] + operations.extend(str(call) for call in self._calls) + return '%s' % ('.'.join(operations),) + + def __getattr__(self, attr): + self._calls.append(attr) + return self + + def __call__(self, *args): + if not args: + self._calls[-1] = self._calls[-1] + '()' + else: + arguments = ','.join([str(arg) for arg in args]) + self._calls[-1] = self._calls[-1] + '(%s)' % (arguments,) + return self + + +class Assignment(object): + + def __init__(self, key, value, scoped=True): + self.key = key + self.value = value + self.scoped = scoped + + def __str__(self): + return '%s%s = %s;' % ('var ' if self.scoped else '', self.key, self.value) + + +def indent(func): + # TODO: Add indents to function str + return str(func) diff --git a/tools/wtperf_stats/wt_nvd3_util.py b/tools/wtperf_stats/wt_nvd3_util.py new file mode 100644 index 00000000000..fe058d25c1d --- /dev/null +++ b/tools/wtperf_stats/wt_nvd3_util.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python +# +# Public Domain 2008-2014 WiredTiger, Inc. +# +# This is free and unencumbered software released into the public domain. +# +# Anyone is free to copy, modify, publish, use, compile, sell, or +# distribute this software, either in source code form or as a compiled +# binary, for any purpose, commercial or non-commercial, and by any +# means. +# +# In jurisdictions that recognize copyright laws, the author or authors +# of this software dedicate any and all copyright interest in the +# software to the public domain. We make this dedication for the benefit +# of the public at large and to the detriment of our heirs and +# successors. We intend this dedication to be an overt act of +# relinquishment in perpetuity of all present and future rights to this +# software under copyright law. +# +# 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 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. +# +import os, sys +from datetime import datetime + +tool_dir = os.path.split(sys.argv[0])[0] +# Make sure Python finds the NVD3 in our third party directory, to +# avoid compatability issues +sys.path.append(os.path.join(tool_dir, "3rdparty")) + +try: + from nvd3 import lineChart +except ImportError: + print >>sys.stderr, "Could not import nvd3. It should be installed locally." + sys.exit(-1) + +# Add a multiChart type so we can overlay line graphs +class multiChart(lineChart): + def __init__(self, **kwargs): + lineChart.__init__(self, **kwargs) + + # Fix the axes + del self.axislist['yAxis'] + self.create_y_axis('yAxis1', format=kwargs.get('y_axis_format', '.02f')) + self.create_y_axis('yAxis2', format=kwargs.get('y_axis_format', '.02f')) + +TIMEFMT = "%b %d %H:%M:%S" + +thisyear = datetime.today().year +def parsetime(s): + return datetime.strptime(s, TIMEFMT).replace(year=thisyear) + diff --git a/tools/wtperf_stats/wtperf_stats.py b/tools/wtperf_stats/wtperf_stats.py new file mode 100644 index 00000000000..f87ca2d3254 --- /dev/null +++ b/tools/wtperf_stats/wtperf_stats.py @@ -0,0 +1,177 @@ +#!/usr/bin/env python +# +# Public Domain 2008-2014 WiredTiger, Inc. +# +# This is free and unencumbered software released into the public domain. +# +# Anyone is free to copy, modify, publish, use, compile, sell, or +# distribute this software, either in source code form or as a compiled +# binary, for any purpose, commercial or non-commercial, and by any +# means. +# +# In jurisdictions that recognize copyright laws, the author or authors +# of this software dedicate any and all copyright interest in the +# software to the public domain. We make this dedication for the benefit +# of the public at large and to the detriment of our heirs and +# successors. We intend this dedication to be an overt act of +# relinquishment in perpetuity of all present and future rights to this +# software under copyright law. +# +# 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 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. +# + +import os, csv, operator, sys +from time import mktime + +tool_dir = os.path.split(sys.argv[0])[0] +sys.path.append(tool_dir) + +try: + from wt_nvd3_util import multiChart, parsetime +except ImportError: + print >>sys.stderr, "Could not import wt_nvd3_util.py, it should be\ + in the same directory as %s" % sys.argv[0] + sys.exit(-1) + +def timesort(s): + # Sort the timestr via its parsetime() value so that the year gets + # added and it properly sorts. Times are only %b %d %H:%M:%S and + # may improperly sort if the data crosses a month boundary. + t = operator.itemgetter('#time') + timestr = t(s) + return parsetime(timestr) + +# Fixup the names and values in a dictionary read in from a csv file. One +# field must be "#time" - which is used to calculate the interval. +# Input is a dictionary, output is a list of dictionaries with a single entry. +def munge_dict(values_dict, abstime): + sorted_values = sorted(values_dict, key=timesort) + start_time = parsetime(sorted_values[0]['#time']) + + ret = [] + for v in sorted_values: + if abstime: + # Build the time series, milliseconds since the epoch + v['#time'] = int(mktime(parsetime(v['#time']).timetuple())) * 1000 + else: + # Build the time series as seconds since the start of the data + v['#time'] = (parsetime(v['#time']) - start_time).seconds + next_val = {} + for title, value in v.items(): + if title.find('uS') != -1: + title = title.replace('uS', 'ms') + value = float(value) / 1000 + if title == 'totalsec': + value = 0 + if title == 'checkpoints' and value == 'N': + value = 0 + elif title.find('time') != -1: + title = 'time' + elif title.find('latency') == -1 and \ + title.find('checkpoints') == -1: + title = title + ' (thousands)' + value = float(value) / 1000 + next_val[title] = value + ret.append(next_val) + + # After building the series, eliminate constants + d0 = ret[0] + for t0, v0 in d0.items(): + skip = True + for d in ret: + v = d[t0] + if v != v0: + skip = False + break + if skip: + for dicts in ret: + del dicts[t0] + + return ret + +def addPlotsToChart(chart, graph_data, wtstat_chart = False): + # Extract the times - they are the same for all lines. + times = [] + for v in graph_data: + times.append(v['time']) + + # Add a line to the graph for each field in the CSV file in alphabetical + # order, so the key is sorted. + for field in sorted(graph_data[0].keys()): + if field == 'time': + continue + # Split the latency and non-latency measurements onto different scales + axis = "1" + if not wtstat_chart and field.find('latency') == -1: + axis="2" + ydata = [] + for v in graph_data: + ydata.append(v[field]) + chart.add_serie(x=times, y=ydata, name=field, type="line", yaxis=axis) + +# Input parameters are a chart populated with WiredTiger statistics and +# the directory where the wtperf monitor file can be found. +def addPlotsToStatsChart(chart, dirname, abstime): + fname = os.path.join(dirname, 'monitor') + try: + with open(fname, 'rb') as csvfile: + reader = csv.DictReader(csvfile) + # Transform the data into something NVD3 can digest + graph_data = munge_dict(reader, abstime) + except IOError: + print >>sys.stderr, "Could not open wtperf monitor file." + sys.exit(-1) + addPlotsToChart(chart, graph_data, 1) + +def main(): + # Parse the command line + import argparse + + parser = argparse.ArgumentParser(description='Create graphs from WiredTiger statistics.') + parser.add_argument('--abstime', action='store_true', + help='use absolute time on the x axis') + parser.add_argument('--output', '-o', metavar='file', + default='wtperf_stats.html', help='HTML output file') + parser.add_argument('files', metavar='file', nargs='+', + help='input monitor file generated by WiredTiger wtperf application') + args = parser.parse_args() + + output_file = open(args.output, 'w') + + if len(args.files) != 1: + print 'Script currently only supports a single monitor file' + exit (1) + + chart_extra = {} + # Add in the x axis if the user wants time. + if args.abstime: + chart_extra['x_axis_format'] = '%H:%M:%S' + + for f in args.files: + with open(f, 'rb') as csvfile: + reader = csv.DictReader(csvfile) + # Transform the data into something NVD3 can digest + graph_data = munge_dict(reader, args.abstime) + + chart = multiChart(name='wtperf', + height=450 + 10*len(graph_data[0].keys()), + resize=True, + x_is_date=args.abstime, + assets_directory='http://source.wiredtiger.com/graphs/', + **chart_extra) + + addPlotsToChart(chart, graph_data) + + chart.buildhtml() + output_file.write(chart.htmlcontent) + output_file.close() + +if __name__ == '__main__': + main() + diff --git a/tools/stat_data.py b/tools/wtstats/stat_data.py index da6fb3a7f7f..da6fb3a7f7f 100644 --- a/tools/stat_data.py +++ b/tools/wtstats/stat_data.py diff --git a/tools/template/README.md b/tools/wtstats/template/README.md index ae7e6fee611..ae7e6fee611 100644 --- a/tools/template/README.md +++ b/tools/wtstats/template/README.md diff --git a/tools/template/app/index.jade b/tools/wtstats/template/app/index.jade index 6dde96766b0..6dde96766b0 100644 --- a/tools/template/app/index.jade +++ b/tools/wtstats/template/app/index.jade diff --git a/tools/template/app/index.js b/tools/wtstats/template/app/index.js index eb3c7f5e9bd..eb3c7f5e9bd 100644 --- a/tools/template/app/index.js +++ b/tools/wtstats/template/app/index.js diff --git a/tools/template/app/less/fontawesome.less b/tools/wtstats/template/app/less/fontawesome.less index df68ff84a5d..df68ff84a5d 100644 --- a/tools/template/app/less/fontawesome.less +++ b/tools/wtstats/template/app/less/fontawesome.less diff --git a/tools/template/app/less/index.less b/tools/wtstats/template/app/less/index.less index 88168d986d6..88168d986d6 100644 --- a/tools/template/app/less/index.less +++ b/tools/wtstats/template/app/less/index.less diff --git a/tools/template/assets/fontawesome.woff.b64 b/tools/wtstats/template/assets/fontawesome.woff.b64 index e87f5b661f5..e87f5b661f5 100644 --- a/tools/template/assets/fontawesome.woff.b64 +++ b/tools/wtstats/template/assets/fontawesome.woff.b64 diff --git a/tools/template/assets/img/wtstats_logo.png b/tools/wtstats/template/assets/img/wtstats_logo.png Binary files differindex a4f30f2105b..a4f30f2105b 100644 --- a/tools/template/assets/img/wtstats_logo.png +++ b/tools/wtstats/template/assets/img/wtstats_logo.png diff --git a/tools/template/fixtures/big.fixture.json b/tools/wtstats/template/fixtures/big.fixture.json index bba33c8a932..bba33c8a932 100644 --- a/tools/template/fixtures/big.fixture.json +++ b/tools/wtstats/template/fixtures/big.fixture.json diff --git a/tools/template/fixtures/sample.fixture.json b/tools/wtstats/template/fixtures/sample.fixture.json index 8ffdc49a127..8ffdc49a127 100644 --- a/tools/template/fixtures/sample.fixture.json +++ b/tools/wtstats/template/fixtures/sample.fixture.json diff --git a/tools/template/fixtures/strdates.fixture.json b/tools/wtstats/template/fixtures/strdates.fixture.json index cc03fecc27f..cc03fecc27f 100644 --- a/tools/template/fixtures/strdates.fixture.json +++ b/tools/wtstats/template/fixtures/strdates.fixture.json diff --git a/tools/template/fixtures/two.fixture.json b/tools/wtstats/template/fixtures/two.fixture.json index 582927da5e6..582927da5e6 100644 --- a/tools/template/fixtures/two.fixture.json +++ b/tools/wtstats/template/fixtures/two.fixture.json diff --git a/tools/template/gulpfile.js b/tools/wtstats/template/gulpfile.js index d2da47ec388..d2da47ec388 100644 --- a/tools/template/gulpfile.js +++ b/tools/wtstats/template/gulpfile.js diff --git a/tools/template/index.js b/tools/wtstats/template/index.js index e69de29bb2d..e69de29bb2d 100644 --- a/tools/template/index.js +++ b/tools/wtstats/template/index.js diff --git a/tools/template/models/app.js b/tools/wtstats/template/models/app.js index 27e9bfde0f6..27e9bfde0f6 100644 --- a/tools/template/models/app.js +++ b/tools/wtstats/template/models/app.js diff --git a/tools/template/models/chart.js b/tools/wtstats/template/models/chart.js index ad273632419..ad273632419 100644 --- a/tools/template/models/chart.js +++ b/tools/wtstats/template/models/chart.js diff --git a/tools/template/models/colors.js b/tools/wtstats/template/models/colors.js index 9b52ce9ef16..9b52ce9ef16 100644 --- a/tools/template/models/colors.js +++ b/tools/wtstats/template/models/colors.js diff --git a/tools/template/models/panel.js b/tools/wtstats/template/models/panel.js index 6339423c02f..6339423c02f 100644 --- a/tools/template/models/panel.js +++ b/tools/wtstats/template/models/panel.js diff --git a/tools/template/models/search.js b/tools/wtstats/template/models/search.js index 7874986f0b6..7874986f0b6 100644 --- a/tools/template/models/search.js +++ b/tools/wtstats/template/models/search.js diff --git a/tools/template/models/sidebar.js b/tools/wtstats/template/models/sidebar.js index e8d8f96f036..e8d8f96f036 100644 --- a/tools/template/models/sidebar.js +++ b/tools/wtstats/template/models/sidebar.js diff --git a/tools/template/models/stat-collection.js b/tools/wtstats/template/models/stat-collection.js index 6e6b82a1e9f..6e6b82a1e9f 100644 --- a/tools/template/models/stat-collection.js +++ b/tools/wtstats/template/models/stat-collection.js diff --git a/tools/template/models/stat.js b/tools/wtstats/template/models/stat.js index 6dc4d07652c..6dc4d07652c 100644 --- a/tools/template/models/stat.js +++ b/tools/wtstats/template/models/stat.js diff --git a/tools/template/package.json b/tools/wtstats/template/package.json index a1023cafd57..a1023cafd57 100644 --- a/tools/template/package.json +++ b/tools/wtstats/template/package.json diff --git a/tools/template/views/app.js b/tools/wtstats/template/views/app.js index 96dec599181..96dec599181 100644 --- a/tools/template/views/app.js +++ b/tools/wtstats/template/views/app.js diff --git a/tools/template/views/chart.js b/tools/wtstats/template/views/chart.js index 47d9d62a4ef..47d9d62a4ef 100644 --- a/tools/template/views/chart.js +++ b/tools/wtstats/template/views/chart.js diff --git a/tools/template/views/empty.js b/tools/wtstats/template/views/empty.js index 6a4ba12c6a8..6a4ba12c6a8 100644 --- a/tools/template/views/empty.js +++ b/tools/wtstats/template/views/empty.js diff --git a/tools/template/views/panel.js b/tools/wtstats/template/views/panel.js index b53dc02d7e2..b53dc02d7e2 100644 --- a/tools/template/views/panel.js +++ b/tools/wtstats/template/views/panel.js diff --git a/tools/template/views/sidebar.js b/tools/wtstats/template/views/sidebar.js index 645358a1df6..645358a1df6 100644 --- a/tools/template/views/sidebar.js +++ b/tools/wtstats/template/views/sidebar.js diff --git a/tools/template/views/stat.js b/tools/wtstats/template/views/stat.js index a327503e8c9..a327503e8c9 100644 --- a/tools/template/views/stat.js +++ b/tools/wtstats/template/views/stat.js diff --git a/tools/template/views/templates/app.jade b/tools/wtstats/template/views/templates/app.jade index e7b0f8f6db2..e7b0f8f6db2 100644 --- a/tools/template/views/templates/app.jade +++ b/tools/wtstats/template/views/templates/app.jade diff --git a/tools/template/views/templates/chart.jade b/tools/wtstats/template/views/templates/chart.jade index 6af7ac2dbed..6af7ac2dbed 100644 --- a/tools/template/views/templates/chart.jade +++ b/tools/wtstats/template/views/templates/chart.jade diff --git a/tools/template/views/templates/empty.jade b/tools/wtstats/template/views/templates/empty.jade index 7aed8df8d5f..7aed8df8d5f 100644 --- a/tools/template/views/templates/empty.jade +++ b/tools/wtstats/template/views/templates/empty.jade diff --git a/tools/template/views/templates/panel.jade b/tools/wtstats/template/views/templates/panel.jade index 9e024e581dd..9e024e581dd 100644 --- a/tools/template/views/templates/panel.jade +++ b/tools/wtstats/template/views/templates/panel.jade diff --git a/tools/template/views/templates/sidebar.jade b/tools/wtstats/template/views/templates/sidebar.jade index 0ab9daac801..0ab9daac801 100644 --- a/tools/template/views/templates/sidebar.jade +++ b/tools/wtstats/template/views/templates/sidebar.jade diff --git a/tools/template/views/templates/stat.jade b/tools/wtstats/template/views/templates/stat.jade index 9d4dfcaf654..9d4dfcaf654 100644 --- a/tools/template/views/templates/stat.jade +++ b/tools/wtstats/template/views/templates/stat.jade diff --git a/tools/template/views/viz.js b/tools/wtstats/template/views/viz.js index 8ee0441a742..8ee0441a742 100644 --- a/tools/template/views/viz.js +++ b/tools/wtstats/template/views/viz.js diff --git a/tools/template/views/viz/d3-multiline.js b/tools/wtstats/template/views/viz/d3-multiline.js index 560ead336d0..560ead336d0 100644 --- a/tools/template/views/viz/d3-multiline.js +++ b/tools/wtstats/template/views/viz/d3-multiline.js diff --git a/tools/test/WiredTigerStat.fixture b/tools/wtstats/test/WiredTigerStat.fixture index 5c2b86a71ef..5c2b86a71ef 100644 --- a/tools/test/WiredTigerStat.fixture +++ b/tools/wtstats/test/WiredTigerStat.fixture diff --git a/tools/test/test_wtstats.py b/tools/wtstats/test/test_wtstats.py index 80078d97667..80078d97667 100644 --- a/tools/test/test_wtstats.py +++ b/tools/wtstats/test/test_wtstats.py diff --git a/tools/wtstats/wtstats.html.template b/tools/wtstats/wtstats.html.template new file mode 100644 index 00000000000..8b80328a9a8 --- /dev/null +++ b/tools/wtstats/wtstats.html.template @@ -0,0 +1,10027 @@ +<!DOCTYPE html><meta charset="utf-8"><html lang="en"><head><title>WTstats</title><meta name="viewport" content="initial-scale=1"><style> +/*! normalize.css v3.0.1 | MIT License | git.io/normalize */ + +html { + font-family: sans-serif; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} + +body { + margin: 0; +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} + +audio, +canvas, +progress, +video { + display: inline-block; + vertical-align: baseline; +} + +audio:not([controls]) { + display: none; + height: 0; +} + +[hidden], +template { + display: none; +} + +a { + background: transparent; +} + +a:active, +a:hover { + outline: 0; +} + +abbr[title] { + border-bottom: 1px dotted; +} + +b, +strong { + font-weight: bold; +} + +dfn { + font-style: italic; +} + +h1 { + font-size: 2em; + margin: .67em 0; +} + +mark { + background: #ff0; + color: #000; +} + +small { + font-size: 80%; +} + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +img { + border: 0; +} + +svg:not(:root) { + overflow: hidden; +} + +figure { + margin: 1em 40px; +} + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +pre { + overflow: auto; +} + +code, +kbd, +pre, +samp { + font-family: monospace,monospace; + font-size: 1em; +} + +button, +input, +optgroup, +select, +textarea { + color: inherit; + font: inherit; + margin: 0; +} + +button { + overflow: visible; +} + +button, +select { + text-transform: none; +} + +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} + +button[disabled], +html input[disabled] { + cursor: default; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +input { + line-height: normal; +} + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; + padding: 0; +} + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +input[type="search"] { + -webkit-appearance: textfield; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; +} + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +fieldset { + border: 1px solid silver; + margin: 0 2px; + padding: .35em .625em .75em; +} + +legend { + border: 0; + padding: 0; +} + +textarea { + overflow: auto; +} + +optgroup { + font-weight: bold; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} + +@media print { + * { + text-shadow: none !important; + color: #000 !important; + background: transparent !important; + box-shadow: none !important; + } + + a, + a:visited { + text-decoration: underline; + } + + a[href]:after { + content: " (" attr(href) ")"; + } + + abbr[title]:after { + content: " (" attr(title) ")"; + } + + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + + thead { + display: table-header-group; + } + + tr, + img { + page-break-inside: avoid; + } + + img { + max-width: 100% !important; + } + + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + + h2, + h3 { + page-break-after: avoid; + } + + select { + background: #fff !important; + } + + .navbar { + display: none; + } + + .table td, + .table th { + background-color: #fff !important; + } + + .btn>.caret, + .dropup>.btn>.caret { + border-top-color: #000 !important; + } + + .label { + border: 1px solid #000; + } + + .table { + border-collapse: collapse !important; + } + + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; + } +} + +@font-face { + font-family: 'Glyphicons Halflings'; + src: url('../fonts/glyphicons-halflings-regular.eot'); + src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); +} + +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + font-style: normal; + font-weight: normal; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.glyphicon-asterisk:before { + content: "\2a"; +} + +.glyphicon-plus:before { + content: "\2b"; +} + +.glyphicon-euro:before { + content: "\20ac"; +} + +.glyphicon-minus:before { + content: "\2212"; +} + +.glyphicon-cloud:before { + content: "\2601"; +} + +.glyphicon-envelope:before { + content: "\2709"; +} + +.glyphicon-pencil:before { + content: "\270f"; +} + +.glyphicon-glass:before { + content: "\e001"; +} + +.glyphicon-music:before { + content: "\e002"; +} + +.glyphicon-search:before { + content: "\e003"; +} + +.glyphicon-heart:before { + content: "\e005"; +} + +.glyphicon-star:before { + content: "\e006"; +} + +.glyphicon-star-empty:before { + content: "\e007"; +} + +.glyphicon-user:before { + content: "\e008"; +} + +.glyphicon-film:before { + content: "\e009"; +} + +.glyphicon-th-large:before { + content: "\e010"; +} + +.glyphicon-th:before { + content: "\e011"; +} + +.glyphicon-th-list:before { + content: "\e012"; +} + +.glyphicon-ok:before { + content: "\e013"; +} + +.glyphicon-remove:before { + content: "\e014"; +} + +.glyphicon-zoom-in:before { + content: "\e015"; +} + +.glyphicon-zoom-out:before { + content: "\e016"; +} + +.glyphicon-off:before { + content: "\e017"; +} + +.glyphicon-signal:before { + content: "\e018"; +} + +.glyphicon-cog:before { + content: "\e019"; +} + +.glyphicon-trash:before { + content: "\e020"; +} + +.glyphicon-home:before { + content: "\e021"; +} + +.glyphicon-file:before { + content: "\e022"; +} + +.glyphicon-time:before { + content: "\e023"; +} + +.glyphicon-road:before { + content: "\e024"; +} + +.glyphicon-download-alt:before { + content: "\e025"; +} + +.glyphicon-download:before { + content: "\e026"; +} + +.glyphicon-upload:before { + content: "\e027"; +} + +.glyphicon-inbox:before { + content: "\e028"; +} + +.glyphicon-play-circle:before { + content: "\e029"; +} + +.glyphicon-repeat:before { + content: "\e030"; +} + +.glyphicon-refresh:before { + content: "\e031"; +} + +.glyphicon-list-alt:before { + content: "\e032"; +} + +.glyphicon-lock:before { + content: "\e033"; +} + +.glyphicon-flag:before { + content: "\e034"; +} + +.glyphicon-headphones:before { + content: "\e035"; +} + +.glyphicon-volume-off:before { + content: "\e036"; +} + +.glyphicon-volume-down:before { + content: "\e037"; +} + +.glyphicon-volume-up:before { + content: "\e038"; +} + +.glyphicon-qrcode:before { + content: "\e039"; +} + +.glyphicon-barcode:before { + content: "\e040"; +} + +.glyphicon-tag:before { + content: "\e041"; +} + +.glyphicon-tags:before { + content: "\e042"; +} + +.glyphicon-book:before { + content: "\e043"; +} + +.glyphicon-bookmark:before { + content: "\e044"; +} + +.glyphicon-print:before { + content: "\e045"; +} + +.glyphicon-camera:before { + content: "\e046"; +} + +.glyphicon-font:before { + content: "\e047"; +} + +.glyphicon-bold:before { + content: "\e048"; +} + +.glyphicon-italic:before { + content: "\e049"; +} + +.glyphicon-text-height:before { + content: "\e050"; +} + +.glyphicon-text-width:before { + content: "\e051"; +} + +.glyphicon-align-left:before { + content: "\e052"; +} + +.glyphicon-align-center:before { + content: "\e053"; +} + +.glyphicon-align-right:before { + content: "\e054"; +} + +.glyphicon-align-justify:before { + content: "\e055"; +} + +.glyphicon-list:before { + content: "\e056"; +} + +.glyphicon-indent-left:before { + content: "\e057"; +} + +.glyphicon-indent-right:before { + content: "\e058"; +} + +.glyphicon-facetime-video:before { + content: "\e059"; +} + +.glyphicon-picture:before { + content: "\e060"; +} + +.glyphicon-map-marker:before { + content: "\e062"; +} + +.glyphicon-adjust:before { + content: "\e063"; +} + +.glyphicon-tint:before { + content: "\e064"; +} + +.glyphicon-edit:before { + content: "\e065"; +} + +.glyphicon-share:before { + content: "\e066"; +} + +.glyphicon-check:before { + content: "\e067"; +} + +.glyphicon-move:before { + content: "\e068"; +} + +.glyphicon-step-backward:before { + content: "\e069"; +} + +.glyphicon-fast-backward:before { + content: "\e070"; +} + +.glyphicon-backward:before { + content: "\e071"; +} + +.glyphicon-play:before { + content: "\e072"; +} + +.glyphicon-pause:before { + content: "\e073"; +} + +.glyphicon-stop:before { + content: "\e074"; +} + +.glyphicon-forward:before { + content: "\e075"; +} + +.glyphicon-fast-forward:before { + content: "\e076"; +} + +.glyphicon-step-forward:before { + content: "\e077"; +} + +.glyphicon-eject:before { + content: "\e078"; +} + +.glyphicon-chevron-left:before { + content: "\e079"; +} + +.glyphicon-chevron-right:before { + content: "\e080"; +} + +.glyphicon-plus-sign:before { + content: "\e081"; +} + +.glyphicon-minus-sign:before { + content: "\e082"; +} + +.glyphicon-remove-sign:before { + content: "\e083"; +} + +.glyphicon-ok-sign:before { + content: "\e084"; +} + +.glyphicon-question-sign:before { + content: "\e085"; +} + +.glyphicon-info-sign:before { + content: "\e086"; +} + +.glyphicon-screenshot:before { + content: "\e087"; +} + +.glyphicon-remove-circle:before { + content: "\e088"; +} + +.glyphicon-ok-circle:before { + content: "\e089"; +} + +.glyphicon-ban-circle:before { + content: "\e090"; +} + +.glyphicon-arrow-left:before { + content: "\e091"; +} + +.glyphicon-arrow-right:before { + content: "\e092"; +} + +.glyphicon-arrow-up:before { + content: "\e093"; +} + +.glyphicon-arrow-down:before { + content: "\e094"; +} + +.glyphicon-share-alt:before { + content: "\e095"; +} + +.glyphicon-resize-full:before { + content: "\e096"; +} + +.glyphicon-resize-small:before { + content: "\e097"; +} + +.glyphicon-exclamation-sign:before { + content: "\e101"; +} + +.glyphicon-gift:before { + content: "\e102"; +} + +.glyphicon-leaf:before { + content: "\e103"; +} + +.glyphicon-fire:before { + content: "\e104"; +} + +.glyphicon-eye-open:before { + content: "\e105"; +} + +.glyphicon-eye-close:before { + content: "\e106"; +} + +.glyphicon-warning-sign:before { + content: "\e107"; +} + +.glyphicon-plane:before { + content: "\e108"; +} + +.glyphicon-calendar:before { + content: "\e109"; +} + +.glyphicon-random:before { + content: "\e110"; +} + +.glyphicon-comment:before { + content: "\e111"; +} + +.glyphicon-magnet:before { + content: "\e112"; +} + +.glyphicon-chevron-up:before { + content: "\e113"; +} + +.glyphicon-chevron-down:before { + content: "\e114"; +} + +.glyphicon-retweet:before { + content: "\e115"; +} + +.glyphicon-shopping-cart:before { + content: "\e116"; +} + +.glyphicon-folder-close:before { + content: "\e117"; +} + +.glyphicon-folder-open:before { + content: "\e118"; +} + +.glyphicon-resize-vertical:before { + content: "\e119"; +} + +.glyphicon-resize-horizontal:before { + content: "\e120"; +} + +.glyphicon-hdd:before { + content: "\e121"; +} + +.glyphicon-bullhorn:before { + content: "\e122"; +} + +.glyphicon-bell:before { + content: "\e123"; +} + +.glyphicon-certificate:before { + content: "\e124"; +} + +.glyphicon-thumbs-up:before { + content: "\e125"; +} + +.glyphicon-thumbs-down:before { + content: "\e126"; +} + +.glyphicon-hand-right:before { + content: "\e127"; +} + +.glyphicon-hand-left:before { + content: "\e128"; +} + +.glyphicon-hand-up:before { + content: "\e129"; +} + +.glyphicon-hand-down:before { + content: "\e130"; +} + +.glyphicon-circle-arrow-right:before { + content: "\e131"; +} + +.glyphicon-circle-arrow-left:before { + content: "\e132"; +} + +.glyphicon-circle-arrow-up:before { + content: "\e133"; +} + +.glyphicon-circle-arrow-down:before { + content: "\e134"; +} + +.glyphicon-globe:before { + content: "\e135"; +} + +.glyphicon-wrench:before { + content: "\e136"; +} + +.glyphicon-tasks:before { + content: "\e137"; +} + +.glyphicon-filter:before { + content: "\e138"; +} + +.glyphicon-briefcase:before { + content: "\e139"; +} + +.glyphicon-fullscreen:before { + content: "\e140"; +} + +.glyphicon-dashboard:before { + content: "\e141"; +} + +.glyphicon-paperclip:before { + content: "\e142"; +} + +.glyphicon-heart-empty:before { + content: "\e143"; +} + +.glyphicon-link:before { + content: "\e144"; +} + +.glyphicon-phone:before { + content: "\e145"; +} + +.glyphicon-pushpin:before { + content: "\e146"; +} + +.glyphicon-usd:before { + content: "\e148"; +} + +.glyphicon-gbp:before { + content: "\e149"; +} + +.glyphicon-sort:before { + content: "\e150"; +} + +.glyphicon-sort-by-alphabet:before { + content: "\e151"; +} + +.glyphicon-sort-by-alphabet-alt:before { + content: "\e152"; +} + +.glyphicon-sort-by-order:before { + content: "\e153"; +} + +.glyphicon-sort-by-order-alt:before { + content: "\e154"; +} + +.glyphicon-sort-by-attributes:before { + content: "\e155"; +} + +.glyphicon-sort-by-attributes-alt:before { + content: "\e156"; +} + +.glyphicon-unchecked:before { + content: "\e157"; +} + +.glyphicon-expand:before { + content: "\e158"; +} + +.glyphicon-collapse-down:before { + content: "\e159"; +} + +.glyphicon-collapse-up:before { + content: "\e160"; +} + +.glyphicon-log-in:before { + content: "\e161"; +} + +.glyphicon-flash:before { + content: "\e162"; +} + +.glyphicon-log-out:before { + content: "\e163"; +} + +.glyphicon-new-window:before { + content: "\e164"; +} + +.glyphicon-record:before { + content: "\e165"; +} + +.glyphicon-save:before { + content: "\e166"; +} + +.glyphicon-open:before { + content: "\e167"; +} + +.glyphicon-saved:before { + content: "\e168"; +} + +.glyphicon-import:before { + content: "\e169"; +} + +.glyphicon-export:before { + content: "\e170"; +} + +.glyphicon-send:before { + content: "\e171"; +} + +.glyphicon-floppy-disk:before { + content: "\e172"; +} + +.glyphicon-floppy-saved:before { + content: "\e173"; +} + +.glyphicon-floppy-remove:before { + content: "\e174"; +} + +.glyphicon-floppy-save:before { + content: "\e175"; +} + +.glyphicon-floppy-open:before { + content: "\e176"; +} + +.glyphicon-credit-card:before { + content: "\e177"; +} + +.glyphicon-transfer:before { + content: "\e178"; +} + +.glyphicon-cutlery:before { + content: "\e179"; +} + +.glyphicon-header:before { + content: "\e180"; +} + +.glyphicon-compressed:before { + content: "\e181"; +} + +.glyphicon-earphone:before { + content: "\e182"; +} + +.glyphicon-phone-alt:before { + content: "\e183"; +} + +.glyphicon-tower:before { + content: "\e184"; +} + +.glyphicon-stats:before { + content: "\e185"; +} + +.glyphicon-sd-video:before { + content: "\e186"; +} + +.glyphicon-hd-video:before { + content: "\e187"; +} + +.glyphicon-subtitles:before { + content: "\e188"; +} + +.glyphicon-sound-stereo:before { + content: "\e189"; +} + +.glyphicon-sound-dolby:before { + content: "\e190"; +} + +.glyphicon-sound-5-1:before { + content: "\e191"; +} + +.glyphicon-sound-6-1:before { + content: "\e192"; +} + +.glyphicon-sound-7-1:before { + content: "\e193"; +} + +.glyphicon-copyright-mark:before { + content: "\e194"; +} + +.glyphicon-registration-mark:before { + content: "\e195"; +} + +.glyphicon-cloud-download:before { + content: "\e197"; +} + +.glyphicon-cloud-upload:before { + content: "\e198"; +} + +.glyphicon-tree-conifer:before { + content: "\e199"; +} + +.glyphicon-tree-deciduous:before { + content: "\e200"; +} + +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +*:before, +*:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +html { + font-size: 10px; + -webkit-tap-highlight-color: rgba(0,0,0,0); +} + +body { + font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; + font-size: 14px; + line-height: 1.42857143; + color: #333; + background-color: #fff; +} + +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +a { + color: #428bca; + text-decoration: none; +} + +a:hover, +a:focus { + color: #2a6496; + text-decoration: underline; +} + +a:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +figure { + margin: 0; +} + +img { + vertical-align: middle; +} + +.img-responsive, +.thumbnail>img, +.thumbnail a>img, +.carousel-inner>.item>img, +.carousel-inner>.item>a>img { + display: block; + width: 100% \9; + max-width: 100%; + height: auto; +} + +.img-rounded { + border-radius: 6px; +} + +.img-thumbnail { + padding: 4px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: all .2s ease-in-out; + -o-transition: all .2s ease-in-out; + transition: all .2s ease-in-out; + display: inline-block; + width: 100% \9; + max-width: 100%; + height: auto; +} + +.img-circle { + border-radius: 50%; +} + +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eee; +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + overflow: hidden; + clip: rect(0,0,0,0); + border: 0; +} + +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} + +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + font-family: inherit; + font-weight: 500; + line-height: 1.1; + color: inherit; +} + +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small, +.h1 small, +.h2 small, +.h3 small, +.h4 small, +.h5 small, +.h6 small, +h1 .small, +h2 .small, +h3 .small, +h4 .small, +h5 .small, +h6 .small, +.h1 .small, +.h2 .small, +.h3 .small, +.h4 .small, +.h5 .small, +.h6 .small { + font-weight: normal; + line-height: 1; + color: #777; +} + +h1, +.h1, +h2, +.h2, +h3, +.h3 { + margin-top: 20px; + margin-bottom: 10px; +} + +h1 small, +.h1 small, +h2 small, +.h2 small, +h3 small, +.h3 small, +h1 .small, +.h1 .small, +h2 .small, +.h2 .small, +h3 .small, +.h3 .small { + font-size: 65%; +} + +h4, +.h4, +h5, +.h5, +h6, +.h6 { + margin-top: 10px; + margin-bottom: 10px; +} + +h4 small, +.h4 small, +h5 small, +.h5 small, +h6 small, +.h6 small, +h4 .small, +.h4 .small, +h5 .small, +.h5 .small, +h6 .small, +.h6 .small { + font-size: 75%; +} + +h1, +.h1 { + font-size: 36px; +} + +h2, +.h2 { + font-size: 30px; +} + +h3, +.h3 { + font-size: 24px; +} + +h4, +.h4 { + font-size: 18px; +} + +h5, +.h5 { + font-size: 14px; +} + +h6, +.h6 { + font-size: 12px; +} + +p { + margin: 0 0 10px; +} + +.lead { + margin-bottom: 20px; + font-size: 16px; + font-weight: 300; + line-height: 1.4; +} + +@media (min-width:768px) { + .lead { + font-size: 21px; + } +} + +small, +.small { + font-size: 85%; +} + +cite { + font-style: normal; +} + +mark, +.mark { + background-color: #fcf8e3; + padding: .2em; +} + +.text-left { + text-align: left; +} + +.text-right { + text-align: right; +} + +.text-center { + text-align: center; +} + +.text-justify { + text-align: justify; +} + +.text-nowrap { + white-space: nowrap; +} + +.text-lowercase { + text-transform: lowercase; +} + +.text-uppercase { + text-transform: uppercase; +} + +.text-capitalize { + text-transform: capitalize; +} + +.text-muted { + color: #777; +} + +.text-primary { + color: #428bca; +} + +a.text-primary:hover { + color: #3071a9; +} + +.text-success { + color: #3c763d; +} + +a.text-success:hover { + color: #2b542c; +} + +.text-info { + color: #31708f; +} + +a.text-info:hover { + color: #245269; +} + +.text-warning { + color: #8a6d3b; +} + +a.text-warning:hover { + color: #66512c; +} + +.text-danger { + color: #a94442; +} + +a.text-danger:hover { + color: #843534; +} + +.bg-primary { + color: #fff; + background-color: #428bca; +} + +a.bg-primary:hover { + background-color: #3071a9; +} + +.bg-success { + background-color: #dff0d8; +} + +a.bg-success:hover { + background-color: #c1e2b3; +} + +.bg-info { + background-color: #d9edf7; +} + +a.bg-info:hover { + background-color: #afd9ee; +} + +.bg-warning { + background-color: #fcf8e3; +} + +a.bg-warning:hover { + background-color: #f7ecb5; +} + +.bg-danger { + background-color: #f2dede; +} + +a.bg-danger:hover { + background-color: #e4b9b9; +} + +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eee; +} + +ul, +ol { + margin-top: 0; + margin-bottom: 10px; +} + +ul ul, +ol ul, +ul ol, +ol ol { + margin-bottom: 0; +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.list-inline { + padding-left: 0; + list-style: none; + margin-left: -5px; +} + +.list-inline>li { + display: inline-block; + padding-left: 5px; + padding-right: 5px; +} + +dl { + margin-top: 0; + margin-bottom: 20px; +} + +dt, +dd { + line-height: 1.42857143; +} + +dt { + font-weight: bold; +} + +dd { + margin-left: 0; +} + +@media (min-width:768px) { + .dl-horizontal dt { + float: left; + width: 160px; + clear: left; + text-align: right; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + .dl-horizontal dd { + margin-left: 180px; + } +} + +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #777; +} + +.initialism { + font-size: 90%; + text-transform: uppercase; +} + +blockquote { + padding: 10px 20px; + margin: 0 0 20px; + font-size: 17.5px; + border-left: 5px solid #eee; +} + +blockquote p:last-child, +blockquote ul:last-child, +blockquote ol:last-child { + margin-bottom: 0; +} + +blockquote footer, +blockquote small, +blockquote .small { + display: block; + font-size: 80%; + line-height: 1.42857143; + color: #777; +} + +blockquote footer:before, +blockquote small:before, +blockquote .small:before { + content: '\2014 \00A0'; +} + +.blockquote-reverse, +blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eee; + border-left: 0; + text-align: right; +} + +.blockquote-reverse footer:before, +blockquote.pull-right footer:before, +.blockquote-reverse small:before, +blockquote.pull-right small:before, +.blockquote-reverse .small:before, +blockquote.pull-right .small:before { + content: ''; +} + +.blockquote-reverse footer:after, +blockquote.pull-right footer:after, +.blockquote-reverse small:after, +blockquote.pull-right small:after, +.blockquote-reverse .small:after, +blockquote.pull-right .small:after { + content: '\00A0 \2014'; +} + +blockquote:before, +blockquote:after { + content: ""; +} + +address { + margin-bottom: 20px; + font-style: normal; + line-height: 1.42857143; +} + +code, +kbd, +pre, +samp { + font-family: Menlo,Monaco,Consolas,"Courier New",monospace; +} + +code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + background-color: #f9f2f4; + border-radius: 4px; +} + +kbd { + padding: 2px 4px; + font-size: 90%; + color: #fff; + background-color: #333; + border-radius: 3px; + box-shadow: inset 0 -1px 0 rgba(0,0,0,0.25); +} + +kbd kbd { + padding: 0; + font-size: 100%; + box-shadow: none; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + word-break: break-all; + word-wrap: break-word; + color: #333; + background-color: #f5f5f5; + border: 1px solid #ccc; + border-radius: 4px; +} + +pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +.container { + margin-right: auto; + margin-left: auto; + padding-left: 15px; + padding-right: 15px; +} + +@media (min-width:768px) { + .container { + width: 750px; + } +} + +@media (min-width:992px) { + .container { + width: 970px; + } +} + +@media (min-width:1200px) { + .container { + width: 1170px; + } +} + +.container-fluid { + margin-right: auto; + margin-left: auto; + padding-left: 15px; + padding-right: 15px; +} + +.row { + margin-left: -15px; + margin-right: -15px; +} + +.col-xs-1, +.col-sm-1, +.col-md-1, +.col-lg-1, +.col-xs-2, +.col-sm-2, +.col-md-2, +.col-lg-2, +.col-xs-3, +.col-sm-3, +.col-md-3, +.col-lg-3, +.col-xs-4, +.col-sm-4, +.col-md-4, +.col-lg-4, +.col-xs-5, +.col-sm-5, +.col-md-5, +.col-lg-5, +.col-xs-6, +.col-sm-6, +.col-md-6, +.col-lg-6, +.col-xs-7, +.col-sm-7, +.col-md-7, +.col-lg-7, +.col-xs-8, +.col-sm-8, +.col-md-8, +.col-lg-8, +.col-xs-9, +.col-sm-9, +.col-md-9, +.col-lg-9, +.col-xs-10, +.col-sm-10, +.col-md-10, +.col-lg-10, +.col-xs-11, +.col-sm-11, +.col-md-11, +.col-lg-11, +.col-xs-12, +.col-sm-12, +.col-md-12, +.col-lg-12 { + position: relative; + min-height: 1px; + padding-left: 15px; + padding-right: 15px; +} + +.col-xs-1, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9, +.col-xs-10, +.col-xs-11, +.col-xs-12 { + float: left; +} + +.col-xs-12 { + width: 100%; +} + +.col-xs-11 { + width: 91.66666667%; +} + +.col-xs-10 { + width: 83.33333333%; +} + +.col-xs-9 { + width: 75%; +} + +.col-xs-8 { + width: 66.66666667%; +} + +.col-xs-7 { + width: 58.33333333%; +} + +.col-xs-6 { + width: 50%; +} + +.col-xs-5 { + width: 41.66666667%; +} + +.col-xs-4 { + width: 33.33333333%; +} + +.col-xs-3 { + width: 25%; +} + +.col-xs-2 { + width: 16.66666667%; +} + +.col-xs-1 { + width: 8.33333333%; +} + +.col-xs-pull-12 { + right: 100%; +} + +.col-xs-pull-11 { + right: 91.66666667%; +} + +.col-xs-pull-10 { + right: 83.33333333%; +} + +.col-xs-pull-9 { + right: 75%; +} + +.col-xs-pull-8 { + right: 66.66666667%; +} + +.col-xs-pull-7 { + right: 58.33333333%; +} + +.col-xs-pull-6 { + right: 50%; +} + +.col-xs-pull-5 { + right: 41.66666667%; +} + +.col-xs-pull-4 { + right: 33.33333333%; +} + +.col-xs-pull-3 { + right: 25%; +} + +.col-xs-pull-2 { + right: 16.66666667%; +} + +.col-xs-pull-1 { + right: 8.33333333%; +} + +.col-xs-pull-0 { + right: auto; +} + +.col-xs-push-12 { + left: 100%; +} + +.col-xs-push-11 { + left: 91.66666667%; +} + +.col-xs-push-10 { + left: 83.33333333%; +} + +.col-xs-push-9 { + left: 75%; +} + +.col-xs-push-8 { + left: 66.66666667%; +} + +.col-xs-push-7 { + left: 58.33333333%; +} + +.col-xs-push-6 { + left: 50%; +} + +.col-xs-push-5 { + left: 41.66666667%; +} + +.col-xs-push-4 { + left: 33.33333333%; +} + +.col-xs-push-3 { + left: 25%; +} + +.col-xs-push-2 { + left: 16.66666667%; +} + +.col-xs-push-1 { + left: 8.33333333%; +} + +.col-xs-push-0 { + left: auto; +} + +.col-xs-offset-12 { + margin-left: 100%; +} + +.col-xs-offset-11 { + margin-left: 91.66666667%; +} + +.col-xs-offset-10 { + margin-left: 83.33333333%; +} + +.col-xs-offset-9 { + margin-left: 75%; +} + +.col-xs-offset-8 { + margin-left: 66.66666667%; +} + +.col-xs-offset-7 { + margin-left: 58.33333333%; +} + +.col-xs-offset-6 { + margin-left: 50%; +} + +.col-xs-offset-5 { + margin-left: 41.66666667%; +} + +.col-xs-offset-4 { + margin-left: 33.33333333%; +} + +.col-xs-offset-3 { + margin-left: 25%; +} + +.col-xs-offset-2 { + margin-left: 16.66666667%; +} + +.col-xs-offset-1 { + margin-left: 8.33333333%; +} + +.col-xs-offset-0 { + margin-left: 0; +} + +@media (min-width:768px) { + .col-sm-1, + .col-sm-2, + .col-sm-3, + .col-sm-4, + .col-sm-5, + .col-sm-6, + .col-sm-7, + .col-sm-8, + .col-sm-9, + .col-sm-10, + .col-sm-11, + .col-sm-12 { + float: left; + } + + .col-sm-12 { + width: 100%; + } + + .col-sm-11 { + width: 91.66666667%; + } + + .col-sm-10 { + width: 83.33333333%; + } + + .col-sm-9 { + width: 75%; + } + + .col-sm-8 { + width: 66.66666667%; + } + + .col-sm-7 { + width: 58.33333333%; + } + + .col-sm-6 { + width: 50%; + } + + .col-sm-5 { + width: 41.66666667%; + } + + .col-sm-4 { + width: 33.33333333%; + } + + .col-sm-3 { + width: 25%; + } + + .col-sm-2 { + width: 16.66666667%; + } + + .col-sm-1 { + width: 8.33333333%; + } + + .col-sm-pull-12 { + right: 100%; + } + + .col-sm-pull-11 { + right: 91.66666667%; + } + + .col-sm-pull-10 { + right: 83.33333333%; + } + + .col-sm-pull-9 { + right: 75%; + } + + .col-sm-pull-8 { + right: 66.66666667%; + } + + .col-sm-pull-7 { + right: 58.33333333%; + } + + .col-sm-pull-6 { + right: 50%; + } + + .col-sm-pull-5 { + right: 41.66666667%; + } + + .col-sm-pull-4 { + right: 33.33333333%; + } + + .col-sm-pull-3 { + right: 25%; + } + + .col-sm-pull-2 { + right: 16.66666667%; + } + + .col-sm-pull-1 { + right: 8.33333333%; + } + + .col-sm-pull-0 { + right: auto; + } + + .col-sm-push-12 { + left: 100%; + } + + .col-sm-push-11 { + left: 91.66666667%; + } + + .col-sm-push-10 { + left: 83.33333333%; + } + + .col-sm-push-9 { + left: 75%; + } + + .col-sm-push-8 { + left: 66.66666667%; + } + + .col-sm-push-7 { + left: 58.33333333%; + } + + .col-sm-push-6 { + left: 50%; + } + + .col-sm-push-5 { + left: 41.66666667%; + } + + .col-sm-push-4 { + left: 33.33333333%; + } + + .col-sm-push-3 { + left: 25%; + } + + .col-sm-push-2 { + left: 16.66666667%; + } + + .col-sm-push-1 { + left: 8.33333333%; + } + + .col-sm-push-0 { + left: auto; + } + + .col-sm-offset-12 { + margin-left: 100%; + } + + .col-sm-offset-11 { + margin-left: 91.66666667%; + } + + .col-sm-offset-10 { + margin-left: 83.33333333%; + } + + .col-sm-offset-9 { + margin-left: 75%; + } + + .col-sm-offset-8 { + margin-left: 66.66666667%; + } + + .col-sm-offset-7 { + margin-left: 58.33333333%; + } + + .col-sm-offset-6 { + margin-left: 50%; + } + + .col-sm-offset-5 { + margin-left: 41.66666667%; + } + + .col-sm-offset-4 { + margin-left: 33.33333333%; + } + + .col-sm-offset-3 { + margin-left: 25%; + } + + .col-sm-offset-2 { + margin-left: 16.66666667%; + } + + .col-sm-offset-1 { + margin-left: 8.33333333%; + } + + .col-sm-offset-0 { + margin-left: 0; + } +} + +@media (min-width:992px) { + .col-md-1, + .col-md-2, + .col-md-3, + .col-md-4, + .col-md-5, + .col-md-6, + .col-md-7, + .col-md-8, + .col-md-9, + .col-md-10, + .col-md-11, + .col-md-12 { + float: left; + } + + .col-md-12 { + width: 100%; + } + + .col-md-11 { + width: 91.66666667%; + } + + .col-md-10 { + width: 83.33333333%; + } + + .col-md-9 { + width: 75%; + } + + .col-md-8 { + width: 66.66666667%; + } + + .col-md-7 { + width: 58.33333333%; + } + + .col-md-6 { + width: 50%; + } + + .col-md-5 { + width: 41.66666667%; + } + + .col-md-4 { + width: 33.33333333%; + } + + .col-md-3 { + width: 25%; + } + + .col-md-2 { + width: 16.66666667%; + } + + .col-md-1 { + width: 8.33333333%; + } + + .col-md-pull-12 { + right: 100%; + } + + .col-md-pull-11 { + right: 91.66666667%; + } + + .col-md-pull-10 { + right: 83.33333333%; + } + + .col-md-pull-9 { + right: 75%; + } + + .col-md-pull-8 { + right: 66.66666667%; + } + + .col-md-pull-7 { + right: 58.33333333%; + } + + .col-md-pull-6 { + right: 50%; + } + + .col-md-pull-5 { + right: 41.66666667%; + } + + .col-md-pull-4 { + right: 33.33333333%; + } + + .col-md-pull-3 { + right: 25%; + } + + .col-md-pull-2 { + right: 16.66666667%; + } + + .col-md-pull-1 { + right: 8.33333333%; + } + + .col-md-pull-0 { + right: auto; + } + + .col-md-push-12 { + left: 100%; + } + + .col-md-push-11 { + left: 91.66666667%; + } + + .col-md-push-10 { + left: 83.33333333%; + } + + .col-md-push-9 { + left: 75%; + } + + .col-md-push-8 { + left: 66.66666667%; + } + + .col-md-push-7 { + left: 58.33333333%; + } + + .col-md-push-6 { + left: 50%; + } + + .col-md-push-5 { + left: 41.66666667%; + } + + .col-md-push-4 { + left: 33.33333333%; + } + + .col-md-push-3 { + left: 25%; + } + + .col-md-push-2 { + left: 16.66666667%; + } + + .col-md-push-1 { + left: 8.33333333%; + } + + .col-md-push-0 { + left: auto; + } + + .col-md-offset-12 { + margin-left: 100%; + } + + .col-md-offset-11 { + margin-left: 91.66666667%; + } + + .col-md-offset-10 { + margin-left: 83.33333333%; + } + + .col-md-offset-9 { + margin-left: 75%; + } + + .col-md-offset-8 { + margin-left: 66.66666667%; + } + + .col-md-offset-7 { + margin-left: 58.33333333%; + } + + .col-md-offset-6 { + margin-left: 50%; + } + + .col-md-offset-5 { + margin-left: 41.66666667%; + } + + .col-md-offset-4 { + margin-left: 33.33333333%; + } + + .col-md-offset-3 { + margin-left: 25%; + } + + .col-md-offset-2 { + margin-left: 16.66666667%; + } + + .col-md-offset-1 { + margin-left: 8.33333333%; + } + + .col-md-offset-0 { + margin-left: 0; + } +} + +@media (min-width:1200px) { + .col-lg-1, + .col-lg-2, + .col-lg-3, + .col-lg-4, + .col-lg-5, + .col-lg-6, + .col-lg-7, + .col-lg-8, + .col-lg-9, + .col-lg-10, + .col-lg-11, + .col-lg-12 { + float: left; + } + + .col-lg-12 { + width: 100%; + } + + .col-lg-11 { + width: 91.66666667%; + } + + .col-lg-10 { + width: 83.33333333%; + } + + .col-lg-9 { + width: 75%; + } + + .col-lg-8 { + width: 66.66666667%; + } + + .col-lg-7 { + width: 58.33333333%; + } + + .col-lg-6 { + width: 50%; + } + + .col-lg-5 { + width: 41.66666667%; + } + + .col-lg-4 { + width: 33.33333333%; + } + + .col-lg-3 { + width: 25%; + } + + .col-lg-2 { + width: 16.66666667%; + } + + .col-lg-1 { + width: 8.33333333%; + } + + .col-lg-pull-12 { + right: 100%; + } + + .col-lg-pull-11 { + right: 91.66666667%; + } + + .col-lg-pull-10 { + right: 83.33333333%; + } + + .col-lg-pull-9 { + right: 75%; + } + + .col-lg-pull-8 { + right: 66.66666667%; + } + + .col-lg-pull-7 { + right: 58.33333333%; + } + + .col-lg-pull-6 { + right: 50%; + } + + .col-lg-pull-5 { + right: 41.66666667%; + } + + .col-lg-pull-4 { + right: 33.33333333%; + } + + .col-lg-pull-3 { + right: 25%; + } + + .col-lg-pull-2 { + right: 16.66666667%; + } + + .col-lg-pull-1 { + right: 8.33333333%; + } + + .col-lg-pull-0 { + right: auto; + } + + .col-lg-push-12 { + left: 100%; + } + + .col-lg-push-11 { + left: 91.66666667%; + } + + .col-lg-push-10 { + left: 83.33333333%; + } + + .col-lg-push-9 { + left: 75%; + } + + .col-lg-push-8 { + left: 66.66666667%; + } + + .col-lg-push-7 { + left: 58.33333333%; + } + + .col-lg-push-6 { + left: 50%; + } + + .col-lg-push-5 { + left: 41.66666667%; + } + + .col-lg-push-4 { + left: 33.33333333%; + } + + .col-lg-push-3 { + left: 25%; + } + + .col-lg-push-2 { + left: 16.66666667%; + } + + .col-lg-push-1 { + left: 8.33333333%; + } + + .col-lg-push-0 { + left: auto; + } + + .col-lg-offset-12 { + margin-left: 100%; + } + + .col-lg-offset-11 { + margin-left: 91.66666667%; + } + + .col-lg-offset-10 { + margin-left: 83.33333333%; + } + + .col-lg-offset-9 { + margin-left: 75%; + } + + .col-lg-offset-8 { + margin-left: 66.66666667%; + } + + .col-lg-offset-7 { + margin-left: 58.33333333%; + } + + .col-lg-offset-6 { + margin-left: 50%; + } + + .col-lg-offset-5 { + margin-left: 41.66666667%; + } + + .col-lg-offset-4 { + margin-left: 33.33333333%; + } + + .col-lg-offset-3 { + margin-left: 25%; + } + + .col-lg-offset-2 { + margin-left: 16.66666667%; + } + + .col-lg-offset-1 { + margin-left: 8.33333333%; + } + + .col-lg-offset-0 { + margin-left: 0; + } +} + +table { + background-color: transparent; +} + +th { + text-align: left; +} + +.table { + width: 100%; + max-width: 100%; + margin-bottom: 20px; +} + +.table>thead>tr>th, +.table>tbody>tr>th, +.table>tfoot>tr>th, +.table>thead>tr>td, +.table>tbody>tr>td, +.table>tfoot>tr>td { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid #ddd; +} + +.table>thead>tr>th { + vertical-align: bottom; + border-bottom: 2px solid #ddd; +} + +.table>caption+thead>tr:first-child>th, +.table>colgroup+thead>tr:first-child>th, +.table>thead:first-child>tr:first-child>th, +.table>caption+thead>tr:first-child>td, +.table>colgroup+thead>tr:first-child>td, +.table>thead:first-child>tr:first-child>td { + border-top: 0; +} + +.table>tbody+tbody { + border-top: 2px solid #ddd; +} + +.table .table { + background-color: #fff; +} + +.table-condensed>thead>tr>th, +.table-condensed>tbody>tr>th, +.table-condensed>tfoot>tr>th, +.table-condensed>thead>tr>td, +.table-condensed>tbody>tr>td, +.table-condensed>tfoot>tr>td { + padding: 5px; +} + +.table-bordered { + border: 1px solid #ddd; +} + +.table-bordered>thead>tr>th, +.table-bordered>tbody>tr>th, +.table-bordered>tfoot>tr>th, +.table-bordered>thead>tr>td, +.table-bordered>tbody>tr>td, +.table-bordered>tfoot>tr>td { + border: 1px solid #ddd; +} + +.table-bordered>thead>tr>th, +.table-bordered>thead>tr>td { + border-bottom-width: 2px; +} + +.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 col[class*="col-"] { + position: static; + float: none; + display: table-column; +} + +table td[class*="col-"], +table th[class*="col-"] { + position: static; + float: none; + display: table-cell; +} + +.table>thead>tr>td.active, +.table>tbody>tr>td.active, +.table>tfoot>tr>td.active, +.table>thead>tr>th.active, +.table>tbody>tr>th.active, +.table>tfoot>tr>th.active, +.table>thead>tr.active>td, +.table>tbody>tr.active>td, +.table>tfoot>tr.active>td, +.table>thead>tr.active>th, +.table>tbody>tr.active>th, +.table>tfoot>tr.active>th { + background-color: #f5f5f5; +} + +.table-hover>tbody>tr>td.active:hover, +.table-hover>tbody>tr>th.active:hover, +.table-hover>tbody>tr.active:hover>td, +.table-hover>tbody>tr:hover>.active, +.table-hover>tbody>tr.active:hover>th { + background-color: #e8e8e8; +} + +.table>thead>tr>td.success, +.table>tbody>tr>td.success, +.table>tfoot>tr>td.success, +.table>thead>tr>th.success, +.table>tbody>tr>th.success, +.table>tfoot>tr>th.success, +.table>thead>tr.success>td, +.table>tbody>tr.success>td, +.table>tfoot>tr.success>td, +.table>thead>tr.success>th, +.table>tbody>tr.success>th, +.table>tfoot>tr.success>th { + background-color: #dff0d8; +} + +.table-hover>tbody>tr>td.success:hover, +.table-hover>tbody>tr>th.success:hover, +.table-hover>tbody>tr.success:hover>td, +.table-hover>tbody>tr:hover>.success, +.table-hover>tbody>tr.success:hover>th { + background-color: #d0e9c6; +} + +.table>thead>tr>td.info, +.table>tbody>tr>td.info, +.table>tfoot>tr>td.info, +.table>thead>tr>th.info, +.table>tbody>tr>th.info, +.table>tfoot>tr>th.info, +.table>thead>tr.info>td, +.table>tbody>tr.info>td, +.table>tfoot>tr.info>td, +.table>thead>tr.info>th, +.table>tbody>tr.info>th, +.table>tfoot>tr.info>th { + background-color: #d9edf7; +} + +.table-hover>tbody>tr>td.info:hover, +.table-hover>tbody>tr>th.info:hover, +.table-hover>tbody>tr.info:hover>td, +.table-hover>tbody>tr:hover>.info, +.table-hover>tbody>tr.info:hover>th { + background-color: #c4e3f3; +} + +.table>thead>tr>td.warning, +.table>tbody>tr>td.warning, +.table>tfoot>tr>td.warning, +.table>thead>tr>th.warning, +.table>tbody>tr>th.warning, +.table>tfoot>tr>th.warning, +.table>thead>tr.warning>td, +.table>tbody>tr.warning>td, +.table>tfoot>tr.warning>td, +.table>thead>tr.warning>th, +.table>tbody>tr.warning>th, +.table>tfoot>tr.warning>th { + background-color: #fcf8e3; +} + +.table-hover>tbody>tr>td.warning:hover, +.table-hover>tbody>tr>th.warning:hover, +.table-hover>tbody>tr.warning:hover>td, +.table-hover>tbody>tr:hover>.warning, +.table-hover>tbody>tr.warning:hover>th { + background-color: #faf2cc; +} + +.table>thead>tr>td.danger, +.table>tbody>tr>td.danger, +.table>tfoot>tr>td.danger, +.table>thead>tr>th.danger, +.table>tbody>tr>th.danger, +.table>tfoot>tr>th.danger, +.table>thead>tr.danger>td, +.table>tbody>tr.danger>td, +.table>tfoot>tr.danger>td, +.table>thead>tr.danger>th, +.table>tbody>tr.danger>th, +.table>tfoot>tr.danger>th { + background-color: #f2dede; +} + +.table-hover>tbody>tr>td.danger:hover, +.table-hover>tbody>tr>th.danger:hover, +.table-hover>tbody>tr.danger:hover>td, +.table-hover>tbody>tr:hover>.danger, +.table-hover>tbody>tr.danger:hover>th { + background-color: #ebcccc; +} + +@media screen and (max-width:767px) { + .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-y: hidden; + overflow-x: auto; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid #ddd; + -webkit-overflow-scrolling: touch; + } + + .table-responsive>.table { + margin-bottom: 0; + } + + .table-responsive>.table>thead>tr>th, + .table-responsive>.table>tbody>tr>th, + .table-responsive>.table>tfoot>tr>th, + .table-responsive>.table>thead>tr>td, + .table-responsive>.table>tbody>tr>td, + .table-responsive>.table>tfoot>tr>td { + white-space: nowrap; + } + + .table-responsive>.table-bordered { + border: 0; + } + + .table-responsive>.table-bordered>thead>tr>th:first-child, + .table-responsive>.table-bordered>tbody>tr>th:first-child, + .table-responsive>.table-bordered>tfoot>tr>th:first-child, + .table-responsive>.table-bordered>thead>tr>td:first-child, + .table-responsive>.table-bordered>tbody>tr>td:first-child, + .table-responsive>.table-bordered>tfoot>tr>td:first-child { + border-left: 0; + } + + .table-responsive>.table-bordered>thead>tr>th:last-child, + .table-responsive>.table-bordered>tbody>tr>th:last-child, + .table-responsive>.table-bordered>tfoot>tr>th:last-child, + .table-responsive>.table-bordered>thead>tr>td:last-child, + .table-responsive>.table-bordered>tbody>tr>td:last-child, + .table-responsive>.table-bordered>tfoot>tr>td:last-child { + border-right: 0; + } + + .table-responsive>.table-bordered>tbody>tr:last-child>th, + .table-responsive>.table-bordered>tfoot>tr:last-child>th, + .table-responsive>.table-bordered>tbody>tr:last-child>td, + .table-responsive>.table-bordered>tfoot>tr:last-child>td { + border-bottom: 0; + } +} + +fieldset { + padding: 0; + margin: 0; + border: 0; + min-width: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: #333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} + +label { + display: inline-block; + max-width: 100%; + margin-bottom: 5px; + font-weight: bold; +} + +input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + line-height: normal; +} + +input[type="file"] { + display: block; +} + +input[type="range"] { + display: block; + width: 100%; +} + +select[multiple], +select[size] { + height: auto; +} + +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +output { + display: block; + padding-top: 7px; + font-size: 14px; + line-height: 1.42857143; + color: #555; +} + +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + -webkit-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-color ease-in-out .15s,box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; +} + +.form-control:focus { + border-color: #66afe9; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,0.6); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,0.6); +} + +.form-control::-moz-placeholder { + color: #777; + opacity: 1; +} + +.form-control:-ms-input-placeholder { + color: #777; +} + +.form-control::-webkit-input-placeholder { + color: #777; +} + +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + cursor: not-allowed; + background-color: #eee; + opacity: 1; +} + +textarea.form-control { + height: auto; +} + +input[type="search"] { + -webkit-appearance: none; +} + +input[type="date"], +input[type="time"], +input[type="datetime-local"], +input[type="month"] { + line-height: 34px; + line-height: 1.42857143 \0; +} + +input[type="date"].input-sm, +input[type="time"].input-sm, +input[type="datetime-local"].input-sm, +input[type="month"].input-sm { + line-height: 30px; +} + +input[type="date"].input-lg, +input[type="time"].input-lg, +input[type="datetime-local"].input-lg, +input[type="month"].input-lg { + line-height: 46px; +} + +.form-group { + margin-bottom: 15px; +} + +.radio, +.checkbox { + position: relative; + display: block; + min-height: 20px; + margin-top: 10px; + margin-bottom: 10px; +} + +.radio label, +.checkbox label { + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; +} + +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + position: absolute; + margin-left: -20px; + margin-top: 4px \9; +} + +.radio+.radio, +.checkbox+.checkbox { + margin-top: -5px; +} + +.radio-inline, +.checkbox-inline { + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + vertical-align: middle; + font-weight: normal; + cursor: pointer; +} + +.radio-inline+.radio-inline, +.checkbox-inline+.checkbox-inline { + margin-top: 0; + margin-left: 10px; +} + +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"].disabled, +input[type="checkbox"].disabled, +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"] { + cursor: not-allowed; +} + +.radio-inline.disabled, +.checkbox-inline.disabled, +fieldset[disabled] .radio-inline, +fieldset[disabled] .checkbox-inline { + cursor: not-allowed; +} + +.radio.disabled label, +.checkbox.disabled label, +fieldset[disabled] .radio label, +fieldset[disabled] .checkbox label { + cursor: not-allowed; +} + +.form-control-static { + padding-top: 7px; + padding-bottom: 7px; + margin-bottom: 0; +} + +.form-control-static.input-lg, +.form-control-static.input-sm { + padding-left: 0; + padding-right: 0; +} + +.input-sm, +.form-horizontal .form-group-sm .form-control { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +select.input-sm { + height: 30px; + line-height: 30px; +} + +textarea.input-sm, +select[multiple].input-sm { + height: auto; +} + +.input-lg, +.form-horizontal .form-group-lg .form-control { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} + +select.input-lg { + height: 46px; + line-height: 46px; +} + +textarea.input-lg, +select[multiple].input-lg { + height: auto; +} + +.has-feedback { + position: relative; +} + +.has-feedback .form-control { + padding-right: 42.5px; +} + +.form-control-feedback { + position: absolute; + top: 25px; + right: 0; + z-index: 2; + display: block; + width: 34px; + height: 34px; + line-height: 34px; + text-align: center; +} + +.input-lg+.form-control-feedback { + width: 46px; + height: 46px; + line-height: 46px; +} + +.input-sm+.form-control-feedback { + width: 30px; + height: 30px; + line-height: 30px; +} + +.has-success .help-block, +.has-success .control-label, +.has-success .radio, +.has-success .checkbox, +.has-success .radio-inline, +.has-success .checkbox-inline { + color: #3c763d; +} + +.has-success .form-control { + border-color: #3c763d; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,0.075); +} + +.has-success .form-control:focus { + border-color: #2b542c; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168; + box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168; +} + +.has-success .input-group-addon { + color: #3c763d; + border-color: #3c763d; + background-color: #dff0d8; +} + +.has-success .form-control-feedback { + color: #3c763d; +} + +.has-warning .help-block, +.has-warning .control-label, +.has-warning .radio, +.has-warning .checkbox, +.has-warning .radio-inline, +.has-warning .checkbox-inline { + color: #8a6d3b; +} + +.has-warning .form-control { + border-color: #8a6d3b; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,0.075); +} + +.has-warning .form-control:focus { + border-color: #66512c; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b; + box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b; +} + +.has-warning .input-group-addon { + color: #8a6d3b; + border-color: #8a6d3b; + background-color: #fcf8e3; +} + +.has-warning .form-control-feedback { + color: #8a6d3b; +} + +.has-error .help-block, +.has-error .control-label, +.has-error .radio, +.has-error .checkbox, +.has-error .radio-inline, +.has-error .checkbox-inline { + color: #a94442; +} + +.has-error .form-control { + border-color: #a94442; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,0.075); +} + +.has-error .form-control:focus { + border-color: #843534; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483; + box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483; +} + +.has-error .input-group-addon { + color: #a94442; + border-color: #a94442; + background-color: #f2dede; +} + +.has-error .form-control-feedback { + color: #a94442; +} + +.has-feedback label.sr-only~.form-control-feedback { + top: 0; +} + +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #737373; +} + +@media (min-width:768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + + .form-inline .input-group { + display: inline-table; + vertical-align: middle; + } + + .form-inline .input-group .input-group-addon, + .form-inline .input-group .input-group-btn, + .form-inline .input-group .form-control { + width: auto; + } + + .form-inline .input-group>.form-control { + width: 100%; + } + + .form-inline .control-label { + margin-bottom: 0; + vertical-align: middle; + } + + .form-inline .radio, + .form-inline .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + + .form-inline .radio label, + .form-inline .checkbox label { + padding-left: 0; + } + + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + + .form-inline .has-feedback .form-control-feedback { + top: 0; + } +} + +.form-horizontal .radio, +.form-horizontal .checkbox, +.form-horizontal .radio-inline, +.form-horizontal .checkbox-inline { + margin-top: 0; + margin-bottom: 0; + padding-top: 7px; +} + +.form-horizontal .radio, +.form-horizontal .checkbox { + min-height: 27px; +} + +.form-horizontal .form-group { + margin-left: -15px; + margin-right: -15px; +} + +@media (min-width:768px) { + .form-horizontal .control-label { + text-align: right; + margin-bottom: 0; + padding-top: 7px; + } +} + +.form-horizontal .has-feedback .form-control-feedback { + top: 0; + right: 15px; +} + +@media (min-width:768px) { + .form-horizontal .form-group-lg .control-label { + padding-top: 14.3px; + } +} + +@media (min-width:768px) { + .form-horizontal .form-group-sm .control-label { + padding-top: 6px; + } +} + +.btn { + display: inline-block; + margin-bottom: 0; + font-weight: normal; + text-align: center; + vertical-align: middle; + cursor: pointer; + background-image: none; + border: 1px solid transparent; + white-space: nowrap; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + border-radius: 4px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.btn:focus, +.btn:active:focus, +.btn.active:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.btn:hover, +.btn:focus { + color: #333; + text-decoration: none; +} + +.btn:active, +.btn.active { + outline: 0; + background-image: none; + -webkit-box-shadow: inset 0 3px 5px rgba(0,0,0,0.125); + box-shadow: inset 0 3px 5px rgba(0,0,0,0.125); +} + +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + cursor: not-allowed; + pointer-events: none; + opacity: .65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn-default { + color: #333; + background-color: #fff; + border-color: #ccc; +} + +.btn-default:hover, +.btn-default:focus, +.btn-default:active, +.btn-default.active, +.open>.dropdown-toggle.btn-default { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} + +.btn-default:active, +.btn-default.active, +.open>.dropdown-toggle.btn-default { + background-image: none; +} + +.btn-default.disabled, +.btn-default[disabled], +fieldset[disabled] .btn-default, +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled:active, +.btn-default[disabled]:active, +fieldset[disabled] .btn-default:active, +.btn-default.disabled.active, +.btn-default[disabled].active, +fieldset[disabled] .btn-default.active { + background-color: #fff; + border-color: #ccc; +} + +.btn-default .badge { + color: #fff; + background-color: #333; +} + +.btn-primary { + color: #fff; + background-color: #428bca; + border-color: #357ebd; +} + +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active, +.open>.dropdown-toggle.btn-primary { + color: #fff; + background-color: #3071a9; + border-color: #285e8e; +} + +.btn-primary:active, +.btn-primary.active, +.open>.dropdown-toggle.btn-primary { + background-image: none; +} + +.btn-primary.disabled, +.btn-primary[disabled], +fieldset[disabled] .btn-primary, +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled:active, +.btn-primary[disabled]:active, +fieldset[disabled] .btn-primary:active, +.btn-primary.disabled.active, +.btn-primary[disabled].active, +fieldset[disabled] .btn-primary.active { + background-color: #428bca; + border-color: #357ebd; +} + +.btn-primary .badge { + color: #428bca; + background-color: #fff; +} + +.btn-success { + color: #fff; + background-color: #5cb85c; + border-color: #4cae4c; +} + +.btn-success:hover, +.btn-success:focus, +.btn-success:active, +.btn-success.active, +.open>.dropdown-toggle.btn-success { + color: #fff; + background-color: #449d44; + border-color: #398439; +} + +.btn-success:active, +.btn-success.active, +.open>.dropdown-toggle.btn-success { + background-image: none; +} + +.btn-success.disabled, +.btn-success[disabled], +fieldset[disabled] .btn-success, +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled:active, +.btn-success[disabled]:active, +fieldset[disabled] .btn-success:active, +.btn-success.disabled.active, +.btn-success[disabled].active, +fieldset[disabled] .btn-success.active { + background-color: #5cb85c; + border-color: #4cae4c; +} + +.btn-success .badge { + color: #5cb85c; + background-color: #fff; +} + +.btn-info { + color: #fff; + background-color: #5bc0de; + border-color: #46b8da; +} + +.btn-info:hover, +.btn-info:focus, +.btn-info:active, +.btn-info.active, +.open>.dropdown-toggle.btn-info { + color: #fff; + background-color: #31b0d5; + border-color: #269abc; +} + +.btn-info:active, +.btn-info.active, +.open>.dropdown-toggle.btn-info { + background-image: none; +} + +.btn-info.disabled, +.btn-info[disabled], +fieldset[disabled] .btn-info, +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled:active, +.btn-info[disabled]:active, +fieldset[disabled] .btn-info:active, +.btn-info.disabled.active, +.btn-info[disabled].active, +fieldset[disabled] .btn-info.active { + background-color: #5bc0de; + border-color: #46b8da; +} + +.btn-info .badge { + color: #5bc0de; + background-color: #fff; +} + +.btn-warning { + color: #fff; + background-color: #f0ad4e; + border-color: #eea236; +} + +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active, +.btn-warning.active, +.open>.dropdown-toggle.btn-warning { + color: #fff; + background-color: #ec971f; + border-color: #d58512; +} + +.btn-warning:active, +.btn-warning.active, +.open>.dropdown-toggle.btn-warning { + background-image: none; +} + +.btn-warning.disabled, +.btn-warning[disabled], +fieldset[disabled] .btn-warning, +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled:active, +.btn-warning[disabled]:active, +fieldset[disabled] .btn-warning:active, +.btn-warning.disabled.active, +.btn-warning[disabled].active, +fieldset[disabled] .btn-warning.active { + background-color: #f0ad4e; + border-color: #eea236; +} + +.btn-warning .badge { + color: #f0ad4e; + background-color: #fff; +} + +.btn-danger { + color: #fff; + background-color: #d9534f; + border-color: #d43f3a; +} + +.btn-danger:hover, +.btn-danger:focus, +.btn-danger:active, +.btn-danger.active, +.open>.dropdown-toggle.btn-danger { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; +} + +.btn-danger:active, +.btn-danger.active, +.open>.dropdown-toggle.btn-danger { + background-image: none; +} + +.btn-danger.disabled, +.btn-danger[disabled], +fieldset[disabled] .btn-danger, +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled:active, +.btn-danger[disabled]:active, +fieldset[disabled] .btn-danger:active, +.btn-danger.disabled.active, +.btn-danger[disabled].active, +fieldset[disabled] .btn-danger.active { + background-color: #d9534f; + border-color: #d43f3a; +} + +.btn-danger .badge { + color: #d9534f; + background-color: #fff; +} + +.btn-link { + color: #428bca; + font-weight: normal; + cursor: pointer; + border-radius: 0; +} + +.btn-link, +.btn-link:active, +.btn-link[disabled], +fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn-link, +.btn-link:hover, +.btn-link:focus, +.btn-link:active { + border-color: transparent; +} + +.btn-link:hover, +.btn-link:focus { + color: #2a6496; + text-decoration: underline; + background-color: transparent; +} + +.btn-link[disabled]:hover, +fieldset[disabled] .btn-link:hover, +.btn-link[disabled]:focus, +fieldset[disabled] .btn-link:focus { + color: #777; + text-decoration: none; +} + +.btn-lg, +.btn-group-lg>.btn { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} + +.btn-sm, +.btn-group-sm>.btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +.btn-xs, +.btn-group-xs>.btn { + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +.btn-block { + display: block; + width: 100%; +} + +.btn-block+.btn-block { + margin-top: 5px; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.fade { + opacity: 0; + -webkit-transition: opacity .15s linear; + -o-transition: opacity .15s linear; + transition: opacity .15s linear; +} + +.fade.in { + opacity: 1; +} + +.collapse { + display: none; +} + +.collapse.in { + display: block; +} + +tr.collapse.in { + display: table-row; +} + +tbody.collapse.in { + display: table-row-group; +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height .35s ease; + -o-transition: height .35s ease; + transition: height .35s ease; +} + +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px solid; + border-right: 4px solid transparent; + border-left: 4px solid transparent; +} + +.dropdown { + position: relative; +} + +.dropdown-toggle:focus { + outline: 0; +} + +.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; + font-size: 14px; + text-align: left; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0,0,0,0.15); + border-radius: 4px; + -webkit-box-shadow: 0 6px 12px rgba(0,0,0,0.175); + box-shadow: 0 6px 12px rgba(0,0,0,0.175); + background-clip: padding-box; +} + +.dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} + +.dropdown-menu>li>a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.42857143; + color: #333; + white-space: nowrap; +} + +.dropdown-menu>li>a:hover, +.dropdown-menu>li>a:focus { + text-decoration: none; + color: #262626; + background-color: #f5f5f5; +} + +.dropdown-menu>.active>a, +.dropdown-menu>.active>a:hover, +.dropdown-menu>.active>a:focus { + color: #fff; + text-decoration: none; + outline: 0; + background-color: #428bca; +} + +.dropdown-menu>.disabled>a, +.dropdown-menu>.disabled>a:hover, +.dropdown-menu>.disabled>a:focus { + color: #777; +} + +.dropdown-menu>.disabled>a:hover, +.dropdown-menu>.disabled>a:focus { + text-decoration: none; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + cursor: not-allowed; +} + +.open>.dropdown-menu { + display: block; +} + +.open>a { + outline: 0; +} + +.dropdown-menu-right { + left: auto; + right: 0; +} + +.dropdown-menu-left { + left: 0; + right: auto; +} + +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.42857143; + color: #777; + white-space: nowrap; +} + +.dropdown-backdrop { + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: 990; +} + +.pull-right>.dropdown-menu { + right: 0; + left: auto; +} + +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px solid; + content: ""; +} + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} + +@media (min-width:768px) { + .navbar-right .dropdown-menu { + left: auto; + right: 0; + } + + .navbar-right .dropdown-menu-left { + left: 0; + right: auto; + } +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; +} + +.btn-group>.btn, +.btn-group-vertical>.btn { + position: relative; + float: left; +} + +.btn-group>.btn:hover, +.btn-group-vertical>.btn:hover, +.btn-group>.btn:focus, +.btn-group-vertical>.btn:focus, +.btn-group>.btn:active, +.btn-group-vertical>.btn:active, +.btn-group>.btn.active, +.btn-group-vertical>.btn.active { + z-index: 2; +} + +.btn-group>.btn:focus, +.btn-group-vertical>.btn:focus { + outline: 0; +} + +.btn-group .btn+.btn, +.btn-group .btn+.btn-group, +.btn-group .btn-group+.btn, +.btn-group .btn-group+.btn-group { + margin-left: -1px; +} + +.btn-toolbar { + margin-left: -5px; +} + +.btn-toolbar .btn-group, +.btn-toolbar .input-group { + float: left; +} + +.btn-toolbar>.btn, +.btn-toolbar>.btn-group, +.btn-toolbar>.input-group { + margin-left: 5px; +} + +.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} + +.btn-group>.btn:first-child { + margin-left: 0; +} + +.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} + +.btn-group>.btn:last-child:not(:first-child), +.btn-group>.dropdown-toggle:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.btn-group>.btn-group { + float: left; +} + +.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn { + border-radius: 0; +} + +.btn-group>.btn-group:first-child>.btn:last-child, +.btn-group>.btn-group:first-child>.dropdown-toggle { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} + +.btn-group>.btn-group:last-child>.btn:first-child { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + +.btn-group>.btn+.dropdown-toggle { + padding-left: 8px; + padding-right: 8px; +} + +.btn-group>.btn-lg+.dropdown-toggle { + padding-left: 12px; + padding-right: 12px; +} + +.btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0,0,0,0.125); + box-shadow: inset 0 3px 5px rgba(0,0,0,0.125); +} + +.btn-group.open .dropdown-toggle.btn-link { + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn .caret { + margin-left: 0; +} + +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; +} + +.dropup .btn-lg .caret { + border-width: 0 5px 5px; +} + +.btn-group-vertical>.btn, +.btn-group-vertical>.btn-group, +.btn-group-vertical>.btn-group>.btn { + display: block; + float: none; + width: 100%; + max-width: 100%; +} + +.btn-group-vertical>.btn-group>.btn { + float: none; +} + +.btn-group-vertical>.btn+.btn, +.btn-group-vertical>.btn+.btn-group, +.btn-group-vertical>.btn-group+.btn, +.btn-group-vertical>.btn-group+.btn-group { + margin-top: -1px; + margin-left: 0; +} + +.btn-group-vertical>.btn:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.btn-group-vertical>.btn:first-child:not(:last-child) { + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical>.btn:last-child:not(:first-child) { + border-bottom-left-radius: 4px; + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn { + border-radius: 0; +} + +.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child, +.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; +} + +.btn-group-justified>.btn, +.btn-group-justified>.btn-group { + float: none; + display: table-cell; + width: 1%; +} + +.btn-group-justified>.btn-group .btn { + width: 100%; +} + +.btn-group-justified>.btn-group .dropdown-menu { + left: auto; +} + +[data-toggle="buttons"]>.btn>input[type="radio"], +[data-toggle="buttons"]>.btn>input[type="checkbox"] { + position: absolute; + z-index: -1; + opacity: 0; + filter: alpha(opacity=0); +} + +.input-group { + position: relative; + display: table; + border-collapse: separate; +} + +.input-group[class*="col-"] { + float: none; + padding-left: 0; + padding-right: 0; +} + +.input-group .form-control { + position: relative; + z-index: 2; + float: left; + width: 100%; + margin-bottom: 0; +} + +.input-group-lg>.form-control, +.input-group-lg>.input-group-addon, +.input-group-lg>.input-group-btn>.btn { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} + +select.input-group-lg>.form-control, +select.input-group-lg>.input-group-addon, +select.input-group-lg>.input-group-btn>.btn { + height: 46px; + line-height: 46px; +} + +textarea.input-group-lg>.form-control, +textarea.input-group-lg>.input-group-addon, +textarea.input-group-lg>.input-group-btn>.btn, +select[multiple].input-group-lg>.form-control, +select[multiple].input-group-lg>.input-group-addon, +select[multiple].input-group-lg>.input-group-btn>.btn { + height: auto; +} + +.input-group-sm>.form-control, +.input-group-sm>.input-group-addon, +.input-group-sm>.input-group-btn>.btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +select.input-group-sm>.form-control, +select.input-group-sm>.input-group-addon, +select.input-group-sm>.input-group-btn>.btn { + height: 30px; + line-height: 30px; +} + +textarea.input-group-sm>.form-control, +textarea.input-group-sm>.input-group-addon, +textarea.input-group-sm>.input-group-btn>.btn, +select[multiple].input-group-sm>.form-control, +select[multiple].input-group-sm>.input-group-addon, +select[multiple].input-group-sm>.input-group-btn>.btn { + height: auto; +} + +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; +} + +.input-group-addon:not(:first-child):not(:last-child), +.input-group-btn:not(:first-child):not(:last-child), +.input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} + +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: normal; + line-height: 1; + color: #555; + text-align: center; + background-color: #eee; + border: 1px solid #ccc; + border-radius: 4px; +} + +.input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 3px; +} + +.input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 6px; +} + +.input-group-addon input[type="radio"], +.input-group-addon input[type="checkbox"] { + margin-top: 0; +} + +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child>.btn, +.input-group-btn:first-child>.btn-group>.btn, +.input-group-btn:first-child>.dropdown-toggle, +.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle), +.input-group-btn:last-child>.btn-group:not(:last-child)>.btn { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} + +.input-group-addon:first-child { + border-right: 0; +} + +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child>.btn, +.input-group-btn:last-child>.btn-group>.btn, +.input-group-btn:last-child>.dropdown-toggle, +.input-group-btn:first-child>.btn:not(:first-child), +.input-group-btn:first-child>.btn-group:not(:first-child)>.btn { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.input-group-addon:last-child { + border-left: 0; +} + +.input-group-btn { + position: relative; + font-size: 0; + white-space: nowrap; +} + +.input-group-btn>.btn { + position: relative; +} + +.input-group-btn>.btn+.btn { + margin-left: -1px; +} + +.input-group-btn>.btn:hover, +.input-group-btn>.btn:focus, +.input-group-btn>.btn:active { + z-index: 2; +} + +.input-group-btn:first-child>.btn, +.input-group-btn:first-child>.btn-group { + margin-right: -1px; +} + +.input-group-btn:last-child>.btn, +.input-group-btn:last-child>.btn-group { + margin-left: -1px; +} + +.nav { + margin-bottom: 0; + padding-left: 0; + list-style: none; +} + +.nav>li { + position: relative; + display: block; +} + +.nav>li>a { + position: relative; + display: block; + padding: 10px 15px; +} + +.nav>li>a:hover, +.nav>li>a:focus { + text-decoration: none; + background-color: #eee; +} + +.nav>li.disabled>a { + color: #777; +} + +.nav>li.disabled>a:hover, +.nav>li.disabled>a:focus { + color: #777; + text-decoration: none; + background-color: transparent; + cursor: not-allowed; +} + +.nav .open>a, +.nav .open>a:hover, +.nav .open>a:focus { + background-color: #eee; + border-color: #428bca; +} + +.nav .nav-divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} + +.nav>li>a>img { + max-width: none; +} + +.nav-tabs { + border-bottom: 1px solid #ddd; +} + +.nav-tabs>li { + float: left; + margin-bottom: -1px; +} + +.nav-tabs>li>a { + margin-right: 2px; + line-height: 1.42857143; + border: 1px solid transparent; + border-radius: 4px 4px 0 0; +} + +.nav-tabs>li>a:hover { + border-color: #eee #eee #ddd; +} + +.nav-tabs>li.active>a, +.nav-tabs>li.active>a:hover, +.nav-tabs>li.active>a:focus { + color: #555; + background-color: #fff; + border: 1px solid #ddd; + border-bottom-color: transparent; + cursor: default; +} + +.nav-tabs.nav-justified { + width: 100%; + border-bottom: 0; +} + +.nav-tabs.nav-justified>li { + float: none; +} + +.nav-tabs.nav-justified>li>a { + text-align: center; + margin-bottom: 5px; +} + +.nav-tabs.nav-justified>.dropdown .dropdown-menu { + top: auto; + left: auto; +} + +@media (min-width:768px) { + .nav-tabs.nav-justified>li { + display: table-cell; + width: 1%; + } + + .nav-tabs.nav-justified>li>a { + margin-bottom: 0; + } +} + +.nav-tabs.nav-justified>li>a { + margin-right: 0; + border-radius: 4px; +} + +.nav-tabs.nav-justified>.active>a, +.nav-tabs.nav-justified>.active>a:hover, +.nav-tabs.nav-justified>.active>a:focus { + border: 1px solid #ddd; +} + +@media (min-width:768px) { + .nav-tabs.nav-justified>li>a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; + } + + .nav-tabs.nav-justified>.active>a, + .nav-tabs.nav-justified>.active>a:hover, + .nav-tabs.nav-justified>.active>a:focus { + border-bottom-color: #fff; + } +} + +.nav-pills>li { + float: left; +} + +.nav-pills>li>a { + border-radius: 4px; +} + +.nav-pills>li+li { + margin-left: 2px; +} + +.nav-pills>li.active>a, +.nav-pills>li.active>a:hover, +.nav-pills>li.active>a:focus { + color: #fff; + background-color: #428bca; +} + +.nav-stacked>li { + float: none; +} + +.nav-stacked>li+li { + margin-top: 2px; + margin-left: 0; +} + +.nav-justified { + width: 100%; +} + +.nav-justified>li { + float: none; +} + +.nav-justified>li>a { + text-align: center; + margin-bottom: 5px; +} + +.nav-justified>.dropdown .dropdown-menu { + top: auto; + left: auto; +} + +@media (min-width:768px) { + .nav-justified>li { + display: table-cell; + width: 1%; + } + + .nav-justified>li>a { + margin-bottom: 0; + } +} + +.nav-tabs-justified { + border-bottom: 0; +} + +.nav-tabs-justified>li>a { + margin-right: 0; + border-radius: 4px; +} + +.nav-tabs-justified>.active>a, +.nav-tabs-justified>.active>a:hover, +.nav-tabs-justified>.active>a:focus { + border: 1px solid #ddd; +} + +@media (min-width:768px) { + .nav-tabs-justified>li>a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; + } + + .nav-tabs-justified>.active>a, + .nav-tabs-justified>.active>a:hover, + .nav-tabs-justified>.active>a:focus { + border-bottom-color: #fff; + } +} + +.tab-content>.tab-pane { + display: none; +} + +.tab-content>.active { + display: block; +} + +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.navbar { + position: relative; + min-height: 50px; + margin-bottom: 20px; + border: 1px solid transparent; +} + +@media (min-width:768px) { + .navbar { + border-radius: 4px; + } +} + +@media (min-width:768px) { + .navbar-header { + float: left; + } +} + +.navbar-collapse { + overflow-x: visible; + padding-right: 15px; + padding-left: 15px; + border-top: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255,255,255,0.1); + -webkit-overflow-scrolling: touch; +} + +.navbar-collapse.in { + overflow-y: auto; +} + +@media (min-width:768px) { + .navbar-collapse { + width: auto; + border-top: 0; + box-shadow: none; + } + + .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + + .navbar-collapse.in { + overflow-y: visible; + } + + .navbar-fixed-top .navbar-collapse, + .navbar-static-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + padding-left: 0; + padding-right: 0; + } +} + +.navbar-fixed-top .navbar-collapse, +.navbar-fixed-bottom .navbar-collapse { + max-height: 340px; +} + +@media (max-width:480px) and (orientation:landscape) { + .navbar-fixed-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + max-height: 200px; + } +} + +.container>.navbar-header, +.container-fluid>.navbar-header, +.container>.navbar-collapse, +.container-fluid>.navbar-collapse { + margin-right: -15px; + margin-left: -15px; +} + +@media (min-width:768px) { + .container>.navbar-header, + .container-fluid>.navbar-header, + .container>.navbar-collapse, + .container-fluid>.navbar-collapse { + margin-right: 0; + margin-left: 0; + } +} + +.navbar-static-top { + z-index: 1000; + border-width: 0 0 1px; +} + +@media (min-width:768px) { + .navbar-static-top { + border-radius: 0; + } +} + +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; + -webkit-transform: translate3d(0,0,0); + transform: translate3d(0,0,0); +} + +@media (min-width:768px) { + .navbar-fixed-top, + .navbar-fixed-bottom { + border-radius: 0; + } +} + +.navbar-fixed-top { + top: 0; + border-width: 0 0 1px; +} + +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; + border-width: 1px 0 0; +} + +.navbar-brand { + float: left; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; + height: 50px; +} + +.navbar-brand:hover, +.navbar-brand:focus { + text-decoration: none; +} + +@media (min-width:768px) { + .navbar>.container .navbar-brand, + .navbar>.container-fluid .navbar-brand { + margin-left: -15px; + } +} + +.navbar-toggle { + position: relative; + float: right; + margin-right: 15px; + padding: 9px 10px; + margin-top: 8px; + margin-bottom: 8px; + background-color: transparent; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; +} + +.navbar-toggle:focus { + outline: 0; +} + +.navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; +} + +.navbar-toggle .icon-bar+.icon-bar { + margin-top: 4px; +} + +@media (min-width:768px) { + .navbar-toggle { + display: none; + } +} + +.navbar-nav { + margin: 7.5px -15px; +} + +.navbar-nav>li>a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 20px; +} + +@media (max-width:767px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + box-shadow: none; + } + + .navbar-nav .open .dropdown-menu>li>a, + .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 15px 5px 25px; + } + + .navbar-nav .open .dropdown-menu>li>a { + line-height: 20px; + } + + .navbar-nav .open .dropdown-menu>li>a:hover, + .navbar-nav .open .dropdown-menu>li>a:focus { + background-image: none; + } +} + +@media (min-width:768px) { + .navbar-nav { + float: left; + margin: 0; + } + + .navbar-nav>li { + float: left; + } + + .navbar-nav>li>a { + padding-top: 15px; + padding-bottom: 15px; + } + + .navbar-nav.navbar-right:last-child { + margin-right: -15px; + } +} + +@media (min-width:768px) { + .navbar-left { + float: left !important; + float: left; + } + + .navbar-right { + float: right !important; + float: right; + } +} + +.navbar-form { + margin-left: -15px; + margin-right: -15px; + padding: 10px 15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-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); + margin-top: 8px; + margin-bottom: 8px; +} + +@media (min-width:768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + + .navbar-form .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + + .navbar-form .input-group { + display: inline-table; + vertical-align: middle; + } + + .navbar-form .input-group .input-group-addon, + .navbar-form .input-group .input-group-btn, + .navbar-form .input-group .form-control { + width: auto; + } + + .navbar-form .input-group>.form-control { + width: 100%; + } + + .navbar-form .control-label { + margin-bottom: 0; + vertical-align: middle; + } + + .navbar-form .radio, + .navbar-form .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + + .navbar-form .radio label, + .navbar-form .checkbox label { + padding-left: 0; + } + + .navbar-form .radio input[type="radio"], + .navbar-form .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + + .navbar-form .has-feedback .form-control-feedback { + top: 0; + } +} + +@media (max-width:767px) { + .navbar-form .form-group { + margin-bottom: 5px; + } +} + +@media (min-width:768px) { + .navbar-form { + width: auto; + border: 0; + margin-left: 0; + margin-right: 0; + padding-top: 0; + padding-bottom: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + + .navbar-form.navbar-right:last-child { + margin-right: -15px; + } +} + +.navbar-nav>li>.dropdown-menu { + margin-top: 0; + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.navbar-btn { + margin-top: 8px; + margin-bottom: 8px; +} + +.navbar-btn.btn-sm { + margin-top: 10px; + margin-bottom: 10px; +} + +.navbar-btn.btn-xs { + margin-top: 14px; + margin-bottom: 14px; +} + +.navbar-text { + margin-top: 15px; + margin-bottom: 15px; +} + +@media (min-width:768px) { + .navbar-text { + float: left; + margin-left: 15px; + margin-right: 15px; + } + + .navbar-text.navbar-right:last-child { + margin-right: 0; + } +} + +.navbar-default { + background-color: #f8f8f8; + border-color: #e7e7e7; +} + +.navbar-default .navbar-brand { + color: #777; +} + +.navbar-default .navbar-brand:hover, +.navbar-default .navbar-brand:focus { + color: #5e5e5e; + background-color: transparent; +} + +.navbar-default .navbar-text { + color: #777; +} + +.navbar-default .navbar-nav>li>a { + color: #777; +} + +.navbar-default .navbar-nav>li>a:hover, +.navbar-default .navbar-nav>li>a:focus { + color: #333; + background-color: transparent; +} + +.navbar-default .navbar-nav>.active>a, +.navbar-default .navbar-nav>.active>a:hover, +.navbar-default .navbar-nav>.active>a:focus { + color: #555; + background-color: #e7e7e7; +} + +.navbar-default .navbar-nav>.disabled>a, +.navbar-default .navbar-nav>.disabled>a:hover, +.navbar-default .navbar-nav>.disabled>a:focus { + color: #ccc; + background-color: transparent; +} + +.navbar-default .navbar-toggle { + border-color: #ddd; +} + +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus { + background-color: #ddd; +} + +.navbar-default .navbar-toggle .icon-bar { + background-color: #888; +} + +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: #e7e7e7; +} + +.navbar-default .navbar-nav>.open>a, +.navbar-default .navbar-nav>.open>a:hover, +.navbar-default .navbar-nav>.open>a:focus { + background-color: #e7e7e7; + color: #555; +} + +@media (max-width:767px) { + .navbar-default .navbar-nav .open .dropdown-menu>li>a { + color: #777; + } + + .navbar-default .navbar-nav .open .dropdown-menu>li>a:hover, + .navbar-default .navbar-nav .open .dropdown-menu>li>a:focus { + color: #333; + background-color: transparent; + } + + .navbar-default .navbar-nav .open .dropdown-menu>.active>a, + .navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover, + .navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus { + color: #555; + background-color: #e7e7e7; + } + + .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a, + .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover, + .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus { + color: #ccc; + background-color: transparent; + } +} + +.navbar-default .navbar-link { + color: #777; +} + +.navbar-default .navbar-link:hover { + color: #333; +} + +.navbar-default .btn-link { + color: #777; +} + +.navbar-default .btn-link:hover, +.navbar-default .btn-link:focus { + color: #333; +} + +.navbar-default .btn-link[disabled]:hover, +fieldset[disabled] .navbar-default .btn-link:hover, +.navbar-default .btn-link[disabled]:focus, +fieldset[disabled] .navbar-default .btn-link:focus { + color: #ccc; +} + +.navbar-inverse { + background-color: #222; + border-color: #080808; +} + +.navbar-inverse .navbar-brand { + color: #777; +} + +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus { + color: #fff; + background-color: transparent; +} + +.navbar-inverse .navbar-text { + color: #777; +} + +.navbar-inverse .navbar-nav>li>a { + color: #777; +} + +.navbar-inverse .navbar-nav>li>a:hover, +.navbar-inverse .navbar-nav>li>a:focus { + color: #fff; + background-color: transparent; +} + +.navbar-inverse .navbar-nav>.active>a, +.navbar-inverse .navbar-nav>.active>a:hover, +.navbar-inverse .navbar-nav>.active>a:focus { + color: #fff; + background-color: #080808; +} + +.navbar-inverse .navbar-nav>.disabled>a, +.navbar-inverse .navbar-nav>.disabled>a:hover, +.navbar-inverse .navbar-nav>.disabled>a:focus { + color: #444; + background-color: transparent; +} + +.navbar-inverse .navbar-toggle { + border-color: #333; +} + +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus { + background-color: #333; +} + +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #fff; +} + +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form { + border-color: #101010; +} + +.navbar-inverse .navbar-nav>.open>a, +.navbar-inverse .navbar-nav>.open>a:hover, +.navbar-inverse .navbar-nav>.open>a:focus { + background-color: #080808; + color: #fff; +} + +@media (max-width:767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header { + border-color: #080808; + } + + .navbar-inverse .navbar-nav .open .dropdown-menu .divider { + background-color: #080808; + } + + .navbar-inverse .navbar-nav .open .dropdown-menu>li>a { + color: #777; + } + + .navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus { + color: #fff; + background-color: transparent; + } + + .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a, + .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus { + color: #fff; + background-color: #080808; + } + + .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a, + .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus { + color: #444; + background-color: transparent; + } +} + +.navbar-inverse .navbar-link { + color: #777; +} + +.navbar-inverse .navbar-link:hover { + color: #fff; +} + +.navbar-inverse .btn-link { + color: #777; +} + +.navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link:focus { + color: #fff; +} + +.navbar-inverse .btn-link[disabled]:hover, +fieldset[disabled] .navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link[disabled]:focus, +fieldset[disabled] .navbar-inverse .btn-link:focus { + color: #444; +} + +.breadcrumb { + padding: 8px 15px; + margin-bottom: 20px; + list-style: none; + background-color: #f5f5f5; + border-radius: 4px; +} + +.breadcrumb>li { + display: inline-block; +} + +.breadcrumb>li+li:before { + content: "/\00a0"; + padding: 0 5px; + color: #ccc; +} + +.breadcrumb>.active { + color: #777; +} + +.pagination { + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 4px; +} + +.pagination>li { + display: inline; +} + +.pagination>li>a, +.pagination>li>span { + position: relative; + float: left; + padding: 6px 12px; + line-height: 1.42857143; + text-decoration: none; + color: #428bca; + background-color: #fff; + border: 1px solid #ddd; + margin-left: -1px; +} + +.pagination>li:first-child>a, +.pagination>li:first-child>span { + margin-left: 0; + border-bottom-left-radius: 4px; + border-top-left-radius: 4px; +} + +.pagination>li:last-child>a, +.pagination>li:last-child>span { + border-bottom-right-radius: 4px; + border-top-right-radius: 4px; +} + +.pagination>li>a:hover, +.pagination>li>span:hover, +.pagination>li>a:focus, +.pagination>li>span:focus { + color: #2a6496; + background-color: #eee; + border-color: #ddd; +} + +.pagination>.active>a, +.pagination>.active>span, +.pagination>.active>a:hover, +.pagination>.active>span:hover, +.pagination>.active>a:focus, +.pagination>.active>span:focus { + z-index: 2; + color: #fff; + background-color: #428bca; + border-color: #428bca; + cursor: default; +} + +.pagination>.disabled>span, +.pagination>.disabled>span:hover, +.pagination>.disabled>span:focus, +.pagination>.disabled>a, +.pagination>.disabled>a:hover, +.pagination>.disabled>a:focus { + color: #777; + background-color: #fff; + border-color: #ddd; + cursor: not-allowed; +} + +.pagination-lg>li>a, +.pagination-lg>li>span { + padding: 10px 16px; + font-size: 18px; +} + +.pagination-lg>li:first-child>a, +.pagination-lg>li:first-child>span { + border-bottom-left-radius: 6px; + border-top-left-radius: 6px; +} + +.pagination-lg>li:last-child>a, +.pagination-lg>li:last-child>span { + border-bottom-right-radius: 6px; + border-top-right-radius: 6px; +} + +.pagination-sm>li>a, +.pagination-sm>li>span { + padding: 5px 10px; + font-size: 12px; +} + +.pagination-sm>li:first-child>a, +.pagination-sm>li:first-child>span { + border-bottom-left-radius: 3px; + border-top-left-radius: 3px; +} + +.pagination-sm>li:last-child>a, +.pagination-sm>li:last-child>span { + border-bottom-right-radius: 3px; + border-top-right-radius: 3px; +} + +.pager { + padding-left: 0; + margin: 20px 0; + list-style: none; + text-align: center; +} + +.pager li { + display: inline; +} + +.pager li>a, +.pager li>span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 15px; +} + +.pager li>a:hover, +.pager li>a:focus { + text-decoration: none; + background-color: #eee; +} + +.pager .next>a, +.pager .next>span { + float: right; +} + +.pager .previous>a, +.pager .previous>span { + float: left; +} + +.pager .disabled>a, +.pager .disabled>a:hover, +.pager .disabled>a:focus, +.pager .disabled>span { + color: #777; + background-color: #fff; + cursor: not-allowed; +} + +.label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; +} + +a.label:hover, +a.label:focus { + color: #fff; + text-decoration: none; + cursor: pointer; +} + +.label:empty { + display: none; +} + +.btn .label { + position: relative; + top: -1px; +} + +.label-default { + background-color: #777; +} + +.label-default[href]:hover, +.label-default[href]:focus { + background-color: #5e5e5e; +} + +.label-primary { + background-color: #428bca; +} + +.label-primary[href]:hover, +.label-primary[href]:focus { + background-color: #3071a9; +} + +.label-success { + background-color: #5cb85c; +} + +.label-success[href]:hover, +.label-success[href]:focus { + background-color: #449d44; +} + +.label-info { + background-color: #5bc0de; +} + +.label-info[href]:hover, +.label-info[href]:focus { + background-color: #31b0d5; +} + +.label-warning { + background-color: #f0ad4e; +} + +.label-warning[href]:hover, +.label-warning[href]:focus { + background-color: #ec971f; +} + +.label-danger { + background-color: #d9534f; +} + +.label-danger[href]:hover, +.label-danger[href]:focus { + background-color: #c9302c; +} + +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + color: #fff; + line-height: 1; + vertical-align: baseline; + white-space: nowrap; + text-align: center; + background-color: #777; + border-radius: 10px; +} + +.badge:empty { + display: none; +} + +.btn .badge { + position: relative; + top: -1px; +} + +.btn-xs .badge { + top: 0; + padding: 1px 5px; +} + +a.badge:hover, +a.badge:focus { + color: #fff; + text-decoration: none; + cursor: pointer; +} + +a.list-group-item.active>.badge, +.nav-pills>.active>a>.badge { + color: #428bca; + background-color: #fff; +} + +.nav-pills>li>a>.badge { + margin-left: 3px; +} + +.jumbotron { + padding: 30px; + margin-bottom: 30px; + color: inherit; + background-color: #eee; +} + +.jumbotron h1, +.jumbotron .h1 { + color: inherit; +} + +.jumbotron p { + margin-bottom: 15px; + font-size: 21px; + font-weight: 200; +} + +.jumbotron>hr { + border-top-color: #d5d5d5; +} + +.container .jumbotron { + border-radius: 6px; +} + +.jumbotron .container { + max-width: 100%; +} + +@media screen and (min-width:768px) { + .jumbotron { + padding-top: 48px; + padding-bottom: 48px; + } + + .container .jumbotron { + padding-left: 60px; + padding-right: 60px; + } + + .jumbotron h1, + .jumbotron .h1 { + font-size: 63px; + } +} + +.thumbnail { + display: block; + padding: 4px; + margin-bottom: 20px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: all .2s ease-in-out; + -o-transition: all .2s ease-in-out; + transition: all .2s ease-in-out; +} + +.thumbnail>img, +.thumbnail a>img { + margin-left: auto; + margin-right: auto; +} + +a.thumbnail:hover, +a.thumbnail:focus, +a.thumbnail.active { + border-color: #428bca; +} + +.thumbnail .caption { + padding: 9px; + color: #333; +} + +.alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px; +} + +.alert h4 { + margin-top: 0; + color: inherit; +} + +.alert .alert-link { + font-weight: bold; +} + +.alert>p, +.alert>ul { + margin-bottom: 0; +} + +.alert>p+p { + margin-top: 5px; +} + +.alert-dismissable, +.alert-dismissible { + padding-right: 35px; +} + +.alert-dismissable .close, +.alert-dismissible .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; +} + +.alert-success { + background-color: #dff0d8; + border-color: #d6e9c6; + color: #3c763d; +} + +.alert-success hr { + border-top-color: #c9e2b3; +} + +.alert-success .alert-link { + color: #2b542c; +} + +.alert-info { + background-color: #d9edf7; + border-color: #bce8f1; + color: #31708f; +} + +.alert-info hr { + border-top-color: #a6e1ec; +} + +.alert-info .alert-link { + color: #245269; +} + +.alert-warning { + background-color: #fcf8e3; + border-color: #faebcc; + color: #8a6d3b; +} + +.alert-warning hr { + border-top-color: #f7e1b5; +} + +.alert-warning .alert-link { + color: #66512c; +} + +.alert-danger { + background-color: #f2dede; + border-color: #ebccd1; + color: #a94442; +} + +.alert-danger hr { + border-top-color: #e4b9c0; +} + +.alert-danger .alert-link { + color: #843534; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + + to { + background-position: 0 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + + to { + background-position: 0 0; + } +} + +.progress { + overflow: hidden; + height: 20px; + margin-bottom: 20px; + background-color: #f5f5f5; + border-radius: 4px; + -webkit-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; + line-height: 20px; + color: #fff; + text-align: center; + background-color: #428bca; + -webkit-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-transition: width .6s ease; + -o-transition: width .6s ease; + transition: width .6s ease; +} + +.progress-striped .progress-bar, +.progress-bar-striped { + 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: -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); + background-size: 40px 40px; +} + +.progress.active .progress-bar, +.progress-bar.active { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} + +.progress-bar[aria-valuenow="1"], +.progress-bar[aria-valuenow="2"] { + min-width: 30px; +} + +.progress-bar[aria-valuenow="0"] { + color: #777; + min-width: 30px; + background-color: transparent; + background-image: none; + box-shadow: none; +} + +.progress-bar-success { + background-color: #5cb85c; +} + +.progress-striped .progress-bar-success { + 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: -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-bar-info { + background-color: #5bc0de; +} + +.progress-striped .progress-bar-info { + 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: -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-bar-warning { + background-color: #f0ad4e; +} + +.progress-striped .progress-bar-warning { + 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: -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-bar-danger { + background-color: #d9534f; +} + +.progress-striped .progress-bar-danger { + 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: -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); +} + +.media, +.media-body { + overflow: hidden; + zoom: 1; +} + +.media, +.media .media { + margin-top: 15px; +} + +.media:first-child { + margin-top: 0; +} + +.media-object { + display: block; +} + +.media-heading { + margin: 0 0 5px; +} + +.media>.pull-left { + margin-right: 10px; +} + +.media>.pull-right { + margin-left: 10px; +} + +.media-list { + padding-left: 0; + list-style: none; +} + +.list-group { + margin-bottom: 20px; + padding-left: 0; +} + +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #fff; + border: 1px solid #ddd; +} + +.list-group-item:first-child { + border-top-right-radius: 4px; + border-top-left-radius: 4px; +} + +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} + +.list-group-item>.badge { + float: right; +} + +.list-group-item>.badge+.badge { + margin-right: 5px; +} + +a.list-group-item { + color: #555; +} + +a.list-group-item .list-group-item-heading { + color: #333; +} + +a.list-group-item:hover, +a.list-group-item:focus { + text-decoration: none; + color: #555; + background-color: #f5f5f5; +} + +.list-group-item.disabled, +.list-group-item.disabled:hover, +.list-group-item.disabled:focus { + background-color: #eee; + color: #777; +} + +.list-group-item.disabled .list-group-item-heading, +.list-group-item.disabled:hover .list-group-item-heading, +.list-group-item.disabled:focus .list-group-item-heading { + color: inherit; +} + +.list-group-item.disabled .list-group-item-text, +.list-group-item.disabled:hover .list-group-item-text, +.list-group-item.disabled:focus .list-group-item-text { + color: #777; +} + +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + z-index: 2; + color: #fff; + background-color: #428bca; + border-color: #428bca; +} + +.list-group-item.active .list-group-item-heading, +.list-group-item.active:hover .list-group-item-heading, +.list-group-item.active:focus .list-group-item-heading, +.list-group-item.active .list-group-item-heading>small, +.list-group-item.active:hover .list-group-item-heading>small, +.list-group-item.active:focus .list-group-item-heading>small, +.list-group-item.active .list-group-item-heading>.small, +.list-group-item.active:hover .list-group-item-heading>.small, +.list-group-item.active:focus .list-group-item-heading>.small { + color: inherit; +} + +.list-group-item.active .list-group-item-text, +.list-group-item.active:hover .list-group-item-text, +.list-group-item.active:focus .list-group-item-text { + color: #e1edf7; +} + +.list-group-item-success { + color: #3c763d; + background-color: #dff0d8; +} + +a.list-group-item-success { + color: #3c763d; +} + +a.list-group-item-success .list-group-item-heading { + color: inherit; +} + +a.list-group-item-success:hover, +a.list-group-item-success:focus { + color: #3c763d; + background-color: #d0e9c6; +} + +a.list-group-item-success.active, +a.list-group-item-success.active:hover, +a.list-group-item-success.active:focus { + color: #fff; + background-color: #3c763d; + border-color: #3c763d; +} + +.list-group-item-info { + color: #31708f; + background-color: #d9edf7; +} + +a.list-group-item-info { + color: #31708f; +} + +a.list-group-item-info .list-group-item-heading { + color: inherit; +} + +a.list-group-item-info:hover, +a.list-group-item-info:focus { + color: #31708f; + background-color: #c4e3f3; +} + +a.list-group-item-info.active, +a.list-group-item-info.active:hover, +a.list-group-item-info.active:focus { + color: #fff; + background-color: #31708f; + border-color: #31708f; +} + +.list-group-item-warning { + color: #8a6d3b; + background-color: #fcf8e3; +} + +a.list-group-item-warning { + color: #8a6d3b; +} + +a.list-group-item-warning .list-group-item-heading { + color: inherit; +} + +a.list-group-item-warning:hover, +a.list-group-item-warning:focus { + color: #8a6d3b; + background-color: #faf2cc; +} + +a.list-group-item-warning.active, +a.list-group-item-warning.active:hover, +a.list-group-item-warning.active:focus { + color: #fff; + background-color: #8a6d3b; + border-color: #8a6d3b; +} + +.list-group-item-danger { + color: #a94442; + background-color: #f2dede; +} + +a.list-group-item-danger { + color: #a94442; +} + +a.list-group-item-danger .list-group-item-heading { + color: inherit; +} + +a.list-group-item-danger:hover, +a.list-group-item-danger:focus { + color: #a94442; + background-color: #ebcccc; +} + +a.list-group-item-danger.active, +a.list-group-item-danger.active:hover, +a.list-group-item-danger.active:focus { + color: #fff; + background-color: #a94442; + border-color: #a94442; +} + +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} + +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} + +.panel { + margin-bottom: 20px; + background-color: #fff; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.05); + box-shadow: 0 1px 1px rgba(0,0,0,0.05); +} + +.panel-body { + padding: 15px; +} + +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-right-radius: 3px; + border-top-left-radius: 3px; +} + +.panel-heading>.dropdown .dropdown-toggle { + color: inherit; +} + +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + color: inherit; +} + +.panel-title>a { + color: inherit; +} + +.panel-footer { + padding: 10px 15px; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +.panel>.list-group { + margin-bottom: 0; +} + +.panel>.list-group .list-group-item { + border-width: 1px 0; + border-radius: 0; +} + +.panel>.list-group:first-child .list-group-item:first-child { + border-top: 0; + border-top-right-radius: 3px; + border-top-left-radius: 3px; +} + +.panel>.list-group:last-child .list-group-item:last-child { + border-bottom: 0; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +.panel-heading+.list-group .list-group-item:first-child { + border-top-width: 0; +} + +.list-group+.panel-footer { + border-top-width: 0; +} + +.panel>.table, +.panel>.table-responsive>.table, +.panel>.panel-collapse>.table { + margin-bottom: 0; +} + +.panel>.table:first-child, +.panel>.table-responsive:first-child>.table:first-child { + border-top-right-radius: 3px; + border-top-left-radius: 3px; +} + +.panel>.table:first-child>thead:first-child>tr:first-child td:first-child, +.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child, +.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child, +.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child, +.panel>.table:first-child>thead:first-child>tr:first-child th:first-child, +.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child, +.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child, +.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child { + border-top-left-radius: 3px; +} + +.panel>.table:first-child>thead:first-child>tr:first-child td:last-child, +.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child, +.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child, +.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child, +.panel>.table:first-child>thead:first-child>tr:first-child th:last-child, +.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child, +.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child, +.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child { + border-top-right-radius: 3px; +} + +.panel>.table:last-child, +.panel>.table-responsive:last-child>.table:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child, +.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child, +.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child, +.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child, +.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child, +.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child, +.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child, +.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child { + border-bottom-left-radius: 3px; +} + +.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child, +.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child, +.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child, +.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child, +.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child, +.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child, +.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child, +.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child { + border-bottom-right-radius: 3px; +} + +.panel>.panel-body+.table, +.panel>.panel-body+.table-responsive { + border-top: 1px solid #ddd; +} + +.panel>.table>tbody:first-child>tr:first-child th, +.panel>.table>tbody:first-child>tr:first-child td { + border-top: 0; +} + +.panel>.table-bordered, +.panel>.table-responsive>.table-bordered { + border: 0; +} + +.panel>.table-bordered>thead>tr>th:first-child, +.panel>.table-responsive>.table-bordered>thead>tr>th:first-child, +.panel>.table-bordered>tbody>tr>th:first-child, +.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child, +.panel>.table-bordered>tfoot>tr>th:first-child, +.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child, +.panel>.table-bordered>thead>tr>td:first-child, +.panel>.table-responsive>.table-bordered>thead>tr>td:first-child, +.panel>.table-bordered>tbody>tr>td:first-child, +.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child, +.panel>.table-bordered>tfoot>tr>td:first-child, +.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child { + border-left: 0; +} + +.panel>.table-bordered>thead>tr>th:last-child, +.panel>.table-responsive>.table-bordered>thead>tr>th:last-child, +.panel>.table-bordered>tbody>tr>th:last-child, +.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child, +.panel>.table-bordered>tfoot>tr>th:last-child, +.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child, +.panel>.table-bordered>thead>tr>td:last-child, +.panel>.table-responsive>.table-bordered>thead>tr>td:last-child, +.panel>.table-bordered>tbody>tr>td:last-child, +.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child, +.panel>.table-bordered>tfoot>tr>td:last-child, +.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child { + border-right: 0; +} + +.panel>.table-bordered>thead>tr:first-child>td, +.panel>.table-responsive>.table-bordered>thead>tr:first-child>td, +.panel>.table-bordered>tbody>tr:first-child>td, +.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td, +.panel>.table-bordered>thead>tr:first-child>th, +.panel>.table-responsive>.table-bordered>thead>tr:first-child>th, +.panel>.table-bordered>tbody>tr:first-child>th, +.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th { + border-bottom: 0; +} + +.panel>.table-bordered>tbody>tr:last-child>td, +.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td, +.panel>.table-bordered>tfoot>tr:last-child>td, +.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td, +.panel>.table-bordered>tbody>tr:last-child>th, +.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th, +.panel>.table-bordered>tfoot>tr:last-child>th, +.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th { + border-bottom: 0; +} + +.panel>.table-responsive { + border: 0; + margin-bottom: 0; +} + +.panel-group { + margin-bottom: 20px; +} + +.panel-group .panel { + margin-bottom: 0; + border-radius: 4px; +} + +.panel-group .panel+.panel { + margin-top: 5px; +} + +.panel-group .panel-heading { + border-bottom: 0; +} + +.panel-group .panel-heading+.panel-collapse>.panel-body { + border-top: 1px solid #ddd; +} + +.panel-group .panel-footer { + border-top: 0; +} + +.panel-group .panel-footer+.panel-collapse .panel-body { + border-bottom: 1px solid #ddd; +} + +.panel-default { + border-color: #ddd; +} + +.panel-default>.panel-heading { + color: #333; + background-color: #f5f5f5; + border-color: #ddd; +} + +.panel-default>.panel-heading+.panel-collapse>.panel-body { + border-top-color: #ddd; +} + +.panel-default>.panel-heading .badge { + color: #f5f5f5; + background-color: #333; +} + +.panel-default>.panel-footer+.panel-collapse>.panel-body { + border-bottom-color: #ddd; +} + +.panel-primary { + border-color: #428bca; +} + +.panel-primary>.panel-heading { + color: #fff; + background-color: #428bca; + border-color: #428bca; +} + +.panel-primary>.panel-heading+.panel-collapse>.panel-body { + border-top-color: #428bca; +} + +.panel-primary>.panel-heading .badge { + color: #428bca; + background-color: #fff; +} + +.panel-primary>.panel-footer+.panel-collapse>.panel-body { + border-bottom-color: #428bca; +} + +.panel-success { + border-color: #d6e9c6; +} + +.panel-success>.panel-heading { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.panel-success>.panel-heading+.panel-collapse>.panel-body { + border-top-color: #d6e9c6; +} + +.panel-success>.panel-heading .badge { + color: #dff0d8; + background-color: #3c763d; +} + +.panel-success>.panel-footer+.panel-collapse>.panel-body { + border-bottom-color: #d6e9c6; +} + +.panel-info { + border-color: #bce8f1; +} + +.panel-info>.panel-heading { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.panel-info>.panel-heading+.panel-collapse>.panel-body { + border-top-color: #bce8f1; +} + +.panel-info>.panel-heading .badge { + color: #d9edf7; + background-color: #31708f; +} + +.panel-info>.panel-footer+.panel-collapse>.panel-body { + border-bottom-color: #bce8f1; +} + +.panel-warning { + border-color: #faebcc; +} + +.panel-warning>.panel-heading { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; +} + +.panel-warning>.panel-heading+.panel-collapse>.panel-body { + border-top-color: #faebcc; +} + +.panel-warning>.panel-heading .badge { + color: #fcf8e3; + background-color: #8a6d3b; +} + +.panel-warning>.panel-footer+.panel-collapse>.panel-body { + border-bottom-color: #faebcc; +} + +.panel-danger { + border-color: #ebccd1; +} + +.panel-danger>.panel-heading { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; +} + +.panel-danger>.panel-heading+.panel-collapse>.panel-body { + border-top-color: #ebccd1; +} + +.panel-danger>.panel-heading .badge { + color: #f2dede; + background-color: #a94442; +} + +.panel-danger>.panel-footer+.panel-collapse>.panel-body { + border-bottom-color: #ebccd1; +} + +.embed-responsive { + position: relative; + display: block; + height: 0; + padding: 0; + overflow: hidden; +} + +.embed-responsive .embed-responsive-item, +.embed-responsive iframe, +.embed-responsive embed, +.embed-responsive object { + position: absolute; + top: 0; + left: 0; + bottom: 0; + height: 100%; + width: 100%; + border: 0; +} + +.embed-responsive.embed-responsive-16by9 { + padding-bottom: 56.25%; +} + +.embed-responsive.embed-responsive-4by3 { + padding-bottom: 75%; +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: 4px; + -webkit-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-lg { + padding: 24px; + border-radius: 6px; +} + +.well-sm { + padding: 9px; + border-radius: 3px; +} + +.close { + float: right; + font-size: 21px; + font-weight: bold; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + opacity: .2; + filter: alpha(opacity=20); +} + +.close:hover, +.close:focus { + color: #000; + text-decoration: none; + cursor: pointer; + opacity: .5; + filter: alpha(opacity=50); +} + +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} + +.modal-open { + overflow: hidden; +} + +.modal { + display: none; + overflow: hidden; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + -webkit-overflow-scrolling: touch; + outline: 0; +} + +.modal.fade .modal-dialog { + -webkit-transform: translate3d(0,-25%,0); + transform: translate3d(0,-25%,0); + -webkit-transition: -webkit-transform .3s ease-out; + -moz-transition: -moz-transform .3s ease-out; + -o-transition: -o-transform .3s ease-out; + transition: transform .3s ease-out; +} + +.modal.in .modal-dialog { + -webkit-transform: translate3d(0,0,0); + transform: translate3d(0,0,0); +} + +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} + +.modal-dialog { + position: relative; + width: auto; + margin: 10px; +} + +.modal-content { + position: relative; + background-color: #fff; + border: 1px solid #999; + border: 1px solid rgba(0,0,0,0.2); + border-radius: 6px; + -webkit-box-shadow: 0 3px 9px rgba(0,0,0,0.5); + box-shadow: 0 3px 9px rgba(0,0,0,0.5); + background-clip: padding-box; + outline: 0; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000; +} + +.modal-backdrop.fade { + opacity: 0; + filter: alpha(opacity=0); +} + +.modal-backdrop.in { + opacity: .5; + filter: alpha(opacity=50); +} + +.modal-header { + padding: 15px; + border-bottom: 1px solid #e5e5e5; + min-height: 16.42857143px; +} + +.modal-header .close { + margin-top: -2px; +} + +.modal-title { + margin: 0; + line-height: 1.42857143; +} + +.modal-body { + position: relative; + padding: 15px; +} + +.modal-footer { + padding: 15px; + text-align: right; + border-top: 1px solid #e5e5e5; +} + +.modal-footer .btn+.btn { + margin-left: 5px; + margin-bottom: 0; +} + +.modal-footer .btn-group .btn+.btn { + margin-left: -1px; +} + +.modal-footer .btn-block+.btn-block { + margin-left: 0; +} + +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} + +@media (min-width:768px) { + .modal-dialog { + width: 600px; + margin: 30px auto; + } + + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0,0,0,0.5); + box-shadow: 0 5px 15px rgba(0,0,0,0.5); + } + + .modal-sm { + width: 300px; + } +} + +@media (min-width:992px) { + .modal-lg { + width: 900px; + } +} + +.tooltip { + position: absolute; + z-index: 1070; + display: block; + visibility: visible; + font-size: 12px; + line-height: 1.4; + opacity: 0; + filter: alpha(opacity=0); +} + +.tooltip.in { + opacity: .9; + filter: alpha(opacity=90); +} + +.tooltip.top { + margin-top: -3px; + padding: 5px 0; +} + +.tooltip.right { + margin-left: 3px; + padding: 0 5px; +} + +.tooltip.bottom { + margin-top: 3px; + padding: 5px 0; +} + +.tooltip.left { + margin-left: -3px; + padding: 0 5px; +} + +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #fff; + text-align: center; + text-decoration: none; + background-color: #000; + 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-width: 5px 5px 0; + border-top-color: #000; +} + +.tooltip.top-left .tooltip-arrow { + bottom: 0; + left: 5px; + border-width: 5px 5px 0; + border-top-color: #000; +} + +.tooltip.top-right .tooltip-arrow { + bottom: 0; + right: 5px; + border-width: 5px 5px 0; + border-top-color: #000; +} + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000; +} + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000; +} + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} + +.tooltip.bottom-left .tooltip-arrow { + top: 0; + left: 5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} + +.tooltip.bottom-right .tooltip-arrow { + top: 0; + right: 5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: none; + max-width: 276px; + padding: 1px; + text-align: left; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0,0,0,0.2); + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0,0,0,0.2); + box-shadow: 0 5px 10px rgba(0,0,0,0.2); + white-space: normal; +} + +.popover.top { + margin-top: -10px; +} + +.popover.right { + margin-left: 10px; +} + +.popover.bottom { + margin-top: 10px; +} + +.popover.left { + margin-left: -10px; +} + +.popover-title { + margin: 0; + padding: 8px 14px; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; +} + +.popover-content { + padding: 9px 14px; +} + +.popover>.arrow, +.popover>.arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.popover>.arrow { + border-width: 11px; +} + +.popover>.arrow:after { + border-width: 10px; + content: ""; +} + +.popover.top>.arrow { + left: 50%; + margin-left: -11px; + border-bottom-width: 0; + border-top-color: #999; + border-top-color: rgba(0,0,0,0.25); + bottom: -11px; +} + +.popover.top>.arrow:after { + content: " "; + bottom: 1px; + margin-left: -10px; + border-bottom-width: 0; + border-top-color: #fff; +} + +.popover.right>.arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-left-width: 0; + border-right-color: #999; + border-right-color: rgba(0,0,0,0.25); +} + +.popover.right>.arrow:after { + content: " "; + left: 1px; + bottom: -10px; + border-left-width: 0; + border-right-color: #fff; +} + +.popover.bottom>.arrow { + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #999; + border-bottom-color: rgba(0,0,0,0.25); + top: -11px; +} + +.popover.bottom>.arrow:after { + content: " "; + top: 1px; + margin-left: -10px; + border-top-width: 0; + border-bottom-color: #fff; +} + +.popover.left>.arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #999; + border-left-color: rgba(0,0,0,0.25); +} + +.popover.left>.arrow:after { + content: " "; + right: 1px; + border-right-width: 0; + border-left-color: #fff; + bottom: -10px; +} + +.carousel { + position: relative; +} + +.carousel-inner { + position: relative; + overflow: hidden; + width: 100%; +} + +.carousel-inner>.item { + display: none; + position: relative; + -webkit-transition: .6s ease-in-out left; + -o-transition: .6s ease-in-out left; + transition: .6s ease-in-out left; +} + +.carousel-inner>.item>img, +.carousel-inner>.item>a>img { + line-height: 1; +} + +.carousel-inner>.active, +.carousel-inner>.next, +.carousel-inner>.prev { + display: block; +} + +.carousel-inner>.active { + left: 0; +} + +.carousel-inner>.next, +.carousel-inner>.prev { + position: absolute; + top: 0; + width: 100%; +} + +.carousel-inner>.next { + left: 100%; +} + +.carousel-inner>.prev { + left: -100%; +} + +.carousel-inner>.next.left, +.carousel-inner>.prev.right { + left: 0; +} + +.carousel-inner>.active.left { + left: -100%; +} + +.carousel-inner>.active.right { + left: 100%; +} + +.carousel-control { + position: absolute; + top: 0; + left: 0; + bottom: 0; + width: 15%; + opacity: .5; + filter: alpha(opacity=50); + font-size: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0,0,0,0.6); +} + +.carousel-control.left { + background-image: -webkit-linear-gradient(left,rgba(0,0,0,0.5) 0,rgba(0,0,0,0.0001) 100%); + background-image: -o-linear-gradient(left,rgba(0,0,0,0.5) 0,rgba(0,0,0,0.0001) 100%); + background-image: linear-gradient(to right,rgba(0,0,0,0.5) 0,rgba(0,0,0,0.0001) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000',endColorstr='#00000000',GradientType=1); +} + +.carousel-control.right { + left: auto; + right: 0; + background-image: -webkit-linear-gradient(left,rgba(0,0,0,0.0001) 0,rgba(0,0,0,0.5) 100%); + background-image: -o-linear-gradient(left,rgba(0,0,0,0.0001) 0,rgba(0,0,0,0.5) 100%); + background-image: linear-gradient(to right,rgba(0,0,0,0.0001) 0,rgba(0,0,0,0.5) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000',endColorstr='#80000000',GradientType=1); +} + +.carousel-control:hover, +.carousel-control:focus { + outline: 0; + color: #fff; + text-decoration: none; + opacity: .9; + filter: alpha(opacity=90); +} + +.carousel-control .icon-prev, +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-left, +.carousel-control .glyphicon-chevron-right { + position: absolute; + top: 50%; + z-index: 5; + display: inline-block; +} + +.carousel-control .icon-prev, +.carousel-control .glyphicon-chevron-left { + left: 50%; + margin-left: -10px; +} + +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-right { + right: 50%; + margin-right: -10px; +} + +.carousel-control .icon-prev, +.carousel-control .icon-next { + width: 20px; + height: 20px; + margin-top: -10px; + font-family: serif; +} + +.carousel-control .icon-prev:before { + content: '\2039'; +} + +.carousel-control .icon-next:before { + content: '\203a'; +} + +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + margin-left: -30%; + padding-left: 0; + list-style: none; + text-align: center; +} + +.carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + border: 1px solid #fff; + border-radius: 10px; + cursor: pointer; + background-color: #000 \9; + background-color: rgba(0,0,0,0); +} + +.carousel-indicators .active { + margin: 0; + width: 12px; + height: 12px; + background-color: #fff; +} + +.carousel-caption { + position: absolute; + left: 15%; + right: 15%; + bottom: 20px; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0,0,0,0.6); +} + +.carousel-caption .btn { + text-shadow: none; +} + +@media screen and (min-width:768px) { + .carousel-control .glyphicon-chevron-left, + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-prev, + .carousel-control .icon-next { + width: 30px; + height: 30px; + margin-top: -15px; + font-size: 30px; + } + + .carousel-control .glyphicon-chevron-left, + .carousel-control .icon-prev { + margin-left: -15px; + } + + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-next { + margin-right: -15px; + } + + .carousel-caption { + left: 20%; + right: 20%; + padding-bottom: 30px; + } + + .carousel-indicators { + bottom: 20px; + } +} + +.clearfix:before, +.clearfix:after, +.dl-horizontal dd:before, +.dl-horizontal dd:after, +.container:before, +.container:after, +.container-fluid:before, +.container-fluid:after, +.row:before, +.row:after, +.form-horizontal .form-group:before, +.form-horizontal .form-group:after, +.btn-toolbar:before, +.btn-toolbar:after, +.btn-group-vertical>.btn-group:before, +.btn-group-vertical>.btn-group:after, +.nav:before, +.nav:after, +.navbar:before, +.navbar:after, +.navbar-header:before, +.navbar-header:after, +.navbar-collapse:before, +.navbar-collapse:after, +.pager:before, +.pager:after, +.panel-body:before, +.panel-body:after, +.modal-footer:before, +.modal-footer:after { + content: " "; + display: table; +} + +.clearfix:after, +.dl-horizontal dd:after, +.container:after, +.container-fluid:after, +.row:after, +.form-horizontal .form-group:after, +.btn-toolbar:after, +.btn-group-vertical>.btn-group:after, +.nav:after, +.navbar:after, +.navbar-header:after, +.navbar-collapse:after, +.pager:after, +.panel-body:after, +.modal-footer:after { + clear: both; +} + +.center-block { + display: block; + margin-left: auto; + margin-right: auto; +} + +.pull-right { + float: right !important; +} + +.pull-left { + float: left !important; +} + +.hide { + display: none !important; +} + +.show { + display: block !important; +} + +.invisible { + visibility: hidden; +} + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.hidden { + display: none !important; + visibility: hidden !important; +} + +.affix { + position: fixed; + -webkit-transform: translate3d(0,0,0); + transform: translate3d(0,0,0); +} + +@-ms-viewport { + width: device-width; +} + +.visible-xs, +.visible-sm, +.visible-md, +.visible-lg { + display: none !important; +} + +.visible-xs-block, +.visible-xs-inline, +.visible-xs-inline-block, +.visible-sm-block, +.visible-sm-inline, +.visible-sm-inline-block, +.visible-md-block, +.visible-md-inline, +.visible-md-inline-block, +.visible-lg-block, +.visible-lg-inline, +.visible-lg-inline-block { + display: none !important; +} + +@media (max-width:767px) { + .visible-xs { + display: block !important; + } + + table.visible-xs { + display: table; + } + + tr.visible-xs { + display: table-row !important; + } + + th.visible-xs, + td.visible-xs { + display: table-cell !important; + } +} + +@media (max-width:767px) { + .visible-xs-block { + display: block !important; + } +} + +@media (max-width:767px) { + .visible-xs-inline { + display: inline !important; + } +} + +@media (max-width:767px) { + .visible-xs-inline-block { + display: inline-block !important; + } +} + +@media (min-width:768px) and (max-width:991px) { + .visible-sm { + display: block !important; + } + + table.visible-sm { + display: table; + } + + tr.visible-sm { + display: table-row !important; + } + + th.visible-sm, + td.visible-sm { + display: table-cell !important; + } +} + +@media (min-width:768px) and (max-width:991px) { + .visible-sm-block { + display: block !important; + } +} + +@media (min-width:768px) and (max-width:991px) { + .visible-sm-inline { + display: inline !important; + } +} + +@media (min-width:768px) and (max-width:991px) { + .visible-sm-inline-block { + display: inline-block !important; + } +} + +@media (min-width:992px) and (max-width:1199px) { + .visible-md { + display: block !important; + } + + table.visible-md { + display: table; + } + + tr.visible-md { + display: table-row !important; + } + + th.visible-md, + td.visible-md { + display: table-cell !important; + } +} + +@media (min-width:992px) and (max-width:1199px) { + .visible-md-block { + display: block !important; + } +} + +@media (min-width:992px) and (max-width:1199px) { + .visible-md-inline { + display: inline !important; + } +} + +@media (min-width:992px) and (max-width:1199px) { + .visible-md-inline-block { + display: inline-block !important; + } +} + +@media (min-width:1200px) { + .visible-lg { + display: block !important; + } + + table.visible-lg { + display: table; + } + + tr.visible-lg { + display: table-row !important; + } + + th.visible-lg, + td.visible-lg { + display: table-cell !important; + } +} + +@media (min-width:1200px) { + .visible-lg-block { + display: block !important; + } +} + +@media (min-width:1200px) { + .visible-lg-inline { + display: inline !important; + } +} + +@media (min-width:1200px) { + .visible-lg-inline-block { + display: inline-block !important; + } +} + +@media (max-width:767px) { + .hidden-xs { + display: none !important; + } +} + +@media (min-width:768px) and (max-width:991px) { + .hidden-sm { + display: none !important; + } +} + +@media (min-width:992px) and (max-width:1199px) { + .hidden-md { + display: none !important; + } +} + +@media (min-width:1200px) { + .hidden-lg { + display: none !important; + } +} + +.visible-print { + display: none !important; +} + +@media print { + .visible-print { + display: block !important; + } + + table.visible-print { + display: table; + } + + tr.visible-print { + display: table-row !important; + } + + th.visible-print, + td.visible-print { + display: table-cell !important; + } +} + +.visible-print-block { + display: none !important; +} + +@media print { + .visible-print-block { + display: block !important; + } +} + +.visible-print-inline { + display: none !important; +} + +@media print { + .visible-print-inline { + display: inline !important; + } +} + +.visible-print-inline-block { + display: none !important; +} + +@media print { + .visible-print-inline-block { + display: inline-block !important; + } +} + +@media print { + .hidden-print { + display: none !important; + } +} + +/*! + * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ + +@font-face { + font-family: 'FontAwesome'; + src: url(data:font/woff;base64,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) format('woff'); + font-weight: normal; + font-style: normal; +} + +.fa { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.fa-lg { + font-size: 1.33333333em; + line-height: .75em; + vertical-align: -15%; +} + +.fa-2x { + font-size: 2em; +} + +.fa-3x { + font-size: 3em; +} + +.fa-4x { + font-size: 4em; +} + +.fa-5x { + font-size: 5em; +} + +.fa-fw { + width: 1.28571429em; + text-align: center; +} + +.fa-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; +} + +.fa-ul>li { + position: relative; +} + +.fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: .14285714em; + text-align: center; +} + +.fa-li.fa-lg { + left: -1.85714286em; +} + +.fa-border { + padding: .2em .25em .15em; + border: solid .08em #eee; + border-radius: .1em; +} + +.pull-right { + float: right; +} + +.pull-left { + float: left; +} + +.fa.pull-left { + margin-right: .3em; +} + +.fa.pull-right { + margin-left: .3em; +} + +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0); + transform: rotate(0); + } + + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0); + transform: rotate(0); + } + + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +.fa-rotate-90 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} + +.fa-rotate-180 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} + +.fa-rotate-270 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} + +.fa-flip-horizontal { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0,mirror=1); + -webkit-transform: scale(-1,1); + -ms-transform: scale(-1,1); + transform: scale(-1,1); +} + +.fa-flip-vertical { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2,mirror=1); + -webkit-transform: scale(1,-1); + -ms-transform: scale(1,-1); + transform: scale(1,-1); +} + +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none; +} + +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} + +.fa-stack-1x, +.fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} + +.fa-stack-1x { + line-height: inherit; +} + +.fa-stack-2x { + font-size: 2em; +} + +.fa-inverse { + color: #fff; +} + +.fa-glass:before { + content: "\f000"; +} + +.fa-music:before { + content: "\f001"; +} + +.fa-search:before { + content: "\f002"; +} + +.fa-envelope-o:before { + content: "\f003"; +} + +.fa-heart:before { + content: "\f004"; +} + +.fa-star:before { + content: "\f005"; +} + +.fa-star-o:before { + content: "\f006"; +} + +.fa-user:before { + content: "\f007"; +} + +.fa-film:before { + content: "\f008"; +} + +.fa-th-large:before { + content: "\f009"; +} + +.fa-th:before { + content: "\f00a"; +} + +.fa-th-list:before { + content: "\f00b"; +} + +.fa-check:before { + content: "\f00c"; +} + +.fa-remove:before, +.fa-close:before, +.fa-times:before { + content: "\f00d"; +} + +.fa-search-plus:before { + content: "\f00e"; +} + +.fa-search-minus:before { + content: "\f010"; +} + +.fa-power-off:before { + content: "\f011"; +} + +.fa-signal:before { + content: "\f012"; +} + +.fa-gear:before, +.fa-cog:before { + content: "\f013"; +} + +.fa-trash-o:before { + content: "\f014"; +} + +.fa-home:before { + content: "\f015"; +} + +.fa-file-o:before { + content: "\f016"; +} + +.fa-clock-o:before { + content: "\f017"; +} + +.fa-road:before { + content: "\f018"; +} + +.fa-download:before { + content: "\f019"; +} + +.fa-arrow-circle-o-down:before { + content: "\f01a"; +} + +.fa-arrow-circle-o-up:before { + content: "\f01b"; +} + +.fa-inbox:before { + content: "\f01c"; +} + +.fa-play-circle-o:before { + content: "\f01d"; +} + +.fa-rotate-right:before, +.fa-repeat:before { + content: "\f01e"; +} + +.fa-refresh:before { + content: "\f021"; +} + +.fa-list-alt:before { + content: "\f022"; +} + +.fa-lock:before { + content: "\f023"; +} + +.fa-flag:before { + content: "\f024"; +} + +.fa-headphones:before { + content: "\f025"; +} + +.fa-volume-off:before { + content: "\f026"; +} + +.fa-volume-down:before { + content: "\f027"; +} + +.fa-volume-up:before { + content: "\f028"; +} + +.fa-qrcode:before { + content: "\f029"; +} + +.fa-barcode:before { + content: "\f02a"; +} + +.fa-tag:before { + content: "\f02b"; +} + +.fa-tags:before { + content: "\f02c"; +} + +.fa-book:before { + content: "\f02d"; +} + +.fa-bookmark:before { + content: "\f02e"; +} + +.fa-print:before { + content: "\f02f"; +} + +.fa-camera:before { + content: "\f030"; +} + +.fa-font:before { + content: "\f031"; +} + +.fa-bold:before { + content: "\f032"; +} + +.fa-italic:before { + content: "\f033"; +} + +.fa-text-height:before { + content: "\f034"; +} + +.fa-text-width:before { + content: "\f035"; +} + +.fa-align-left:before { + content: "\f036"; +} + +.fa-align-center:before { + content: "\f037"; +} + +.fa-align-right:before { + content: "\f038"; +} + +.fa-align-justify:before { + content: "\f039"; +} + +.fa-list:before { + content: "\f03a"; +} + +.fa-dedent:before, +.fa-outdent:before { + content: "\f03b"; +} + +.fa-indent:before { + content: "\f03c"; +} + +.fa-video-camera:before { + content: "\f03d"; +} + +.fa-photo:before, +.fa-image:before, +.fa-picture-o:before { + content: "\f03e"; +} + +.fa-pencil:before { + content: "\f040"; +} + +.fa-map-marker:before { + content: "\f041"; +} + +.fa-adjust:before { + content: "\f042"; +} + +.fa-tint:before { + content: "\f043"; +} + +.fa-edit:before, +.fa-pencil-square-o:before { + content: "\f044"; +} + +.fa-share-square-o:before { + content: "\f045"; +} + +.fa-check-square-o:before { + content: "\f046"; +} + +.fa-arrows:before { + content: "\f047"; +} + +.fa-step-backward:before { + content: "\f048"; +} + +.fa-fast-backward:before { + content: "\f049"; +} + +.fa-backward:before { + content: "\f04a"; +} + +.fa-play:before { + content: "\f04b"; +} + +.fa-pause:before { + content: "\f04c"; +} + +.fa-stop:before { + content: "\f04d"; +} + +.fa-forward:before { + content: "\f04e"; +} + +.fa-fast-forward:before { + content: "\f050"; +} + +.fa-step-forward:before { + content: "\f051"; +} + +.fa-eject:before { + content: "\f052"; +} + +.fa-chevron-left:before { + content: "\f053"; +} + +.fa-chevron-right:before { + content: "\f054"; +} + +.fa-plus-circle:before { + content: "\f055"; +} + +.fa-minus-circle:before { + content: "\f056"; +} + +.fa-times-circle:before { + content: "\f057"; +} + +.fa-check-circle:before { + content: "\f058"; +} + +.fa-question-circle:before { + content: "\f059"; +} + +.fa-info-circle:before { + content: "\f05a"; +} + +.fa-crosshairs:before { + content: "\f05b"; +} + +.fa-times-circle-o:before { + content: "\f05c"; +} + +.fa-check-circle-o:before { + content: "\f05d"; +} + +.fa-ban:before { + content: "\f05e"; +} + +.fa-arrow-left:before { + content: "\f060"; +} + +.fa-arrow-right:before { + content: "\f061"; +} + +.fa-arrow-up:before { + content: "\f062"; +} + +.fa-arrow-down:before { + content: "\f063"; +} + +.fa-mail-forward:before, +.fa-share:before { + content: "\f064"; +} + +.fa-expand:before { + content: "\f065"; +} + +.fa-compress:before { + content: "\f066"; +} + +.fa-plus:before { + content: "\f067"; +} + +.fa-minus:before { + content: "\f068"; +} + +.fa-asterisk:before { + content: "\f069"; +} + +.fa-exclamation-circle:before { + content: "\f06a"; +} + +.fa-gift:before { + content: "\f06b"; +} + +.fa-leaf:before { + content: "\f06c"; +} + +.fa-fire:before { + content: "\f06d"; +} + +.fa-eye:before { + content: "\f06e"; +} + +.fa-eye-slash:before { + content: "\f070"; +} + +.fa-warning:before, +.fa-exclamation-triangle:before { + content: "\f071"; +} + +.fa-plane:before { + content: "\f072"; +} + +.fa-calendar:before { + content: "\f073"; +} + +.fa-random:before { + content: "\f074"; +} + +.fa-comment:before { + content: "\f075"; +} + +.fa-magnet:before { + content: "\f076"; +} + +.fa-chevron-up:before { + content: "\f077"; +} + +.fa-chevron-down:before { + content: "\f078"; +} + +.fa-retweet:before { + content: "\f079"; +} + +.fa-shopping-cart:before { + content: "\f07a"; +} + +.fa-folder:before { + content: "\f07b"; +} + +.fa-folder-open:before { + content: "\f07c"; +} + +.fa-arrows-v:before { + content: "\f07d"; +} + +.fa-arrows-h:before { + content: "\f07e"; +} + +.fa-bar-chart-o:before, +.fa-bar-chart:before { + content: "\f080"; +} + +.fa-twitter-square:before { + content: "\f081"; +} + +.fa-facebook-square:before { + content: "\f082"; +} + +.fa-camera-retro:before { + content: "\f083"; +} + +.fa-key:before { + content: "\f084"; +} + +.fa-gears:before, +.fa-cogs:before { + content: "\f085"; +} + +.fa-comments:before { + content: "\f086"; +} + +.fa-thumbs-o-up:before { + content: "\f087"; +} + +.fa-thumbs-o-down:before { + content: "\f088"; +} + +.fa-star-half:before { + content: "\f089"; +} + +.fa-heart-o:before { + content: "\f08a"; +} + +.fa-sign-out:before { + content: "\f08b"; +} + +.fa-linkedin-square:before { + content: "\f08c"; +} + +.fa-thumb-tack:before { + content: "\f08d"; +} + +.fa-external-link:before { + content: "\f08e"; +} + +.fa-sign-in:before { + content: "\f090"; +} + +.fa-trophy:before { + content: "\f091"; +} + +.fa-github-square:before { + content: "\f092"; +} + +.fa-upload:before { + content: "\f093"; +} + +.fa-lemon-o:before { + content: "\f094"; +} + +.fa-phone:before { + content: "\f095"; +} + +.fa-square-o:before { + content: "\f096"; +} + +.fa-bookmark-o:before { + content: "\f097"; +} + +.fa-phone-square:before { + content: "\f098"; +} + +.fa-twitter:before { + content: "\f099"; +} + +.fa-facebook:before { + content: "\f09a"; +} + +.fa-github:before { + content: "\f09b"; +} + +.fa-unlock:before { + content: "\f09c"; +} + +.fa-credit-card:before { + content: "\f09d"; +} + +.fa-rss:before { + content: "\f09e"; +} + +.fa-hdd-o:before { + content: "\f0a0"; +} + +.fa-bullhorn:before { + content: "\f0a1"; +} + +.fa-bell:before { + content: "\f0f3"; +} + +.fa-certificate:before { + content: "\f0a3"; +} + +.fa-hand-o-right:before { + content: "\f0a4"; +} + +.fa-hand-o-left:before { + content: "\f0a5"; +} + +.fa-hand-o-up:before { + content: "\f0a6"; +} + +.fa-hand-o-down:before { + content: "\f0a7"; +} + +.fa-arrow-circle-left:before { + content: "\f0a8"; +} + +.fa-arrow-circle-right:before { + content: "\f0a9"; +} + +.fa-arrow-circle-up:before { + content: "\f0aa"; +} + +.fa-arrow-circle-down:before { + content: "\f0ab"; +} + +.fa-globe:before { + content: "\f0ac"; +} + +.fa-wrench:before { + content: "\f0ad"; +} + +.fa-tasks:before { + content: "\f0ae"; +} + +.fa-filter:before { + content: "\f0b0"; +} + +.fa-briefcase:before { + content: "\f0b1"; +} + +.fa-arrows-alt:before { + content: "\f0b2"; +} + +.fa-group:before, +.fa-users:before { + content: "\f0c0"; +} + +.fa-chain:before, +.fa-link:before { + content: "\f0c1"; +} + +.fa-cloud:before { + content: "\f0c2"; +} + +.fa-flask:before { + content: "\f0c3"; +} + +.fa-cut:before, +.fa-scissors:before { + content: "\f0c4"; +} + +.fa-copy:before, +.fa-files-o:before { + content: "\f0c5"; +} + +.fa-paperclip:before { + content: "\f0c6"; +} + +.fa-save:before, +.fa-floppy-o:before { + content: "\f0c7"; +} + +.fa-square:before { + content: "\f0c8"; +} + +.fa-navicon:before, +.fa-reorder:before, +.fa-bars:before { + content: "\f0c9"; +} + +.fa-list-ul:before { + content: "\f0ca"; +} + +.fa-list-ol:before { + content: "\f0cb"; +} + +.fa-strikethrough:before { + content: "\f0cc"; +} + +.fa-underline:before { + content: "\f0cd"; +} + +.fa-table:before { + content: "\f0ce"; +} + +.fa-magic:before { + content: "\f0d0"; +} + +.fa-truck:before { + content: "\f0d1"; +} + +.fa-pinterest:before { + content: "\f0d2"; +} + +.fa-pinterest-square:before { + content: "\f0d3"; +} + +.fa-google-plus-square:before { + content: "\f0d4"; +} + +.fa-google-plus:before { + content: "\f0d5"; +} + +.fa-money:before { + content: "\f0d6"; +} + +.fa-caret-down:before { + content: "\f0d7"; +} + +.fa-caret-up:before { + content: "\f0d8"; +} + +.fa-caret-left:before { + content: "\f0d9"; +} + +.fa-caret-right:before { + content: "\f0da"; +} + +.fa-columns:before { + content: "\f0db"; +} + +.fa-unsorted:before, +.fa-sort:before { + content: "\f0dc"; +} + +.fa-sort-down:before, +.fa-sort-desc:before { + content: "\f0dd"; +} + +.fa-sort-up:before, +.fa-sort-asc:before { + content: "\f0de"; +} + +.fa-envelope:before { + content: "\f0e0"; +} + +.fa-linkedin:before { + content: "\f0e1"; +} + +.fa-rotate-left:before, +.fa-undo:before { + content: "\f0e2"; +} + +.fa-legal:before, +.fa-gavel:before { + content: "\f0e3"; +} + +.fa-dashboard:before, +.fa-tachometer:before { + content: "\f0e4"; +} + +.fa-comment-o:before { + content: "\f0e5"; +} + +.fa-comments-o:before { + content: "\f0e6"; +} + +.fa-flash:before, +.fa-bolt:before { + content: "\f0e7"; +} + +.fa-sitemap:before { + content: "\f0e8"; +} + +.fa-umbrella:before { + content: "\f0e9"; +} + +.fa-paste:before, +.fa-clipboard:before { + content: "\f0ea"; +} + +.fa-lightbulb-o:before { + content: "\f0eb"; +} + +.fa-exchange:before { + content: "\f0ec"; +} + +.fa-cloud-download:before { + content: "\f0ed"; +} + +.fa-cloud-upload:before { + content: "\f0ee"; +} + +.fa-user-md:before { + content: "\f0f0"; +} + +.fa-stethoscope:before { + content: "\f0f1"; +} + +.fa-suitcase:before { + content: "\f0f2"; +} + +.fa-bell-o:before { + content: "\f0a2"; +} + +.fa-coffee:before { + content: "\f0f4"; +} + +.fa-cutlery:before { + content: "\f0f5"; +} + +.fa-file-text-o:before { + content: "\f0f6"; +} + +.fa-building-o:before { + content: "\f0f7"; +} + +.fa-hospital-o:before { + content: "\f0f8"; +} + +.fa-ambulance:before { + content: "\f0f9"; +} + +.fa-medkit:before { + content: "\f0fa"; +} + +.fa-fighter-jet:before { + content: "\f0fb"; +} + +.fa-beer:before { + content: "\f0fc"; +} + +.fa-h-square:before { + content: "\f0fd"; +} + +.fa-plus-square:before { + content: "\f0fe"; +} + +.fa-angle-double-left:before { + content: "\f100"; +} + +.fa-angle-double-right:before { + content: "\f101"; +} + +.fa-angle-double-up:before { + content: "\f102"; +} + +.fa-angle-double-down:before { + content: "\f103"; +} + +.fa-angle-left:before { + content: "\f104"; +} + +.fa-angle-right:before { + content: "\f105"; +} + +.fa-angle-up:before { + content: "\f106"; +} + +.fa-angle-down:before { + content: "\f107"; +} + +.fa-desktop:before { + content: "\f108"; +} + +.fa-laptop:before { + content: "\f109"; +} + +.fa-tablet:before { + content: "\f10a"; +} + +.fa-mobile-phone:before, +.fa-mobile:before { + content: "\f10b"; +} + +.fa-circle-o:before { + content: "\f10c"; +} + +.fa-quote-left:before { + content: "\f10d"; +} + +.fa-quote-right:before { + content: "\f10e"; +} + +.fa-spinner:before { + content: "\f110"; +} + +.fa-circle:before { + content: "\f111"; +} + +.fa-mail-reply:before, +.fa-reply:before { + content: "\f112"; +} + +.fa-github-alt:before { + content: "\f113"; +} + +.fa-folder-o:before { + content: "\f114"; +} + +.fa-folder-open-o:before { + content: "\f115"; +} + +.fa-smile-o:before { + content: "\f118"; +} + +.fa-frown-o:before { + content: "\f119"; +} + +.fa-meh-o:before { + content: "\f11a"; +} + +.fa-gamepad:before { + content: "\f11b"; +} + +.fa-keyboard-o:before { + content: "\f11c"; +} + +.fa-flag-o:before { + content: "\f11d"; +} + +.fa-flag-checkered:before { + content: "\f11e"; +} + +.fa-terminal:before { + content: "\f120"; +} + +.fa-code:before { + content: "\f121"; +} + +.fa-mail-reply-all:before, +.fa-reply-all:before { + content: "\f122"; +} + +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: "\f123"; +} + +.fa-location-arrow:before { + content: "\f124"; +} + +.fa-crop:before { + content: "\f125"; +} + +.fa-code-fork:before { + content: "\f126"; +} + +.fa-unlink:before, +.fa-chain-broken:before { + content: "\f127"; +} + +.fa-question:before { + content: "\f128"; +} + +.fa-info:before { + content: "\f129"; +} + +.fa-exclamation:before { + content: "\f12a"; +} + +.fa-superscript:before { + content: "\f12b"; +} + +.fa-subscript:before { + content: "\f12c"; +} + +.fa-eraser:before { + content: "\f12d"; +} + +.fa-puzzle-piece:before { + content: "\f12e"; +} + +.fa-microphone:before { + content: "\f130"; +} + +.fa-microphone-slash:before { + content: "\f131"; +} + +.fa-shield:before { + content: "\f132"; +} + +.fa-calendar-o:before { + content: "\f133"; +} + +.fa-fire-extinguisher:before { + content: "\f134"; +} + +.fa-rocket:before { + content: "\f135"; +} + +.fa-maxcdn:before { + content: "\f136"; +} + +.fa-chevron-circle-left:before { + content: "\f137"; +} + +.fa-chevron-circle-right:before { + content: "\f138"; +} + +.fa-chevron-circle-up:before { + content: "\f139"; +} + +.fa-chevron-circle-down:before { + content: "\f13a"; +} + +.fa-html5:before { + content: "\f13b"; +} + +.fa-css3:before { + content: "\f13c"; +} + +.fa-anchor:before { + content: "\f13d"; +} + +.fa-unlock-alt:before { + content: "\f13e"; +} + +.fa-bullseye:before { + content: "\f140"; +} + +.fa-ellipsis-h:before { + content: "\f141"; +} + +.fa-ellipsis-v:before { + content: "\f142"; +} + +.fa-rss-square:before { + content: "\f143"; +} + +.fa-play-circle:before { + content: "\f144"; +} + +.fa-ticket:before { + content: "\f145"; +} + +.fa-minus-square:before { + content: "\f146"; +} + +.fa-minus-square-o:before { + content: "\f147"; +} + +.fa-level-up:before { + content: "\f148"; +} + +.fa-level-down:before { + content: "\f149"; +} + +.fa-check-square:before { + content: "\f14a"; +} + +.fa-pencil-square:before { + content: "\f14b"; +} + +.fa-external-link-square:before { + content: "\f14c"; +} + +.fa-share-square:before { + content: "\f14d"; +} + +.fa-compass:before { + content: "\f14e"; +} + +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: "\f150"; +} + +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: "\f151"; +} + +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: "\f152"; +} + +.fa-euro:before, +.fa-eur:before { + content: "\f153"; +} + +.fa-gbp:before { + content: "\f154"; +} + +.fa-dollar:before, +.fa-usd:before { + content: "\f155"; +} + +.fa-rupee:before, +.fa-inr:before { + content: "\f156"; +} + +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: "\f157"; +} + +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: "\f158"; +} + +.fa-won:before, +.fa-krw:before { + content: "\f159"; +} + +.fa-bitcoin:before, +.fa-btc:before { + content: "\f15a"; +} + +.fa-file:before { + content: "\f15b"; +} + +.fa-file-text:before { + content: "\f15c"; +} + +.fa-sort-alpha-asc:before { + content: "\f15d"; +} + +.fa-sort-alpha-desc:before { + content: "\f15e"; +} + +.fa-sort-amount-asc:before { + content: "\f160"; +} + +.fa-sort-amount-desc:before { + content: "\f161"; +} + +.fa-sort-numeric-asc:before { + content: "\f162"; +} + +.fa-sort-numeric-desc:before { + content: "\f163"; +} + +.fa-thumbs-up:before { + content: "\f164"; +} + +.fa-thumbs-down:before { + content: "\f165"; +} + +.fa-youtube-square:before { + content: "\f166"; +} + +.fa-youtube:before { + content: "\f167"; +} + +.fa-xing:before { + content: "\f168"; +} + +.fa-xing-square:before { + content: "\f169"; +} + +.fa-youtube-play:before { + content: "\f16a"; +} + +.fa-dropbox:before { + content: "\f16b"; +} + +.fa-stack-overflow:before { + content: "\f16c"; +} + +.fa-instagram:before { + content: "\f16d"; +} + +.fa-flickr:before { + content: "\f16e"; +} + +.fa-adn:before { + content: "\f170"; +} + +.fa-bitbucket:before { + content: "\f171"; +} + +.fa-bitbucket-square:before { + content: "\f172"; +} + +.fa-tumblr:before { + content: "\f173"; +} + +.fa-tumblr-square:before { + content: "\f174"; +} + +.fa-long-arrow-down:before { + content: "\f175"; +} + +.fa-long-arrow-up:before { + content: "\f176"; +} + +.fa-long-arrow-left:before { + content: "\f177"; +} + +.fa-long-arrow-right:before { + content: "\f178"; +} + +.fa-apple:before { + content: "\f179"; +} + +.fa-windows:before { + content: "\f17a"; +} + +.fa-android:before { + content: "\f17b"; +} + +.fa-linux:before { + content: "\f17c"; +} + +.fa-dribbble:before { + content: "\f17d"; +} + +.fa-skype:before { + content: "\f17e"; +} + +.fa-foursquare:before { + content: "\f180"; +} + +.fa-trello:before { + content: "\f181"; +} + +.fa-female:before { + content: "\f182"; +} + +.fa-male:before { + content: "\f183"; +} + +.fa-gittip:before { + content: "\f184"; +} + +.fa-sun-o:before { + content: "\f185"; +} + +.fa-moon-o:before { + content: "\f186"; +} + +.fa-archive:before { + content: "\f187"; +} + +.fa-bug:before { + content: "\f188"; +} + +.fa-vk:before { + content: "\f189"; +} + +.fa-weibo:before { + content: "\f18a"; +} + +.fa-renren:before { + content: "\f18b"; +} + +.fa-pagelines:before { + content: "\f18c"; +} + +.fa-stack-exchange:before { + content: "\f18d"; +} + +.fa-arrow-circle-o-right:before { + content: "\f18e"; +} + +.fa-arrow-circle-o-left:before { + content: "\f190"; +} + +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: "\f191"; +} + +.fa-dot-circle-o:before { + content: "\f192"; +} + +.fa-wheelchair:before { + content: "\f193"; +} + +.fa-vimeo-square:before { + content: "\f194"; +} + +.fa-turkish-lira:before, +.fa-try:before { + content: "\f195"; +} + +.fa-plus-square-o:before { + content: "\f196"; +} + +.fa-space-shuttle:before { + content: "\f197"; +} + +.fa-slack:before { + content: "\f198"; +} + +.fa-envelope-square:before { + content: "\f199"; +} + +.fa-wordpress:before { + content: "\f19a"; +} + +.fa-openid:before { + content: "\f19b"; +} + +.fa-institution:before, +.fa-bank:before, +.fa-university:before { + content: "\f19c"; +} + +.fa-mortar-board:before, +.fa-graduation-cap:before { + content: "\f19d"; +} + +.fa-yahoo:before { + content: "\f19e"; +} + +.fa-google:before { + content: "\f1a0"; +} + +.fa-reddit:before { + content: "\f1a1"; +} + +.fa-reddit-square:before { + content: "\f1a2"; +} + +.fa-stumbleupon-circle:before { + content: "\f1a3"; +} + +.fa-stumbleupon:before { + content: "\f1a4"; +} + +.fa-delicious:before { + content: "\f1a5"; +} + +.fa-digg:before { + content: "\f1a6"; +} + +.fa-pied-piper:before { + content: "\f1a7"; +} + +.fa-pied-piper-alt:before { + content: "\f1a8"; +} + +.fa-drupal:before { + content: "\f1a9"; +} + +.fa-joomla:before { + content: "\f1aa"; +} + +.fa-language:before { + content: "\f1ab"; +} + +.fa-fax:before { + content: "\f1ac"; +} + +.fa-building:before { + content: "\f1ad"; +} + +.fa-child:before { + content: "\f1ae"; +} + +.fa-paw:before { + content: "\f1b0"; +} + +.fa-spoon:before { + content: "\f1b1"; +} + +.fa-cube:before { + content: "\f1b2"; +} + +.fa-cubes:before { + content: "\f1b3"; +} + +.fa-behance:before { + content: "\f1b4"; +} + +.fa-behance-square:before { + content: "\f1b5"; +} + +.fa-steam:before { + content: "\f1b6"; +} + +.fa-steam-square:before { + content: "\f1b7"; +} + +.fa-recycle:before { + content: "\f1b8"; +} + +.fa-automobile:before, +.fa-car:before { + content: "\f1b9"; +} + +.fa-cab:before, +.fa-taxi:before { + content: "\f1ba"; +} + +.fa-tree:before { + content: "\f1bb"; +} + +.fa-spotify:before { + content: "\f1bc"; +} + +.fa-deviantart:before { + content: "\f1bd"; +} + +.fa-soundcloud:before { + content: "\f1be"; +} + +.fa-database:before { + content: "\f1c0"; +} + +.fa-file-pdf-o:before { + content: "\f1c1"; +} + +.fa-file-word-o:before { + content: "\f1c2"; +} + +.fa-file-excel-o:before { + content: "\f1c3"; +} + +.fa-file-powerpoint-o:before { + content: "\f1c4"; +} + +.fa-file-photo-o:before, +.fa-file-picture-o:before, +.fa-file-image-o:before { + content: "\f1c5"; +} + +.fa-file-zip-o:before, +.fa-file-archive-o:before { + content: "\f1c6"; +} + +.fa-file-sound-o:before, +.fa-file-audio-o:before { + content: "\f1c7"; +} + +.fa-file-movie-o:before, +.fa-file-video-o:before { + content: "\f1c8"; +} + +.fa-file-code-o:before { + content: "\f1c9"; +} + +.fa-vine:before { + content: "\f1ca"; +} + +.fa-codepen:before { + content: "\f1cb"; +} + +.fa-jsfiddle:before { + content: "\f1cc"; +} + +.fa-life-bouy:before, +.fa-life-buoy:before, +.fa-life-saver:before, +.fa-support:before, +.fa-life-ring:before { + content: "\f1cd"; +} + +.fa-circle-o-notch:before { + content: "\f1ce"; +} + +.fa-ra:before, +.fa-rebel:before { + content: "\f1d0"; +} + +.fa-ge:before, +.fa-empire:before { + content: "\f1d1"; +} + +.fa-git-square:before { + content: "\f1d2"; +} + +.fa-git:before { + content: "\f1d3"; +} + +.fa-hacker-news:before { + content: "\f1d4"; +} + +.fa-tencent-weibo:before { + content: "\f1d5"; +} + +.fa-qq:before { + content: "\f1d6"; +} + +.fa-wechat:before, +.fa-weixin:before { + content: "\f1d7"; +} + +.fa-send:before, +.fa-paper-plane:before { + content: "\f1d8"; +} + +.fa-send-o:before, +.fa-paper-plane-o:before { + content: "\f1d9"; +} + +.fa-history:before { + content: "\f1da"; +} + +.fa-circle-thin:before { + content: "\f1db"; +} + +.fa-header:before { + content: "\f1dc"; +} + +.fa-paragraph:before { + content: "\f1dd"; +} + +.fa-sliders:before { + content: "\f1de"; +} + +.fa-share-alt:before { + content: "\f1e0"; +} + +.fa-share-alt-square:before { + content: "\f1e1"; +} + +.fa-bomb:before { + content: "\f1e2"; +} + +.fa-soccer-ball-o:before, +.fa-futbol-o:before { + content: "\f1e3"; +} + +.fa-tty:before { + content: "\f1e4"; +} + +.fa-binoculars:before { + content: "\f1e5"; +} + +.fa-plug:before { + content: "\f1e6"; +} + +.fa-slideshare:before { + content: "\f1e7"; +} + +.fa-twitch:before { + content: "\f1e8"; +} + +.fa-yelp:before { + content: "\f1e9"; +} + +.fa-newspaper-o:before { + content: "\f1ea"; +} + +.fa-wifi:before { + content: "\f1eb"; +} + +.fa-calculator:before { + content: "\f1ec"; +} + +.fa-paypal:before { + content: "\f1ed"; +} + +.fa-google-wallet:before { + content: "\f1ee"; +} + +.fa-cc-visa:before { + content: "\f1f0"; +} + +.fa-cc-mastercard:before { + content: "\f1f1"; +} + +.fa-cc-discover:before { + content: "\f1f2"; +} + +.fa-cc-amex:before { + content: "\f1f3"; +} + +.fa-cc-paypal:before { + content: "\f1f4"; +} + +.fa-cc-stripe:before { + content: "\f1f5"; +} + +.fa-bell-slash:before { + content: "\f1f6"; +} + +.fa-bell-slash-o:before { + content: "\f1f7"; +} + +.fa-trash:before { + content: "\f1f8"; +} + +.fa-copyright:before { + content: "\f1f9"; +} + +.fa-at:before { + content: "\f1fa"; +} + +.fa-eyedropper:before { + content: "\f1fb"; +} + +.fa-paint-brush:before { + content: "\f1fc"; +} + +.fa-birthday-cake:before { + content: "\f1fd"; +} + +.fa-area-chart:before { + content: "\f1fe"; +} + +.fa-pie-chart:before { + content: "\f200"; +} + +.fa-line-chart:before { + content: "\f201"; +} + +.fa-lastfm:before { + content: "\f202"; +} + +.fa-lastfm-square:before { + content: "\f203"; +} + +.fa-toggle-off:before { + content: "\f204"; +} + +.fa-toggle-on:before { + content: "\f205"; +} + +.fa-bicycle:before { + content: "\f206"; +} + +.fa-bus:before { + content: "\f207"; +} + +.fa-ioxhost:before { + content: "\f208"; +} + +.fa-angellist:before { + content: "\f209"; +} + +.fa-cc:before { + content: "\f20a"; +} + +.fa-shekel:before, +.fa-sheqel:before, +.fa-ils:before { + content: "\f20b"; +} + +.fa-meanpath:before { + content: "\f20c"; +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height .2s ease; + -o-transition: height .2s ease; + transition: height .2s ease; +} + +.noselect { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +#navbar { + margin-bottom: 0; +} + +#navbar .navbar-brand { + padding: 8px; +} + +#navbar .navbar-brand .brand-image { + width: 204px; + height: 50px; + background: url("../img/wtstats_logo.png") no-repeat 0 0; + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZcAAABkCAYAAABKF30OAAAAAXNSR0IArs4c6QAAAAlwSFlzAAALEwAACxMBAJqcGAAABCZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjQwNzwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+MTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+MTAwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAg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'); + background-size: 100%; +} + +#navbar .navbar-brand .menu-toggle { + display: none; + padding-right: 10px; +} + +#navbar .navbar-brand .menu-toggle a { + color: #5e5e5e; +} + +#navbar .navbar-right li i, +#navbar .navbar-right li div, +#navbar .navbar-right li span { + margin: 0 5px; +} + +#navbar .navbar-right li button.btn { + width: 80px; +} + +#navbar .alert.alert-warning { + height: 34px; + padding: 6px; + cursor: default; +} + +#wrapper { + padding-left: 250px; + transition: all .4s ease 0; +} + +#sidebar-wrapper { + margin-left: -250px; + left: 250px; + width: 250px; + position: fixed; + background: #fff; + height: 100%; + overflow-y: auto; + z-index: 1000; + transition: all .4s ease 0; + border-right: 1px solid #ddd; +} + +#page-content-wrapper { + width: 100%; +} + +@media (max-width:767px) { + #navbar .menu-toggle { + display: inline-block; + } + + #wrapper { + padding-left: 0; + } + + #sidebar-wrapper { + left: 0; + } + + #wrapper.active { + position: relative; + left: 250px; + } + + #wrapper.active #sidebar-wrapper { + left: 250px; + width: 250px; + transition: all .4s ease 0; + } +} + +.sidebar-nav { + position: absolute; + top: 0; + width: calc(240px); + margin: 0; + padding: 0 5px; + list-style: none; +} + +.sidebar-nav li { + margin: 10px 0; +} + +ul.stats { + list-style-type: none; + padding: 0; +} + +li.stat { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 12px; +} + +li.stat i { + margin-right: 4px; +} + +.panel-title { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.panel-title i.fa { + margin-right: 10px; +} + +.panel-title i.fa, +.panel-title a { + cursor: pointer; +} + +.panel-heading .suptitle { + padding-left: 22px; + font-size: 11px; +} + +svg.multiline { + cursor: crosshair; + font-size: 12px; +} + +svg.multiline .axis path, +svg.multiline .axis line { + fill: none; + stroke: #000; + shape-rendering: crispEdges; +} + +svg.multiline .cross { + shape-rendering: crispEdges; +} + +svg.multiline .line { + fill: none; + stroke: #4682b4; + stroke-width: 1.5px; +} + +.instructions { + padding: 30px; +} + +.instructions h1 { + font-size: 26px; + color: #ccc; +} + +.instructions .searchbox { + border: 3px solid #ccc; + border-radius: 5px; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-right: 0; + padding: 0 0 5px 5px; +} + +.instructions u { + padding-right: 9px; +} + +.instructions dl dt, +.instructions dl dd { + margin-bottom: 10px; +} + +.instructions dl dt i.fa { + padding: 0 12px; +} + +.instructions dl dt { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.instructions dl dd { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + font-weight: bold; + padding-top: 15px; + font-size: 26px; + color: #ccc; +} +</style></head><body><div id="app"></div></body><script type="text/javascript">(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ +(function (global){ +!function t(e,n,r){function i(a,u){if(!n[a]){if(!e[a]){var s="function"==typeof require&&require;if(!u&&s)return s(a,!0);if(o)return o(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[a]={exports:{}};e[a][0].call(c.exports,function(t){var n=e[a][1][t];return i(n?n:t)},c,c.exports,t,e,n,r)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a<r.length;a++)i(r[a]);return i}({1:[function(t){{var e=(window.$=window.jQuery=t("jquery"),t("../views/app")),n=t("../models/app");t("debug")("index")}t("bootstrap/js/dropdown"),t("bootstrap/js/collapse"),t("bootstrap/js/transition"),t("bootstrap/js/button");var data="### INSERT DATA HERE ###",r=window.app=new n(data,{parse:!0}),i=document.getElementById("app"),o=new e({model:r,el:i});o.render()},{"../models/app":2,"../views/app":60,"bootstrap/js/button":48,"bootstrap/js/collapse":49,"bootstrap/js/dropdown":50,"bootstrap/js/transition":51,debug:54,jquery:58}],2:[function(t,e){{var n=t("ampersand-state"),r=t("./chart"),i=t("./stat-collection"),o=t("./sidebar"),a=t("lodash"),u=t("debug")("model:app");e.exports=n.extend({children:{sidebar:o,chart:r},collections:{stats:i},props:{selectionState:{type:"array","default":function(){return[]}}},parse:function(t){var e=(new Date).getFullYear(),n={},r=a.map(t.series,function(t){if(-1!==t.key.indexOf(":"))var r=t.key.split(":"),i=r[0].trim(),o=r[1].trim();else var i="stats",o=t.key;var data=a.sortBy(a.map(t.values,function(t,n){var r=n.split(" ");r.splice(2,0,e.toString());var i=r.join(" ");return{x:new Date(i),y:t}}),"x"),u=Math.min.apply(null,data.map(function(t){return t.x}));return data.forEach(function(t){t.xrel=(t.x-u)/1e3}),n[i]=!0,{group:i,name:o,data:data}});n=a.keys(n).map(function(t){return{title:t}});var i={stats:r,sidebar:{panels:n}};return i},initialize:function(){var t=this.sidebar.panels;t.each(function(t){t.app=this}.bind(this)),this.stats.each(function(e){e.app=this,t.get(e.group).stats.add(e)}.bind(this))},clearSelectionState:function(){this.selectionState=[],u("clear")},toggleAllExcept:function(t){this.stats.filter(function(e){return e!==t}).some(function(t){return t.selected});0!==this.selectionState.length&&t.selected?(this.stats.each(function(t,e){t.selected=this.selectionState.length?this.selectionState[e]:!0}.bind(this)),this.clearSelectionState()):(this.selectionState=this.stats.map(function(t){return t.selected}),this.stats.each(function(e){e.selected=e===t}))}})}},{"./chart":3,"./sidebar":7,"./stat-collection":8,"ampersand-state":18,debug:54,lodash:59}],3:[function(t,e){{var n=t("ampersand-state"),r=t("lodash");t("debug")("model:chart"),e.exports=n.extend({props:{xSetting:{type:"string","default":"relative",values:["relative","absolute"]},ySetting:{type:"string","default":"linear",values:["linear","log-scale"]},allowSampling:{type:"boolean","default":!0},subSampled:{type:"boolean","default":!1},recalcXDomain:{type:"boolean","default":!0}},derived:{series:{deps:["parent"],cache:!1,fn:function(){var t=this.parent.stats.filter(function(t){return t.selected}).map(function(t){return r.pick(t,["color","data","name","cid","selected"])});return t}},empty:{deps:["parent","series"],cache:!1,fn:function(){return 0===this.series.length}}}})}},{"ampersand-state":18,debug:54,lodash:59}],4:[function(t,e){{var n=t("d3");e.exports=function(){function t(){var t=n.scale.category20();return t}var e;return{getInstance:function(){return e||(e=t()),e}}}()}},{d3:53}],5:[function(t,e){{var n=t("ampersand-state"),r=t("./stat-collection");t("debug")("model:panel"),e.exports=n.extend({collections:{stats:r},props:{title:{type:"string",required:!0},open:{type:"boolean","default":!1},app:{type:"object"}},derived:{selected:{deps:["stats"],cache:!1,fn:function(){var t=this.stats.filter(function(t){return t.selected});return t.length===this.stats.length?"all":0===t.length?"none":"some"}},suptitle:{deps:["title"],cache:!1,fn:function(){var t=this.title.split(" ");return t.length>1?t[0]:""}},subtitle:{deps:["title"],fn:function(){var t=this.title.split(" ");return t.length>1?t[1]:this.title}}}})}},{"./stat-collection":8,"ampersand-state":18,debug:54}],6:[function(t,e){{var n=t("ampersand-state");t("debug")("model:search"),e.exports=n.extend({props:{content:{type:"string","default":""}},derived:{empty:{deps:["content"],fn:function(){return""===this.content}}}})}},{"ampersand-state":18,debug:54}],7:[function(t,e){{var n=t("ampersand-state"),r=t("ampersand-collection"),i=t("./search"),o=t("./panel"),a=(t("lodash"),t("debug")("model:sidebar"),r.extend({mainIndex:"title",model:o}));e.exports=n.extend({children:{search:i},collections:{panels:a}})}},{"./panel":5,"./search":6,"ampersand-collection":12,"ampersand-state":18,debug:54,lodash:59}],8:[function(t,e){{var n=t("ampersand-collection"),r=t("ampersand-collection-underscore-mixin"),i=t("./stat");e.exports=n.extend(r,{comparator:"name",model:i})}},{"./stat":9,"ampersand-collection":12,"ampersand-collection-underscore-mixin":10}],9:[function(t,e){{var n=t("ampersand-state"),r=t("./colors").getInstance();t("debug")("model:stat"),e.exports=n.extend({props:{name:{type:"string","default":""},group:{type:"string","default":""},selected:{type:"boolean","default":!1},data:{type:"object"},app:{type:"object"}},derived:{color:{cache:!0,fn:function(){return r(this.cid)}}}})}},{"./colors":4,"ampersand-state":18,debug:54}],10:[function(t,e){"undefined"!=typeof window&&(window.ampersand=window.ampersand||{},window.ampersand["ampersand-collection-underscore-mixin"]=window.ampersand["ampersand-collection-underscore-mixin"]||[],window.ampersand["ampersand-collection-underscore-mixin"].push("1.0.3"));var n=t("underscore"),r=[].slice,i={},o=["forEach","each","map","collect","reduce","foldl","inject","reduceRight","foldr","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","max","min","toArray","size","first","head","take","initial","rest","tail","drop","last","without","difference","indexOf","shuffle","lastIndexOf","isEmpty","chain","sample","partition"];n.each(o,function(t){n[t]&&(i[t]=function(){var e=r.call(arguments);return e.unshift(this.models),n[t].apply(n,e)})});var a=["groupBy","countBy","sortBy","indexBy"];n.each(a,function(t){n[t]&&(i[t]=function(e,r){var i=n.isFunction(e)?e:function(t){return t.get?t.get(e):t[e]};return n[t](this.models,i,r)})}),i.where=function(t,e){return n.isEmpty(t)?e?void 0:[]:this[e?"find":"filter"](function(e){var n;for(var r in t)if(n=e.get?e.get(r):e[r],t[r]!==n)return!1;return!0})},i.findWhere=function(t){return this.where(t,!0)},i.pluck=function(t){return n.invoke(this.models,"get",t)},e.exports=i},{underscore:11}],11:[function(t,e,n){(function(){var t=this,r=t._,i=Array.prototype,o=Object.prototype,a=Function.prototype,u=i.push,s=i.slice,l=i.concat,c=o.toString,f=o.hasOwnProperty,h=Array.isArray,p=Object.keys,d=a.bind,g=function(t){return t instanceof g?t:this instanceof g?void(this._wrapped=t):new g(t)};"undefined"!=typeof n?("undefined"!=typeof e&&e.exports&&(n=e.exports=g),n._=g):t._=g,g.VERSION="1.7.0";var v=function(t,e,n){if(void 0===e)return t;switch(null==n?3:n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)};case 4:return function(n,r,i,o){return t.call(e,n,r,i,o)}}return function(){return t.apply(e,arguments)}};g.iteratee=function(t,e,n){return null==t?g.identity:g.isFunction(t)?v(t,e,n):g.isObject(t)?g.matches(t):g.property(t)},g.each=g.forEach=function(t,e,n){if(null==t)return t;e=v(e,n);var r,i=t.length;if(i===+i)for(r=0;i>r;r++)e(t[r],r,t);else{var o=g.keys(t);for(r=0,i=o.length;i>r;r++)e(t[o[r]],o[r],t)}return t},g.map=g.collect=function(t,e,n){if(null==t)return[];e=g.iteratee(e,n);for(var r,i=t.length!==+t.length&&g.keys(t),o=(i||t).length,a=Array(o),u=0;o>u;u++)r=i?i[u]:u,a[u]=e(t[r],r,t);return a};var m="Reduce of empty array with no initial value";g.reduce=g.foldl=g.inject=function(t,e,n,r){null==t&&(t=[]),e=v(e,r,4);var i,o=t.length!==+t.length&&g.keys(t),a=(o||t).length,u=0;if(arguments.length<3){if(!a)throw new TypeError(m);n=t[o?o[u++]:u++]}for(;a>u;u++)i=o?o[u]:u,n=e(n,t[i],i,t);return n},g.reduceRight=g.foldr=function(t,e,n,r){null==t&&(t=[]),e=v(e,r,4);var i,o=t.length!==+t.length&&g.keys(t),a=(o||t).length;if(arguments.length<3){if(!a)throw new TypeError(m);n=t[o?o[--a]:--a]}for(;a--;)i=o?o[a]:a,n=e(n,t[i],i,t);return n},g.find=g.detect=function(t,e,n){var r;return e=g.iteratee(e,n),g.some(t,function(t,n,i){return e(t,n,i)?(r=t,!0):void 0}),r},g.filter=g.select=function(t,e,n){var r=[];return null==t?r:(e=g.iteratee(e,n),g.each(t,function(t,n,i){e(t,n,i)&&r.push(t)}),r)},g.reject=function(t,e,n){return g.filter(t,g.negate(g.iteratee(e)),n)},g.every=g.all=function(t,e,n){if(null==t)return!0;e=g.iteratee(e,n);var r,i,o=t.length!==+t.length&&g.keys(t),a=(o||t).length;for(r=0;a>r;r++)if(i=o?o[r]:r,!e(t[i],i,t))return!1;return!0},g.some=g.any=function(t,e,n){if(null==t)return!1;e=g.iteratee(e,n);var r,i,o=t.length!==+t.length&&g.keys(t),a=(o||t).length;for(r=0;a>r;r++)if(i=o?o[r]:r,e(t[i],i,t))return!0;return!1},g.contains=g.include=function(t,e){return null==t?!1:(t.length!==+t.length&&(t=g.values(t)),g.indexOf(t,e)>=0)},g.invoke=function(t,e){var n=s.call(arguments,2),r=g.isFunction(e);return g.map(t,function(t){return(r?e:t[e]).apply(t,n)})},g.pluck=function(t,e){return g.map(t,g.property(e))},g.where=function(t,e){return g.filter(t,g.matches(e))},g.findWhere=function(t,e){return g.find(t,g.matches(e))},g.max=function(t,e,n){var r,i,o=-1/0,a=-1/0;if(null==e&&null!=t){t=t.length===+t.length?t:g.values(t);for(var u=0,s=t.length;s>u;u++)r=t[u],r>o&&(o=r)}else e=g.iteratee(e,n),g.each(t,function(t,n,r){i=e(t,n,r),(i>a||i===-1/0&&o===-1/0)&&(o=t,a=i)});return o},g.min=function(t,e,n){var r,i,o=1/0,a=1/0;if(null==e&&null!=t){t=t.length===+t.length?t:g.values(t);for(var u=0,s=t.length;s>u;u++)r=t[u],o>r&&(o=r)}else e=g.iteratee(e,n),g.each(t,function(t,n,r){i=e(t,n,r),(a>i||1/0===i&&1/0===o)&&(o=t,a=i)});return o},g.shuffle=function(t){for(var e,n=t&&t.length===+t.length?t:g.values(t),r=n.length,i=Array(r),o=0;r>o;o++)e=g.random(0,o),e!==o&&(i[o]=i[e]),i[e]=n[o];return i},g.sample=function(t,e,n){return null==e||n?(t.length!==+t.length&&(t=g.values(t)),t[g.random(t.length-1)]):g.shuffle(t).slice(0,Math.max(0,e))},g.sortBy=function(t,e,n){return e=g.iteratee(e,n),g.pluck(g.map(t,function(t,n,r){return{value:t,index:n,criteria:e(t,n,r)}}).sort(function(t,e){var n=t.criteria,r=e.criteria;if(n!==r){if(n>r||void 0===n)return 1;if(r>n||void 0===r)return-1}return t.index-e.index}),"value")};var y=function(t){return function(e,n,r){var i={};return n=g.iteratee(n,r),g.each(e,function(r,o){var a=n(r,o,e);t(i,r,a)}),i}};g.groupBy=y(function(t,e,n){g.has(t,n)?t[n].push(e):t[n]=[e]}),g.indexBy=y(function(t,e,n){t[n]=e}),g.countBy=y(function(t,e,n){g.has(t,n)?t[n]++:t[n]=1}),g.sortedIndex=function(t,e,n,r){n=g.iteratee(n,r,1);for(var i=n(e),o=0,a=t.length;a>o;){var u=o+a>>>1;n(t[u])<i?o=u+1:a=u}return o},g.toArray=function(t){return t?g.isArray(t)?s.call(t):t.length===+t.length?g.map(t,g.identity):g.values(t):[]},g.size=function(t){return null==t?0:t.length===+t.length?t.length:g.keys(t).length},g.partition=function(t,e,n){e=g.iteratee(e,n);var r=[],i=[];return g.each(t,function(t,n,o){(e(t,n,o)?r:i).push(t)}),[r,i]},g.first=g.head=g.take=function(t,e,n){return null==t?void 0:null==e||n?t[0]:0>e?[]:s.call(t,0,e)},g.initial=function(t,e,n){return s.call(t,0,Math.max(0,t.length-(null==e||n?1:e)))},g.last=function(t,e,n){return null==t?void 0:null==e||n?t[t.length-1]:s.call(t,Math.max(t.length-e,0))},g.rest=g.tail=g.drop=function(t,e,n){return s.call(t,null==e||n?1:e)},g.compact=function(t){return g.filter(t,g.identity)};var b=function(t,e,n,r){if(e&&g.every(t,g.isArray))return l.apply(r,t);for(var i=0,o=t.length;o>i;i++){var a=t[i];g.isArray(a)||g.isArguments(a)?e?u.apply(r,a):b(a,e,n,r):n||r.push(a)}return r};g.flatten=function(t,e){return b(t,e,!1,[])},g.without=function(t){return g.difference(t,s.call(arguments,1))},g.uniq=g.unique=function(t,e,n,r){if(null==t)return[];g.isBoolean(e)||(r=n,n=e,e=!1),null!=n&&(n=g.iteratee(n,r));for(var i=[],o=[],a=0,u=t.length;u>a;a++){var s=t[a];if(e)a&&o===s||i.push(s),o=s;else if(n){var l=n(s,a,t);g.indexOf(o,l)<0&&(o.push(l),i.push(s))}else g.indexOf(i,s)<0&&i.push(s)}return i},g.union=function(){return g.uniq(b(arguments,!0,!0,[]))},g.intersection=function(t){if(null==t)return[];for(var e=[],n=arguments.length,r=0,i=t.length;i>r;r++){var o=t[r];if(!g.contains(e,o)){for(var a=1;n>a&&g.contains(arguments[a],o);a++);a===n&&e.push(o)}}return e},g.difference=function(t){var e=b(s.call(arguments,1),!0,!0,[]);return g.filter(t,function(t){return!g.contains(e,t)})},g.zip=function(t){if(null==t)return[];for(var e=g.max(arguments,"length").length,n=Array(e),r=0;e>r;r++)n[r]=g.pluck(arguments,r);return n},g.object=function(t,e){if(null==t)return{};for(var n={},r=0,i=t.length;i>r;r++)e?n[t[r]]=e[r]:n[t[r][0]]=t[r][1];return n},g.indexOf=function(t,e,n){if(null==t)return-1;var r=0,i=t.length;if(n){if("number"!=typeof n)return r=g.sortedIndex(t,e),t[r]===e?r:-1;r=0>n?Math.max(0,i+n):n}for(;i>r;r++)if(t[r]===e)return r;return-1},g.lastIndexOf=function(t,e,n){if(null==t)return-1;var r=t.length;for("number"==typeof n&&(r=0>n?r+n+1:Math.min(r,n+1));--r>=0;)if(t[r]===e)return r;return-1},g.range=function(t,e,n){arguments.length<=1&&(e=t||0,t=0),n=n||1;for(var r=Math.max(Math.ceil((e-t)/n),0),i=Array(r),o=0;r>o;o++,t+=n)i[o]=t;return i};var x=function(){};g.bind=function(t,e){var n,r;if(d&&t.bind===d)return d.apply(t,s.call(arguments,1));if(!g.isFunction(t))throw new TypeError("Bind must be called on a function");return n=s.call(arguments,2),r=function(){if(!(this instanceof r))return t.apply(e,n.concat(s.call(arguments)));x.prototype=t.prototype;var i=new x;x.prototype=null;var o=t.apply(i,n.concat(s.call(arguments)));return g.isObject(o)?o:i}},g.partial=function(t){var e=s.call(arguments,1);return function(){for(var n=0,r=e.slice(),i=0,o=r.length;o>i;i++)r[i]===g&&(r[i]=arguments[n++]);for(;n<arguments.length;)r.push(arguments[n++]);return t.apply(this,r)}},g.bindAll=function(t){var e,n,r=arguments.length;if(1>=r)throw new Error("bindAll must be passed function names");for(e=1;r>e;e++)n=arguments[e],t[n]=g.bind(t[n],t);return t},g.memoize=function(t,e){var n=function(r){var i=n.cache,o=e?e.apply(this,arguments):r;return g.has(i,o)||(i[o]=t.apply(this,arguments)),i[o]};return n.cache={},n},g.delay=function(t,e){var n=s.call(arguments,2);return setTimeout(function(){return t.apply(null,n)},e)},g.defer=function(t){return g.delay.apply(g,[t,1].concat(s.call(arguments,1)))},g.throttle=function(t,e,n){var r,i,o,a=null,u=0;n||(n={});var s=function(){u=n.leading===!1?0:g.now(),a=null,o=t.apply(r,i),a||(r=i=null)};return function(){var l=g.now();u||n.leading!==!1||(u=l);var c=e-(l-u);return r=this,i=arguments,0>=c||c>e?(clearTimeout(a),a=null,u=l,o=t.apply(r,i),a||(r=i=null)):a||n.trailing===!1||(a=setTimeout(s,c)),o}},g.debounce=function(t,e,n){var r,i,o,a,u,s=function(){var l=g.now()-a;e>l&&l>0?r=setTimeout(s,e-l):(r=null,n||(u=t.apply(o,i),r||(o=i=null)))};return function(){o=this,i=arguments,a=g.now();var l=n&&!r;return r||(r=setTimeout(s,e)),l&&(u=t.apply(o,i),o=i=null),u}},g.wrap=function(t,e){return g.partial(e,t)},g.negate=function(t){return function(){return!t.apply(this,arguments)}},g.compose=function(){var t=arguments,e=t.length-1;return function(){for(var n=e,r=t[e].apply(this,arguments);n--;)r=t[n].call(this,r);return r}},g.after=function(t,e){return function(){return--t<1?e.apply(this,arguments):void 0}},g.before=function(t,e){var n;return function(){return--t>0?n=e.apply(this,arguments):e=null,n}},g.once=g.partial(g.before,2),g.keys=function(t){if(!g.isObject(t))return[];if(p)return p(t);var e=[];for(var n in t)g.has(t,n)&&e.push(n);return e},g.values=function(t){for(var e=g.keys(t),n=e.length,r=Array(n),i=0;n>i;i++)r[i]=t[e[i]];return r},g.pairs=function(t){for(var e=g.keys(t),n=e.length,r=Array(n),i=0;n>i;i++)r[i]=[e[i],t[e[i]]];return r},g.invert=function(t){for(var e={},n=g.keys(t),r=0,i=n.length;i>r;r++)e[t[n[r]]]=n[r];return e},g.functions=g.methods=function(t){var e=[];for(var n in t)g.isFunction(t[n])&&e.push(n);return e.sort()},g.extend=function(t){if(!g.isObject(t))return t;for(var e,n,r=1,i=arguments.length;i>r;r++){e=arguments[r];for(n in e)f.call(e,n)&&(t[n]=e[n])}return t},g.pick=function(t,e,n){var r,i={};if(null==t)return i;if(g.isFunction(e)){e=v(e,n);for(r in t){var o=t[r];e(o,r,t)&&(i[r]=o)}}else{var a=l.apply([],s.call(arguments,1));t=new Object(t);for(var u=0,c=a.length;c>u;u++)r=a[u],r in t&&(i[r]=t[r])}return i},g.omit=function(t,e,n){if(g.isFunction(e))e=g.negate(e);else{var r=g.map(l.apply([],s.call(arguments,1)),String);e=function(t,e){return!g.contains(r,e)}}return g.pick(t,e,n)},g.defaults=function(t){if(!g.isObject(t))return t;for(var e=1,n=arguments.length;n>e;e++){var r=arguments[e];for(var i in r)void 0===t[i]&&(t[i]=r[i])}return t},g.clone=function(t){return g.isObject(t)?g.isArray(t)?t.slice():g.extend({},t):t},g.tap=function(t,e){return e(t),t};var w=function(t,e,n,r){if(t===e)return 0!==t||1/t===1/e;if(null==t||null==e)return t===e;t instanceof g&&(t=t._wrapped),e instanceof g&&(e=e._wrapped);var i=c.call(t);if(i!==c.call(e))return!1;switch(i){case"[object RegExp]":case"[object String]":return""+t==""+e;case"[object Number]":return+t!==+t?+e!==+e:0===+t?1/+t===1/e:+t===+e;case"[object Date]":case"[object Boolean]":return+t===+e}if("object"!=typeof t||"object"!=typeof e)return!1;for(var o=n.length;o--;)if(n[o]===t)return r[o]===e;var a=t.constructor,u=e.constructor;if(a!==u&&"constructor"in t&&"constructor"in e&&!(g.isFunction(a)&&a instanceof a&&g.isFunction(u)&&u instanceof u))return!1;n.push(t),r.push(e);var s,l;if("[object Array]"===i){if(s=t.length,l=s===e.length)for(;s--&&(l=w(t[s],e[s],n,r)););}else{var f,h=g.keys(t);if(s=h.length,l=g.keys(e).length===s)for(;s--&&(f=h[s],l=g.has(e,f)&&w(t[f],e[f],n,r)););}return n.pop(),r.pop(),l};g.isEqual=function(t,e){return w(t,e,[],[])},g.isEmpty=function(t){if(null==t)return!0;if(g.isArray(t)||g.isString(t)||g.isArguments(t))return 0===t.length;for(var e in t)if(g.has(t,e))return!1;return!0},g.isElement=function(t){return!(!t||1!==t.nodeType)},g.isArray=h||function(t){return"[object Array]"===c.call(t)},g.isObject=function(t){var e=typeof t;return"function"===e||"object"===e&&!!t},g.each(["Arguments","Function","String","Number","Date","RegExp"],function(t){g["is"+t]=function(e){return c.call(e)==="[object "+t+"]"}}),g.isArguments(arguments)||(g.isArguments=function(t){return g.has(t,"callee")}),"function"!=typeof/./&&(g.isFunction=function(t){return"function"==typeof t||!1}),g.isFinite=function(t){return isFinite(t)&&!isNaN(parseFloat(t))},g.isNaN=function(t){return g.isNumber(t)&&t!==+t},g.isBoolean=function(t){return t===!0||t===!1||"[object Boolean]"===c.call(t)},g.isNull=function(t){return null===t},g.isUndefined=function(t){return void 0===t},g.has=function(t,e){return null!=t&&f.call(t,e)},g.noConflict=function(){return t._=r,this},g.identity=function(t){return t},g.constant=function(t){return function(){return t}},g.noop=function(){},g.property=function(t){return function(e){return e[t]}},g.matches=function(t){var e=g.pairs(t),n=e.length;return function(t){if(null==t)return!n;t=new Object(t);for(var r=0;n>r;r++){var i=e[r],o=i[0];if(i[1]!==t[o]||!(o in t))return!1}return!0}},g.times=function(t,e,n){var r=Array(Math.max(0,t));e=v(e,n,1);for(var i=0;t>i;i++)r[i]=e(i);return r},g.random=function(t,e){return null==e&&(e=t,t=0),t+Math.floor(Math.random()*(e-t+1))},g.now=Date.now||function(){return(new Date).getTime()};var _={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},M=g.invert(_),k=function(t){var e=function(e){return t[e]},n="(?:"+g.keys(t).join("|")+")",r=RegExp(n),i=RegExp(n,"g");return function(t){return t=null==t?"":""+t,r.test(t)?t.replace(i,e):t}};g.escape=k(_),g.unescape=k(M),g.result=function(t,e){if(null==t)return void 0;var n=t[e];return g.isFunction(n)?t[e]():n};var E=0;g.uniqueId=function(t){var e=++E+"";return t?t+e:e},g.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var C=/(.)^/,S={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},T=/\\|'|\r|\n|\u2028|\u2029/g,j=function(t){return"\\"+S[t]};g.template=function(t,e,n){!e&&n&&(e=n),e=g.defaults({},e,g.templateSettings);var r=RegExp([(e.escape||C).source,(e.interpolate||C).source,(e.evaluate||C).source].join("|")+"|$","g"),i=0,o="__p+='";t.replace(r,function(e,n,r,a,u){return o+=t.slice(i,u).replace(T,j),i=u+e.length,n?o+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?o+="'+\n((__t=("+r+"))==null?'':__t)+\n'":a&&(o+="';\n"+a+"\n__p+='"),e}),o+="';\n",e.variable||(o="with(obj||{}){\n"+o+"}\n"),o="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{var a=new Function(e.variable||"obj","_",o)}catch(u){throw u.source=o,u}var s=function(data){return a.call(this,data,g)},l=e.variable||"obj";return s.source="function("+l+"){\n"+o+"}",s},g.chain=function(t){var e=g(t);return e._chain=!0,e};var A=function(t){return this._chain?g(t).chain():t};g.mixin=function(t){g.each(g.functions(t),function(e){var n=g[e]=t[e];g.prototype[e]=function(){var t=[this._wrapped];return u.apply(t,arguments),A.call(this,n.apply(g,t))}})},g.mixin(g),g.each(["pop","push","reverse","shift","sort","splice","unshift"],function(t){var e=i[t];g.prototype[t]=function(){var n=this._wrapped;return e.apply(n,arguments),"shift"!==t&&"splice"!==t||0!==n.length||delete n[0],A.call(this,n)}}),g.each(["concat","join","slice"],function(t){var e=i[t];g.prototype[t]=function(){return A.call(this,e.apply(this._wrapped,arguments))}}),g.prototype.value=function(){return this._wrapped},"function"==typeof define&&define.amd&&define("underscore",[],function(){return g})}).call(this)},{}],12:[function(t,e){function n(t,e){if(e||(e={}),e.model&&(this.model=e.model),e.comparator&&(this.comparator=e.comparator),e.parent&&(this.parent=e.parent),!this.mainIndex){var n=this.model&&this.model.prototype&&this.model.prototype.idAttribute;this.mainIndex=n||"id"}this._reset(),this.initialize.apply(this,arguments),t&&this.reset(t,a({silent:!0},e))}var r=t("backbone-events-standalone"),i=t("ampersand-class-extend"),o=t("is-array"),a=t("extend-object"),u=[].slice;a(n.prototype,r,{initialize:function(){},indexes:[],isModel:function(t){return this.model&&t instanceof this.model},add:function(t,e){return this.set(t,a({merge:!1,add:!0,remove:!1},e))},parse:function(t){return t},serialize:function(){return this.map(function(t){if(t.serialize)return t.serialize();var e={};return a(e,t),delete e.collection,e})},toJSON:function(){return this.serialize()},set:function(t,e){e=a({add:!0,remove:!0,merge:!0},e),e.parse&&(t=this.parse(t,e));var n=!o(t);t=n?t?[t]:[]:t.slice();var r,i,u,s,l,c,f,h=e.at,p=this.comparator&&null==h&&e.sort!==!1,d="string"==typeof this.comparator?this.comparator:null,g=[],v=[],m={},y=e.add,b=e.merge,x=e.remove,w=!p&&y&&x?[]:!1,_=this.model&&this.model.prototype||Object.prototype;for(c=0,f=t.length;f>c;c++){if(u=t[c]||{},r=this.isModel(u)?i=u:_.generateId?_.generateId(u):u[_.idAttribute||this.mainIndex],s=this.get(r))x&&(m[s.cid||s[this.mainIndex]]=!0),b&&(u=u===i?i.attributes:u,e.parse&&(u=s.parse(u,e)),s.set?(s.set(u,e),p&&!l&&s.hasChanged(d)&&(l=!0)):a(s,u)),t[c]=s;else if(y){if(i=t[c]=this._prepareModel(u,e),!i)continue;g.push(i),this._addReference(i,e)}i=s||i,i&&(w&&(i.isNew&&i.isNew()||!i[this.mainIndex]||!m[i.cid||i[this.mainIndex]])&&w.push(i),m[i[this.mainIndex]]=!0)}if(x){for(c=0,f=this.length;f>c;c++)i=this.models[c],m[i.cid||i[this.mainIndex]]||v.push(i);v.length&&this.remove(v,e)}if(g.length||w&&w.length)if(p&&(l=!0),null!=h)for(c=0,f=g.length;f>c;c++)this.models.splice(h+c,0,g[c]);else{var M=w||g;for(c=0,f=M.length;f>c;c++)this.models.push(M[c])}if(l&&this.sort({silent:!0}),!e.silent){for(c=0,f=g.length;f>c;c++)i=g[c],i.trigger?i.trigger("add",i,this,e):this.trigger("add",i,this,e);(l||w&&w.length)&&this.trigger("sort",this,e)}return n?t[0]:t},get:function(t,e){if(t){var n=this._indexes[e||this.mainIndex];return n[t]||n[t[this.mainIndex]]||this._indexes.cid[t]||this._indexes.cid[t.cid]}},at:function(t){return this.models[t]},remove:function(t,e){var n,r,i,a,s=!o(t);for(t=s?[t]:u.call(t),e||(e={}),n=0,r=t.length;r>n;n++)i=t[n]=this.get(t[n]),i&&(this._deIndex(i),a=this.models.indexOf(i),this.models.splice(a,1),e.silent||(e.index=a,i.trigger?i.trigger("remove",i,this,e):this.trigger("remove",i,this,e)),this._removeReference(i,e));return s?t[0]:t},reset:function(t,e){e||(e={});for(var n=0,r=this.models.length;r>n;n++)this._removeReference(this.models[n],e);return e.previousModels=this.models,this._reset(),t=this.add(t,a({silent:!0},e)),e.silent||this.trigger("reset",this,e),t},sort:function(t){var e=this;if(!this.comparator)throw new Error("Cannot sort a set without a comparator");return t||(t={}),this.models.sort("string"==typeof this.comparator?function(t,n){return t.get?(t=t.get(e.comparator),n=n.get(e.comparator)):(t=t[e.comparator],n=n[e.comparator]),t>n||void 0===t?1:n>t||void 0===n?-1:0}:1===this.comparator.length?function(t,n){return t=e.comparator(t),n=e.comparator(n),t>n||void 0===t?1:n>t||void 0===n?-1:0}:this.comparator.bind(this)),t.silent||this.trigger("sort",this,t),this},_reset:function(){var t=this.indexes||[],e=0;t.push(this.mainIndex),t.push("cid");var n=t.length;for(this.models=[],this._indexes={};n>e;e++)this._indexes[t[e]]={}},_prepareModel:function(t,e){if(!this.model)return t;if(this.isModel(t))return t.collection||(t.collection=this),t;e=e?a({},e):{},e.collection=this;var n=new this.model(t,e);return n.validationError?(this.trigger("invalid",this,n.validationError,e),!1):n},_deIndex:function(t){for(var e in this._indexes)delete this._indexes[e][t[e]||t.get&&t.get(e)]},_index:function(t){for(var e in this._indexes){var n=t[e]||t.get&&t.get(e);n&&(this._indexes[e][n]=t)}},_addReference:function(t){this._index(t),t.collection||(t.collection=this),t.on&&t.on("all",this._onModelEvent,this)},_removeReference:function(t){this===t.collection&&delete t.collection,this._deIndex(t),t.off&&t.off("all",this._onModelEvent,this)},_onModelEvent:function(t,e,n,r){("add"!==t&&"remove"!==t||n===this)&&("destroy"===t&&this.remove(e,r),e&&t==="change:"+this.mainIndex&&(this._deIndex(e),this._index(e)),this.trigger.apply(this,arguments))}}),Object.defineProperties(n.prototype,{length:{get:function(){return this.models.length}},isCollection:{value:!0}});var s=["indexOf","lastIndexOf","every","some","forEach","map","filter","reduce","reduceRight"];s.forEach(function(t){n.prototype[t]=function(){return this.models[t].apply(this.models,arguments)}}),n.prototype.each=n.prototype.forEach,n.extend=i,e.exports=n},{"ampersand-class-extend":13,"backbone-events-standalone":15,"extend-object":16,"is-array":17}],13:[function(t,e){var n=t("extend-object"),r=function(t){var e,r=this,i=[].slice.call(arguments);e=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return r.apply(this,arguments)},n(e,r);var o=function(){this.constructor=e};return o.prototype=r.prototype,e.prototype=new o,t&&(i.unshift(e.prototype),n.apply(null,i)),e.__super__=r.prototype,e};e.exports=r},{"extend-object":16}],14:[function(t,e,n){!function(){function t(){return{keys:Object.keys,uniqueId:function(t){var e=++l+"";return t?t+e:e},has:function(t,e){return u.call(t,e)},each:function(t,e,n){if(null!=t)if(a&&t.forEach===a)t.forEach(e,n);else if(t.length===+t.length){for(var r=0,i=t.length;i>r;r++)if(e.call(n,t[r],r,t)===o)return}else for(var u in t)if(this.has(t,u)&&e.call(n,t[u],u,t)===o)return},once:function(t){var e,n=!1;return function(){return n?e:(n=!0,e=t.apply(this,arguments),t=null,e)}}}}var r,i=this,o={},a=Array.prototype.forEach,u=Object.prototype.hasOwnProperty,s=Array.prototype.slice,l=0,c=t();r={on:function(t,e,n){if(!h(this,"on",t,[e,n])||!e)return this;this._events||(this._events={});var r=this._events[t]||(this._events[t]=[]);return r.push({callback:e,context:n,ctx:n||this}),this},once:function(t,e,n){if(!h(this,"once",t,[e,n])||!e)return this;var r=this,i=c.once(function(){r.off(t,i),e.apply(this,arguments)});return i._callback=e,this.on(t,i,n)},off:function(t,e,n){var r,i,o,a,u,s,l,f;if(!this._events||!h(this,"off",t,[e,n]))return this;if(!t&&!e&&!n)return this._events={},this;for(a=t?[t]:c.keys(this._events),u=0,s=a.length;s>u;u++)if(t=a[u],o=this._events[t]){if(this._events[t]=r=[],e||n)for(l=0,f=o.length;f>l;l++)i=o[l],(e&&e!==i.callback&&e!==i.callback._callback||n&&n!==i.context)&&r.push(i);r.length||delete this._events[t]}return this},trigger:function(t){if(!this._events)return this;var e=s.call(arguments,1);if(!h(this,"trigger",t,e))return this;var n=this._events[t],r=this._events.all;return n&&p(n,e),r&&p(r,arguments),this},stopListening:function(t,e,n){var r=this._listeners;if(!r)return this;var i=!e&&!n;"object"==typeof e&&(n=this),t&&((r={})[t._listenerId]=t);for(var o in r)r[o].off(e,n,this),i&&delete this._listeners[o];return this}};var f=/\s+/,h=function(t,e,n,r){if(!n)return!0;if("object"==typeof n){for(var i in n)t[e].apply(t,[i,n[i]].concat(r));return!1}if(f.test(n)){for(var o=n.split(f),a=0,u=o.length;u>a;a++)t[e].apply(t,[o[a]].concat(r));return!1}return!0},p=function(t,e){var n,r=-1,i=t.length,o=e[0],a=e[1],u=e[2];switch(e.length){case 0:for(;++r<i;)(n=t[r]).callback.call(n.ctx);return;case 1:for(;++r<i;)(n=t[r]).callback.call(n.ctx,o);return;case 2:for(;++r<i;)(n=t[r]).callback.call(n.ctx,o,a);return;case 3:for(;++r<i;)(n=t[r]).callback.call(n.ctx,o,a,u);return;default:for(;++r<i;)(n=t[r]).callback.apply(n.ctx,e)}},d={listenTo:"on",listenToOnce:"once"};c.each(d,function(t,e){r[e]=function(e,n,r){var i=this._listeners||(this._listeners={}),o=e._listenerId||(e._listenerId=c.uniqueId("l"));return i[o]=e,"object"==typeof n&&(r=this),e[t](n,r,this),this}}),r.bind=r.on,r.unbind=r.off,r.mixin=function(t){var e=["on","once","off","trigger","stopListening","listenTo","listenToOnce","bind","unbind"];return c.each(e,function(e){t[e]=this[e]},this),t},"function"==typeof define?define(function(){return r}):"undefined"!=typeof n?("undefined"!=typeof e&&e.exports&&(n=e.exports=r),n.BackboneEvents=r):i.BackboneEvents=r}(this)},{}],15:[function(t,e){e.exports=t("./backbone-events-standalone")},{"./backbone-events-standalone":14}],16:[function(t,e){var n=[],r=n.forEach,i=n.slice;e.exports=function(t){return r.call(i.call(arguments,1),function(e){if(e)for(var n in e)t[n]=e[n]}),t}},{}],17:[function(t,e){var n=Array.isArray,r=Object.prototype.toString;e.exports=n||function(t){return!!t&&"[object Array]"==r.call(t)}},{}],18:[function(t,e){function n(t,e){e||(e={}),this.cid||(this.cid=a.uniqueId("state")),this._events={},this._values={},this._definition=Object.create(this._definition),e.parse&&(t=this.parse(t,e)),this.parent=e.parent,this.collection=e.collection,this._keyTree=new s,this._initCollections(),this._initChildren(),this._cache={},this._previousAttributes={},t&&this.set(t,a.extend({silent:!0,initial:!0},e)),this._changed={},this._derived&&this._initDerived(),e.init!==!1&&this.initialize.apply(this,arguments)}function r(t,e,n,r){var i,o,u=t._definition[e]={};if(a.isString(n))i=t._ensureValidType(n),i&&(u.type=i);else{if(a.isArray(n)&&(o=n,n={type:o[0],required:o[1],"default":o[2]}),i=t._ensureValidType(n.type),i&&(u.type=i),n.required&&(u.required=!0),n["default"]&&"object"==typeof n["default"])throw new TypeError("The default value for "+e+" cannot be an object/array, must be a value or a function which returns a value/object/array");u["default"]=n["default"],u.allowNull=n.allowNull?n.allowNull:!1,n.setOnce&&(u.setOnce=!0),u.required&&a.isUndefined(u["default"])&&!u.setOnce&&(u["default"]=t._getDefaultForType(i)),u.test=n.test,u.values=n.values +}return r&&(u.session=!0),Object.defineProperty(t,e,{set:function(t){this.set(e,t)},get:function(){var t=this._values[e],n=this._dataTypes[u.type];return"undefined"!=typeof t?(n&&n.get&&(t=n.get(t)),t):(t=a.result(u,"default"),this._values[e]=t,t)}}),u}function i(t,e,n){var r=t._derived[e]={fn:a.isFunction(n)?n:n.fn,cache:n.cache!==!1,depList:n.deps||[]};a.each(r.depList,function(n){t._deps[n]=a(t._deps[n]||[]).union([e])}),Object.defineProperty(t,e,{get:function(){return this._getDerivedProperty(e)},set:function(){throw new TypeError('"'+e+"\" is a derived property, it can't be set directly.")}})}function o(t){var e,n=this,o=[].slice.call(arguments);e=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return n.apply(this,arguments)},a.extend(e,n);var u=function(){this.constructor=e};u.prototype=n.prototype,e.prototype=new u,e.prototype._derived=a.extend({},n.prototype._derived),e.prototype._deps=a.extend({},n.prototype._deps),e.prototype._definition=a.extend({},n.prototype._definition),e.prototype._collections=a.extend({},n.prototype._collections),e.prototype._children=a.extend({},n.prototype._children),e.prototype._dataTypes=a.extend({},n.prototype._dataTypes||f),t&&o.forEach(function(t){var n=["dataTypes","props","session","derived","collections","children"];t.dataTypes&&a.each(t.dataTypes,function(t,n){e.prototype._dataTypes[n]=t}),t.props&&a.each(t.props,function(t,n){r(e.prototype,n,t)}),t.session&&a.each(t.session,function(t,n){r(e.prototype,n,t,!0)}),t.derived&&a.each(t.derived,function(t,n){i(e.prototype,n,t)}),t.collections&&a.each(t.collections,function(t,n){e.prototype._collections[n]=t}),t.children&&a.each(t.children,function(t,n){e.prototype._children[n]=t}),a.extend(e.prototype,a.omit(t,n))});Object.prototype.toString;return e.__super__=n.prototype,e}"undefined"!=typeof window&&(window.ampersand=window.ampersand||{},window.ampersand["ampersand-state"]=window.ampersand["ampersand-state"]||[],window.ampersand["ampersand-state"].push("4.4.4"));var a=t("underscore"),u=t("backbone-events-standalone"),s=t("key-tree-store"),l=t("array-next"),c=/^change:/;a.extend(n.prototype,u,{extraProperties:"ignore",idAttribute:"id",namespaceAttribute:"namespace",typeAttribute:"modelType",initialize:function(){return this},getId:function(){return this[this.idAttribute]},getNamespace:function(){return this[this.namespaceAttribute]},getType:function(){return this[this.typeAttribute]},isNew:function(){return null==this.getId()},escape:function(t){return a.escape(this.get(t))},isValid:function(t){return this._validate({},a.extend(t||{},{validate:!0}))},parse:function(t){return t},serialize:function(){var t=this.getAttributes({props:!0},!0);return a.each(this._children,function(e,n){t[n]=this[n].serialize()},this),a.each(this._collections,function(e,n){t[n]=this[n].serialize()},this),t},set:function(t,e,n){var r,i,o,u,s,l,c,f,h,p,d,g,v,m,y,b,x=this,w=this.extraProperties;if(a.isObject(t)||null===t?(h=t,n=e):(h={},h[t]=e),n=n||{},!this._validate(h,n))return!1;g=n.unset,d=n.silent,m=n.initial,i=[],r=this._changing,this._changing=!0,r||(this._previousAttributes=this.attributes,this._changed={});for(f in h){if(u=h[f],o=typeof u,v=this._values[f],s=this._definition[f],!s){if(this._children[f]||this._collections[f]){this[f].set(u,n);continue}if("ignore"===w)continue;if("reject"===w)throw new TypeError('No "'+f+'" property defined on '+(this.type||"this")+' model and extraProperties not set to "ignore" or "allow"');if("allow"===w)s=this._createPropertyDefinition(f,"any");else if(w)throw new TypeError('Invalid value for extraProperties: "'+w+'"')}if(b=this._getCompareForType(s.type),p=this._dataTypes[s.type],p&&p.set&&(l=p.set(u),u=l.val,o=l.type),s.test&&(c=s.test.call(this,u,o)))throw new TypeError("Property '"+f+"' failed validation with error: "+c);if(a.isUndefined(u)&&s.required)throw new TypeError("Required property '"+f+"' must be of type "+s.type+". Tried to set "+u);if(a.isNull(u)&&s.required&&!s.allowNull)throw new TypeError("Property '"+f+"' must be of type "+s.type+" (cannot be null). Tried to set "+u);if(s.type&&"any"!==s.type&&s.type!==o&&!a.isNull(u)&&!a.isUndefined(u))throw new TypeError("Property '"+f+"' must be of type "+s.type+". Tried to set "+u);if(s.values&&!a.contains(s.values,u))throw new TypeError("Property '"+f+"' must be one of values: "+s.values.join(", ")+". Tried to set "+u);if(y=!b(v,u,f),s.setOnce&&void 0!==v&&y&&!m)throw new TypeError("Property '"+f+"' can only be set once.");y?(i.push({prev:v,val:u,key:f}),x._changed[f]=u):delete x._changed[f]}if(a.each(i,function(t){x._previousAttributes[t.key]=t.prev,g?delete x._values[t.key]:x._values[t.key]=t.val}),!d&&i.length&&(x._pending=!0),d||a.each(i,function(t){x.trigger("change:"+t.key,x,t.val,n)}),r)return this;if(!d)for(;this._pending;)this._pending=!1,this.trigger("change",this,n);return this._pending=!1,this._changing=!1,this},get:function(t){return this[t]},toggle:function(t){var e=this._definition[t];if("boolean"===e.type)this[t]=!this[t];else{if(!e||!e.values)throw new TypeError("Can only toggle properties that are type `boolean` or have `values` array.");this[t]=l(e.values,this[t])}return this},previousAttributes:function(){return a.clone(this._previousAttributes)},hasChanged:function(t){return null==t?!a.isEmpty(this._changed):a.has(this._changed,t)},changedAttributes:function(t){if(!t)return this.hasChanged()?a.clone(this._changed):!1;var e,n,r,i=!1,o=this._changing?this._previousAttributes:this.attributes;for(var u in t)n=this._definition[u],n&&(r=this._getCompareForType(n.type),r(o[u],e=t[u])||((i||(i={}))[u]=e));return i},toJSON:function(){return this.serialize()},unset:function(t,e){{var n,r=this._definition[t];r.type}return r.required?(n=a.result(r,"default"),this.set(t,n,e)):this.set(t,n,a.extend({},e,{unset:!0}))},clear:function(t){var e=this;return a.each(a.keys(this.attributes),function(n){e.unset(n,t)}),this},previous:function(t){return null!=t&&Object.keys(this._previousAttributes).length?this._previousAttributes[t]:null},_getDefaultForType:function(t){var e=this._dataTypes[t];return e&&e["default"]},_getCompareForType:function(t){var e=this._dataTypes[t];return e&&e.compare?a.bind(e.compare,this):a.isEqual},_validate:function(t,e){if(!e.validate||!this.validate)return!0;t=a.extend({},this.attributes,t);var n=this.validationError=this.validate(t,e)||null;return n?(this.trigger("invalid",this,n,a.extend(e||{},{validationError:n})),!1):!0},_createPropertyDefinition:function(t,e,n){return r(this,t,e,n)},_ensureValidType:function(t){return a.contains(["string","number","boolean","array","object","date","any"].concat(a.keys(this._dataTypes)),t)?t:void 0},getAttributes:function(t,e){t||(t={}),a.defaults(t,{session:!1,props:!1,derived:!1});var n,r,i,o={};for(r in this._definition)i=this._definition[r],(t.session&&i.session||t.props&&!i.session)&&(n=e?this._values[r]:this[r],"undefined"==typeof n&&(n=a.result(i,"default")),"undefined"!=typeof n&&(o[r]=n));if(t.derived)for(r in this._derived)o[r]=this[r];return o},_initDerived:function(){var t=this;a.each(this._derived,function(e,n){var r=t._derived[n];r.deps=r.depList;var i=function(e){e=e||{};var i=r.fn.call(t);t._cache[n]===i&&r.cache||(r.cache&&(t._previousAttributes[n]=t._cache[n]),t._cache[n]=i,t.trigger("change:"+n,t,t._cache[n]))};r.deps.forEach(function(e){t._keyTree.add(e,i)})}),this.on("all",function(e){c.test(e)&&t._keyTree.get(e.split(":")[1]).forEach(function(t){t()})},this)},_getDerivedProperty:function(t,e){return this._derived[t].cache?((e||!this._cache.hasOwnProperty(t))&&(this._cache[t]=this._derived[t].fn.apply(this)),this._cache[t]):this._derived[t].fn.apply(this)},_initCollections:function(){var t;if(this._collections)for(t in this._collections)this[t]=new this._collections[t](null,{parent:this})},_initChildren:function(){var t;if(this._children)for(t in this._children)this[t]=new this._children[t]({},{parent:this}),this.listenTo(this[t],"all",this._getEventBubblingHandler(t))},_getEventBubblingHandler:function(t){return a.bind(function(e,n,r){c.test(e)?this.trigger("change:"+t+"."+e.split(":")[1],n,r):"change"===e&&this.trigger("change",this)},this)},_verifyRequired:function(){var t=this.attributes;for(var e in this._definition)if(this._definition[e].required&&"undefined"==typeof t[e])return!1;return!0}}),Object.defineProperties(n.prototype,{attributes:{get:function(){return this.getAttributes({props:!0,session:!0})}},all:{get:function(){return this.getAttributes({session:!0,props:!0,derived:!0})}},isState:{get:function(){return!0},set:function(){}}});var f={string:{"default":function(){return""}},date:{set:function(t){var e;if(a.isDate(t))e="date",t=t.valueOf();else try{var n=new Date(t).valueOf();if(isNaN(n)&&(n=new Date(parseInt(t,10)).valueOf(),isNaN(n)))throw TypeError;t=n,e="date"}catch(r){e=typeof t}return{val:t,type:e}},get:function(t){return new Date(t)},"default":function(){return new Date}},array:{set:function(t){return{val:t,type:a.isArray(t)?"array":typeof t}},"default":function(){return[]}},object:{set:function(t){var e=typeof t;return"object"!==e&&a.isUndefined(t)&&(t=null,e="object"),{val:t,type:e}},"default":function(){return{}}},state:{set:function(t){var e=t instanceof n||t&&t.isState;return e?{val:t,type:"state"}:{val:t,type:typeof t}},compare:function(t,e,n){var r=t===e;return r||(t&&this.stopListening(t),null!=e&&this.listenTo(e,"all",this._getEventBubblingHandler(n))),r}}};n.extend=o,e.exports=n},{"array-next":19,"backbone-events-standalone":21,"key-tree-store":22,underscore:23}],19:[function(t,e){e.exports=function(t,e){var n=t.length,r=t.indexOf(e)+1;return r>n-1&&(r=0),t[r]}},{}],20:[function(t,e){e.exports=t(14)},{"/mnt/fast/bostic/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/backbone-events-standalone/backbone-events-standalone.js":14}],21:[function(t,e){e.exports=t(15)},{"./backbone-events-standalone":20,"/mnt/fast/bostic/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/backbone-events-standalone/index.js":15}],22:[function(t,e){function n(){this.storage={}}n.prototype.add=function(t,e){var n=this.storage[t]||(this.storage[t]=[]);n.push(e)},n.prototype.remove=function(t){var e,n;for(e in this.storage)n=this.storage[e],n.some(function(e,r){return e===t?(n.splice(r,1),!0):void 0})},n.prototype.get=function(t){var e,n=[];for(e in this.storage)(t===e||0===e.indexOf(t+"."))&&(n=n.concat(this.storage[e]));return n},e.exports=n},{}],23:[function(t,e){e.exports=t(11)},{"/mnt/fast/bostic/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection-underscore-mixin/node_modules/underscore/underscore.js":11}],24:[function(t,e){function n(t,e){e||(e={}),this.collection=t,this._reset(),this._watched=e.watched||[],this._parseFilters(e),this._runFilters(),this.listenTo(this.collection,"all",this._onCollectionEvent)}"undefined"!=typeof window&&(window.ampersand=window.ampersand||{},window.ampersand["ampersand-subcollection"]=window.ampersand["ampersand-subcollection"]||[],window.ampersand["ampersand-subcollection"].push("1.5.0"));var r=t("underscore"),i=t("backbone-events-standalone"),o=t("ampersand-class-extend"),a=t("ampersand-collection-underscore-mixin"),u=Array.prototype.slice;r.extend(n.prototype,i,a,{addFilter:function(t){this.swapFilters([t],[])},removeFilter:function(t){this.swapFilters([],[t])},clearFilters:function(){this._reset(),this._runFilters()},swapFilters:function(t,e){var n=this;e?r.isArray(e)||(e=[e]):e=this._filters,t?r.isArray(t)||(t=[t]):t=[],e.forEach(function(t){n._removeFilter(t)}),t.forEach(function(t){n._addFilter(t)}),this._runFilters()},configure:function(t,e){e&&this._resetFilters(),this._parseFilters(t),this._runFilters()},at:function(t){return this.models[t]},get:function(t,e){var n=this.collection.get(t,e);return n&&this.contains(n)?n:void 0},_removeFilter:function(t){var e=this._filters.indexOf(t);-1!==e&&this._filters.splice(e,1)},_reset:function(){this.models=[],this._resetFilters()},_resetFilters:function(){this._filters=[],this._watched=[],this.limit=void 0,this.offset=void 0},_addFilter:function(t){this._filters.push(t)},_watch:function(t){this._watched=r.union(this._watched,r.isArray(t)?t:[t])},_unwatch:function(t){this._watched=r.without(this._watched,t)},_parseFilters:function(t){t.where&&(r.each(t.where,function(t,e){this._addFilter(function(n){return(n.get?n.get(e):n[e])===t})},this),this._watch(r.keys(t.where))),t.hasOwnProperty("limit")&&(this.limit=t.limit),t.hasOwnProperty("offset")&&(this.offset=t.offset),t.filter&&this._addFilter(t.filter,!1),t.filters&&t.filters.forEach(this._addFilter,this),t.comparator&&(this.comparator=t.comparator)},_runFilters:function(){var t,e,n,i=u.call(this.models),o=u.call(this.collection.models),a=this.offset||0;t=this._filters.length?r.reduce(this._filters,function(t,e){return t.filter(e)},o):u.call(o),this.comparator&&(t=r.sortBy(t,this.comparator)),(this.limit||this.offset)&&(t=t.slice(a,this.limit+a)),e=r.difference(t,i),n=r.difference(i,t),this.models=t,r.each(n,function(t){this.trigger("remove",t,this)},this),r.each(e,function(t){this.trigger("add",t,this)},this),r.isEqual(i,t)||this.trigger("sort",this)},_onCollectionEvent:function(t,e){(r.contains(this._watched,t.split(":")[1])||r.contains(["add","remove","reset","sync"],t))&&this._runFilters(),(r.contains(["sync","invalid","destroy"])||-1!==t.indexOf("change"))&&this.contains(e)&&this.trigger.apply(this,arguments)}}),Object.defineProperty(n.prototype,"length",{get:function(){return this.models.length}}),Object.defineProperty(n.prototype,"isCollection",{get:function(){return!0}}),n.extend=o,e.exports=n},{"ampersand-class-extend":25,"ampersand-collection-underscore-mixin":10,"backbone-events-standalone":28,underscore:29}],25:[function(t,e){e.exports=t(13)},{"/mnt/fast/bostic/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-class-extend/ampersand-class-extend.js":13,"extend-object":26}],26:[function(t,e){e.exports=t(16)},{"/mnt/fast/bostic/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/extend-object/extend-object.js":16}],27:[function(t,e){e.exports=t(14)},{"/mnt/fast/bostic/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/backbone-events-standalone/backbone-events-standalone.js":14}],28:[function(t,e){e.exports=t(15)},{"./backbone-events-standalone":27,"/mnt/fast/bostic/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/backbone-events-standalone/index.js":15}],29:[function(t,e){e.exports=t(11)},{"/mnt/fast/bostic/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection-underscore-mixin/node_modules/underscore/underscore.js":11}],30:[function(t,e){function n(t){this.cid=a.uniqueId("view"),t||(t={});var e=t.parent;delete t.parent,f.call(this,t,{init:!1,parent:e}),this.on("change:el",this._handleElementChange,this),this._parsedBindings=l(this.bindings,this),this._initializeBindings(),t.el&&!this.autoRender&&this._handleElementChange(),this._initializeSubviews(),this.template=t.template||this.template,this.initialize.apply(this,arguments),this.set(a.pick(t,h)),this.autoRender&&this.template&&this.render()}"undefined"!=typeof window&&(window.ampersand=window.ampersand||{},window.ampersand["ampersand-view"]=window.ampersand["ampersand-view"]||[],window.ampersand["ampersand-view"].push("7.2.0"));var r=t("ampersand-state"),i=t("ampersand-collection-view"),o=t("domify"),a=t("underscore"),u=t("events-mixin"),s=t("matches-selector"),l=t("ampersand-dom-bindings"),c=t("get-object-path"),f=r.extend({dataTypes:{element:{set:function(t){return{val:t,type:t instanceof Element?"element":typeof t}},compare:function(t,e){return t===e}},collection:{set:function(t){return{val:t,type:t&&t.isCollection?"collection":typeof t}},compare:function(t,e){return t===e}}},props:{model:"state",el:"element",collection:"collection"},derived:{rendered:{deps:["el"],fn:function(){return!!this.el}},hasData:{deps:["model"],fn:function(){return!!this.model}}}}),h=["model","collection","el"];n.prototype=Object.create(f.prototype),a.extend(n.prototype,{query:function(t){return t?"string"==typeof t?s(this.el,t)?this.el:this.el.querySelector(t)||void 0:t:this.el},queryAll:function(t){var e=[];return this.el?""===t?[this.el]:(s(this.el,t)&&e.push(this.el),e.concat(Array.prototype.slice.call(this.el.querySelectorAll(t)))):e},queryByHook:function(t){return this.query('[data-hook~="'+t+'"]')},initialize:function(){},render:function(){return this.renderWithTemplate(this),this},remove:function(){var t=this._parsedBindings;return this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el),this._subviews&&a.chain(this._subviews).flatten().invoke("remove"),this.stopListening(),a.each(t,function(e,n){a.each(e,function(e,r){delete t[n][r]}),delete t[n]}),this.trigger("remove",this),this},_handleElementChange:function(){return this.eventManager&&this.eventManager.unbind(),this.eventManager=u(this.el,this),this.delegateEvents(),this._applyBindingsForKey(),this},delegateEvents:function(t){if(!t&&!(t=a.result(this,"events")))return this;this.undelegateEvents();for(var e in t)this.eventManager.bind(e,t[e]);return this},undelegateEvents:function(){return this.eventManager.unbind(),this},registerSubview:function(t){return this._subviews||(this._subviews=[]),this._subviews.push(t),t.el&&(t.parent=this),t},renderSubview:function(t,e){return"string"==typeof e&&(e=this.query(e)),this.registerSubview(t),t.render(),(e||this.el).appendChild(t.el),t},_applyBindingsForKey:function(t){if(this.el){var e,n=this._parsedBindings.getGrouped(t);for(e in n)n[e].forEach(function(t){t(this.el,c(this,e),a.last(e.split(".")))},this)}},_initializeBindings:function(){this.bindings&&this.on("all",function(t){"change:"===t.slice(0,7)&&this._applyBindingsForKey(t.split(":")[1])},this)},_initializeSubviews:function(){if(this.subviews)for(var t in this.subviews)this._parseSubview(this.subviews[t],t)},_parseSubview:function(t,e){function n(){var t,r;this.el&&(t=this.query(i.selector))&&(!i.waitFor||c(this,i.waitFor))&&(r=this[e]=i.prepareView.call(this,t),r.render(),this.registerSubview(r),this.off("change",n))}var r=this,i={selector:t.container||'[data-hook="'+t.hook+'"]',waitFor:t.waitFor||"",prepareView:t.prepareView||function(e){return new t.constructor({el:e,parent:r})}};this.on("change",n,this)},renderWithTemplate:function(t,e){var n=e||this.template;if(!n)throw new Error("Template string or function needed.");var r=a.isString(n)?n:n.call(this,t||this);a.isString(r)&&(r=o(r));var i=this.el&&this.el.parentNode;if(i&&i.replaceChild(r,this.el),"#document-fragment"===r.nodeName)throw new Error("Views can only have one root element.");return this.el=r,this},cacheElements:function(t){for(var e in t)this[e]=this.query(t[e])},listenToAndRun:function(t,e,n){var r=a.bind(n,this);this.listenTo(t,e,r),r()},animateRemove:function(){this.remove()},renderCollection:function(t,e,n,r){var o="string"==typeof n?this.query(n):n,u=a.extend({collection:t,el:o||this.el,view:e,parent:this,viewOptions:{parent:this}},r),s=new i(u);return s.render(),this.registerSubview(s)}}),n.extend=f.extend,e.exports=n},{"ampersand-collection-view":31,"ampersand-dom-bindings":36,"ampersand-state":18,domify:39,"events-mixin":40,"get-object-path":45,"matches-selector":46,underscore:47}],31:[function(t,e){function n(t){if(!t)throw new ReferenceError("Collection view missing required parameters: collection, el");if(!t.collection)throw new ReferenceError("Collection view requires a collection");if(!t.el&&!this.insertSelf)throw new ReferenceError("Collection view requires an el");r.extend(this,r.pick(t,a)),this.views=[],this.listenTo(this.collection,"add",this._addViewForModel),this.listenTo(this.collection,"remove",this._removeViewForModel),this.listenTo(this.collection,"sort",this._rerenderAll),this.listenTo(this.collection,"refresh reset",this._reset)}"undefined"!=typeof window&&(window.ampersand=window.ampersand||{},window.ampersand["ampersand-collection-view"]=window.ampersand["ampersand-collection-view"]||[],window.ampersand["ampersand-collection-view"].push("1.2.1"));var r=t("underscore"),i=t("backbone-events-standalone"),o=t("ampersand-class-extend"),a=["collection","el","viewOptions","view","emptyView","filter","reverse","parent"];r.extend(n.prototype,i,{render:function(){return this._renderAll(),this},remove:function(){r.invoke(this.views,"remove"),this.stopListening()},_getViewByModel:function(t){return r.find(this.views,function(e){return t===e.model})},_createViewForModel:function(t,e){var n=new this.view(r({model:t,collection:this.collection}).extend(this.viewOptions));return this.views.push(n),n.parent=this,n.renderedByParentView=!0,n.render(e),n},_getOrCreateByModel:function(t,e){return this._getViewByModel(t)||this._createViewForModel(t,e)},_addViewForModel:function(t,e,n){var r=this.filter?this.filter(t):!0;if(r){this.renderedEmptyView&&(this.renderedEmptyView.remove(),delete this.renderedEmptyView);var i=this._getOrCreateByModel(t,{containerEl:this.el});n&&n.rerender?this._insertView(i):this._insertViewAtIndex(i)}},_insertViewAtIndex:function(t){if(!t.insertSelf){var e,n,r=this.collection.indexOf(t.model);e=this.collection.at(this.reverse?r-1:r+1),n=this._getViewByModel(e),n?this.el.insertBefore(t.el,n&&n.el):this.el.appendChild(t.el)}},_insertView:function(t){t.insertSelf||(this.reverse&&this.el.firstChild?this.el.insertBefore(t.el,this.el.firstChild):this.el.appendChild(t.el))},_removeViewForModel:function(t){var e=this._getViewByModel(t);if(e){var n=this.views.indexOf(e);-1!==n&&(e=this.views.splice(n,1)[0],this._removeView(e),0===this.views.length&&this._renderEmptyView())}},_removeView:function(t){t.animateRemove?t.animateRemove():t.remove()},_renderAll:function(){this.collection.each(this._addViewForModel,this),0===this.views.length&&this._renderEmptyView()},_rerenderAll:function(t,e){e=e||{},this.collection.each(function(t){this._addViewForModel(t,this,r.extend(e,{rerender:!0}))},this)},_renderEmptyView:function(){if(this.emptyView&&!this.renderedEmptyView){var t=this.renderedEmptyView=new this.emptyView;this.el.appendChild(t.render().el)}},_reset:function(){var t=this.collection.map(this._getOrCreateByModel,this),e=r.difference(this.views,t);e.forEach(this._removeView,this),this.views=t,this._rerenderAll(),0===this.views.length&&this._renderEmptyView()}}),n.extend=o,e.exports=n},{"ampersand-class-extend":32,"backbone-events-standalone":35,underscore:47}],32:[function(t,e){e.exports=t(13)},{"/mnt/fast/bostic/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-class-extend/ampersand-class-extend.js":13,"extend-object":33}],33:[function(t,e){e.exports=t(16)},{"/mnt/fast/bostic/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/extend-object/extend-object.js":16}],34:[function(t,e,n){!function(){function t(){return{keys:Object.keys||function(t){if("object"!=typeof t&&"function"!=typeof t||null===t)throw new TypeError("keys() called on a non-object");var e,n=[];for(e in t)t.hasOwnProperty(e)&&(n[n.length]=e);return n},uniqueId:function(t){var e=++l+"";return t?t+e:e},has:function(t,e){return u.call(t,e)},each:function(t,e,n){if(null!=t)if(a&&t.forEach===a)t.forEach(e,n);else if(t.length===+t.length){for(var r=0,i=t.length;i>r;r++)if(e.call(n,t[r],r,t)===o)return}else for(var u in t)if(this.has(t,u)&&e.call(n,t[u],u,t)===o)return},once:function(t){var e,n=!1;return function(){return n?e:(n=!0,e=t.apply(this,arguments),t=null,e)}}}}var r,i=this,o={},a=Array.prototype.forEach,u=Object.prototype.hasOwnProperty,s=Array.prototype.slice,l=0,c=t();r={on:function(t,e,n){if(!h(this,"on",t,[e,n])||!e)return this;this._events||(this._events={});var r=this._events[t]||(this._events[t]=[]);return r.push({callback:e,context:n,ctx:n||this}),this},once:function(t,e,n){if(!h(this,"once",t,[e,n])||!e)return this;var r=this,i=c.once(function(){r.off(t,i),e.apply(this,arguments)});return i._callback=e,this.on(t,i,n)},off:function(t,e,n){var r,i,o,a,u,s,l,f;if(!this._events||!h(this,"off",t,[e,n]))return this;if(!t&&!e&&!n)return this._events={},this;for(a=t?[t]:c.keys(this._events),u=0,s=a.length;s>u;u++)if(t=a[u],o=this._events[t]){if(this._events[t]=r=[],e||n)for(l=0,f=o.length;f>l;l++)i=o[l],(e&&e!==i.callback&&e!==i.callback._callback||n&&n!==i.context)&&r.push(i);r.length||delete this._events[t]}return this},trigger:function(t){if(!this._events)return this;var e=s.call(arguments,1);if(!h(this,"trigger",t,e))return this;var n=this._events[t],r=this._events.all;return n&&p(n,e),r&&p(r,arguments),this},stopListening:function(t,e,n){var r=this._listeners;if(!r)return this;var i=!e&&!n;"object"==typeof e&&(n=this),t&&((r={})[t._listenerId]=t);for(var o in r)r[o].off(e,n,this),i&&delete this._listeners[o];return this}};var f=/\s+/,h=function(t,e,n,r){if(!n)return!0;if("object"==typeof n){for(var i in n)t[e].apply(t,[i,n[i]].concat(r));return!1}if(f.test(n)){for(var o=n.split(f),a=0,u=o.length;u>a;a++)t[e].apply(t,[o[a]].concat(r));return!1}return!0},p=function(t,e){var n,r=-1,i=t.length,o=e[0],a=e[1],u=e[2];switch(e.length){case 0:for(;++r<i;)(n=t[r]).callback.call(n.ctx);return;case 1:for(;++r<i;)(n=t[r]).callback.call(n.ctx,o);return;case 2:for(;++r<i;)(n=t[r]).callback.call(n.ctx,o,a);return;case 3:for(;++r<i;)(n=t[r]).callback.call(n.ctx,o,a,u);return;default:for(;++r<i;)(n=t[r]).callback.apply(n.ctx,e)}},d={listenTo:"on",listenToOnce:"once"};c.each(d,function(t,e){r[e]=function(e,n,r){var i=this._listeners||(this._listeners={}),o=e._listenerId||(e._listenerId=c.uniqueId("l"));return i[o]=e,"object"==typeof n&&(r=this),e[t](n,r,this),this}}),r.bind=r.on,r.unbind=r.off,r.mixin=function(t){var e=["on","once","off","trigger","stopListening","listenTo","listenToOnce","bind","unbind"];return c.each(e,function(e){t[e]=this[e]},this),t},"function"==typeof define?define(function(){return r}):"undefined"!=typeof n?("undefined"!=typeof e&&e.exports&&(n=e.exports=r),n.BackboneEvents=r):i.BackboneEvents=r}(this)},{}],35:[function(t,e,n){arguments[4][15][0].apply(n,arguments)},{"./backbone-events-standalone":34,"/mnt/fast/bostic/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/backbone-events-standalone/index.js":15}],36:[function(t,e){function n(t,e){if(""===e)return[t];var n=[];return u(t,e)&&n.push(t),n.concat(s.call(t.querySelectorAll(e)))}function r(t){return Array.isArray(t)?t:[t]}function i(t,e){var i,o=t.type||"text",u="function"==typeof o,s=function(){return"string"==typeof t.selector?t.selector:t.hook?'[data-hook~="'+t.hook+'"]':""}(),l=t.yes,c=t.no,f=!(!l&&!c);if(u)return function(t,r){n(t,s).forEach(function(t){o.call(e,t,r,i)}),i=r};if("text"===o)return function(t,e){n(t,s).forEach(function(t){a.text(t,e)})};if("class"===o)return function(t,e){n(t,s).forEach(function(t){a.switchClass(t,i,e)}),i=e};if("attribute"===o){if(!t.name)throw Error('attribute bindings must have a "name"');return function(e,o){var u=r(t.name);n(e,s).forEach(function(t){u.forEach(function(e){a.setAttribute(t,e,o)})}),i=o}}if("value"===o)return function(t,e){n(t,s).forEach(function(t){e||0===e||(e=""),document.activeElement!==t&&(t.value=e)}),i=e};if("booleanClass"===o)return f?(l=r(l||""),c=r(c||""),function(t,e){var r=e?c:l,i=e?l:c;n(t,s).forEach(function(t){r.forEach(function(e){a.removeClass(t,e)}),i.forEach(function(e){a.addClass(t,e)})})}):function(e,i,o){var u=r(t.name||o);n(e,s).forEach(function(t){u.forEach(function(e){a[i?"addClass":"removeClass"](t,e)})})};if("booleanAttribute"===o)return function(e,i,o){var u=r(t.name||o);n(e,s).forEach(function(t){u.forEach(function(e){a[i?"addAttribute":"removeAttribute"](t,e)})})};if("toggle"===o)return f?function(t,e){n(t,l).forEach(function(t){a[e?"show":"hide"](t)}),n(t,c).forEach(function(t){a[e?"hide":"show"](t)})}:function(t,e){n(t,s).forEach(function(t){a[e?"show":"hide"](t)})};if("switch"===o){if(!t.cases)throw Error('switch bindings must have "cases"');return function(e,r){for(var i in t.cases)n(e,t.cases[i]).forEach(function(t){a[r===i?"show":"hide"](t)})}}if("innerHTML"===o)return function(t,e){n(t,s).forEach(function(t){a.html(t,e)})};if("switchClass"===o){if(!t.cases)throw Error('switchClass bindings must have "cases"');return function(e,i,o){var u=r(t.name||o);for(var s in t.cases)n(e,t.cases[s]).forEach(function(t){u.forEach(function(e){a[i===s?"addClass":"removeClass"](t,e)})})}}throw new Error("no such binding type: "+o)}"undefined"!=typeof window&&(window.ampersand=window.ampersand||{},window.ampersand["ampersand-dom-bindings"]=window.ampersand["ampersand-dom-bindings"]||[],window.ampersand["ampersand-dom-bindings"].push("3.3.3"));var o=t("key-tree-store"),a=t("ampersand-dom"),u=t("matches-selector");e.exports=function(t,e){var n,r,a=new o;for(n in t)r=t[n],"string"==typeof r?a.add(n,i({type:"text",selector:r})):r.forEach?r.forEach(function(t){a.add(n,i(t,e))}):a.add(n,i(r,e));return a};var s=Array.prototype.slice},{"ampersand-dom":37,"key-tree-store":38,"matches-selector":46}],37:[function(t,e){function n(t){return t||0===t?t:""}function r(t,e){return t.classList?t.classList.contains(e):new RegExp("(^| )"+e+"( |$)","gi").test(t.className)}function i(t,e){var n=t[e];return e in t&&(n===!0||n===!1)}function o(t){return"true"===l.getAttribute(t,"data-anddom-hidden")}function a(t){l.setAttribute(t,"data-anddom-display",t.style.display)}function u(t){t.style.display=l.getAttribute(t,"data-anddom-display")||"",l.removeAttribute(t,"data-anddom-hidden")}function s(t){l.setAttribute(t,"data-anddom-hidden","true"),t.style.display="none"}"undefined"!=typeof window&&(window.ampersand=window.ampersand||{},window.ampersand["ampersand-dom"]=window.ampersand["ampersand-dom"]||[],window.ampersand["ampersand-dom"].push("1.2.7"));var l=e.exports={text:function(t,e){t.textContent=n(e)},addClass:function(t,e){e=n(e),e&&(Array.isArray(e)?e.forEach(function(e){l.addClass(t,e)}):t.classList?t.classList.add(e):r(t,e)||(t.classList?t.classList.add(e):t.className+=" "+e))},removeClass:function(t,e){Array.isArray(e)?e.forEach(function(e){l.removeClass(t,e)}):t.classList?(e=n(e),e&&t.classList.remove(e)):t.className=t.className.replace(new RegExp("(^|\\b)"+e.split(" ").join("|")+"(\\b|$)","gi")," ")},hasClass:r,switchClass:function(t,e,n){e&&this.removeClass(t,e),this.addClass(t,n)},addAttribute:function(t,e){t.setAttribute(e,""),i(t,e)&&(t[e]=!0)},removeAttribute:function(t,e){t.removeAttribute(e),i(t,e)&&(t[e]=!1)},setAttribute:function(t,e,r){t.setAttribute(e,n(r))},getAttribute:function(t,e){return t.getAttribute(e)},hide:function(t){o(t)||(a(t),s(t))},show:function(t){u(t)},html:function(t,e){t.innerHTML=e}}},{}],38:[function(t,e){function n(){this.storage={}}var r=Array.prototype.slice;n.prototype.add=function(t,e){var n=this.storage[t]||(this.storage[t]=[]);n.push(e)},n.prototype.remove=function(t){var e,n;for(e in this.storage)n=this.storage[e],n.some(function(e,r){return e===t?(n.splice(r,1),!0):void 0})},n.prototype.get=function(t){var e,n=[];for(e in this.storage)t&&t!==e&&0!==e.indexOf(t+".")||(n=n.concat(this.storage[e]));return n},n.prototype.getGrouped=function(t){var e,n={};for(e in this.storage)t&&t!==e&&0!==e.indexOf(t+".")||(n[e]=r.call(this.storage[e]));return n},n.prototype.getAll=function(t){var e,n={};for(e in this.storage)(t===e||0===e.indexOf(t+"."))&&(n[e]=r.call(this.storage[e]));return n},n.prototype.run=function(t,e){var n=r.call(arguments,2);this.get(t).forEach(function(t){t.apply(e||this,n)})},e.exports=n},{}],39:[function(t,e){function n(t,e){if("string"!=typeof t)throw new TypeError("String expected");e||(e=document);var n=/<([\w:]+)/.exec(t);if(!n)return e.createTextNode(t);t=t.replace(/^\s+|\s+$/g,"");var r=n[1];if("body"==r){var i=e.createElement("html");return i.innerHTML=t,i.removeChild(i.lastChild)}var a=o[r]||o._default,u=a[0],s=a[1],l=a[2],i=e.createElement("div");for(i.innerHTML=s+t+l;u--;)i=i.lastChild; +if(i.firstChild==i.lastChild)return i.removeChild(i.firstChild);for(var c=e.createDocumentFragment();i.firstChild;)c.appendChild(i.removeChild(i.firstChild));return c}e.exports=n;var r=document.createElement("div");r.innerHTML=' <link/><table></table><a href="/a">a</a><input type="checkbox"/>';var i=!r.getElementsByTagName("link").length;r=void 0;var o={legend:[1,"<fieldset>","</fieldset>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],_default:i?[1,"X<div>","</div>"]:[0,"",""]};o.td=o.th=[3,"<table><tbody><tr>","</tr></tbody></table>"],o.option=o.optgroup=[1,'<select multiple="multiple">',"</select>"],o.thead=o.tbody=o.colgroup=o.caption=o.tfoot=[1,"<table>","</table>"],o.text=o.circle=o.ellipse=o.line=o.path=o.polygon=o.polyline=o.rect=[1,'<svg xmlns="http://www.w3.org/2000/svg" version="1.1">',"</svg>"]},{}],40:[function(t,e){function n(t,e){if(!(this instanceof n))return new n(t,e);if(!t)throw new Error("element required");if(!e)throw new Error("object required");this.el=t,this.obj=e,this._events={}}function r(t){var e=t.split(/ +/);return{name:e.shift(),selector:e.join(" ")}}var i=t("component-event"),o=t("delegate-events"),a=["focus","blur"];e.exports=n,n.prototype.sub=function(t,e,n){this._events[t]=this._events[t]||{},this._events[t][e]=n},n.prototype.bind=function(t,e){function n(){var t=[].slice.call(arguments).concat(c);s[e].apply(s,t)}var a=r(t),u=this.el,s=this.obj,l=a.name,e=e||"on"+l,c=[].slice.call(arguments,2);return a.selector?n=o.bind(u,a.selector,l,n):i.bind(u,l,n),this.sub(l,e,n),n},n.prototype.unbind=function(t,e){if(0==arguments.length)return this.unbindAll();if(1==arguments.length)return this.unbindAllOf(t);var n=this._events[t],r=-1!==a.indexOf(t);if(n){var o=n[e];o&&i.unbind(this.el,t,o,r)}},n.prototype.unbindAll=function(){for(var t in this._events)this.unbindAllOf(t)},n.prototype.unbindAllOf=function(t){var e=this._events[t];if(e)for(var n in e)this.unbind(t,n)}},{"component-event":41,"delegate-events":42}],41:[function(t,e,n){var r=window.addEventListener?"addEventListener":"attachEvent",i=window.removeEventListener?"removeEventListener":"detachEvent",o="addEventListener"!==r?"on":"";n.bind=function(t,e,n,i){return t[r](o+e,n,i||!1),n},n.unbind=function(t,e,n,r){return t[i](o+e,n,r||!1),n}},{}],42:[function(t,e,n){var r=t("closest"),i=t("event"),o=["focus","blur"];n.bind=function(t,e,n,a,u){return-1!==o.indexOf(n)&&(u=!0),i.bind(t,n,function(n){var i=n.target||n.srcElement;n.delegateTarget=r(i,e,!0,t),n.delegateTarget&&a.call(t,n)},u)},n.unbind=function(t,e,n,r){-1!==o.indexOf(e)&&(r=!0),i.unbind(t,e,n,r)}},{closest:43,event:41}],43:[function(t,e){var n=t("matches-selector");e.exports=function(t,e,r){for(var i=r?t:t.parentNode;i&&i!==document;){if(n(i,e))return i;i=i.parentNode}}},{"matches-selector":44}],44:[function(t,e){function n(t,e){if(i)return i.call(t,e);for(var n=t.parentNode.querySelectorAll(e),r=0;r<n.length;++r)if(n[r]==t)return!0;return!1}var r=Element.prototype,i=r.matchesSelector||r.webkitMatchesSelector||r.mozMatchesSelector||r.msMatchesSelector||r.oMatchesSelector;e.exports=n},{}],45:[function(t,e){function n(t,e){if(-1==e.indexOf(".")&&-1==e.indexOf("["))return t[e];for(var n,r=e.split(/\.|\[|\]/g),i=-1,o=r.length;++i<o;)if(0==i&&(n=t),r[i]){if(void 0==n)break;n=n[r[i]]}return n}e.exports=n},{}],46:[function(t,e){"use strict";function n(t,e){if(i)return i.call(t,e);for(var n=t.parentNode.querySelectorAll(e),r=0;r<n.length;r++)if(n[r]==t)return!0;return!1}var r=Element.prototype,i=r.matches||r.matchesSelector||r.webkitMatchesSelector||r.mozMatchesSelector||r.msMatchesSelector||r.oMatchesSelector;e.exports=n},{}],47:[function(t,e,n){(function(){var t=this,r=t._,i={},o=Array.prototype,a=Object.prototype,u=Function.prototype,s=o.push,l=o.slice,c=o.concat,f=a.toString,h=a.hasOwnProperty,p=o.forEach,d=o.map,g=o.reduce,v=o.reduceRight,m=o.filter,y=o.every,b=o.some,x=o.indexOf,w=o.lastIndexOf,_=Array.isArray,M=Object.keys,k=u.bind,E=function(t){return t instanceof E?t:this instanceof E?void(this._wrapped=t):new E(t)};"undefined"!=typeof n?("undefined"!=typeof e&&e.exports&&(n=e.exports=E),n._=E):t._=E,E.VERSION="1.6.0";var C=E.each=E.forEach=function(t,e,n){if(null==t)return t;if(p&&t.forEach===p)t.forEach(e,n);else if(t.length===+t.length){for(var r=0,o=t.length;o>r;r++)if(e.call(n,t[r],r,t)===i)return}else for(var a=E.keys(t),r=0,o=a.length;o>r;r++)if(e.call(n,t[a[r]],a[r],t)===i)return;return t};E.map=E.collect=function(t,e,n){var r=[];return null==t?r:d&&t.map===d?t.map(e,n):(C(t,function(t,i,o){r.push(e.call(n,t,i,o))}),r)};var S="Reduce of empty array with no initial value";E.reduce=E.foldl=E.inject=function(t,e,n,r){var i=arguments.length>2;if(null==t&&(t=[]),g&&t.reduce===g)return r&&(e=E.bind(e,r)),i?t.reduce(e,n):t.reduce(e);if(C(t,function(t,o,a){i?n=e.call(r,n,t,o,a):(n=t,i=!0)}),!i)throw new TypeError(S);return n},E.reduceRight=E.foldr=function(t,e,n,r){var i=arguments.length>2;if(null==t&&(t=[]),v&&t.reduceRight===v)return r&&(e=E.bind(e,r)),i?t.reduceRight(e,n):t.reduceRight(e);var o=t.length;if(o!==+o){var a=E.keys(t);o=a.length}if(C(t,function(u,s,l){s=a?a[--o]:--o,i?n=e.call(r,n,t[s],s,l):(n=t[s],i=!0)}),!i)throw new TypeError(S);return n},E.find=E.detect=function(t,e,n){var r;return T(t,function(t,i,o){return e.call(n,t,i,o)?(r=t,!0):void 0}),r},E.filter=E.select=function(t,e,n){var r=[];return null==t?r:m&&t.filter===m?t.filter(e,n):(C(t,function(t,i,o){e.call(n,t,i,o)&&r.push(t)}),r)},E.reject=function(t,e,n){return E.filter(t,function(t,r,i){return!e.call(n,t,r,i)},n)},E.every=E.all=function(t,e,n){e||(e=E.identity);var r=!0;return null==t?r:y&&t.every===y?t.every(e,n):(C(t,function(t,o,a){return(r=r&&e.call(n,t,o,a))?void 0:i}),!!r)};var T=E.some=E.any=function(t,e,n){e||(e=E.identity);var r=!1;return null==t?r:b&&t.some===b?t.some(e,n):(C(t,function(t,o,a){return r||(r=e.call(n,t,o,a))?i:void 0}),!!r)};E.contains=E.include=function(t,e){return null==t?!1:x&&t.indexOf===x?-1!=t.indexOf(e):T(t,function(t){return t===e})},E.invoke=function(t,e){var n=l.call(arguments,2),r=E.isFunction(e);return E.map(t,function(t){return(r?e:t[e]).apply(t,n)})},E.pluck=function(t,e){return E.map(t,E.property(e))},E.where=function(t,e){return E.filter(t,E.matches(e))},E.findWhere=function(t,e){return E.find(t,E.matches(e))},E.max=function(t,e,n){if(!e&&E.isArray(t)&&t[0]===+t[0]&&t.length<65535)return Math.max.apply(Math,t);var r=-1/0,i=-1/0;return C(t,function(t,o,a){var u=e?e.call(n,t,o,a):t;u>i&&(r=t,i=u)}),r},E.min=function(t,e,n){if(!e&&E.isArray(t)&&t[0]===+t[0]&&t.length<65535)return Math.min.apply(Math,t);var r=1/0,i=1/0;return C(t,function(t,o,a){var u=e?e.call(n,t,o,a):t;i>u&&(r=t,i=u)}),r},E.shuffle=function(t){var e,n=0,r=[];return C(t,function(t){e=E.random(n++),r[n-1]=r[e],r[e]=t}),r},E.sample=function(t,e,n){return null==e||n?(t.length!==+t.length&&(t=E.values(t)),t[E.random(t.length-1)]):E.shuffle(t).slice(0,Math.max(0,e))};var j=function(t){return null==t?E.identity:E.isFunction(t)?t:E.property(t)};E.sortBy=function(t,e,n){return e=j(e),E.pluck(E.map(t,function(t,r,i){return{value:t,index:r,criteria:e.call(n,t,r,i)}}).sort(function(t,e){var n=t.criteria,r=e.criteria;if(n!==r){if(n>r||void 0===n)return 1;if(r>n||void 0===r)return-1}return t.index-e.index}),"value")};var A=function(t){return function(e,n,r){var i={};return n=j(n),C(e,function(o,a){var u=n.call(r,o,a,e);t(i,u,o)}),i}};E.groupBy=A(function(t,e,n){E.has(t,e)?t[e].push(n):t[e]=[n]}),E.indexBy=A(function(t,e,n){t[e]=n}),E.countBy=A(function(t,e){E.has(t,e)?t[e]++:t[e]=1}),E.sortedIndex=function(t,e,n,r){n=j(n);for(var i=n.call(r,e),o=0,a=t.length;a>o;){var u=o+a>>>1;n.call(r,t[u])<i?o=u+1:a=u}return o},E.toArray=function(t){return t?E.isArray(t)?l.call(t):t.length===+t.length?E.map(t,E.identity):E.values(t):[]},E.size=function(t){return null==t?0:t.length===+t.length?t.length:E.keys(t).length},E.first=E.head=E.take=function(t,e,n){return null==t?void 0:null==e||n?t[0]:0>e?[]:l.call(t,0,e)},E.initial=function(t,e,n){return l.call(t,0,t.length-(null==e||n?1:e))},E.last=function(t,e,n){return null==t?void 0:null==e||n?t[t.length-1]:l.call(t,Math.max(t.length-e,0))},E.rest=E.tail=E.drop=function(t,e,n){return l.call(t,null==e||n?1:e)},E.compact=function(t){return E.filter(t,E.identity)};var N=function(t,e,n){return e&&E.every(t,E.isArray)?c.apply(n,t):(C(t,function(t){E.isArray(t)||E.isArguments(t)?e?s.apply(n,t):N(t,e,n):n.push(t)}),n)};E.flatten=function(t,e){return N(t,e,[])},E.without=function(t){return E.difference(t,l.call(arguments,1))},E.partition=function(t,e){var n=[],r=[];return C(t,function(t){(e(t)?n:r).push(t)}),[n,r]},E.uniq=E.unique=function(t,e,n,r){E.isFunction(e)&&(r=n,n=e,e=!1);var i=n?E.map(t,n,r):t,o=[],a=[];return C(i,function(n,r){(e?r&&a[a.length-1]===n:E.contains(a,n))||(a.push(n),o.push(t[r]))}),o},E.union=function(){return E.uniq(E.flatten(arguments,!0))},E.intersection=function(t){var e=l.call(arguments,1);return E.filter(E.uniq(t),function(t){return E.every(e,function(e){return E.contains(e,t)})})},E.difference=function(t){var e=c.apply(o,l.call(arguments,1));return E.filter(t,function(t){return!E.contains(e,t)})},E.zip=function(){for(var t=E.max(E.pluck(arguments,"length").concat(0)),e=new Array(t),n=0;t>n;n++)e[n]=E.pluck(arguments,""+n);return e},E.object=function(t,e){if(null==t)return{};for(var n={},r=0,i=t.length;i>r;r++)e?n[t[r]]=e[r]:n[t[r][0]]=t[r][1];return n},E.indexOf=function(t,e,n){if(null==t)return-1;var r=0,i=t.length;if(n){if("number"!=typeof n)return r=E.sortedIndex(t,e),t[r]===e?r:-1;r=0>n?Math.max(0,i+n):n}if(x&&t.indexOf===x)return t.indexOf(e,n);for(;i>r;r++)if(t[r]===e)return r;return-1},E.lastIndexOf=function(t,e,n){if(null==t)return-1;var r=null!=n;if(w&&t.lastIndexOf===w)return r?t.lastIndexOf(e,n):t.lastIndexOf(e);for(var i=r?n:t.length;i--;)if(t[i]===e)return i;return-1},E.range=function(t,e,n){arguments.length<=1&&(e=t||0,t=0),n=arguments[2]||1;for(var r=Math.max(Math.ceil((e-t)/n),0),i=0,o=new Array(r);r>i;)o[i++]=t,t+=n;return o};var q=function(){};E.bind=function(t,e){var n,r;if(k&&t.bind===k)return k.apply(t,l.call(arguments,1));if(!E.isFunction(t))throw new TypeError;return n=l.call(arguments,2),r=function(){if(!(this instanceof r))return t.apply(e,n.concat(l.call(arguments)));q.prototype=t.prototype;var i=new q;q.prototype=null;var o=t.apply(i,n.concat(l.call(arguments)));return Object(o)===o?o:i}},E.partial=function(t){var e=l.call(arguments,1);return function(){for(var n=0,r=e.slice(),i=0,o=r.length;o>i;i++)r[i]===E&&(r[i]=arguments[n++]);for(;n<arguments.length;)r.push(arguments[n++]);return t.apply(this,r)}},E.bindAll=function(t){var e=l.call(arguments,1);if(0===e.length)throw new Error("bindAll must be passed function names");return C(e,function(e){t[e]=E.bind(t[e],t)}),t},E.memoize=function(t,e){var n={};return e||(e=E.identity),function(){var r=e.apply(this,arguments);return E.has(n,r)?n[r]:n[r]=t.apply(this,arguments)}},E.delay=function(t,e){var n=l.call(arguments,2);return setTimeout(function(){return t.apply(null,n)},e)},E.defer=function(t){return E.delay.apply(E,[t,1].concat(l.call(arguments,1)))},E.throttle=function(t,e,n){var r,i,o,a=null,u=0;n||(n={});var s=function(){u=n.leading===!1?0:E.now(),a=null,o=t.apply(r,i),r=i=null};return function(){var l=E.now();u||n.leading!==!1||(u=l);var c=e-(l-u);return r=this,i=arguments,0>=c?(clearTimeout(a),a=null,u=l,o=t.apply(r,i),r=i=null):a||n.trailing===!1||(a=setTimeout(s,c)),o}},E.debounce=function(t,e,n){var r,i,o,a,u,s=function(){var l=E.now()-a;e>l?r=setTimeout(s,e-l):(r=null,n||(u=t.apply(o,i),o=i=null))};return function(){o=this,i=arguments,a=E.now();var l=n&&!r;return r||(r=setTimeout(s,e)),l&&(u=t.apply(o,i),o=i=null),u}},E.once=function(t){var e,n=!1;return function(){return n?e:(n=!0,e=t.apply(this,arguments),t=null,e)}},E.wrap=function(t,e){return E.partial(e,t)},E.compose=function(){var t=arguments;return function(){for(var e=arguments,n=t.length-1;n>=0;n--)e=[t[n].apply(this,e)];return e[0]}},E.after=function(t,e){return function(){return--t<1?e.apply(this,arguments):void 0}},E.keys=function(t){if(!E.isObject(t))return[];if(M)return M(t);var e=[];for(var n in t)E.has(t,n)&&e.push(n);return e},E.values=function(t){for(var e=E.keys(t),n=e.length,r=new Array(n),i=0;n>i;i++)r[i]=t[e[i]];return r},E.pairs=function(t){for(var e=E.keys(t),n=e.length,r=new Array(n),i=0;n>i;i++)r[i]=[e[i],t[e[i]]];return r},E.invert=function(t){for(var e={},n=E.keys(t),r=0,i=n.length;i>r;r++)e[t[n[r]]]=n[r];return e},E.functions=E.methods=function(t){var e=[];for(var n in t)E.isFunction(t[n])&&e.push(n);return e.sort()},E.extend=function(t){return C(l.call(arguments,1),function(e){if(e)for(var n in e)t[n]=e[n]}),t},E.pick=function(t){var e={},n=c.apply(o,l.call(arguments,1));return C(n,function(n){n in t&&(e[n]=t[n])}),e},E.omit=function(t){var e={},n=c.apply(o,l.call(arguments,1));for(var r in t)E.contains(n,r)||(e[r]=t[r]);return e},E.defaults=function(t){return C(l.call(arguments,1),function(e){if(e)for(var n in e)void 0===t[n]&&(t[n]=e[n])}),t},E.clone=function(t){return E.isObject(t)?E.isArray(t)?t.slice():E.extend({},t):t},E.tap=function(t,e){return e(t),t};var O=function(t,e,n,r){if(t===e)return 0!==t||1/t==1/e;if(null==t||null==e)return t===e;t instanceof E&&(t=t._wrapped),e instanceof E&&(e=e._wrapped);var i=f.call(t);if(i!=f.call(e))return!1;switch(i){case"[object String]":return t==String(e);case"[object Number]":return t!=+t?e!=+e:0==t?1/t==1/e:t==+e;case"[object Date]":case"[object Boolean]":return+t==+e;case"[object RegExp]":return t.source==e.source&&t.global==e.global&&t.multiline==e.multiline&&t.ignoreCase==e.ignoreCase}if("object"!=typeof t||"object"!=typeof e)return!1;for(var o=n.length;o--;)if(n[o]==t)return r[o]==e;var a=t.constructor,u=e.constructor;if(a!==u&&!(E.isFunction(a)&&a instanceof a&&E.isFunction(u)&&u instanceof u)&&"constructor"in t&&"constructor"in e)return!1;n.push(t),r.push(e);var s=0,l=!0;if("[object Array]"==i){if(s=t.length,l=s==e.length)for(;s--&&(l=O(t[s],e[s],n,r)););}else{for(var c in t)if(E.has(t,c)&&(s++,!(l=E.has(e,c)&&O(t[c],e[c],n,r))))break;if(l){for(c in e)if(E.has(e,c)&&!s--)break;l=!s}}return n.pop(),r.pop(),l};E.isEqual=function(t,e){return O(t,e,[],[])},E.isEmpty=function(t){if(null==t)return!0;if(E.isArray(t)||E.isString(t))return 0===t.length;for(var e in t)if(E.has(t,e))return!1;return!0},E.isElement=function(t){return!(!t||1!==t.nodeType)},E.isArray=_||function(t){return"[object Array]"==f.call(t)},E.isObject=function(t){return t===Object(t)},C(["Arguments","Function","String","Number","Date","RegExp"],function(t){E["is"+t]=function(e){return f.call(e)=="[object "+t+"]"}}),E.isArguments(arguments)||(E.isArguments=function(t){return!(!t||!E.has(t,"callee"))}),"function"!=typeof/./&&(E.isFunction=function(t){return"function"==typeof t}),E.isFinite=function(t){return isFinite(t)&&!isNaN(parseFloat(t))},E.isNaN=function(t){return E.isNumber(t)&&t!=+t},E.isBoolean=function(t){return t===!0||t===!1||"[object Boolean]"==f.call(t)},E.isNull=function(t){return null===t},E.isUndefined=function(t){return void 0===t},E.has=function(t,e){return h.call(t,e)},E.noConflict=function(){return t._=r,this},E.identity=function(t){return t},E.constant=function(t){return function(){return t}},E.property=function(t){return function(e){return e[t]}},E.matches=function(t){return function(e){if(e===t)return!0;for(var n in t)if(t[n]!==e[n])return!1;return!0}},E.times=function(t,e,n){for(var r=Array(Math.max(0,t)),i=0;t>i;i++)r[i]=e.call(n,i);return r},E.random=function(t,e){return null==e&&(e=t,t=0),t+Math.floor(Math.random()*(e-t+1))},E.now=Date.now||function(){return(new Date).getTime()};var D={escape:{"&":"&","<":"<",">":">",'"':""","'":"'"}};D.unescape=E.invert(D.escape);var L={escape:new RegExp("["+E.keys(D.escape).join("")+"]","g"),unescape:new RegExp("("+E.keys(D.unescape).join("|")+")","g")};E.each(["escape","unescape"],function(t){E[t]=function(e){return null==e?"":(""+e).replace(L[t],function(e){return D[t][e]})}}),E.result=function(t,e){if(null==t)return void 0;var n=t[e];return E.isFunction(n)?n.call(t):n},E.mixin=function(t){C(E.functions(t),function(e){var n=E[e]=t[e];E.prototype[e]=function(){var t=[this._wrapped];return s.apply(t,arguments),I.call(this,n.apply(E,t))}})};var F=0;E.uniqueId=function(t){var e=++F+"";return t?t+e:e},E.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var z=/(.)^/,R={"'":"'","\\":"\\","\r":"r","\n":"n"," ":"t","\u2028":"u2028","\u2029":"u2029"},P=/\\|'|\r|\n|\t|\u2028|\u2029/g;E.template=function(t,data,e){var n;e=E.defaults({},e,E.templateSettings);var r=new RegExp([(e.escape||z).source,(e.interpolate||z).source,(e.evaluate||z).source].join("|")+"|$","g"),i=0,o="__p+='";t.replace(r,function(e,n,r,a,u){return o+=t.slice(i,u).replace(P,function(t){return"\\"+R[t]}),n&&(o+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'"),r&&(o+="'+\n((__t=("+r+"))==null?'':__t)+\n'"),a&&(o+="';\n"+a+"\n__p+='"),i=u+e.length,e}),o+="';\n",e.variable||(o="with(obj||{}){\n"+o+"}\n"),o="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{n=new Function(e.variable||"obj","_",o)}catch(a){throw a.source=o,a}if(data)return n(data,E);var u=function(data){return n.call(this,data,E)};return u.source="function("+(e.variable||"obj")+"){\n"+o+"}",u},E.chain=function(t){return E(t).chain()};var I=function(t){return this._chain?E(t).chain():t};E.mixin(E),C(["pop","push","reverse","shift","sort","splice","unshift"],function(t){var e=o[t];E.prototype[t]=function(){var n=this._wrapped;return e.apply(n,arguments),"shift"!=t&&"splice"!=t||0!==n.length||delete n[0],I.call(this,n)}}),C(["concat","join","slice"],function(t){var e=o[t];E.prototype[t]=function(){return I.call(this,e.apply(this._wrapped,arguments))}}),E.extend(E.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}}),"function"==typeof define&&define.amd&&define("underscore",[],function(){return E})}).call(this)},{}],48:[function(){+function(t){"use strict";function e(e){return this.each(function(){var r=t(this),data=r.data("bs.button"),i="object"==typeof e&&e;data||r.data("bs.button",data=new n(this,i)),"toggle"==e?data.toggle():e&&data.setState(e)})}var n=function(e,r){this.$element=t(e),this.options=t.extend({},n.DEFAULTS,r),this.isLoading=!1};n.VERSION="3.2.0",n.DEFAULTS={loadingText:"loading..."},n.prototype.setState=function(e){var n="disabled",r=this.$element,i=r.is("input")?"val":"html",data=r.data();e+="Text",null==data.resetText&&r.data("resetText",r[i]()),r[i](null==data[e]?this.options[e]:data[e]),setTimeout(t.proxy(function(){"loadingText"==e?(this.isLoading=!0,r.addClass(n).attr(n,n)):this.isLoading&&(this.isLoading=!1,r.removeClass(n).removeAttr(n))},this),0)},n.prototype.toggle=function(){var t=!0,e=this.$element.closest('[data-toggle="buttons"]');if(e.length){var n=this.$element.find("input");"radio"==n.prop("type")&&(n.prop("checked")&&this.$element.hasClass("active")?t=!1:e.find(".active").removeClass("active")),t&&n.prop("checked",!this.$element.hasClass("active")).trigger("change")}t&&this.$element.toggleClass("active")};var r=t.fn.button;t.fn.button=e,t.fn.button.Constructor=n,t.fn.button.noConflict=function(){return t.fn.button=r,this},t(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(n){var r=t(n.target);r.hasClass("btn")||(r=r.closest(".btn")),e.call(r,"toggle"),n.preventDefault()})}(jQuery)},{}],49:[function(){+function(t){"use strict";function e(e){return this.each(function(){var r=t(this),data=r.data("bs.collapse"),i=t.extend({},n.DEFAULTS,r.data(),"object"==typeof e&&e);!data&&i.toggle&&"show"==e&&(e=!e),data||r.data("bs.collapse",data=new n(this,i)),"string"==typeof e&&data[e]()})}var n=function(e,r){this.$element=t(e),this.options=t.extend({},n.DEFAULTS,r),this.transitioning=null,this.options.parent&&(this.$parent=t(this.options.parent)),this.options.toggle&&this.toggle()};n.VERSION="3.2.0",n.DEFAULTS={toggle:!0},n.prototype.dimension=function(){var t=this.$element.hasClass("width");return t?"width":"height"},n.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var n=t.Event("show.bs.collapse");if(this.$element.trigger(n),!n.isDefaultPrevented()){var r=this.$parent&&this.$parent.find("> .panel > .in");if(r&&r.length){var i=r.data("bs.collapse");if(i&&i.transitioning)return;e.call(r,"hide"),i||r.data("bs.collapse",null)}var o=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[o](0),this.transitioning=1;var a=function(){this.$element.removeClass("collapsing").addClass("collapse in")[o](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!t.support.transition)return a.call(this);var u=t.camelCase(["scroll",o].join("-"));this.$element.one("bsTransitionEnd",t.proxy(a,this)).emulateTransitionEnd(350)[o](this.$element[0][u])}}},n.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var e=t.Event("hide.bs.collapse");if(this.$element.trigger(e),!e.isDefaultPrevented()){var n=this.dimension();this.$element[n](this.$element[n]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var r=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return t.support.transition?void this.$element[n](0).one("bsTransitionEnd",t.proxy(r,this)).emulateTransitionEnd(350):r.call(this)}}},n.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var r=t.fn.collapse;t.fn.collapse=e,t.fn.collapse.Constructor=n,t.fn.collapse.noConflict=function(){return t.fn.collapse=r,this},t(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(n){var r,i=t(this),o=i.attr("data-target")||n.preventDefault()||(r=i.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,""),a=t(o),data=a.data("bs.collapse"),u=data?"toggle":i.data(),s=i.attr("data-parent"),l=s&&t(s);data&&data.transitioning||(l&&l.find('[data-toggle="collapse"][data-parent="'+s+'"]').not(i).addClass("collapsed"),i[a.hasClass("in")?"addClass":"removeClass"]("collapsed")),e.call(a,u)})}(jQuery)},{}],50:[function(){+function(t){"use strict";function e(e){e&&3===e.which||(t(i).remove(),t(o).each(function(){var r=n(t(this)),i={relatedTarget:this};r.hasClass("open")&&(r.trigger(e=t.Event("hide.bs.dropdown",i)),e.isDefaultPrevented()||r.removeClass("open").trigger("hidden.bs.dropdown",i))}))}function n(e){var n=e.attr("data-target");n||(n=e.attr("href"),n=n&&/#[A-Za-z]/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,""));var r=n&&t(n);return r&&r.length?r:e.parent()}function r(e){return this.each(function(){var n=t(this),data=n.data("bs.dropdown");data||n.data("bs.dropdown",data=new a(this)),"string"==typeof e&&data[e].call(n)})}var i=".dropdown-backdrop",o='[data-toggle="dropdown"]',a=function(e){t(e).on("click.bs.dropdown",this.toggle)};a.VERSION="3.2.0",a.prototype.toggle=function(r){var i=t(this);if(!i.is(".disabled, :disabled")){var o=n(i),a=o.hasClass("open");if(e(),!a){"ontouchstart"in document.documentElement&&!o.closest(".navbar-nav").length&&t('<div class="dropdown-backdrop"/>').insertAfter(t(this)).on("click",e);var u={relatedTarget:this};if(o.trigger(r=t.Event("show.bs.dropdown",u)),r.isDefaultPrevented())return;i.trigger("focus"),o.toggleClass("open").trigger("shown.bs.dropdown",u)}return!1}},a.prototype.keydown=function(e){if(/(38|40|27)/.test(e.keyCode)){var r=t(this);if(e.preventDefault(),e.stopPropagation(),!r.is(".disabled, :disabled")){var i=n(r),a=i.hasClass("open");if(!a||a&&27==e.keyCode)return 27==e.which&&i.find(o).trigger("focus"),r.trigger("click");var u=" li:not(.divider):visible a",s=i.find('[role="menu"]'+u+', [role="listbox"]'+u);if(s.length){var l=s.index(s.filter(":focus"));38==e.keyCode&&l>0&&l--,40==e.keyCode&&l<s.length-1&&l++,~l||(l=0),s.eq(l).trigger("focus")}}}};var u=t.fn.dropdown;t.fn.dropdown=r,t.fn.dropdown.Constructor=a,t.fn.dropdown.noConflict=function(){return t.fn.dropdown=u,this},t(document).on("click.bs.dropdown.data-api",e).on("click.bs.dropdown.data-api",".dropdown form",function(t){t.stopPropagation()}).on("click.bs.dropdown.data-api",o,a.prototype.toggle).on("keydown.bs.dropdown.data-api",o+', [role="menu"], [role="listbox"]',a.prototype.keydown)}(jQuery)},{}],51:[function(){+function(t){"use strict";function e(){var t=document.createElement("bootstrap"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var n in e)if(void 0!==t.style[n])return{end:e[n]};return!1}t.fn.emulateTransitionEnd=function(e){var n=!1,r=this;t(this).one("bsTransitionEnd",function(){n=!0});var i=function(){n||t(r).trigger(t.support.transition.end)};return setTimeout(i,e),this},t(function(){t.support.transition=e(),t.support.transition&&(t.event.special.bsTransitionEnd={bindType:t.support.transition.end,delegateType:t.support.transition.end,handle:function(e){return t(e.target).is(this)?e.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery)},{}],52:[function(){},{}],53:[function(t,e){!function(){function t(t,e){return e>t?-1:t>e?1:t>=e?0:0/0}function n(t){return null===t?0/0:+t}function r(t){return!isNaN(t)}function i(t){return{left:function(e,n,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=e.length);i>r;){var o=r+i>>>1;t(e[o],n)<0?r=o+1:i=o}return r},right:function(e,n,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=e.length);i>r;){var o=r+i>>>1;t(e[o],n)>0?i=o:r=o+1}return r}}}function o(t){return t.length}function a(t){for(var e=1;t*e%1;)e*=10;return e}function u(t,e){for(var n in e)Object.defineProperty(t.prototype,n,{value:e[n],enumerable:!1})}function s(){this._=Object.create(null)}function l(t){return(t+="")===yu||t[0]===bu?bu+t:t}function c(t){return(t+="")[0]===bu?t.slice(1):t}function f(t){return l(t)in this._}function h(t){return(t=l(t))in this._&&delete this._[t]}function p(){var t=[];for(var e in this._)t.push(c(e));return t}function d(){var t=0;for(var e in this._)++t;return t}function g(){for(var t in this._)return!1;return!0}function v(){this._=Object.create(null)}function m(t,e,n){return function(){var r=n.apply(e,arguments);return r===e?t:r}}function y(t,e){if(e in t)return e;e=e.charAt(0).toUpperCase()+e.slice(1);for(var n=0,r=xu.length;r>n;++n){var i=xu[n]+e;if(i in t)return i}}function b(){}function x(){}function w(t){function e(){for(var e,r=n,i=-1,o=r.length;++i<o;)(e=r[i].on)&&e.apply(this,arguments);return t}var n=[],r=new s;return e.on=function(e,i){var o,a=r.get(e);return arguments.length<2?a&&a.on:(a&&(a.on=null,n=n.slice(0,o=n.indexOf(a)).concat(n.slice(o+1)),r.remove(e)),i&&n.push(r.set(e,{on:i})),t)},e}function _(){ru.event.preventDefault()}function M(){for(var t,e=ru.event;t=e.sourceEvent;)e=t;return e}function k(t){for(var e=new x,n=0,r=arguments.length;++n<r;)e[arguments[n]]=w(e);return e.of=function(n,r){return function(i){try{var o=i.sourceEvent=ru.event;i.target=t,ru.event=i,e[i.type].apply(n,r)}finally{ru.event=o}}},e}function E(t){return _u(t,Su),t}function C(t){return"function"==typeof t?t:function(){return Mu(t,this)}}function S(t){return"function"==typeof t?t:function(){return ku(t,this)}}function T(t,e){function n(){this.removeAttribute(t)}function r(){this.removeAttributeNS(t.space,t.local)}function i(){this.setAttribute(t,e)}function o(){this.setAttributeNS(t.space,t.local,e)}function a(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}function u(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}return t=ru.ns.qualify(t),null==e?t.local?r:n:"function"==typeof e?t.local?u:a:t.local?o:i}function j(t){return t.trim().replace(/\s+/g," ")}function A(t){return new RegExp("(?:^|\\s+)"+ru.requote(t)+"(?:\\s+|$)","g")}function N(t){return(t+"").trim().split(/^|\s+/)}function q(t,e){function n(){for(var n=-1;++n<i;)t[n](this,e)}function r(){for(var n=-1,r=e.apply(this,arguments);++n<i;)t[n](this,r)}t=N(t).map(O);var i=t.length;return"function"==typeof e?r:n}function O(t){var e=A(t);return function(n,r){if(i=n.classList)return r?i.add(t):i.remove(t);var i=n.getAttribute("class")||"";r?(e.lastIndex=0,e.test(i)||n.setAttribute("class",j(i+" "+t))):n.setAttribute("class",j(i.replace(e," ")))}}function D(t,e,n){function r(){this.style.removeProperty(t)}function i(){this.style.setProperty(t,e,n)}function o(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,n)}return null==e?r:"function"==typeof e?o:i}function L(t,e){function n(){delete this[t]}function r(){this[t]=e}function i(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}return null==e?n:"function"==typeof e?i:r}function F(t){return"function"==typeof t?t:(t=ru.ns.qualify(t)).local?function(){return this.ownerDocument.createElementNS(t.space,t.local)}:function(){return this.ownerDocument.createElementNS(this.namespaceURI,t)}}function z(){var t=this.parentNode;t&&t.removeChild(this)}function R(data){return{__data__:data}}function P(t){return function(){return Cu(this,t)}}function I(e){return arguments.length||(e=t),function(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}}function H(t,e){for(var n=0,r=t.length;r>n;n++)for(var i,o=t[n],a=0,u=o.length;u>a;a++)(i=o[a])&&e(i,a,n);return t}function B(t){return _u(t,ju),t}function $(t){var e,n;return function(r,i,o){var a,u=t[o].update,s=u.length;for(o!=n&&(n=o,e=0),i>=e&&(e=i+1);!(a=u[e])&&++e<s;);return a}}function V(t,e,n){function r(){var e=this[a];e&&(this.removeEventListener(t,e,e.$),delete this[a])}function i(){var i=s(e,ou(arguments));r.call(this),this.addEventListener(t,this[a]=i,i.$=n),i._=e}function o(){var e,n=new RegExp("^__on([^.]+)"+ru.requote(t)+"$");for(var r in this)if(e=r.match(n)){var i=this[r];this.removeEventListener(e[1],i,i.$),delete this[r]}}var a="__on"+t,u=t.indexOf("."),s=U;u>0&&(t=t.slice(0,u));var l=Nu.get(t);return l&&(t=l,s=W),u?e?i:r:e?b:o}function U(t,e){return function(n){var r=ru.event;ru.event=n,e[0]=this.__data__;try{t.apply(this,e)}finally{ru.event=r}}}function W(t,e){var n=U(t,e);return function(t){var e=this,r=t.relatedTarget;r&&(r===e||8&r.compareDocumentPosition(e))||n.call(e,t)}}function Y(){var t=".dragsuppress-"+ ++Ou,e="click"+t,n=ru.select(su).on("touchmove"+t,_).on("dragstart"+t,_).on("selectstart"+t,_);if(qu){var r=uu.style,i=r[qu];r[qu]="none"}return function(o){if(n.on(t,null),qu&&(r[qu]=i),o){var a=function(){n.on(e,null)};n.on(e,function(){_(),a()},!0),setTimeout(a,0)}}}function X(t,e){e.changedTouches&&(e=e.changedTouches[0]);var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();if(0>Du&&(su.scrollX||su.scrollY)){n=ru.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var i=n[0][0].getScreenCTM();Du=!(i.f||i.e),n.remove()}return Du?(r.x=e.pageX,r.y=e.pageY):(r.x=e.clientX,r.y=e.clientY),r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}var o=t.getBoundingClientRect();return[e.clientX-o.left-t.clientLeft,e.clientY-o.top-t.clientTop]}function J(){return ru.event.changedTouches[0].identifier}function Z(){return ru.event.target}function G(){return su}function K(t){return t>0?1:0>t?-1:0}function Q(t,e,n){return(e[0]-t[0])*(n[1]-t[1])-(e[1]-t[1])*(n[0]-t[0])}function te(t){return t>1?0:-1>t?zu:Math.acos(t)}function ee(t){return t>1?Iu:-1>t?-Iu:Math.asin(t)}function ne(t){return((t=Math.exp(t))-1/t)/2}function re(t){return((t=Math.exp(t))+1/t)/2}function ie(t){return((t=Math.exp(2*t))-1)/(t+1)}function oe(t){return(t=Math.sin(t/2))*t}function ae(){}function ue(t,e,n){return this instanceof ue?(this.h=+t,this.s=+e,void(this.l=+n)):arguments.length<2?t instanceof ue?new ue(t.h,t.s,t.l):we(""+t,_e,ue):new ue(t,e,n)}function se(t,e,n){function r(t){return t>360?t-=360:0>t&&(t+=360),60>t?o+(a-o)*t/60:180>t?a:240>t?o+(a-o)*(240-t)/60:o +}function i(t){return Math.round(255*r(t))}var o,a;return t=isNaN(t)?0:(t%=360)<0?t+360:t,e=isNaN(e)?0:0>e?0:e>1?1:e,n=0>n?0:n>1?1:n,a=.5>=n?n*(1+e):n+e-n*e,o=2*n-a,new me(i(t+120),i(t),i(t-120))}function le(t,e,n){return this instanceof le?(this.h=+t,this.c=+e,void(this.l=+n)):arguments.length<2?t instanceof le?new le(t.h,t.c,t.l):t instanceof fe?pe(t.l,t.a,t.b):pe((t=Me((t=ru.rgb(t)).r,t.g,t.b)).l,t.a,t.b):new le(t,e,n)}function ce(t,e,n){return isNaN(t)&&(t=0),isNaN(e)&&(e=0),new fe(n,Math.cos(t*=Hu)*e,Math.sin(t)*e)}function fe(t,e,n){return this instanceof fe?(this.l=+t,this.a=+e,void(this.b=+n)):arguments.length<2?t instanceof fe?new fe(t.l,t.a,t.b):t instanceof le?ce(t.h,t.c,t.l):Me((t=me(t)).r,t.g,t.b):new fe(t,e,n)}function he(t,e,n){var r=(t+16)/116,i=r+e/500,o=r-n/200;return i=de(i)*Ku,r=de(r)*Qu,o=de(o)*ts,new me(ve(3.2404542*i-1.5371385*r-.4985314*o),ve(-.969266*i+1.8760108*r+.041556*o),ve(.0556434*i-.2040259*r+1.0572252*o))}function pe(t,e,n){return t>0?new le(Math.atan2(n,e)*Bu,Math.sqrt(e*e+n*n),t):new le(0/0,0/0,t)}function de(t){return t>.206893034?t*t*t:(t-4/29)/7.787037}function ge(t){return t>.008856?Math.pow(t,1/3):7.787037*t+4/29}function ve(t){return Math.round(255*(.00304>=t?12.92*t:1.055*Math.pow(t,1/2.4)-.055))}function me(t,e,n){return this instanceof me?(this.r=~~t,this.g=~~e,void(this.b=~~n)):arguments.length<2?t instanceof me?new me(t.r,t.g,t.b):we(""+t,me,se):new me(t,e,n)}function ye(t){return new me(t>>16,t>>8&255,255&t)}function be(t){return ye(t)+""}function xe(t){return 16>t?"0"+Math.max(0,t).toString(16):Math.min(255,t).toString(16)}function we(t,e,n){var r,i,o,a=0,u=0,s=0;if(r=/([a-z]+)\((.*)\)/i.exec(t))switch(i=r[2].split(","),r[1]){case"hsl":return n(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return e(Ee(i[0]),Ee(i[1]),Ee(i[2]))}return(o=rs.get(t))?e(o.r,o.g,o.b):(null==t||"#"!==t.charAt(0)||isNaN(o=parseInt(t.slice(1),16))||(4===t.length?(a=(3840&o)>>4,a=a>>4|a,u=240&o,u=u>>4|u,s=15&o,s=s<<4|s):7===t.length&&(a=(16711680&o)>>16,u=(65280&o)>>8,s=255&o)),e(a,u,s))}function _e(t,e,n){var r,i,o=Math.min(t/=255,e/=255,n/=255),a=Math.max(t,e,n),u=a-o,s=(a+o)/2;return u?(i=.5>s?u/(a+o):u/(2-a-o),r=t==a?(e-n)/u+(n>e?6:0):e==a?(n-t)/u+2:(t-e)/u+4,r*=60):(r=0/0,i=s>0&&1>s?0:r),new ue(r,i,s)}function Me(t,e,n){t=ke(t),e=ke(e),n=ke(n);var r=ge((.4124564*t+.3575761*e+.1804375*n)/Ku),i=ge((.2126729*t+.7151522*e+.072175*n)/Qu),o=ge((.0193339*t+.119192*e+.9503041*n)/ts);return fe(116*i-16,500*(r-i),200*(i-o))}function ke(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Ee(t){var e=parseFloat(t);return"%"===t.charAt(t.length-1)?Math.round(2.55*e):e}function Ce(t){return"function"==typeof t?t:function(){return t}}function Se(t){return t}function Te(t){return function(e,n,r){return 2===arguments.length&&"function"==typeof n&&(r=n,n=null),je(e,n,t,r)}}function je(t,e,n,r){function i(){var t,e=s.status;if(!e&&Ne(s)||e>=200&&300>e||304===e){try{t=n.call(o,s)}catch(r){return void a.error.call(o,r)}a.load.call(o,t)}else a.error.call(o,s)}var o={},a=ru.dispatch("beforesend","progress","load","error"),u={},s=new XMLHttpRequest,l=null;return!su.XDomainRequest||"withCredentials"in s||!/^(http(s)?:)?\/\//.test(t)||(s=new XDomainRequest),"onload"in s?s.onload=s.onerror=i:s.onreadystatechange=function(){s.readyState>3&&i()},s.onprogress=function(t){var e=ru.event;ru.event=t;try{a.progress.call(o,s)}finally{ru.event=e}},o.header=function(t,e){return t=(t+"").toLowerCase(),arguments.length<2?u[t]:(null==e?delete u[t]:u[t]=e+"",o)},o.mimeType=function(t){return arguments.length?(e=null==t?null:t+"",o):e},o.responseType=function(t){return arguments.length?(l=t,o):l},o.response=function(t){return n=t,o},["get","post"].forEach(function(t){o[t]=function(){return o.send.apply(o,[t].concat(ou(arguments)))}}),o.send=function(n,data,r){if(2===arguments.length&&"function"==typeof data&&(r=data,data=null),s.open(n,t,!0),null==e||"accept"in u||(u.accept=e+",*/*"),s.setRequestHeader)for(var i in u)s.setRequestHeader(i,u[i]);return null!=e&&s.overrideMimeType&&s.overrideMimeType(e),null!=l&&(s.responseType=l),null!=r&&o.on("error",r).on("load",function(t){r(null,t)}),a.beforesend.call(o,s),s.send(null==data?null:data),o},o.abort=function(){return s.abort(),o},ru.rebind(o,a,"on"),null==r?o:o.get(Ae(r))}function Ae(t){return 1===t.length?function(e,n){t(null==e?n:null)}:t}function Ne(t){var e=t.responseType;return e&&"text"!==e?t.response:t.responseText}function qe(){var t=Oe(),e=De()-t;e>24?(isFinite(e)&&(clearTimeout(us),us=setTimeout(qe,e)),as=0):(as=1,ls(qe))}function Oe(){var t=Date.now();for(ss=is;ss;)t>=ss.t&&(ss.f=ss.c(t-ss.t)),ss=ss.n;return t}function De(){for(var t,e=is,n=1/0;e;)e.f?e=t?t.n=e.n:is=e.n:(e.t<n&&(n=e.t),e=(t=e).n);return os=t,n}function Le(t,e){return e-(t?Math.ceil(Math.log(t)/Math.LN10):1)}function Fe(t,e){var n=Math.pow(10,3*mu(8-e));return{scale:e>8?function(t){return t/n}:function(t){return t*n},symbol:t}}function ze(t){var e=t.decimal,n=t.thousands,r=t.grouping,i=t.currency,o=r&&n?function(t,e){for(var i=t.length,o=[],a=0,u=r[0],s=0;i>0&&u>0&&(s+u+1>e&&(u=Math.max(1,e-s)),o.push(t.substring(i-=u,i+u)),!((s+=u+1)>e));)u=r[a=(a+1)%r.length];return o.reverse().join(n)}:Se;return function(t){var n=fs.exec(t),r=n[1]||" ",a=n[2]||">",u=n[3]||"-",s=n[4]||"",l=n[5],c=+n[6],f=n[7],h=n[8],p=n[9],d=1,g="",v="",m=!1,y=!0;switch(h&&(h=+h.substring(1)),(l||"0"===r&&"="===a)&&(l=r="0",a="="),p){case"n":f=!0,p="g";break;case"%":d=100,v="%",p="f";break;case"p":d=100,v="%",p="r";break;case"b":case"o":case"x":case"X":"#"===s&&(g="0"+p.toLowerCase());case"c":y=!1;case"d":m=!0,h=0;break;case"s":d=-1,p="r"}"$"===s&&(g=i[0],v=i[1]),"r"!=p||h||(p="g"),null!=h&&("g"==p?h=Math.max(1,Math.min(21,h)):("e"==p||"f"==p)&&(h=Math.max(0,Math.min(20,h)))),p=hs.get(p)||Re;var b=l&&f;return function(t){var n=v;if(m&&t%1)return"";var i=0>t||0===t&&0>1/t?(t=-t,"-"):"-"===u?"":u;if(0>d){var s=ru.formatPrefix(t,h);t=s.scale(t),n=s.symbol+v}else t*=d;t=p(t,h);var x,w,_=t.lastIndexOf(".");if(0>_){var M=y?t.lastIndexOf("e"):-1;0>M?(x=t,w=""):(x=t.substring(0,M),w=t.substring(M))}else x=t.substring(0,_),w=e+t.substring(_+1);!l&&f&&(x=o(x,1/0));var k=g.length+x.length+w.length+(b?0:i.length),E=c>k?new Array(k=c-k+1).join(r):"";return b&&(x=o(E+x,E.length?c-w.length:1/0)),i+=g,t=x+w,("<"===a?i+t+E:">"===a?E+i+t:"^"===a?E.substring(0,k>>=1)+i+t+E.substring(k):i+(b?t:E+t))+n}}}function Re(t){return t+""}function Pe(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Ie(t,e,n){function r(e){var n=t(e),r=o(n,1);return r-e>e-n?n:r}function i(n){return e(n=t(new ds(n-1)),1),n}function o(t,n){return e(t=new ds(+t),n),t}function a(t,r,o){var a=i(t),u=[];if(o>1)for(;r>a;)n(a)%o||u.push(new Date(+a)),e(a,1);else for(;r>a;)u.push(new Date(+a)),e(a,1);return u}function u(t,e,n){try{ds=Pe;var r=new Pe;return r._=t,a(r,e,n)}finally{ds=Date}}t.floor=t,t.round=r,t.ceil=i,t.offset=o,t.range=a;var s=t.utc=He(t);return s.floor=s,s.round=He(r),s.ceil=He(i),s.offset=He(o),s.range=u,t}function He(t){return function(e,n){try{ds=Pe;var r=new Pe;return r._=e,t(r,n)._}finally{ds=Date}}}function Be(t){function e(t){function e(e){for(var n,i,o,a=[],u=-1,s=0;++u<r;)37===t.charCodeAt(u)&&(a.push(t.slice(s,u)),null!=(i=vs[n=t.charAt(++u)])&&(n=t.charAt(++u)),(o=T[n])&&(n=o(e,null==i?"e"===n?" ":"0":i)),a.push(n),s=u+1);return a.push(t.slice(s,u)),a.join("")}var r=t.length;return e.parse=function(e){var r={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null},i=n(r,t,e,0);if(i!=e.length)return null;"p"in r&&(r.H=r.H%12+12*r.p);var o=null!=r.Z&&ds!==Pe,a=new(o?Pe:ds);return"j"in r?a.setFullYear(r.y,0,r.j):"w"in r&&("W"in r||"U"in r)?(a.setFullYear(r.y,0,1),a.setFullYear(r.y,0,"W"in r?(r.w+6)%7+7*r.W-(a.getDay()+5)%7:r.w+7*r.U-(a.getDay()+6)%7)):a.setFullYear(r.y,r.m,r.d),a.setHours(r.H+(r.Z/100|0),r.M+r.Z%100,r.S,r.L),o?a._:a},e.toString=function(){return t},e}function n(t,e,n,r){for(var i,o,a,u=0,s=e.length,l=n.length;s>u;){if(r>=l)return-1;if(i=e.charCodeAt(u++),37===i){if(a=e.charAt(u++),o=j[a in vs?e.charAt(u++):a],!o||(r=o(t,n,r))<0)return-1}else if(i!=n.charCodeAt(r++))return-1}return r}function r(t,e,n){_.lastIndex=0;var r=_.exec(e.slice(n));return r?(t.w=M.get(r[0].toLowerCase()),n+r[0].length):-1}function i(t,e,n){x.lastIndex=0;var r=x.exec(e.slice(n));return r?(t.w=w.get(r[0].toLowerCase()),n+r[0].length):-1}function o(t,e,n){C.lastIndex=0;var r=C.exec(e.slice(n));return r?(t.m=S.get(r[0].toLowerCase()),n+r[0].length):-1}function a(t,e,n){k.lastIndex=0;var r=k.exec(e.slice(n));return r?(t.m=E.get(r[0].toLowerCase()),n+r[0].length):-1}function u(t,e,r){return n(t,T.c.toString(),e,r)}function s(t,e,r){return n(t,T.x.toString(),e,r)}function l(t,e,r){return n(t,T.X.toString(),e,r)}function c(t,e,n){var r=b.get(e.slice(n,n+=2).toLowerCase());return null==r?-1:(t.p=r,n)}var f=t.dateTime,h=t.date,p=t.time,d=t.periods,g=t.days,v=t.shortDays,m=t.months,y=t.shortMonths;e.utc=function(t){function n(t){try{ds=Pe;var e=new ds;return e._=t,r(e)}finally{ds=Date}}var r=e(t);return n.parse=function(t){try{ds=Pe;var e=r.parse(t);return e&&e._}finally{ds=Date}},n.toString=r.toString,n},e.multi=e.utc.multi=ln;var b=ru.map(),x=Ve(g),w=Ue(g),_=Ve(v),M=Ue(v),k=Ve(m),E=Ue(m),C=Ve(y),S=Ue(y);d.forEach(function(t,e){b.set(t.toLowerCase(),e)});var T={a:function(t){return v[t.getDay()]},A:function(t){return g[t.getDay()]},b:function(t){return y[t.getMonth()]},B:function(t){return m[t.getMonth()]},c:e(f),d:function(t,e){return $e(t.getDate(),e,2)},e:function(t,e){return $e(t.getDate(),e,2)},H:function(t,e){return $e(t.getHours(),e,2)},I:function(t,e){return $e(t.getHours()%12||12,e,2)},j:function(t,e){return $e(1+ps.dayOfYear(t),e,3)},L:function(t,e){return $e(t.getMilliseconds(),e,3)},m:function(t,e){return $e(t.getMonth()+1,e,2)},M:function(t,e){return $e(t.getMinutes(),e,2)},p:function(t){return d[+(t.getHours()>=12)]},S:function(t,e){return $e(t.getSeconds(),e,2)},U:function(t,e){return $e(ps.sundayOfYear(t),e,2)},w:function(t){return t.getDay()},W:function(t,e){return $e(ps.mondayOfYear(t),e,2)},x:e(h),X:e(p),y:function(t,e){return $e(t.getFullYear()%100,e,2)},Y:function(t,e){return $e(t.getFullYear()%1e4,e,4)},Z:un,"%":function(){return"%"}},j={a:r,A:i,b:o,B:a,c:u,d:tn,e:tn,H:nn,I:nn,j:en,L:an,m:Qe,M:rn,p:c,S:on,U:Ye,w:We,W:Xe,x:s,X:l,y:Ze,Y:Je,Z:Ge,"%":sn};return e}function $e(t,e,n){var r=0>t?"-":"",i=(r?-t:t)+"",o=i.length;return r+(n>o?new Array(n-o+1).join(e)+i:i)}function Ve(t){return new RegExp("^(?:"+t.map(ru.requote).join("|")+")","i")}function Ue(t){for(var e=new s,n=-1,r=t.length;++n<r;)e.set(t[n].toLowerCase(),n);return e}function We(t,e,n){ms.lastIndex=0;var r=ms.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function Ye(t,e,n){ms.lastIndex=0;var r=ms.exec(e.slice(n));return r?(t.U=+r[0],n+r[0].length):-1}function Xe(t,e,n){ms.lastIndex=0;var r=ms.exec(e.slice(n));return r?(t.W=+r[0],n+r[0].length):-1}function Je(t,e,n){ms.lastIndex=0;var r=ms.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function Ze(t,e,n){ms.lastIndex=0;var r=ms.exec(e.slice(n,n+2));return r?(t.y=Ke(+r[0]),n+r[0].length):-1}function Ge(t,e,n){return/^[+-]\d{4}$/.test(e=e.slice(n,n+5))?(t.Z=-e,n+5):-1}function Ke(t){return t+(t>68?1900:2e3)}function Qe(t,e,n){ms.lastIndex=0;var r=ms.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function tn(t,e,n){ms.lastIndex=0;var r=ms.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function en(t,e,n){ms.lastIndex=0;var r=ms.exec(e.slice(n,n+3));return r?(t.j=+r[0],n+r[0].length):-1}function nn(t,e,n){ms.lastIndex=0;var r=ms.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function rn(t,e,n){ms.lastIndex=0;var r=ms.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function on(t,e,n){ms.lastIndex=0;var r=ms.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function an(t,e,n){ms.lastIndex=0;var r=ms.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function un(t){var e=t.getTimezoneOffset(),n=e>0?"-":"+",r=mu(e)/60|0,i=mu(e)%60;return n+$e(r,"0",2)+$e(i,"0",2)}function sn(t,e,n){ys.lastIndex=0;var r=ys.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function ln(t){for(var e=t.length,n=-1;++n<e;)t[n][0]=this(t[n][0]);return function(e){for(var n=0,r=t[n];!r[1](e);)r=t[++n];return r[0](e)}}function cn(){}function fn(t,e,n){var r=n.s=t+e,i=r-t,o=r-i;n.t=t-o+(e-i)}function hn(t,e){t&&_s.hasOwnProperty(t.type)&&_s[t.type](t,e)}function pn(t,e,n){var r,i=-1,o=t.length-n;for(e.lineStart();++i<o;)r=t[i],e.point(r[0],r[1],r[2]);e.lineEnd()}function dn(t,e){var n=-1,r=t.length;for(e.polygonStart();++n<r;)pn(t[n],e,1);e.polygonEnd()}function gn(){function t(t,e){t*=Hu,e=e*Hu/2+zu/4;var n=t-r,a=n>=0?1:-1,u=a*n,s=Math.cos(e),l=Math.sin(e),c=o*l,f=i*s+c*Math.cos(u),h=c*a*Math.sin(u);ks.add(Math.atan2(h,f)),r=t,i=s,o=l}var e,n,r,i,o;Es.point=function(a,u){Es.point=t,r=(e=a)*Hu,i=Math.cos(u=(n=u)*Hu/2+zu/4),o=Math.sin(u)},Es.lineEnd=function(){t(e,n)}}function vn(t){var e=t[0],n=t[1],r=Math.cos(n);return[r*Math.cos(e),r*Math.sin(e),Math.sin(n)]}function mn(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function yn(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function bn(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function xn(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function wn(t){var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}function _n(t){return[Math.atan2(t[1],t[0]),ee(t[2])]}function Mn(t,e){return mu(t[0]-e[0])<Lu&&mu(t[1]-e[1])<Lu}function kn(t,e){t*=Hu;var n=Math.cos(e*=Hu);En(n*Math.cos(t),n*Math.sin(t),Math.sin(e))}function En(t,e,n){++Cs,Ts+=(t-Ts)/Cs,js+=(e-js)/Cs,As+=(n-As)/Cs}function Cn(){function t(t,i){t*=Hu;var o=Math.cos(i*=Hu),a=o*Math.cos(t),u=o*Math.sin(t),s=Math.sin(i),l=Math.atan2(Math.sqrt((l=n*s-r*u)*l+(l=r*a-e*s)*l+(l=e*u-n*a)*l),e*a+n*u+r*s);Ss+=l,Ns+=l*(e+(e=a)),qs+=l*(n+(n=u)),Os+=l*(r+(r=s)),En(e,n,r)}var e,n,r;zs.point=function(i,o){i*=Hu;var a=Math.cos(o*=Hu);e=a*Math.cos(i),n=a*Math.sin(i),r=Math.sin(o),zs.point=t,En(e,n,r)}}function Sn(){zs.point=kn}function Tn(){function t(t,e){t*=Hu;var n=Math.cos(e*=Hu),a=n*Math.cos(t),u=n*Math.sin(t),s=Math.sin(e),l=i*s-o*u,c=o*a-r*s,f=r*u-i*a,h=Math.sqrt(l*l+c*c+f*f),p=r*a+i*u+o*s,d=h&&-te(p)/h,g=Math.atan2(h,p);Ds+=d*l,Ls+=d*c,Fs+=d*f,Ss+=g,Ns+=g*(r+(r=a)),qs+=g*(i+(i=u)),Os+=g*(o+(o=s)),En(r,i,o)}var e,n,r,i,o;zs.point=function(a,u){e=a,n=u,zs.point=t,a*=Hu;var s=Math.cos(u*=Hu);r=s*Math.cos(a),i=s*Math.sin(a),o=Math.sin(u),En(r,i,o)},zs.lineEnd=function(){t(e,n),zs.lineEnd=Sn,zs.point=kn}}function jn(t,e){function n(n,r){return n=t(n,r),e(n[0],n[1])}return t.invert&&e.invert&&(n.invert=function(n,r){return n=e.invert(n,r),n&&t.invert(n[0],n[1])}),n}function An(){return!0}function Nn(t,e,n,r,i){var o=[],a=[];if(t.forEach(function(t){if(!((e=t.length-1)<=0)){var e,n=t[0],r=t[e];if(Mn(n,r)){i.lineStart();for(var u=0;e>u;++u)i.point((n=t[u])[0],n[1]);return void i.lineEnd()}var s=new On(n,t,null,!0),l=new On(n,null,s,!1);s.o=l,o.push(s),a.push(l),s=new On(r,t,null,!1),l=new On(r,null,s,!0),s.o=l,o.push(s),a.push(l)}}),a.sort(e),qn(o),qn(a),o.length){for(var u=0,s=n,l=a.length;l>u;++u)a[u].e=s=!s;for(var c,f,h=o[0];;){for(var p=h,d=!0;p.v;)if((p=p.n)===h)return;c=p.z,i.lineStart();do{if(p.v=p.o.v=!0,p.e){if(d)for(var u=0,l=c.length;l>u;++u)i.point((f=c[u])[0],f[1]);else r(p.x,p.n.x,1,i);p=p.n}else{if(d){c=p.p.z;for(var u=c.length-1;u>=0;--u)i.point((f=c[u])[0],f[1])}else r(p.x,p.p.x,-1,i);p=p.p}p=p.o,c=p.z,d=!d}while(!p.v);i.lineEnd()}}}function qn(t){if(e=t.length){for(var e,n,r=0,i=t[0];++r<e;)i.n=n=t[r],n.p=i,i=n;i.n=n=t[0],n.p=i}}function On(t,e,n,r){this.x=t,this.z=e,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}function Dn(t,e,n,r){return function(i,o){function a(e,n){var r=i(e,n);t(e=r[0],n=r[1])&&o.point(e,n)}function u(t,e){var n=i(t,e);v.point(n[0],n[1])}function s(){y.point=u,v.lineStart()}function l(){y.point=a,v.lineEnd()}function c(t,e){g.push([t,e]);var n=i(t,e);x.point(n[0],n[1])}function f(){x.lineStart(),g=[]}function h(){c(g[0][0],g[0][1]),x.lineEnd();var t,e=x.clean(),n=b.buffer(),r=n.length;if(g.pop(),d.push(g),g=null,r)if(1&e){t=n[0];var i,r=t.length-1,a=-1;if(r>0){for(w||(o.polygonStart(),w=!0),o.lineStart();++a<r;)o.point((i=t[a])[0],i[1]);o.lineEnd()}}else r>1&&2&e&&n.push(n.pop().concat(n.shift())),p.push(n.filter(Ln))}var p,d,g,v=e(o),m=i.invert(r[0],r[1]),y={point:a,lineStart:s,lineEnd:l,polygonStart:function(){y.point=c,y.lineStart=f,y.lineEnd=h,p=[],d=[]},polygonEnd:function(){y.point=a,y.lineStart=s,y.lineEnd=l,p=ru.merge(p);var t=Hn(m,d);p.length?(w||(o.polygonStart(),w=!0),Nn(p,zn,t,n,o)):t&&(w||(o.polygonStart(),w=!0),o.lineStart(),n(null,null,1,o),o.lineEnd()),w&&(o.polygonEnd(),w=!1),p=d=null},sphere:function(){o.polygonStart(),o.lineStart(),n(null,null,1,o),o.lineEnd(),o.polygonEnd()}},b=Fn(),x=e(b),w=!1;return y}}function Ln(t){return t.length>1}function Fn(){var t,e=[];return{lineStart:function(){e.push(t=[])},point:function(e,n){t.push([e,n])},lineEnd:b,buffer:function(){var n=e;return e=[],t=null,n},rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))}}}function zn(t,e){return((t=t.x)[0]<0?t[1]-Iu-Lu:Iu-t[1])-((e=e.x)[0]<0?e[1]-Iu-Lu:Iu-e[1])}function Rn(t){var e,n=0/0,r=0/0,i=0/0;return{lineStart:function(){t.lineStart(),e=1},point:function(o,a){var u=o>0?zu:-zu,s=mu(o-n);mu(s-zu)<Lu?(t.point(n,r=(r+a)/2>0?Iu:-Iu),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),t.point(o,r),e=0):i!==u&&s>=zu&&(mu(n-i)<Lu&&(n-=i*Lu),mu(o-u)<Lu&&(o-=u*Lu),r=Pn(n,r,o,a),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),e=0),t.point(n=o,r=a),i=u},lineEnd:function(){t.lineEnd(),n=r=0/0},clean:function(){return 2-e}}}function Pn(t,e,n,r){var i,o,a=Math.sin(t-n);return mu(a)>Lu?Math.atan((Math.sin(e)*(o=Math.cos(r))*Math.sin(n)-Math.sin(r)*(i=Math.cos(e))*Math.sin(t))/(i*o*a)):(e+r)/2}function In(t,e,n,r){var i;if(null==t)i=n*Iu,r.point(-zu,i),r.point(0,i),r.point(zu,i),r.point(zu,0),r.point(zu,-i),r.point(0,-i),r.point(-zu,-i),r.point(-zu,0),r.point(-zu,i);else if(mu(t[0]-e[0])>Lu){var o=t[0]<e[0]?zu:-zu;i=n*o/2,r.point(-o,i),r.point(0,i),r.point(o,i)}else r.point(e[0],e[1])}function Hn(t,e){var n=t[0],r=t[1],i=[Math.sin(n),-Math.cos(n),0],o=0,a=0;ks.reset();for(var u=0,s=e.length;s>u;++u){var l=e[u],c=l.length;if(c)for(var f=l[0],h=f[0],p=f[1]/2+zu/4,d=Math.sin(p),g=Math.cos(p),v=1;;){v===c&&(v=0),t=l[v];var m=t[0],y=t[1]/2+zu/4,b=Math.sin(y),x=Math.cos(y),w=m-h,_=w>=0?1:-1,M=_*w,k=M>zu,E=d*b;if(ks.add(Math.atan2(E*_*Math.sin(M),g*x+E*Math.cos(M))),o+=k?w+_*Ru:w,k^h>=n^m>=n){var C=yn(vn(f),vn(t));wn(C);var S=yn(i,C);wn(S);var T=(k^w>=0?-1:1)*ee(S[2]);(r>T||r===T&&(C[0]||C[1]))&&(a+=k^w>=0?1:-1)}if(!v++)break;h=m,d=b,g=x,f=t}}return(-Lu>o||Lu>o&&0>ks)^1&a}function Bn(t){function e(t,e){return Math.cos(t)*Math.cos(e)>o}function n(t){var n,o,s,l,c;return{lineStart:function(){l=s=!1,c=1},point:function(f,h){var p,d=[f,h],g=e(f,h),v=a?g?0:i(f,h):g?i(f+(0>f?zu:-zu),h):0;if(!n&&(l=s=g)&&t.lineStart(),g!==s&&(p=r(n,d),(Mn(n,p)||Mn(d,p))&&(d[0]+=Lu,d[1]+=Lu,g=e(d[0],d[1]))),g!==s)c=0,g?(t.lineStart(),p=r(d,n),t.point(p[0],p[1])):(p=r(n,d),t.point(p[0],p[1]),t.lineEnd()),n=p;else if(u&&n&&a^g){var m;v&o||!(m=r(d,n,!0))||(c=0,a?(t.lineStart(),t.point(m[0][0],m[0][1]),t.point(m[1][0],m[1][1]),t.lineEnd()):(t.point(m[1][0],m[1][1]),t.lineEnd(),t.lineStart(),t.point(m[0][0],m[0][1])))}!g||n&&Mn(n,d)||t.point(d[0],d[1]),n=d,s=g,o=v},lineEnd:function(){s&&t.lineEnd(),n=null},clean:function(){return c|(l&&s)<<1}}}function r(t,e,n){var r=vn(t),i=vn(e),a=[1,0,0],u=yn(r,i),s=mn(u,u),l=u[0],c=s-l*l;if(!c)return!n&&t;var f=o*s/c,h=-o*l/c,p=yn(a,u),d=xn(a,f),g=xn(u,h);bn(d,g);var v=p,m=mn(d,v),y=mn(v,v),b=m*m-y*(mn(d,d)-1);if(!(0>b)){var x=Math.sqrt(b),w=xn(v,(-m-x)/y);if(bn(w,d),w=_n(w),!n)return w;var _,M=t[0],k=e[0],E=t[1],C=e[1];M>k&&(_=M,M=k,k=_);var S=k-M,T=mu(S-zu)<Lu,j=T||Lu>S;if(!T&&E>C&&(_=E,E=C,C=_),j?T?E+C>0^w[1]<(mu(w[0]-M)<Lu?E:C):E<=w[1]&&w[1]<=C:S>zu^(M<=w[0]&&w[0]<=k)){var A=xn(v,(-m+x)/y);return bn(A,d),[w,_n(A)]}}}function i(e,n){var r=a?t:zu-t,i=0;return-r>e?i|=1:e>r&&(i|=2),-r>n?i|=4:n>r&&(i|=8),i}var o=Math.cos(t),a=o>0,u=mu(o)>Lu,s=gr(t,6*Hu);return Dn(e,n,s,a?[0,-t]:[-zu,t-zu])}function $n(t,e,n,r){return function(i){var o,a=i.a,u=i.b,s=a.x,l=a.y,c=u.x,f=u.y,h=0,p=1,d=c-s,g=f-l;if(o=t-s,d||!(o>0)){if(o/=d,0>d){if(h>o)return;p>o&&(p=o)}else if(d>0){if(o>p)return;o>h&&(h=o)}if(o=n-s,d||!(0>o)){if(o/=d,0>d){if(o>p)return;o>h&&(h=o)}else if(d>0){if(h>o)return;p>o&&(p=o)}if(o=e-l,g||!(o>0)){if(o/=g,0>g){if(h>o)return;p>o&&(p=o)}else if(g>0){if(o>p)return;o>h&&(h=o)}if(o=r-l,g||!(0>o)){if(o/=g,0>g){if(o>p)return;o>h&&(h=o)}else if(g>0){if(h>o)return;p>o&&(p=o)}return h>0&&(i.a={x:s+h*d,y:l+h*g}),1>p&&(i.b={x:s+p*d,y:l+p*g}),i}}}}}}function Vn(t,e,n,r){function i(r,i){return mu(r[0]-t)<Lu?i>0?0:3:mu(r[0]-n)<Lu?i>0?2:1:mu(r[1]-e)<Lu?i>0?1:0:i>0?3:2}function o(t,e){return a(t.x,e.x)}function a(t,e){var n=i(t,1),r=i(e,1);return n!==r?n-r:0===n?e[1]-t[1]:1===n?t[0]-e[0]:2===n?t[1]-e[1]:e[0]-t[0]}return function(u){function s(t){for(var e=0,n=v.length,r=t[1],i=0;n>i;++i)for(var o,a=1,u=v[i],s=u.length,l=u[0];s>a;++a)o=u[a],l[1]<=r?o[1]>r&&Q(l,o,t)>0&&++e:o[1]<=r&&Q(l,o,t)<0&&--e,l=o;return 0!==e}function l(o,u,s,l){var c=0,f=0;if(null==o||(c=i(o,s))!==(f=i(u,s))||a(o,u)<0^s>0){do l.point(0===c||3===c?t:n,c>1?r:e);while((c=(c+s+4)%4)!==f)}else l.point(u[0],u[1])}function c(i,o){return i>=t&&n>=i&&o>=e&&r>=o}function f(t,e){c(t,e)&&u.point(t,e)}function h(){j.point=d,v&&v.push(m=[]),k=!0,M=!1,w=_=0/0}function p(){g&&(d(y,b),x&&M&&S.rejoin(),g.push(S.buffer())),j.point=f,M&&u.lineEnd()}function d(t,e){t=Math.max(-Ps,Math.min(Ps,t)),e=Math.max(-Ps,Math.min(Ps,e));var n=c(t,e);if(v&&m.push([t,e]),k)y=t,b=e,x=n,k=!1,n&&(u.lineStart(),u.point(t,e));else if(n&&M)u.point(t,e);else{var r={a:{x:w,y:_},b:{x:t,y:e}};T(r)?(M||(u.lineStart(),u.point(r.a.x,r.a.y)),u.point(r.b.x,r.b.y),n||u.lineEnd(),E=!1):n&&(u.lineStart(),u.point(t,e),E=!1)}w=t,_=e,M=n}var g,v,m,y,b,x,w,_,M,k,E,C=u,S=Fn(),T=$n(t,e,n,r),j={point:f,lineStart:h,lineEnd:p,polygonStart:function(){u=S,g=[],v=[],E=!0},polygonEnd:function(){u=C,g=ru.merge(g);var e=s([t,r]),n=E&&e,i=g.length;(n||i)&&(u.polygonStart(),n&&(u.lineStart(),l(null,null,1,u),u.lineEnd()),i&&Nn(g,o,e,l,u),u.polygonEnd()),g=v=m=null}};return j}}function Un(t){var e=0,n=zu/3,r=ur(t),i=r(e,n);return i.parallels=function(t){return arguments.length?r(e=t[0]*zu/180,n=t[1]*zu/180):[e/zu*180,n/zu*180]},i}function Wn(t,e){function n(t,e){var n=Math.sqrt(o-2*i*Math.sin(e))/i;return[n*Math.sin(t*=i),a-n*Math.cos(t)]}var r=Math.sin(t),i=(r+Math.sin(e))/2,o=1+r*(2*i-r),a=Math.sqrt(o)/i;return n.invert=function(t,e){var n=a-e;return[Math.atan2(t,n)/i,ee((o-(t*t+n*n)*i*i)/(2*i))]},n}function Yn(){function t(t,e){Hs+=i*t-r*e,r=t,i=e}var e,n,r,i;Ws.point=function(o,a){Ws.point=t,e=r=o,n=i=a},Ws.lineEnd=function(){t(e,n)}}function Xn(t,e){Bs>t&&(Bs=t),t>Vs&&(Vs=t),$s>e&&($s=e),e>Us&&(Us=e)}function Jn(){function t(t,e){a.push("M",t,",",e,o)}function e(t,e){a.push("M",t,",",e),u.point=n}function n(t,e){a.push("L",t,",",e)}function r(){u.point=t}function i(){a.push("Z")}var o=Zn(4.5),a=[],u={point:t,lineStart:function(){u.point=e},lineEnd:r,polygonStart:function(){u.lineEnd=i},polygonEnd:function(){u.lineEnd=r,u.point=t},pointRadius:function(t){return o=Zn(t),u},result:function(){if(a.length){var t=a.join("");return a=[],t}}};return u}function Zn(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function Gn(t,e){Ts+=t,js+=e,++As}function Kn(){function t(t,r){var i=t-e,o=r-n,a=Math.sqrt(i*i+o*o);Ns+=a*(e+t)/2,qs+=a*(n+r)/2,Os+=a,Gn(e=t,n=r)}var e,n;Xs.point=function(r,i){Xs.point=t,Gn(e=r,n=i)}}function Qn(){Xs.point=Gn}function tr(){function t(t,e){var n=t-r,o=e-i,a=Math.sqrt(n*n+o*o);Ns+=a*(r+t)/2,qs+=a*(i+e)/2,Os+=a,a=i*t-r*e,Ds+=a*(r+t),Ls+=a*(i+e),Fs+=3*a,Gn(r=t,i=e)}var e,n,r,i;Xs.point=function(o,a){Xs.point=t,Gn(e=r=o,n=i=a)},Xs.lineEnd=function(){t(e,n)}}function er(t){function e(e,n){t.moveTo(e+a,n),t.arc(e,n,a,0,Ru)}function n(e,n){t.moveTo(e,n),u.point=r}function r(e,n){t.lineTo(e,n)}function i(){u.point=e}function o(){t.closePath()}var a=4.5,u={point:e,lineStart:function(){u.point=n},lineEnd:i,polygonStart:function(){u.lineEnd=o},polygonEnd:function(){u.lineEnd=i,u.point=e},pointRadius:function(t){return a=t,u},result:b};return u}function nr(t){function e(t){return(u?r:n)(t)}function n(e){return or(e,function(n,r){n=t(n,r),e.point(n[0],n[1])})}function r(e){function n(n,r){n=t(n,r),e.point(n[0],n[1])}function r(){b=0/0,k.point=o,e.lineStart()}function o(n,r){var o=vn([n,r]),a=t(n,r);i(b,x,y,w,_,M,b=a[0],x=a[1],y=n,w=o[0],_=o[1],M=o[2],u,e),e.point(b,x)}function a(){k.point=n,e.lineEnd()}function s(){r(),k.point=l,k.lineEnd=c}function l(t,e){o(f=t,h=e),p=b,d=x,g=w,v=_,m=M,k.point=o}function c(){i(b,x,y,w,_,M,p,d,f,g,v,m,u,e),k.lineEnd=a,a()}var f,h,p,d,g,v,m,y,b,x,w,_,M,k={point:n,lineStart:r,lineEnd:a,polygonStart:function(){e.polygonStart(),k.lineStart=s},polygonEnd:function(){e.polygonEnd(),k.lineStart=r}};return k}function i(e,n,r,u,s,l,c,f,h,p,d,g,v,m){var y=c-e,b=f-n,x=y*y+b*b;if(x>4*o&&v--){var w=u+p,_=s+d,M=l+g,k=Math.sqrt(w*w+_*_+M*M),E=Math.asin(M/=k),C=mu(mu(M)-1)<Lu||mu(r-h)<Lu?(r+h)/2:Math.atan2(_,w),S=t(C,E),T=S[0],j=S[1],A=T-e,N=j-n,q=b*A-y*N;(q*q/x>o||mu((y*A+b*N)/x-.5)>.3||a>u*p+s*d+l*g)&&(i(e,n,r,u,s,l,T,j,C,w/=k,_/=k,M,v,m),m.point(T,j),i(T,j,C,w,_,M,c,f,h,p,d,g,v,m))}}var o=.5,a=Math.cos(30*Hu),u=16;return e.precision=function(t){return arguments.length?(u=(o=t*t)>0&&16,e):Math.sqrt(o)},e}function rr(t){var e=nr(function(e,n){return t([e*Bu,n*Bu])});return function(t){return sr(e(t))}}function ir(t){this.stream=t}function or(t,e){return{point:e,sphere:function(){t.sphere()},lineStart:function(){t.lineStart()},lineEnd:function(){t.lineEnd()},polygonStart:function(){t.polygonStart()},polygonEnd:function(){t.polygonEnd()}}}function ar(t){return ur(function(){return t})()}function ur(t){function e(t){return t=u(t[0]*Hu,t[1]*Hu),[t[0]*h+s,l-t[1]*h]}function n(t){return t=u.invert((t[0]-s)/h,(l-t[1])/h),t&&[t[0]*Bu,t[1]*Bu]}function r(){u=jn(a=fr(m,y,b),o);var t=o(g,v);return s=p-t[0]*h,l=d+t[1]*h,i()}function i(){return c&&(c.valid=!1,c=null),e}var o,a,u,s,l,c,f=nr(function(t,e){return t=o(t,e),[t[0]*h+s,l-t[1]*h]}),h=150,p=480,d=250,g=0,v=0,m=0,y=0,b=0,x=Rs,w=Se,_=null,M=null;return e.stream=function(t){return c&&(c.valid=!1),c=sr(x(a,f(w(t)))),c.valid=!0,c},e.clipAngle=function(t){return arguments.length?(x=null==t?(_=t,Rs):Bn((_=+t)*Hu),i()):_},e.clipExtent=function(t){return arguments.length?(M=t,w=t?Vn(t[0][0],t[0][1],t[1][0],t[1][1]):Se,i()):M},e.scale=function(t){return arguments.length?(h=+t,r()):h},e.translate=function(t){return arguments.length?(p=+t[0],d=+t[1],r()):[p,d]},e.center=function(t){return arguments.length?(g=t[0]%360*Hu,v=t[1]%360*Hu,r()):[g*Bu,v*Bu]},e.rotate=function(t){return arguments.length?(m=t[0]%360*Hu,y=t[1]%360*Hu,b=t.length>2?t[2]%360*Hu:0,r()):[m*Bu,y*Bu,b*Bu]},ru.rebind(e,f,"precision"),function(){return o=t.apply(this,arguments),e.invert=o.invert&&n,r()}}function sr(t){return or(t,function(e,n){t.point(e*Hu,n*Hu)})}function lr(t,e){return[t,e]}function cr(t,e){return[t>zu?t-Ru:-zu>t?t+Ru:t,e]}function fr(t,e,n){return t?e||n?jn(pr(t),dr(e,n)):pr(t):e||n?dr(e,n):cr}function hr(t){return function(e,n){return e+=t,[e>zu?e-Ru:-zu>e?e+Ru:e,n]}}function pr(t){var e=hr(t);return e.invert=hr(-t),e}function dr(t,e){function n(t,e){var n=Math.cos(e),u=Math.cos(t)*n,s=Math.sin(t)*n,l=Math.sin(e),c=l*r+u*i;return[Math.atan2(s*o-c*a,u*r-l*i),ee(c*o+s*a)]}var r=Math.cos(t),i=Math.sin(t),o=Math.cos(e),a=Math.sin(e);return n.invert=function(t,e){var n=Math.cos(e),u=Math.cos(t)*n,s=Math.sin(t)*n,l=Math.sin(e),c=l*o-s*a;return[Math.atan2(s*o+l*a,u*r+c*i),ee(c*r-u*i)]},n}function gr(t,e){var n=Math.cos(t),r=Math.sin(t);return function(i,o,a,u){var s=a*e;null!=i?(i=vr(n,i),o=vr(n,o),(a>0?o>i:i>o)&&(i+=a*Ru)):(i=t+a*Ru,o=t-.5*s);for(var l,c=i;a>0?c>o:o>c;c-=s)u.point((l=_n([n,-r*Math.cos(c),-r*Math.sin(c)]))[0],l[1])}}function vr(t,e){var n=vn(e);n[0]-=t,wn(n);var r=te(-n[1]);return((-n[2]<0?-r:r)+2*Math.PI-Lu)%(2*Math.PI)}function mr(t,e,n){var r=ru.range(t,e-Lu,n).concat(e);return function(t){return r.map(function(e){return[t,e]})}}function yr(t,e,n){var r=ru.range(t,e-Lu,n).concat(e);return function(t){return r.map(function(e){return[e,t]})}}function br(t){return t.source}function xr(t){return t.target}function wr(t,e,n,r){var i=Math.cos(e),o=Math.sin(e),a=Math.cos(r),u=Math.sin(r),s=i*Math.cos(t),l=i*Math.sin(t),c=a*Math.cos(n),f=a*Math.sin(n),h=2*Math.asin(Math.sqrt(oe(r-e)+i*a*oe(n-t))),p=1/Math.sin(h),d=h?function(t){var e=Math.sin(t*=h)*p,n=Math.sin(h-t)*p,r=n*s+e*c,i=n*l+e*f,a=n*o+e*u;return[Math.atan2(i,r)*Bu,Math.atan2(a,Math.sqrt(r*r+i*i))*Bu]}:function(){return[t*Bu,e*Bu]};return d.distance=h,d}function _r(){function t(t,i){var o=Math.sin(i*=Hu),a=Math.cos(i),u=mu((t*=Hu)-e),s=Math.cos(u);Js+=Math.atan2(Math.sqrt((u=a*Math.sin(u))*u+(u=r*o-n*a*s)*u),n*o+r*a*s),e=t,n=o,r=a}var e,n,r;Zs.point=function(i,o){e=i*Hu,n=Math.sin(o*=Hu),r=Math.cos(o),Zs.point=t},Zs.lineEnd=function(){Zs.point=Zs.lineEnd=b}}function Mr(t,e){function n(e,n){var r=Math.cos(e),i=Math.cos(n),o=t(r*i);return[o*i*Math.sin(e),o*Math.sin(n)]}return n.invert=function(t,n){var r=Math.sqrt(t*t+n*n),i=e(r),o=Math.sin(i),a=Math.cos(i);return[Math.atan2(t*o,r*a),Math.asin(r&&n*o/r)]},n}function kr(t,e){function n(t,e){a>0?-Iu+Lu>e&&(e=-Iu+Lu):e>Iu-Lu&&(e=Iu-Lu);var n=a/Math.pow(i(e),o);return[n*Math.sin(o*t),a-n*Math.cos(o*t)]}var r=Math.cos(t),i=function(t){return Math.tan(zu/4+t/2)},o=t===e?Math.sin(t):Math.log(r/Math.cos(e))/Math.log(i(e)/i(t)),a=r*Math.pow(i(t),o)/o;return o?(n.invert=function(t,e){var n=a-e,r=K(o)*Math.sqrt(t*t+n*n);return[Math.atan2(t,n)/o,2*Math.atan(Math.pow(a/r,1/o))-Iu]},n):Cr}function Er(t,e){function n(t,e){var n=o-e;return[n*Math.sin(i*t),o-n*Math.cos(i*t)]}var r=Math.cos(t),i=t===e?Math.sin(t):(r-Math.cos(e))/(e-t),o=r/i+t;return mu(i)<Lu?lr:(n.invert=function(t,e){var n=o-e;return[Math.atan2(t,n)/i,o-K(i)*Math.sqrt(t*t+n*n)]},n)}function Cr(t,e){return[t,Math.log(Math.tan(zu/4+e/2))]}function Sr(t){var e,n=ar(t),r=n.scale,i=n.translate,o=n.clipExtent;return n.scale=function(){var t=r.apply(n,arguments);return t===n?e?n.clipExtent(null):n:t},n.translate=function(){var t=i.apply(n,arguments);return t===n?e?n.clipExtent(null):n:t},n.clipExtent=function(t){var a=o.apply(n,arguments);if(a===n){if(e=null==t){var u=zu*r(),s=i();o([[s[0]-u,s[1]-u],[s[0]+u,s[1]+u]])}}else e&&(a=null);return a},n.clipExtent(null)}function Tr(t,e){return[Math.log(Math.tan(zu/4+e/2)),-t]}function jr(t){return t[0]}function Ar(t){return t[1]}function Nr(t){for(var e=t.length,n=[0,1],r=2,i=2;e>i;i++){for(;r>1&&Q(t[n[r-2]],t[n[r-1]],t[i])<=0;)--r;n[r++]=i}return n.slice(0,r)}function qr(t,e){return t[0]-e[0]||t[1]-e[1]}function Or(t,e,n){return(n[0]-e[0])*(t[1]-e[1])<(n[1]-e[1])*(t[0]-e[0])}function Dr(t,e,n,r){var i=t[0],o=n[0],a=e[0]-i,u=r[0]-o,s=t[1],l=n[1],c=e[1]-s,f=r[1]-l,h=(u*(s-l)-f*(i-o))/(f*a-u*c);return[i+h*a,s+h*c]}function Lr(t){var e=t[0],n=t[t.length-1];return!(e[0]-n[0]||e[1]-n[1])}function Fr(){ri(this),this.edge=this.site=this.circle=null}function zr(t){var e=sl.pop()||new Fr;return e.site=t,e}function Rr(t){Xr(t),ol.remove(t),sl.push(t),ri(t)}function Pr(t){var e=t.circle,n=e.x,r=e.cy,i={x:n,y:r},o=t.P,a=t.N,u=[t];Rr(t);for(var s=o;s.circle&&mu(n-s.circle.x)<Lu&&mu(r-s.circle.cy)<Lu;)o=s.P,u.unshift(s),Rr(s),s=o;u.unshift(s),Xr(s);for(var l=a;l.circle&&mu(n-l.circle.x)<Lu&&mu(r-l.circle.cy)<Lu;)a=l.N,u.push(l),Rr(l),l=a;u.push(l),Xr(l);var c,f=u.length;for(c=1;f>c;++c)l=u[c],s=u[c-1],ti(l.edge,s.site,l.site,i);s=u[0],l=u[f-1],l.edge=Kr(s.site,l.site,null,i),Yr(s),Yr(l)}function Ir(t){for(var e,n,r,i,o=t.x,a=t.y,u=ol._;u;)if(r=Hr(u,a)-o,r>Lu)u=u.L;else{if(i=o-Br(u,a),!(i>Lu)){r>-Lu?(e=u.P,n=u):i>-Lu?(e=u,n=u.N):e=n=u;break}if(!u.R){e=u;break}u=u.R}var s=zr(t);if(ol.insert(e,s),e||n){if(e===n)return Xr(e),n=zr(e.site),ol.insert(s,n),s.edge=n.edge=Kr(e.site,s.site),Yr(e),void Yr(n); +if(!n)return void(s.edge=Kr(e.site,s.site));Xr(e),Xr(n);var l=e.site,c=l.x,f=l.y,h=t.x-c,p=t.y-f,d=n.site,g=d.x-c,v=d.y-f,m=2*(h*v-p*g),y=h*h+p*p,b=g*g+v*v,x={x:(v*y-p*b)/m+c,y:(h*b-g*y)/m+f};ti(n.edge,l,d,x),s.edge=Kr(l,t,null,x),n.edge=Kr(t,d,null,x),Yr(e),Yr(n)}}function Hr(t,e){var n=t.site,r=n.x,i=n.y,o=i-e;if(!o)return r;var a=t.P;if(!a)return-1/0;n=a.site;var u=n.x,s=n.y,l=s-e;if(!l)return u;var c=u-r,f=1/o-1/l,h=c/l;return f?(-h+Math.sqrt(h*h-2*f*(c*c/(-2*l)-s+l/2+i-o/2)))/f+r:(r+u)/2}function Br(t,e){var n=t.N;if(n)return Hr(n,e);var r=t.site;return r.y===e?r.x:1/0}function $r(t){this.site=t,this.edges=[]}function Vr(t){for(var e,n,r,i,o,a,u,s,l,c,f=t[0][0],h=t[1][0],p=t[0][1],d=t[1][1],g=il,v=g.length;v--;)if(o=g[v],o&&o.prepare())for(u=o.edges,s=u.length,a=0;s>a;)c=u[a].end(),r=c.x,i=c.y,l=u[++a%s].start(),e=l.x,n=l.y,(mu(r-e)>Lu||mu(i-n)>Lu)&&(u.splice(a,0,new ei(Qr(o.site,c,mu(r-f)<Lu&&d-i>Lu?{x:f,y:mu(e-f)<Lu?n:d}:mu(i-d)<Lu&&h-r>Lu?{x:mu(n-d)<Lu?e:h,y:d}:mu(r-h)<Lu&&i-p>Lu?{x:h,y:mu(e-h)<Lu?n:p}:mu(i-p)<Lu&&r-f>Lu?{x:mu(n-p)<Lu?e:f,y:p}:null),o.site,null)),++s)}function Ur(t,e){return e.angle-t.angle}function Wr(){ri(this),this.x=this.y=this.arc=this.site=this.cy=null}function Yr(t){var e=t.P,n=t.N;if(e&&n){var r=e.site,i=t.site,o=n.site;if(r!==o){var a=i.x,u=i.y,s=r.x-a,l=r.y-u,c=o.x-a,f=o.y-u,h=2*(s*f-l*c);if(!(h>=-Fu)){var p=s*s+l*l,d=c*c+f*f,g=(f*p-l*d)/h,v=(s*d-c*p)/h,f=v+u,m=ll.pop()||new Wr;m.arc=t,m.site=i,m.x=g+a,m.y=f+Math.sqrt(g*g+v*v),m.cy=f,t.circle=m;for(var y=null,b=ul._;b;)if(m.y<b.y||m.y===b.y&&m.x<=b.x){if(!b.L){y=b.P;break}b=b.L}else{if(!b.R){y=b;break}b=b.R}ul.insert(y,m),y||(al=m)}}}}function Xr(t){var e=t.circle;e&&(e.P||(al=e.N),ul.remove(e),ll.push(e),ri(e),t.circle=null)}function Jr(t){for(var e,n=rl,r=$n(t[0][0],t[0][1],t[1][0],t[1][1]),i=n.length;i--;)e=n[i],(!Zr(e,t)||!r(e)||mu(e.a.x-e.b.x)<Lu&&mu(e.a.y-e.b.y)<Lu)&&(e.a=e.b=null,n.splice(i,1))}function Zr(t,e){var n=t.b;if(n)return!0;var r,i,o=t.a,a=e[0][0],u=e[1][0],s=e[0][1],l=e[1][1],c=t.l,f=t.r,h=c.x,p=c.y,d=f.x,g=f.y,v=(h+d)/2,m=(p+g)/2;if(g===p){if(a>v||v>=u)return;if(h>d){if(o){if(o.y>=l)return}else o={x:v,y:s};n={x:v,y:l}}else{if(o){if(o.y<s)return}else o={x:v,y:l};n={x:v,y:s}}}else if(r=(h-d)/(g-p),i=m-r*v,-1>r||r>1)if(h>d){if(o){if(o.y>=l)return}else o={x:(s-i)/r,y:s};n={x:(l-i)/r,y:l}}else{if(o){if(o.y<s)return}else o={x:(l-i)/r,y:l};n={x:(s-i)/r,y:s}}else if(g>p){if(o){if(o.x>=u)return}else o={x:a,y:r*a+i};n={x:u,y:r*u+i}}else{if(o){if(o.x<a)return}else o={x:u,y:r*u+i};n={x:a,y:r*a+i}}return t.a=o,t.b=n,!0}function Gr(t,e){this.l=t,this.r=e,this.a=this.b=null}function Kr(t,e,n,r){var i=new Gr(t,e);return rl.push(i),n&&ti(i,t,e,n),r&&ti(i,e,t,r),il[t.i].edges.push(new ei(i,t,e)),il[e.i].edges.push(new ei(i,e,t)),i}function Qr(t,e,n){var r=new Gr(t,null);return r.a=e,r.b=n,rl.push(r),r}function ti(t,e,n,r){t.a||t.b?t.l===n?t.b=r:t.a=r:(t.a=r,t.l=e,t.r=n)}function ei(t,e,n){var r=t.a,i=t.b;this.edge=t,this.site=e,this.angle=n?Math.atan2(n.y-e.y,n.x-e.x):t.l===e?Math.atan2(i.x-r.x,r.y-i.y):Math.atan2(r.x-i.x,i.y-r.y)}function ni(){this._=null}function ri(t){t.U=t.C=t.L=t.R=t.P=t.N=null}function ii(t,e){var n=e,r=e.R,i=n.U;i?i.L===n?i.L=r:i.R=r:t._=r,r.U=i,n.U=r,n.R=r.L,n.R&&(n.R.U=n),r.L=n}function oi(t,e){var n=e,r=e.L,i=n.U;i?i.L===n?i.L=r:i.R=r:t._=r,r.U=i,n.U=r,n.L=r.R,n.L&&(n.L.U=n),r.R=n}function ai(t){for(;t.L;)t=t.L;return t}function ui(t,e){var n,r,i,o=t.sort(si).pop();for(rl=[],il=new Array(t.length),ol=new ni,ul=new ni;;)if(i=al,o&&(!i||o.y<i.y||o.y===i.y&&o.x<i.x))(o.x!==n||o.y!==r)&&(il[o.i]=new $r(o),Ir(o),n=o.x,r=o.y),o=t.pop();else{if(!i)break;Pr(i.arc)}e&&(Jr(e),Vr(e));var a={cells:il,edges:rl};return ol=ul=rl=il=null,a}function si(t,e){return e.y-t.y||e.x-t.x}function li(t,e,n){return(t.x-n.x)*(e.y-t.y)-(t.x-e.x)*(n.y-t.y)}function ci(t){return t.x}function fi(t){return t.y}function hi(){return{leaf:!0,nodes:[],point:null,x:null,y:null}}function pi(t,e,n,r,i,o){if(!t(e,n,r,i,o)){var a=.5*(n+i),u=.5*(r+o),s=e.nodes;s[0]&&pi(t,s[0],n,r,a,u),s[1]&&pi(t,s[1],a,r,i,u),s[2]&&pi(t,s[2],n,u,a,o),s[3]&&pi(t,s[3],a,u,i,o)}}function di(t,e,n,r,i,o,a){var u,s=1/0;return function l(t,c,f,h,p){if(!(c>o||f>a||r>h||i>p)){if(d=t.point){var d,g=e-d[0],v=n-d[1],m=g*g+v*v;if(s>m){var y=Math.sqrt(s=m);r=e-y,i=n-y,o=e+y,a=n+y,u=d}}for(var b=t.nodes,x=.5*(c+h),w=.5*(f+p),_=e>=x,M=n>=w,k=M<<1|_,E=k+4;E>k;++k)if(t=b[3&k])switch(3&k){case 0:l(t,c,f,x,w);break;case 1:l(t,x,f,h,w);break;case 2:l(t,c,w,x,p);break;case 3:l(t,x,w,h,p)}}}(t,r,i,o,a),u}function gi(t,e){t=ru.rgb(t),e=ru.rgb(e);var n=t.r,r=t.g,i=t.b,o=e.r-n,a=e.g-r,u=e.b-i;return function(t){return"#"+xe(Math.round(n+o*t))+xe(Math.round(r+a*t))+xe(Math.round(i+u*t))}}function vi(t,e){var n,r={},i={};for(n in t)n in e?r[n]=bi(t[n],e[n]):i[n]=t[n];for(n in e)n in t||(i[n]=e[n]);return function(t){for(n in r)i[n]=r[n](t);return i}}function mi(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function yi(t,e){var n,r,i,o=fl.lastIndex=hl.lastIndex=0,a=-1,u=[],s=[];for(t+="",e+="";(n=fl.exec(t))&&(r=hl.exec(e));)(i=r.index)>o&&(i=e.slice(o,i),u[a]?u[a]+=i:u[++a]=i),(n=n[0])===(r=r[0])?u[a]?u[a]+=r:u[++a]=r:(u[++a]=null,s.push({i:a,x:mi(n,r)})),o=hl.lastIndex;return o<e.length&&(i=e.slice(o),u[a]?u[a]+=i:u[++a]=i),u.length<2?s[0]?(e=s[0].x,function(t){return e(t)+""}):function(){return e}:(e=s.length,function(t){for(var n,r=0;e>r;++r)u[(n=s[r]).i]=n.x(t);return u.join("")})}function bi(t,e){for(var n,r=ru.interpolators.length;--r>=0&&!(n=ru.interpolators[r](t,e)););return n}function xi(t,e){var n,r=[],i=[],o=t.length,a=e.length,u=Math.min(t.length,e.length);for(n=0;u>n;++n)r.push(bi(t[n],e[n]));for(;o>n;++n)i[n]=t[n];for(;a>n;++n)i[n]=e[n];return function(t){for(n=0;u>n;++n)i[n]=r[n](t);return i}}function wi(t){return function(e){return 0>=e?0:e>=1?1:t(e)}}function _i(t){return function(e){return 1-t(1-e)}}function Mi(t){return function(e){return.5*(.5>e?t(2*e):2-t(2-2*e))}}function ki(t){return t*t}function Ei(t){return t*t*t}function Ci(t){if(0>=t)return 0;if(t>=1)return 1;var e=t*t,n=e*t;return 4*(.5>t?n:3*(t-e)+n-.75)}function Si(t){return function(e){return Math.pow(e,t)}}function Ti(t){return 1-Math.cos(t*Iu)}function ji(t){return Math.pow(2,10*(t-1))}function Ai(t){return 1-Math.sqrt(1-t*t)}function Ni(t,e){var n;return arguments.length<2&&(e=.45),arguments.length?n=e/Ru*Math.asin(1/t):(t=1,n=e/4),function(r){return 1+t*Math.pow(2,-10*r)*Math.sin((r-n)*Ru/e)}}function qi(t){return t||(t=1.70158),function(e){return e*e*((t+1)*e-t)}}function Oi(t){return 1/2.75>t?7.5625*t*t:2/2.75>t?7.5625*(t-=1.5/2.75)*t+.75:2.5/2.75>t?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}function Di(t,e){t=ru.hcl(t),e=ru.hcl(e);var n=t.h,r=t.c,i=t.l,o=e.h-n,a=e.c-r,u=e.l-i;return isNaN(a)&&(a=0,r=isNaN(r)?e.c:r),isNaN(o)?(o=0,n=isNaN(n)?e.h:n):o>180?o-=360:-180>o&&(o+=360),function(t){return ce(n+o*t,r+a*t,i+u*t)+""}}function Li(t,e){t=ru.hsl(t),e=ru.hsl(e);var n=t.h,r=t.s,i=t.l,o=e.h-n,a=e.s-r,u=e.l-i;return isNaN(a)&&(a=0,r=isNaN(r)?e.s:r),isNaN(o)?(o=0,n=isNaN(n)?e.h:n):o>180?o-=360:-180>o&&(o+=360),function(t){return se(n+o*t,r+a*t,i+u*t)+""}}function Fi(t,e){t=ru.lab(t),e=ru.lab(e);var n=t.l,r=t.a,i=t.b,o=e.l-n,a=e.a-r,u=e.b-i;return function(t){return he(n+o*t,r+a*t,i+u*t)+""}}function zi(t,e){return e-=t,function(n){return Math.round(t+e*n)}}function Ri(t){var e=[t.a,t.b],n=[t.c,t.d],r=Ii(e),i=Pi(e,n),o=Ii(Hi(n,e,-i))||0;e[0]*n[1]<n[0]*e[1]&&(e[0]*=-1,e[1]*=-1,r*=-1,i*=-1),this.rotate=(r?Math.atan2(e[1],e[0]):Math.atan2(-n[0],n[1]))*Bu,this.translate=[t.e,t.f],this.scale=[r,o],this.skew=o?Math.atan2(i,o)*Bu:0}function Pi(t,e){return t[0]*e[0]+t[1]*e[1]}function Ii(t){var e=Math.sqrt(Pi(t,t));return e&&(t[0]/=e,t[1]/=e),e}function Hi(t,e,n){return t[0]+=n*e[0],t[1]+=n*e[1],t}function Bi(t,e){var n,r=[],i=[],o=ru.transform(t),a=ru.transform(e),u=o.translate,s=a.translate,l=o.rotate,c=a.rotate,f=o.skew,h=a.skew,p=o.scale,d=a.scale;return u[0]!=s[0]||u[1]!=s[1]?(r.push("translate(",null,",",null,")"),i.push({i:1,x:mi(u[0],s[0])},{i:3,x:mi(u[1],s[1])})):r.push(s[0]||s[1]?"translate("+s+")":""),l!=c?(l-c>180?c+=360:c-l>180&&(l+=360),i.push({i:r.push(r.pop()+"rotate(",null,")")-2,x:mi(l,c)})):c&&r.push(r.pop()+"rotate("+c+")"),f!=h?i.push({i:r.push(r.pop()+"skewX(",null,")")-2,x:mi(f,h)}):h&&r.push(r.pop()+"skewX("+h+")"),p[0]!=d[0]||p[1]!=d[1]?(n=r.push(r.pop()+"scale(",null,",",null,")"),i.push({i:n-4,x:mi(p[0],d[0])},{i:n-2,x:mi(p[1],d[1])})):(1!=d[0]||1!=d[1])&&r.push(r.pop()+"scale("+d+")"),n=i.length,function(t){for(var e,o=-1;++o<n;)r[(e=i[o]).i]=e.x(t);return r.join("")}}function $i(t,e){return e=(e-=t=+t)||1/e,function(n){return(n-t)/e}}function Vi(t,e){return e=(e-=t=+t)||1/e,function(n){return Math.max(0,Math.min(1,(n-t)/e))}}function Ui(t){for(var e=t.source,n=t.target,r=Yi(e,n),i=[e];e!==r;)e=e.parent,i.push(e);for(var o=i.length;n!==r;)i.splice(o,0,n),n=n.parent;return i}function Wi(t){for(var e=[],n=t.parent;null!=n;)e.push(t),t=n,n=n.parent;return e.push(t),e}function Yi(t,e){if(t===e)return t;for(var n=Wi(t),r=Wi(e),i=n.pop(),o=r.pop(),a=null;i===o;)a=i,i=n.pop(),o=r.pop();return a}function Xi(t){t.fixed|=2}function Ji(t){t.fixed&=-7}function Zi(t){t.fixed|=4,t.px=t.x,t.py=t.y}function Gi(t){t.fixed&=-5}function Ki(t,e,n){var r=0,i=0;if(t.charge=0,!t.leaf)for(var o,a=t.nodes,u=a.length,s=-1;++s<u;)o=a[s],null!=o&&(Ki(o,e,n),t.charge+=o.charge,r+=o.charge*o.cx,i+=o.charge*o.cy);if(t.point){t.leaf||(t.point.x+=Math.random()-.5,t.point.y+=Math.random()-.5);var l=e*n[t.point.index];t.charge+=t.pointCharge=l,r+=l*t.point.x,i+=l*t.point.y}t.cx=r/t.charge,t.cy=i/t.charge}function Qi(t,e){return ru.rebind(t,e,"sort","children","value"),t.nodes=t,t.links=oo,t}function to(t,e){for(var n=[t];null!=(t=n.pop());)if(e(t),(i=t.children)&&(r=i.length))for(var r,i;--r>=0;)n.push(i[r])}function eo(t,e){for(var n=[t],r=[];null!=(t=n.pop());)if(r.push(t),(o=t.children)&&(i=o.length))for(var i,o,a=-1;++a<i;)n.push(o[a]);for(;null!=(t=r.pop());)e(t)}function no(t){return t.children}function ro(t){return t.value}function io(t,e){return e.value-t.value}function oo(t){return ru.merge(t.map(function(t){return(t.children||[]).map(function(e){return{source:t,target:e}})}))}function ao(t){return t.x}function uo(t){return t.y}function so(t,e,n){t.y0=e,t.y=n}function lo(data){return ru.range(data.length)}function co(data){for(var t=-1,e=data[0].length,n=[];++t<e;)n[t]=0;return n}function fo(t){for(var e,n=1,r=0,i=t[0][1],o=t.length;o>n;++n)(e=t[n][1])>i&&(r=n,i=e);return r}function ho(t){return t.reduce(po,0)}function po(t,e){return t+e[1]}function go(t,e){return vo(t,Math.ceil(Math.log(e.length)/Math.LN2+1))}function vo(t,e){for(var n=-1,r=+t[0],i=(t[1]-r)/e,o=[];++n<=e;)o[n]=i*n+r;return o}function mo(t){return[ru.min(t),ru.max(t)]}function yo(t,e){return t.value-e.value}function bo(t,e){var n=t._pack_next;t._pack_next=e,e._pack_prev=t,e._pack_next=n,n._pack_prev=e}function xo(t,e){t._pack_next=e,e._pack_prev=t}function wo(t,e){var n=e.x-t.x,r=e.y-t.y,i=t.r+e.r;return.999*i*i>n*n+r*r}function _o(t){function e(t){c=Math.min(t.x-t.r,c),f=Math.max(t.x+t.r,f),h=Math.min(t.y-t.r,h),p=Math.max(t.y+t.r,p)}if((n=t.children)&&(l=n.length)){var n,r,i,o,a,u,s,l,c=1/0,f=-1/0,h=1/0,p=-1/0;if(n.forEach(Mo),r=n[0],r.x=-r.r,r.y=0,e(r),l>1&&(i=n[1],i.x=i.r,i.y=0,e(i),l>2))for(o=n[2],Co(r,i,o),e(o),bo(r,o),r._pack_prev=o,bo(o,i),i=r._pack_next,a=3;l>a;a++){Co(r,i,o=n[a]);var d=0,g=1,v=1;for(u=i._pack_next;u!==i;u=u._pack_next,g++)if(wo(u,o)){d=1;break}if(1==d)for(s=r._pack_prev;s!==u._pack_prev&&!wo(s,o);s=s._pack_prev,v++);d?(v>g||g==v&&i.r<r.r?xo(r,i=u):xo(r=s,i),a--):(bo(r,o),i=o,e(o))}var m=(c+f)/2,y=(h+p)/2,b=0;for(a=0;l>a;a++)o=n[a],o.x-=m,o.y-=y,b=Math.max(b,o.r+Math.sqrt(o.x*o.x+o.y*o.y));t.r=b,n.forEach(ko)}}function Mo(t){t._pack_next=t._pack_prev=t}function ko(t){delete t._pack_next,delete t._pack_prev}function Eo(t,e,n,r){var i=t.children;if(t.x=e+=r*t.x,t.y=n+=r*t.y,t.r*=r,i)for(var o=-1,a=i.length;++o<a;)Eo(i[o],e,n,r)}function Co(t,e,n){var r=t.r+n.r,i=e.x-t.x,o=e.y-t.y;if(r&&(i||o)){var a=e.r+n.r,u=i*i+o*o;a*=a,r*=r;var s=.5+(r-a)/(2*u),l=Math.sqrt(Math.max(0,2*a*(r+u)-(r-=u)*r-a*a))/(2*u);n.x=t.x+s*i+l*o,n.y=t.y+s*o-l*i}else n.x=t.x+r,n.y=t.y}function So(t,e){return t.parent==e.parent?1:2}function To(t){var e=t.children;return e.length?e[0]:t.t}function jo(t){var e,n=t.children;return(e=n.length)?n[e-1]:t.t}function Ao(t,e,n){var r=n/(e.i-t.i);e.c-=r,e.s+=n,t.c+=r,e.z+=n,e.m+=n}function No(t){for(var e,n=0,r=0,i=t.children,o=i.length;--o>=0;)e=i[o],e.z+=n,e.m+=n,n+=e.s+(r+=e.c)}function qo(t,e,n){return t.a.parent===e.parent?t.a:n}function Oo(t){return 1+ru.max(t,function(t){return t.y})}function Do(t){return t.reduce(function(t,e){return t+e.x},0)/t.length}function Lo(t){var e=t.children;return e&&e.length?Lo(e[0]):t}function Fo(t){var e,n=t.children;return n&&(e=n.length)?Fo(n[e-1]):t}function zo(t){return{x:t.x,y:t.y,dx:t.dx,dy:t.dy}}function Ro(t,e){var n=t.x+e[3],r=t.y+e[0],i=t.dx-e[1]-e[3],o=t.dy-e[0]-e[2];return 0>i&&(n+=i/2,i=0),0>o&&(r+=o/2,o=0),{x:n,y:r,dx:i,dy:o}}function Po(t){var e=t[0],n=t[t.length-1];return n>e?[e,n]:[n,e]}function Io(t){return t.rangeExtent?t.rangeExtent():Po(t.range())}function Ho(t,e,n,r){var i=n(t[0],t[1]),o=r(e[0],e[1]);return function(t){return o(i(t))}}function Bo(t,e){var n,r=0,i=t.length-1,o=t[r],a=t[i];return o>a&&(n=r,r=i,i=n,n=o,o=a,a=n),t[r]=e.floor(o),t[i]=e.ceil(a),t}function $o(t){return t?{floor:function(e){return Math.floor(e/t)*t},ceil:function(e){return Math.ceil(e/t)*t}}:Ml}function Vo(t,e,n,r){var i=[],o=[],a=0,u=Math.min(t.length,e.length)-1;for(t[u]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++a<=u;)i.push(n(t[a-1],t[a])),o.push(r(e[a-1],e[a]));return function(e){var n=ru.bisect(t,e,1,u)-1;return o[n](i[n](e))}}function Uo(t,e,n,r){function i(){var i=Math.min(t.length,e.length)>2?Vo:Ho,s=r?Vi:$i;return a=i(t,e,s,n),u=i(e,t,s,bi),o}function o(t){return a(t)}var a,u;return o.invert=function(t){return u(t)},o.domain=function(e){return arguments.length?(t=e.map(Number),i()):t},o.range=function(t){return arguments.length?(e=t,i()):e},o.rangeRound=function(t){return o.range(t).interpolate(zi)},o.clamp=function(t){return arguments.length?(r=t,i()):r},o.interpolate=function(t){return arguments.length?(n=t,i()):n},o.ticks=function(e){return Jo(t,e)},o.tickFormat=function(e,n){return Zo(t,e,n)},o.nice=function(e){return Yo(t,e),i()},o.copy=function(){return Uo(t,e,n,r)},i()}function Wo(t,e){return ru.rebind(t,e,"range","rangeRound","interpolate","clamp")}function Yo(t,e){return Bo(t,$o(Xo(t,e)[2]))}function Xo(t,e){null==e&&(e=10);var n=Po(t),r=n[1]-n[0],i=Math.pow(10,Math.floor(Math.log(r/e)/Math.LN10)),o=e/r*i;return.15>=o?i*=10:.35>=o?i*=5:.75>=o&&(i*=2),n[0]=Math.ceil(n[0]/i)*i,n[1]=Math.floor(n[1]/i)*i+.5*i,n[2]=i,n}function Jo(t,e){return ru.range.apply(ru,Xo(t,e))}function Zo(t,e,n){var r=Xo(t,e);if(n){var i=fs.exec(n);if(i.shift(),"s"===i[8]){var o=ru.formatPrefix(Math.max(mu(r[0]),mu(r[1])));return i[7]||(i[7]="."+Go(o.scale(r[2]))),i[8]="f",n=ru.format(i.join("")),function(t){return n(o.scale(t))+o.symbol}}i[7]||(i[7]="."+Ko(i[8],r)),n=i.join("")}else n=",."+Go(r[2])+"f";return ru.format(n)}function Go(t){return-Math.floor(Math.log(t)/Math.LN10+.01)}function Ko(t,e){var n=Go(e[2]);return t in kl?Math.abs(n-Go(Math.max(mu(e[0]),mu(e[1]))))+ +("e"!==t):n-2*("%"===t)}function Qo(t,e,n,r){function i(t){return(n?Math.log(0>t?0:t):-Math.log(t>0?0:-t))/Math.log(e)}function o(t){return n?Math.pow(e,t):-Math.pow(e,-t)}function a(e){return t(i(e))}return a.invert=function(e){return o(t.invert(e))},a.domain=function(e){return arguments.length?(n=e[0]>=0,t.domain((r=e.map(Number)).map(i)),a):r},a.base=function(n){return arguments.length?(e=+n,t.domain(r.map(i)),a):e},a.nice=function(){var e=Bo(r.map(i),n?Math:Cl);return t.domain(e),r=e.map(o),a},a.ticks=function(){var t=Po(r),a=[],u=t[0],s=t[1],l=Math.floor(i(u)),c=Math.ceil(i(s)),f=e%1?2:e;if(isFinite(c-l)){if(n){for(;c>l;l++)for(var h=1;f>h;h++)a.push(o(l)*h);a.push(o(l))}else for(a.push(o(l));l++<c;)for(var h=f-1;h>0;h--)a.push(o(l)*h);for(l=0;a[l]<u;l++);for(c=a.length;a[c-1]>s;c--);a=a.slice(l,c)}return a},a.tickFormat=function(t,e){if(!arguments.length)return El;arguments.length<2?e=El:"function"!=typeof e&&(e=ru.format(e));var r,u=Math.max(.1,t/a.ticks().length),s=n?(r=1e-12,Math.ceil):(r=-1e-12,Math.floor);return function(t){return t/o(s(i(t)+r))<=u?e(t):""}},a.copy=function(){return Qo(t.copy(),e,n,r)},Wo(a,t)}function ta(t,e,n){function r(e){return t(i(e))}var i=ea(e),o=ea(1/e);return r.invert=function(e){return o(t.invert(e))},r.domain=function(e){return arguments.length?(t.domain((n=e.map(Number)).map(i)),r):n},r.ticks=function(t){return Jo(n,t)},r.tickFormat=function(t,e){return Zo(n,t,e)},r.nice=function(t){return r.domain(Yo(n,t))},r.exponent=function(a){return arguments.length?(i=ea(e=a),o=ea(1/e),t.domain(n.map(i)),r):e},r.copy=function(){return ta(t.copy(),e,n)},Wo(r,t)}function ea(t){return function(e){return 0>e?-Math.pow(-e,t):Math.pow(e,t)}}function na(t,e){function n(n){return o[((i.get(n)||("range"===e.t?i.set(n,t.push(n)):0/0))-1)%o.length]}function r(e,n){return ru.range(t.length).map(function(t){return e+n*t})}var i,o,a;return n.domain=function(r){if(!arguments.length)return t;t=[],i=new s;for(var o,a=-1,u=r.length;++a<u;)i.has(o=r[a])||i.set(o,t.push(o));return n[e.t].apply(n,e.a)},n.range=function(t){return arguments.length?(o=t,a=0,e={t:"range",a:arguments},n):o},n.rangePoints=function(i,u){arguments.length<2&&(u=0);var s=i[0],l=i[1],c=t.length<2?(s=(s+l)/2,0):(l-s)/(t.length-1+u);return o=r(s+c*u/2,c),a=0,e={t:"rangePoints",a:arguments},n},n.rangeRoundPoints=function(i,u){arguments.length<2&&(u=0);var s=i[0],l=i[1],c=t.length<2?(s=l=Math.round((s+l)/2),0):(l-s)/(t.length-1+u)|0;return o=r(s+Math.round(c*u/2+(l-s-(t.length-1+u)*c)/2),c),a=0,e={t:"rangeRoundPoints",a:arguments},n},n.rangeBands=function(i,u,s){arguments.length<2&&(u=0),arguments.length<3&&(s=u);var l=i[1]<i[0],c=i[l-0],f=i[1-l],h=(f-c)/(t.length-u+2*s);return o=r(c+h*s,h),l&&o.reverse(),a=h*(1-u),e={t:"rangeBands",a:arguments},n},n.rangeRoundBands=function(i,u,s){arguments.length<2&&(u=0),arguments.length<3&&(s=u);var l=i[1]<i[0],c=i[l-0],f=i[1-l],h=Math.floor((f-c)/(t.length-u+2*s));return o=r(c+Math.round((f-c-(t.length-u)*h)/2),h),l&&o.reverse(),a=Math.round(h*(1-u)),e={t:"rangeRoundBands",a:arguments},n},n.rangeBand=function(){return a},n.rangeExtent=function(){return Po(e.a[0])},n.copy=function(){return na(t,e)},n.domain(t)}function ra(e,i){function o(){var t=0,n=i.length;for(u=[];++t<n;)u[t-1]=ru.quantile(e,t/n);return a}function a(t){return isNaN(t=+t)?void 0:i[ru.bisect(u,t)]}var u;return a.domain=function(i){return arguments.length?(e=i.map(n).filter(r).sort(t),o()):e},a.range=function(t){return arguments.length?(i=t,o()):i},a.quantiles=function(){return u},a.invertExtent=function(t){return t=i.indexOf(t),0>t?[0/0,0/0]:[t>0?u[t-1]:e[0],t<u.length?u[t]:e[e.length-1]]},a.copy=function(){return ra(e,i)},o()}function ia(t,e,n){function r(e){return n[Math.max(0,Math.min(a,Math.floor(o*(e-t))))]}function i(){return o=n.length/(e-t),a=n.length-1,r}var o,a;return r.domain=function(n){return arguments.length?(t=+n[0],e=+n[n.length-1],i()):[t,e]},r.range=function(t){return arguments.length?(n=t,i()):n},r.invertExtent=function(e){return e=n.indexOf(e),e=0>e?0/0:e/o+t,[e,e+1/o]},r.copy=function(){return ia(t,e,n)},i()}function oa(t,e){function n(n){return n>=n?e[ru.bisect(t,n)]:void 0}return n.domain=function(e){return arguments.length?(t=e,n):t},n.range=function(t){return arguments.length?(e=t,n):e},n.invertExtent=function(n){return n=e.indexOf(n),[t[n-1],t[n]]},n.copy=function(){return oa(t,e)},n}function aa(t){function e(t){return+t}return e.invert=e,e.domain=e.range=function(n){return arguments.length?(t=n.map(e),e):t},e.ticks=function(e){return Jo(t,e)},e.tickFormat=function(e,n){return Zo(t,e,n)},e.copy=function(){return aa(t)},e}function ua(){return 0}function sa(t){return t.innerRadius}function la(t){return t.outerRadius}function ca(t){return t.startAngle}function fa(t){return t.endAngle}function ha(t){return t&&t.padAngle}function pa(t,e,n,r){return(t-n)*e-(e-r)*t>0?0:1}function da(t,e,n,r,i){var o=t[0]-e[0],a=t[1]-e[1],u=(i?r:-r)/Math.sqrt(o*o+a*a),s=u*a,l=-u*o,c=t[0]+s,f=t[1]+l,h=e[0]+s,p=e[1]+l,d=(c+h)/2,g=(f+p)/2,v=h-c,m=p-f,y=v*v+m*m,b=n-r,x=c*p-h*f,w=(0>m?-1:1)*Math.sqrt(b*b*y-x*x),_=(x*m-v*w)/y,M=(-x*v-m*w)/y,k=(x*m+v*w)/y,E=(-x*v+m*w)/y,C=_-d,S=M-g,T=k-d,j=E-g;return C*C+S*S>T*T+j*j&&(_=k,M=E),[[_-s,M-l],[_*n/b,M*n/b]]}function ga(t){function e(data){function e(){s.push("M",o(t(l),u))}for(var a,s=[],l=[],c=-1,f=data.length,h=Ce(n),p=Ce(r);++c<f;)i.call(this,a=data[c],c)?l.push([+h.call(this,a,c),+p.call(this,a,c)]):l.length&&(e(),l=[]);return l.length&&e(),s.length?s.join(""):null}var n=jr,r=Ar,i=An,o=va,a=o.key,u=.7;return e.x=function(t){return arguments.length?(n=t,e):n},e.y=function(t){return arguments.length?(r=t,e):r},e.defined=function(t){return arguments.length?(i=t,e):i},e.interpolate=function(t){return arguments.length?(a="function"==typeof t?o=t:(o=ql.get(t)||va).key,e):a},e.tension=function(t){return arguments.length?(u=t,e):u},e}function va(t){return t.join("L")}function ma(t){return va(t)+"Z"}function ya(t){for(var e=0,n=t.length,r=t[0],i=[r[0],",",r[1]];++e<n;)i.push("H",(r[0]+(r=t[e])[0])/2,"V",r[1]);return n>1&&i.push("H",r[0]),i.join("")}function ba(t){for(var e=0,n=t.length,r=t[0],i=[r[0],",",r[1]];++e<n;)i.push("V",(r=t[e])[1],"H",r[0]);return i.join("")}function xa(t){for(var e=0,n=t.length,r=t[0],i=[r[0],",",r[1]];++e<n;)i.push("H",(r=t[e])[0],"V",r[1]);return i.join("")}function wa(t,e){return t.length<4?va(t):t[1]+ka(t.slice(1,-1),Ea(t,e))}function _a(t,e){return t.length<3?va(t):t[0]+ka((t.push(t[0]),t),Ea([t[t.length-2]].concat(t,[t[1]]),e))}function Ma(t,e){return t.length<3?va(t):t[0]+ka(t,Ea(t,e))}function ka(t,e){if(e.length<1||t.length!=e.length&&t.length!=e.length+2)return va(t);var n=t.length!=e.length,r="",i=t[0],o=t[1],a=e[0],u=a,s=1;if(n&&(r+="Q"+(o[0]-2*a[0]/3)+","+(o[1]-2*a[1]/3)+","+o[0]+","+o[1],i=t[1],s=2),e.length>1){u=e[1],o=t[s],s++,r+="C"+(i[0]+a[0])+","+(i[1]+a[1])+","+(o[0]-u[0])+","+(o[1]-u[1])+","+o[0]+","+o[1];for(var l=2;l<e.length;l++,s++)o=t[s],u=e[l],r+="S"+(o[0]-u[0])+","+(o[1]-u[1])+","+o[0]+","+o[1]}if(n){var c=t[s];r+="Q"+(o[0]+2*u[0]/3)+","+(o[1]+2*u[1]/3)+","+c[0]+","+c[1]}return r}function Ea(t,e){for(var n,r=[],i=(1-e)/2,o=t[0],a=t[1],u=1,s=t.length;++u<s;)n=o,o=a,a=t[u],r.push([i*(a[0]-n[0]),i*(a[1]-n[1])]);return r}function Ca(t){if(t.length<3)return va(t);var e=1,n=t.length,r=t[0],i=r[0],o=r[1],a=[i,i,i,(r=t[1])[0]],u=[o,o,o,r[1]],s=[i,",",o,"L",Aa(Ll,a),",",Aa(Ll,u)];for(t.push(t[n-1]);++e<=n;)r=t[e],a.shift(),a.push(r[0]),u.shift(),u.push(r[1]),Na(s,a,u);return t.pop(),s.push("L",r),s.join("")}function Sa(t){if(t.length<4)return va(t);for(var e,n=[],r=-1,i=t.length,o=[0],a=[0];++r<3;)e=t[r],o.push(e[0]),a.push(e[1]);for(n.push(Aa(Ll,o)+","+Aa(Ll,a)),--r;++r<i;)e=t[r],o.shift(),o.push(e[0]),a.shift(),a.push(e[1]),Na(n,o,a);return n.join("")}function Ta(t){for(var e,n,r=-1,i=t.length,o=i+4,a=[],u=[];++r<4;)n=t[r%i],a.push(n[0]),u.push(n[1]);for(e=[Aa(Ll,a),",",Aa(Ll,u)],--r;++r<o;)n=t[r%i],a.shift(),a.push(n[0]),u.shift(),u.push(n[1]),Na(e,a,u);return e.join("")}function ja(t,e){var n=t.length-1;if(n)for(var r,i,o=t[0][0],a=t[0][1],u=t[n][0]-o,s=t[n][1]-a,l=-1;++l<=n;)r=t[l],i=l/n,r[0]=e*r[0]+(1-e)*(o+i*u),r[1]=e*r[1]+(1-e)*(a+i*s);return Ca(t)}function Aa(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}function Na(t,e,n){t.push("C",Aa(Ol,e),",",Aa(Ol,n),",",Aa(Dl,e),",",Aa(Dl,n),",",Aa(Ll,e),",",Aa(Ll,n))}function qa(t,e){return(e[1]-t[1])/(e[0]-t[0])}function Oa(t){for(var e=0,n=t.length-1,r=[],i=t[0],o=t[1],a=r[0]=qa(i,o);++e<n;)r[e]=(a+(a=qa(i=o,o=t[e+1])))/2;return r[e]=a,r}function Da(t){for(var e,n,r,i,o=[],a=Oa(t),u=-1,s=t.length-1;++u<s;)e=qa(t[u],t[u+1]),mu(e)<Lu?a[u]=a[u+1]=0:(n=a[u]/e,r=a[u+1]/e,i=n*n+r*r,i>9&&(i=3*e/Math.sqrt(i),a[u]=i*n,a[u+1]=i*r));for(u=-1;++u<=s;)i=(t[Math.min(s,u+1)][0]-t[Math.max(0,u-1)][0])/(6*(1+a[u]*a[u])),o.push([i||0,a[u]*i||0]);return o}function La(t){return t.length<3?va(t):t[0]+ka(t,Da(t))}function Fa(t){for(var e,n,r,i=-1,o=t.length;++i<o;)e=t[i],n=e[0],r=e[1]-Iu,e[0]=n*Math.cos(r),e[1]=n*Math.sin(r);return t}function za(t){function e(data){function e(){d.push("M",u(t(v),f),c,l(t(g.reverse()),f),"Z")}for(var s,h,p,d=[],g=[],v=[],m=-1,y=data.length,b=Ce(n),x=Ce(i),w=n===r?function(){return h}:Ce(r),_=i===o?function(){return p}:Ce(o);++m<y;)a.call(this,s=data[m],m)?(g.push([h=+b.call(this,s,m),p=+x.call(this,s,m)]),v.push([+w.call(this,s,m),+_.call(this,s,m)])):g.length&&(e(),g=[],v=[]);return g.length&&e(),d.length?d.join(""):null}var n=jr,r=jr,i=0,o=Ar,a=An,u=va,s=u.key,l=u,c="L",f=.7;return e.x=function(t){return arguments.length?(n=r=t,e):r},e.x0=function(t){return arguments.length?(n=t,e):n},e.x1=function(t){return arguments.length?(r=t,e):r},e.y=function(t){return arguments.length?(i=o=t,e):o},e.y0=function(t){return arguments.length?(i=t,e):i},e.y1=function(t){return arguments.length?(o=t,e):o},e.defined=function(t){return arguments.length?(a=t,e):a},e.interpolate=function(t){return arguments.length?(s="function"==typeof t?u=t:(u=ql.get(t)||va).key,l=u.reverse||u,c=u.closed?"M":"L",e):s},e.tension=function(t){return arguments.length?(f=t,e):f},e}function Ra(t){return t.radius}function Pa(t){return[t.x,t.y]}function Ia(t){return function(){var e=t.apply(this,arguments),n=e[0],r=e[1]-Iu;return[n*Math.cos(r),n*Math.sin(r)]}}function Ha(){return 64}function Ba(){return"circle"}function $a(t){var e=Math.sqrt(t/zu);return"M0,"+e+"A"+e+","+e+" 0 1,1 0,"+-e+"A"+e+","+e+" 0 1,1 0,"+e+"Z"}function Va(t){return function(){var e,n;(e=this[t])&&(n=e[e.active])&&(--e.count?delete e[e.active]:delete this[t],e.active+=.5,n.event&&n.event.interrupt.call(this,this.__data__,n.index))}}function Ua(t,e,n){return _u(t,Bl),t.namespace=e,t.id=n,t}function Wa(t,e,n,r){var i=t.id,o=t.namespace;return H(t,"function"==typeof n?function(t,a,u){t[o][i].tween.set(e,r(n.call(t,t.__data__,a,u)))}:(n=r(n),function(t){t[o][i].tween.set(e,n)}))}function Ya(t){return null==t&&(t=""),function(){this.textContent=t}}function Xa(t){return null==t?"__transition__":"__transition_"+t+"__"}function Ja(t,e,n,r,i){var o=t[n]||(t[n]={active:0,count:0}),a=o[r];if(!a){var u=i.time;a=o[r]={tween:new s,time:u,delay:i.delay,duration:i.duration,ease:i.ease,index:e},i=null,++o.count,ru.timer(function(i){function s(n){if(o.active>r)return c();var i=o[o.active];i&&(--o.count,delete o[o.active],i.event&&i.event.interrupt.call(t,t.__data__,i.index)),o.active=r,a.event&&a.event.start.call(t,t.__data__,e),a.tween.forEach(function(n,r){(r=r.call(t,t.__data__,e))&&g.push(r)}),h=a.ease,f=a.duration,ru.timer(function(){return d.c=l(n||1)?An:l,1},0,u)}function l(n){if(o.active!==r)return 1;for(var i=n/f,u=h(i),s=g.length;s>0;)g[--s].call(t,u);return i>=1?(a.event&&a.event.end.call(t,t.__data__,e),c()):void 0}function c(){return--o.count?delete o[r]:delete t[n],1}var f,h,p=a.delay,d=ss,g=[];return d.t=p+u,i>=p?s(i-p):void(d.c=s)},0,u)}}function Za(t,e,n){t.attr("transform",function(t){var r=e(t);return"translate("+(isFinite(r)?r:n(t))+",0)"})}function Ga(t,e,n){t.attr("transform",function(t){var r=e(t);return"translate(0,"+(isFinite(r)?r:n(t))+")"})}function Ka(t){return t.toISOString()}function Qa(t,e,n){function r(e){return t(e)}function i(t,n){var r=t[1]-t[0],i=r/n,o=ru.bisect(Gl,i);return o==Gl.length?[e.year,Xo(t.map(function(t){return t/31536e6}),n)[2]]:o?e[i/Gl[o-1]<Gl[o]/i?o-1:o]:[tc,Xo(t,n)[2]]}return r.invert=function(e){return tu(t.invert(e))},r.domain=function(e){return arguments.length?(t.domain(e),r):t.domain().map(tu)},r.nice=function(t,e){function n(n){return!isNaN(n)&&!t.range(n,tu(+n+1),e).length}var o=r.domain(),a=Po(o),u=null==t?i(a,10):"number"==typeof t&&i(a,t);return u&&(t=u[0],e=u[1]),r.domain(Bo(o,e>1?{floor:function(e){for(;n(e=t.floor(e));)e=tu(e-1);return e},ceil:function(e){for(;n(e=t.ceil(e));)e=tu(+e+1);return e}}:t))},r.ticks=function(t,e){var n=Po(r.domain()),o=null==t?i(n,10):"number"==typeof t?i(n,t):!t.range&&[{range:t},e];return o&&(t=o[0],e=o[1]),t.range(n[0],tu(+n[1]+1),1>e?1:e)},r.tickFormat=function(){return n},r.copy=function(){return Qa(t.copy(),e,n)},Wo(r,t)}function tu(t){return new Date(t)}function eu(t){return JSON.parse(t.responseText)}function nu(t){var e=au.createRange();return e.selectNode(au.body),e.createContextualFragment(t.responseText)}var ru={version:"3.5.3"};Date.now||(Date.now=function(){return+new Date});var iu=[].slice,ou=function(t){return iu.call(t)},au=document,uu=au.documentElement,su=window;try{ou(uu.childNodes)[0].nodeType}catch(lu){ou=function(t){for(var e=t.length,n=new Array(e);e--;)n[e]=t[e];return n}}try{au.createElement("div").style.setProperty("opacity",0,"")}catch(cu){var fu=su.Element.prototype,hu=fu.setAttribute,pu=fu.setAttributeNS,du=su.CSSStyleDeclaration.prototype,gu=du.setProperty;fu.setAttribute=function(t,e){hu.call(this,t,e+"")},fu.setAttributeNS=function(t,e,n){pu.call(this,t,e,n+"")},du.setProperty=function(t,e,n){gu.call(this,t,e+"",n)}}ru.ascending=t,ru.descending=function(t,e){return t>e?-1:e>t?1:e>=t?0:0/0},ru.min=function(t,e){var n,r,i=-1,o=t.length;if(1===arguments.length){for(;++i<o;)if(null!=(r=t[i])&&r>=r){n=r;break}for(;++i<o;)null!=(r=t[i])&&n>r&&(n=r)}else{for(;++i<o;)if(null!=(r=e.call(t,t[i],i))&&r>=r){n=r;break}for(;++i<o;)null!=(r=e.call(t,t[i],i))&&n>r&&(n=r)}return n},ru.max=function(t,e){var n,r,i=-1,o=t.length;if(1===arguments.length){for(;++i<o;)if(null!=(r=t[i])&&r>=r){n=r;break}for(;++i<o;)null!=(r=t[i])&&r>n&&(n=r)}else{for(;++i<o;)if(null!=(r=e.call(t,t[i],i))&&r>=r){n=r;break}for(;++i<o;)null!=(r=e.call(t,t[i],i))&&r>n&&(n=r)}return n},ru.extent=function(t,e){var n,r,i,o=-1,a=t.length;if(1===arguments.length){for(;++o<a;)if(null!=(r=t[o])&&r>=r){n=i=r;break}for(;++o<a;)null!=(r=t[o])&&(n>r&&(n=r),r>i&&(i=r))}else{for(;++o<a;)if(null!=(r=e.call(t,t[o],o))&&r>=r){n=i=r;break}for(;++o<a;)null!=(r=e.call(t,t[o],o))&&(n>r&&(n=r),r>i&&(i=r))}return[n,i]},ru.sum=function(t,e){var n,i=0,o=t.length,a=-1;if(1===arguments.length)for(;++a<o;)r(n=+t[a])&&(i+=n);else for(;++a<o;)r(n=+e.call(t,t[a],a))&&(i+=n);return i},ru.mean=function(t,e){var i,o=0,a=t.length,u=-1,s=a;if(1===arguments.length)for(;++u<a;)r(i=n(t[u]))?o+=i:--s;else for(;++u<a;)r(i=n(e.call(t,t[u],u)))?o+=i:--s;return s?o/s:void 0},ru.quantile=function(t,e){var n=(t.length-1)*e+1,r=Math.floor(n),i=+t[r-1],o=n-r;return o?i+o*(t[r]-i):i},ru.median=function(e,i){var o,a=[],u=e.length,s=-1;if(1===arguments.length)for(;++s<u;)r(o=n(e[s]))&&a.push(o);else for(;++s<u;)r(o=n(i.call(e,e[s],s)))&&a.push(o);return a.length?ru.quantile(a.sort(t),.5):void 0},ru.variance=function(t,e){var i,o,a=t.length,u=0,s=0,l=-1,c=0;if(1===arguments.length)for(;++l<a;)r(i=n(t[l]))&&(o=i-u,u+=o/++c,s+=o*(i-u));else for(;++l<a;)r(i=n(e.call(t,t[l],l)))&&(o=i-u,u+=o/++c,s+=o*(i-u));return c>1?s/(c-1):void 0},ru.deviation=function(){var t=ru.variance.apply(this,arguments);return t?Math.sqrt(t):t};var vu=i(t);ru.bisectLeft=vu.left,ru.bisect=ru.bisectRight=vu.right,ru.bisector=function(e){return i(1===e.length?function(n,r){return t(e(n),r)}:e)},ru.shuffle=function(t,e,n){(o=arguments.length)<3&&(n=t.length,2>o&&(e=0));for(var r,i,o=n-e;o;)i=Math.random()*o--|0,r=t[o+e],t[o+e]=t[i+e],t[i+e]=r;return t},ru.permute=function(t,e){for(var n=e.length,r=new Array(n);n--;)r[n]=t[e[n]];return r},ru.pairs=function(t){for(var e,n=0,r=t.length-1,i=t[0],o=new Array(0>r?0:r);r>n;)o[n]=[e=i,i=t[++n]];return o},ru.zip=function(){if(!(r=arguments.length))return[];for(var t=-1,e=ru.min(arguments,o),n=new Array(e);++t<e;)for(var r,i=-1,a=n[t]=new Array(r);++i<r;)a[i]=arguments[i][t];return n},ru.transpose=function(t){return ru.zip.apply(ru,t)},ru.keys=function(t){var e=[];for(var n in t)e.push(n);return e},ru.values=function(t){var e=[];for(var n in t)e.push(t[n]);return e +},ru.entries=function(t){var e=[];for(var n in t)e.push({key:n,value:t[n]});return e},ru.merge=function(t){for(var e,n,r,i=t.length,o=-1,a=0;++o<i;)a+=t[o].length;for(n=new Array(a);--i>=0;)for(r=t[i],e=r.length;--e>=0;)n[--a]=r[e];return n};var mu=Math.abs;ru.range=function(t,e,n){if(arguments.length<3&&(n=1,arguments.length<2&&(e=t,t=0)),(e-t)/n===1/0)throw new Error("infinite range");var r,i=[],o=a(mu(n)),u=-1;if(t*=o,e*=o,n*=o,0>n)for(;(r=t+n*++u)>e;)i.push(r/o);else for(;(r=t+n*++u)<e;)i.push(r/o);return i},ru.map=function(t,e){var n=new s;if(t instanceof s)t.forEach(function(t,e){n.set(t,e)});else if(Array.isArray(t)){var r,i=-1,o=t.length;if(1===arguments.length)for(;++i<o;)n.set(i,t[i]);else for(;++i<o;)n.set(e.call(t,r=t[i],i),r)}else for(var a in t)n.set(a,t[a]);return n};var yu="__proto__",bu="\x00";u(s,{has:f,get:function(t){return this._[l(t)]},set:function(t,e){return this._[l(t)]=e},remove:h,keys:p,values:function(){var t=[];for(var e in this._)t.push(this._[e]);return t},entries:function(){var t=[];for(var e in this._)t.push({key:c(e),value:this._[e]});return t},size:d,empty:g,forEach:function(t){for(var e in this._)t.call(this,c(e),this._[e])}}),ru.nest=function(){function t(e,a,u){if(u>=o.length)return r?r.call(i,a):n?a.sort(n):a;for(var l,c,f,h,p=-1,d=a.length,g=o[u++],v=new s;++p<d;)(h=v.get(l=g(c=a[p])))?h.push(c):v.set(l,[c]);return e?(c=e(),f=function(n,r){c.set(n,t(e,r,u))}):(c={},f=function(n,r){c[n]=t(e,r,u)}),v.forEach(f),c}function e(t,n){if(n>=o.length)return t;var r=[],i=a[n++];return t.forEach(function(t,i){r.push({key:t,values:e(i,n)})}),i?r.sort(function(t,e){return i(t.key,e.key)}):r}var n,r,i={},o=[],a=[];return i.map=function(e,n){return t(n,e,0)},i.entries=function(n){return e(t(ru.map,n,0),0)},i.key=function(t){return o.push(t),i},i.sortKeys=function(t){return a[o.length-1]=t,i},i.sortValues=function(t){return n=t,i},i.rollup=function(t){return r=t,i},i},ru.set=function(t){var e=new v;if(t)for(var n=0,r=t.length;r>n;++n)e.add(t[n]);return e},u(v,{has:f,add:function(t){return this._[l(t+="")]=!0,t},remove:h,values:p,size:d,empty:g,forEach:function(t){for(var e in this._)t.call(this,c(e))}}),ru.behavior={},ru.rebind=function(t,e){for(var n,r=1,i=arguments.length;++r<i;)t[n=arguments[r]]=m(t,e,e[n]);return t};var xu=["webkit","ms","moz","Moz","o","O"];ru.dispatch=function(){for(var t=new x,e=-1,n=arguments.length;++e<n;)t[arguments[e]]=w(t);return t},x.prototype.on=function(t,e){var n=t.indexOf("."),r="";if(n>=0&&(r=t.slice(n+1),t=t.slice(0,n)),t)return arguments.length<2?this[t].on(r):this[t].on(r,e);if(2===arguments.length){if(null==e)for(t in this)this.hasOwnProperty(t)&&this[t].on(r,null);return this}},ru.event=null,ru.requote=function(t){return t.replace(wu,"\\$&")};var wu=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,_u={}.__proto__?function(t,e){t.__proto__=e}:function(t,e){for(var n in e)t[n]=e[n]},Mu=function(t,e){return e.querySelector(t)},ku=function(t,e){return e.querySelectorAll(t)},Eu=uu.matches||uu[y(uu,"matchesSelector")],Cu=function(t,e){return Eu.call(t,e)};"function"==typeof Sizzle&&(Mu=function(t,e){return Sizzle(t,e)[0]||null},ku=Sizzle,Cu=Sizzle.matchesSelector),ru.selection=function(){return Au};var Su=ru.selection.prototype=[];Su.select=function(t){var e,n,r,i,o=[];t=C(t);for(var a=-1,u=this.length;++a<u;){o.push(e=[]),e.parentNode=(r=this[a]).parentNode;for(var s=-1,l=r.length;++s<l;)(i=r[s])?(e.push(n=t.call(i,i.__data__,s,a)),n&&"__data__"in i&&(n.__data__=i.__data__)):e.push(null)}return E(o)},Su.selectAll=function(t){var e,n,r=[];t=S(t);for(var i=-1,o=this.length;++i<o;)for(var a=this[i],u=-1,s=a.length;++u<s;)(n=a[u])&&(r.push(e=ou(t.call(n,n.__data__,u,i))),e.parentNode=n);return E(r)};var Tu={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/"};ru.ns={prefix:Tu,qualify:function(t){var e=t.indexOf(":"),n=t;return e>=0&&(n=t.slice(0,e),t=t.slice(e+1)),Tu.hasOwnProperty(n)?{space:Tu[n],local:t}:t}},Su.attr=function(t,e){if(arguments.length<2){if("string"==typeof t){var n=this.node();return t=ru.ns.qualify(t),t.local?n.getAttributeNS(t.space,t.local):n.getAttribute(t)}for(e in t)this.each(T(e,t[e]));return this}return this.each(T(t,e))},Su.classed=function(t,e){if(arguments.length<2){if("string"==typeof t){var n=this.node(),r=(t=N(t)).length,i=-1;if(e=n.classList){for(;++i<r;)if(!e.contains(t[i]))return!1}else for(e=n.getAttribute("class");++i<r;)if(!A(t[i]).test(e))return!1;return!0}for(e in t)this.each(q(e,t[e]));return this}return this.each(q(t,e))},Su.style=function(t,e,n){var r=arguments.length;if(3>r){if("string"!=typeof t){2>r&&(e="");for(n in t)this.each(D(n,t[n],e));return this}if(2>r)return su.getComputedStyle(this.node(),null).getPropertyValue(t);n=""}return this.each(D(t,e,n))},Su.property=function(t,e){if(arguments.length<2){if("string"==typeof t)return this.node()[t];for(e in t)this.each(L(e,t[e]));return this}return this.each(L(t,e))},Su.text=function(t){return arguments.length?this.each("function"==typeof t?function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}:null==t?function(){this.textContent=""}:function(){this.textContent=t}):this.node().textContent},Su.html=function(t){return arguments.length?this.each("function"==typeof t?function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}:null==t?function(){this.innerHTML=""}:function(){this.innerHTML=t}):this.node().innerHTML},Su.append=function(t){return t=F(t),this.select(function(){return this.appendChild(t.apply(this,arguments))})},Su.insert=function(t,e){return t=F(t),e=C(e),this.select(function(){return this.insertBefore(t.apply(this,arguments),e.apply(this,arguments)||null)})},Su.remove=function(){return this.each(z)},Su.data=function(t,e){function n(t,n){var r,i,o,a=t.length,f=n.length,h=Math.min(a,f),p=new Array(f),d=new Array(f),g=new Array(a);if(e){var v,m=new s,y=new Array(a);for(r=-1;++r<a;)m.has(v=e.call(i=t[r],i.__data__,r))?g[r]=i:m.set(v,i),y[r]=v;for(r=-1;++r<f;)(i=m.get(v=e.call(n,o=n[r],r)))?i!==!0&&(p[r]=i,i.__data__=o):d[r]=R(o),m.set(v,!0);for(r=-1;++r<a;)m.get(y[r])!==!0&&(g[r]=t[r])}else{for(r=-1;++r<h;)i=t[r],o=n[r],i?(i.__data__=o,p[r]=i):d[r]=R(o);for(;f>r;++r)d[r]=R(n[r]);for(;a>r;++r)g[r]=t[r]}d.update=p,d.parentNode=p.parentNode=g.parentNode=t.parentNode,u.push(d),l.push(p),c.push(g)}var r,i,o=-1,a=this.length;if(!arguments.length){for(t=new Array(a=(r=this[0]).length);++o<a;)(i=r[o])&&(t[o]=i.__data__);return t}var u=B([]),l=E([]),c=E([]);if("function"==typeof t)for(;++o<a;)n(r=this[o],t.call(r,r.parentNode.__data__,o));else for(;++o<a;)n(r=this[o],t);return l.enter=function(){return u},l.exit=function(){return c},l},Su.datum=function(t){return arguments.length?this.property("__data__",t):this.property("__data__")},Su.filter=function(t){var e,n,r,i=[];"function"!=typeof t&&(t=P(t));for(var o=0,a=this.length;a>o;o++){i.push(e=[]),e.parentNode=(n=this[o]).parentNode;for(var u=0,s=n.length;s>u;u++)(r=n[u])&&t.call(r,r.__data__,u,o)&&e.push(r)}return E(i)},Su.order=function(){for(var t=-1,e=this.length;++t<e;)for(var n,r=this[t],i=r.length-1,o=r[i];--i>=0;)(n=r[i])&&(o&&o!==n.nextSibling&&o.parentNode.insertBefore(n,o),o=n);return this},Su.sort=function(t){t=I.apply(this,arguments);for(var e=-1,n=this.length;++e<n;)this[e].sort(t);return this.order()},Su.each=function(t){return H(this,function(e,n,r){t.call(e,e.__data__,n,r)})},Su.call=function(t){var e=ou(arguments);return t.apply(e[0]=this,e),this},Su.empty=function(){return!this.node()},Su.node=function(){for(var t=0,e=this.length;e>t;t++)for(var n=this[t],r=0,i=n.length;i>r;r++){var o=n[r];if(o)return o}return null},Su.size=function(){var t=0;return H(this,function(){++t}),t};var ju=[];ru.selection.enter=B,ru.selection.enter.prototype=ju,ju.append=Su.append,ju.empty=Su.empty,ju.node=Su.node,ju.call=Su.call,ju.size=Su.size,ju.select=function(t){for(var e,n,r,i,o,a=[],u=-1,s=this.length;++u<s;){r=(i=this[u]).update,a.push(e=[]),e.parentNode=i.parentNode;for(var l=-1,c=i.length;++l<c;)(o=i[l])?(e.push(r[l]=n=t.call(i.parentNode,o.__data__,l,u)),n.__data__=o.__data__):e.push(null)}return E(a)},ju.insert=function(t,e){return arguments.length<2&&(e=$(this)),Su.insert.call(this,t,e)},ru.select=function(t){var e=["string"==typeof t?Mu(t,au):t];return e.parentNode=uu,E([e])},ru.selectAll=function(t){var e=ou("string"==typeof t?ku(t,au):t);return e.parentNode=uu,E([e])};var Au=ru.select(uu);Su.on=function(t,e,n){var r=arguments.length;if(3>r){if("string"!=typeof t){2>r&&(e=!1);for(n in t)this.each(V(n,t[n],e));return this}if(2>r)return(r=this.node()["__on"+t])&&r._;n=!1}return this.each(V(t,e,n))};var Nu=ru.map({mouseenter:"mouseover",mouseleave:"mouseout"});Nu.forEach(function(t){"on"+t in au&&Nu.remove(t)});var qu="onselectstart"in au?null:y(uu.style,"userSelect"),Ou=0;ru.mouse=function(t){return X(t,M())};var Du=/WebKit/.test(su.navigator.userAgent)?-1:0;ru.touch=function(t,e,n){if(arguments.length<3&&(n=e,e=M().changedTouches),e)for(var r,i=0,o=e.length;o>i;++i)if((r=e[i]).identifier===n)return X(t,r)},ru.behavior.drag=function(){function t(){this.on("mousedown.drag",i).on("touchstart.drag",o)}function e(t,e,i,o,a){return function(){function u(){var t,n,r=e(h,g);r&&(t=r[0]-b[0],n=r[1]-b[1],d|=t|n,b=r,p({type:"drag",x:r[0]+l[0],y:r[1]+l[1],dx:t,dy:n}))}function s(){e(h,g)&&(m.on(o+v,null).on(a+v,null),y(d&&ru.event.target===f),p({type:"dragend"}))}var l,c=this,f=ru.event.target,h=c.parentNode,p=n.of(c,arguments),d=0,g=t(),v=".drag"+(null==g?"":"-"+g),m=ru.select(i()).on(o+v,u).on(a+v,s),y=Y(),b=e(h,g);r?(l=r.apply(c,arguments),l=[l.x-b[0],l.y-b[1]]):l=[0,0],p({type:"dragstart"})}}var n=k(t,"drag","dragstart","dragend"),r=null,i=e(b,ru.mouse,G,"mousemove","mouseup"),o=e(J,ru.touch,Z,"touchmove","touchend");return t.origin=function(e){return arguments.length?(r=e,t):r},ru.rebind(t,n,"on")},ru.touches=function(t,e){return arguments.length<2&&(e=M().touches),e?ou(e).map(function(e){var n=X(t,e);return n.identifier=e.identifier,n}):[]};var Lu=1e-6,Fu=Lu*Lu,zu=Math.PI,Ru=2*zu,Pu=Ru-Lu,Iu=zu/2,Hu=zu/180,Bu=180/zu,$u=Math.SQRT2,Vu=2,Uu=4;ru.interpolateZoom=function(t,e){function n(t){var e=t*y;if(m){var n=re(g),a=o/(Vu*h)*(n*ie($u*e+g)-ne(g));return[r+a*l,i+a*c,o*n/re($u*e+g)]}return[r+t*l,i+t*c,o*Math.exp($u*e)]}var r=t[0],i=t[1],o=t[2],a=e[0],u=e[1],s=e[2],l=a-r,c=u-i,f=l*l+c*c,h=Math.sqrt(f),p=(s*s-o*o+Uu*f)/(2*o*Vu*h),d=(s*s-o*o-Uu*f)/(2*s*Vu*h),g=Math.log(Math.sqrt(p*p+1)-p),v=Math.log(Math.sqrt(d*d+1)-d),m=v-g,y=(m||Math.log(s/o))/$u;return n.duration=1e3*y,n},ru.behavior.zoom=function(){function t(t){t.on(A,c).on(Xu+".zoom",h).on("dblclick.zoom",p).on(O,f)}function e(t){return[(t[0]-E.x)/E.k,(t[1]-E.y)/E.k]}function n(t){return[t[0]*E.k+E.x,t[1]*E.k+E.y]}function r(t){E.k=Math.max(S[0],Math.min(S[1],t))}function i(t,e){e=n(e),E.x+=t[0]-e[0],E.y+=t[1]-e[1]}function o(e,n,o,a){e.__chart__={x:E.x,y:E.y,k:E.k},r(Math.pow(2,a)),i(g=n,o),e=ru.select(e),T>0&&(e=e.transition().duration(T)),e.call(t.event)}function a(){x&&x.domain(b.range().map(function(t){return(t-E.x)/E.k}).map(b.invert)),M&&M.domain(w.range().map(function(t){return(t-E.y)/E.k}).map(w.invert))}function u(t){j++||t({type:"zoomstart"})}function s(t){a(),t({type:"zoom",scale:E.k,translate:[E.x,E.y]})}function l(t){--j||t({type:"zoomend"}),g=null}function c(){function t(){c=1,i(ru.mouse(r),h),s(a)}function n(){f.on(N,null).on(q,null),p(c&&ru.event.target===o),l(a)}var r=this,o=ru.event.target,a=D.of(r,arguments),c=0,f=ru.select(su).on(N,t).on(q,n),h=e(ru.mouse(r)),p=Y();Hl.call(r),u(a)}function f(){function t(){var t=ru.touches(d);return p=E.k,t.forEach(function(t){t.identifier in v&&(v[t.identifier]=e(t))}),t}function n(){var e=ru.event.target;ru.select(e).on(x,a).on(w,h),M.push(e);for(var n=ru.event.changedTouches,r=0,i=n.length;i>r;++r)v[n[r].identifier]=null;var u=t(),s=Date.now();if(1===u.length){if(500>s-y){var l=u[0];o(d,l,v[l.identifier],Math.floor(Math.log(E.k)/Math.LN2)+1),_()}y=s}else if(u.length>1){var l=u[0],c=u[1],f=l[0]-c[0],p=l[1]-c[1];m=f*f+p*p}}function a(){var t,e,n,o,a=ru.touches(d);Hl.call(d);for(var u=0,l=a.length;l>u;++u,o=null)if(n=a[u],o=v[n.identifier]){if(e)break;t=n,e=o}if(o){var c=(c=n[0]-t[0])*c+(c=n[1]-t[1])*c,f=m&&Math.sqrt(c/m);t=[(t[0]+n[0])/2,(t[1]+n[1])/2],e=[(e[0]+o[0])/2,(e[1]+o[1])/2],r(f*p)}y=null,i(t,e),s(g)}function h(){if(ru.event.touches.length){for(var e=ru.event.changedTouches,n=0,r=e.length;r>n;++n)delete v[e[n].identifier];for(var i in v)return void t()}ru.selectAll(M).on(b,null),k.on(A,c).on(O,f),C(),l(g)}var p,d=this,g=D.of(d,arguments),v={},m=0,b=".zoom-"+ru.event.changedTouches[0].identifier,x="touchmove"+b,w="touchend"+b,M=[],k=ru.select(d),C=Y();n(),u(g),k.on(A,null).on(O,n)}function h(){var t=D.of(this,arguments);m?clearTimeout(m):(d=e(g=v||ru.mouse(this)),Hl.call(this),u(t)),m=setTimeout(function(){m=null,l(t)},50),_(),r(Math.pow(2,.002*Wu())*E.k),i(g,d),s(t)}function p(){var t=ru.mouse(this),n=Math.log(E.k)/Math.LN2;o(this,t,e(t),ru.event.shiftKey?Math.ceil(n)-1:Math.floor(n)+1)}var d,g,v,m,y,b,x,w,M,E={x:0,y:0,k:1},C=[960,500],S=Yu,T=250,j=0,A="mousedown.zoom",N="mousemove.zoom",q="mouseup.zoom",O="touchstart.zoom",D=k(t,"zoomstart","zoom","zoomend");return t.event=function(t){t.each(function(){var t=D.of(this,arguments),e=E;Pl?ru.select(this).transition().each("start.zoom",function(){E=this.__chart__||{x:0,y:0,k:1},u(t)}).tween("zoom:zoom",function(){var n=C[0],r=C[1],i=g?g[0]:n/2,o=g?g[1]:r/2,a=ru.interpolateZoom([(i-E.x)/E.k,(o-E.y)/E.k,n/E.k],[(i-e.x)/e.k,(o-e.y)/e.k,n/e.k]);return function(e){var r=a(e),u=n/r[2];this.__chart__=E={x:i-r[0]*u,y:o-r[1]*u,k:u},s(t)}}).each("interrupt.zoom",function(){l(t)}).each("end.zoom",function(){l(t)}):(this.__chart__=E,u(t),s(t),l(t))})},t.translate=function(e){return arguments.length?(E={x:+e[0],y:+e[1],k:E.k},a(),t):[E.x,E.y]},t.scale=function(e){return arguments.length?(E={x:E.x,y:E.y,k:+e},a(),t):E.k},t.scaleExtent=function(e){return arguments.length?(S=null==e?Yu:[+e[0],+e[1]],t):S},t.center=function(e){return arguments.length?(v=e&&[+e[0],+e[1]],t):v},t.size=function(e){return arguments.length?(C=e&&[+e[0],+e[1]],t):C},t.duration=function(e){return arguments.length?(T=+e,t):T},t.x=function(e){return arguments.length?(x=e,b=e.copy(),E={x:0,y:0,k:1},t):x},t.y=function(e){return arguments.length?(M=e,w=e.copy(),E={x:0,y:0,k:1},t):M},ru.rebind(t,D,"on")};var Wu,Yu=[0,1/0],Xu="onwheel"in au?(Wu=function(){return-ru.event.deltaY*(ru.event.deltaMode?120:1)},"wheel"):"onmousewheel"in au?(Wu=function(){return ru.event.wheelDelta},"mousewheel"):(Wu=function(){return-ru.event.detail},"MozMousePixelScroll");ru.color=ae,ae.prototype.toString=function(){return this.rgb()+""},ru.hsl=ue;var Ju=ue.prototype=new ae;Ju.brighter=function(t){return t=Math.pow(.7,arguments.length?t:1),new ue(this.h,this.s,this.l/t)},Ju.darker=function(t){return t=Math.pow(.7,arguments.length?t:1),new ue(this.h,this.s,t*this.l)},Ju.rgb=function(){return se(this.h,this.s,this.l)},ru.hcl=le;var Zu=le.prototype=new ae;Zu.brighter=function(t){return new le(this.h,this.c,Math.min(100,this.l+Gu*(arguments.length?t:1)))},Zu.darker=function(t){return new le(this.h,this.c,Math.max(0,this.l-Gu*(arguments.length?t:1)))},Zu.rgb=function(){return ce(this.h,this.c,this.l).rgb()},ru.lab=fe;var Gu=18,Ku=.95047,Qu=1,ts=1.08883,es=fe.prototype=new ae;es.brighter=function(t){return new fe(Math.min(100,this.l+Gu*(arguments.length?t:1)),this.a,this.b)},es.darker=function(t){return new fe(Math.max(0,this.l-Gu*(arguments.length?t:1)),this.a,this.b)},es.rgb=function(){return he(this.l,this.a,this.b)},ru.rgb=me;var ns=me.prototype=new ae;ns.brighter=function(t){t=Math.pow(.7,arguments.length?t:1);var e=this.r,n=this.g,r=this.b,i=30;return e||n||r?(e&&i>e&&(e=i),n&&i>n&&(n=i),r&&i>r&&(r=i),new me(Math.min(255,e/t),Math.min(255,n/t),Math.min(255,r/t))):new me(i,i,i)},ns.darker=function(t){return t=Math.pow(.7,arguments.length?t:1),new me(t*this.r,t*this.g,t*this.b)},ns.hsl=function(){return _e(this.r,this.g,this.b)},ns.toString=function(){return"#"+xe(this.r)+xe(this.g)+xe(this.b)};var rs=ru.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});rs.forEach(function(t,e){rs.set(t,ye(e))}),ru.functor=Ce,ru.xhr=Te(Se),ru.dsv=function(t,e){function n(t,n,o){arguments.length<3&&(o=n,n=null);var a=je(t,e,null==n?r:i(n),o);return a.row=function(t){return arguments.length?a.response(null==(n=t)?r:i(t)):n},a}function r(t){return n.parse(t.responseText)}function i(t){return function(e){return n.parse(e.responseText,t)}}function o(e){return e.map(a).join(t)}function a(t){return u.test(t)?'"'+t.replace(/\"/g,'""')+'"':t}var u=new RegExp('["'+t+"\n]"),s=t.charCodeAt(0);return n.parse=function(t,e){var r;return n.parseRows(t,function(t,n){if(r)return r(t,n-1);var i=new Function("d","return {"+t.map(function(t,e){return JSON.stringify(t)+": d["+e+"]"}).join(",")+"}");r=e?function(t,n){return e(i(t),n)}:i})},n.parseRows=function(t,e){function n(){if(c>=l)return a;if(i)return i=!1,o;var e=c;if(34===t.charCodeAt(e)){for(var n=e;n++<l;)if(34===t.charCodeAt(n)){if(34!==t.charCodeAt(n+1))break;++n}c=n+2;var r=t.charCodeAt(n+1);return 13===r?(i=!0,10===t.charCodeAt(n+2)&&++c):10===r&&(i=!0),t.slice(e+1,n).replace(/""/g,'"')}for(;l>c;){var r=t.charCodeAt(c++),u=1;if(10===r)i=!0;else if(13===r)i=!0,10===t.charCodeAt(c)&&(++c,++u);else if(r!==s)continue;return t.slice(e,c-u)}return t.slice(e)}for(var r,i,o={},a={},u=[],l=t.length,c=0,f=0;(r=n())!==a;){for(var h=[];r!==o&&r!==a;)h.push(r),r=n();e&&null==(h=e(h,f++))||u.push(h)}return u},n.format=function(e){if(Array.isArray(e[0]))return n.formatRows(e);var r=new v,i=[];return e.forEach(function(t){for(var e in t)r.has(e)||i.push(r.add(e))}),[i.map(a).join(t)].concat(e.map(function(e){return i.map(function(t){return a(e[t])}).join(t)})).join("\n")},n.formatRows=function(t){return t.map(o).join("\n")},n},ru.csv=ru.dsv(",","text/csv"),ru.tsv=ru.dsv(" ","text/tab-separated-values");var is,os,as,us,ss,ls=su[y(su,"requestAnimationFrame")]||function(t){setTimeout(t,17)};ru.timer=function(t,e,n){var r=arguments.length;2>r&&(e=0),3>r&&(n=Date.now());var i=n+e,o={c:t,t:i,f:!1,n:null};os?os.n=o:is=o,os=o,as||(us=clearTimeout(us),as=1,ls(qe))},ru.timer.flush=function(){Oe(),De()},ru.round=function(t,e){return e?Math.round(t*(e=Math.pow(10,e)))/e:Math.round(t)};var cs=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"].map(Fe);ru.formatPrefix=function(t,e){var n=0;return t&&(0>t&&(t*=-1),e&&(t=ru.round(t,Le(t,e))),n=1+Math.floor(1e-12+Math.log(t)/Math.LN10),n=Math.max(-24,Math.min(24,3*Math.floor((n-1)/3)))),cs[8+n/3]};var fs=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,hs=ru.map({b:function(t){return t.toString(2)},c:function(t){return String.fromCharCode(t)},o:function(t){return t.toString(8)},x:function(t){return t.toString(16)},X:function(t){return t.toString(16).toUpperCase()},g:function(t,e){return t.toPrecision(e)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},r:function(t,e){return(t=ru.round(t,Le(t,e))).toFixed(Math.max(0,Math.min(20,Le(t*(1+1e-15),e))))}}),ps=ru.time={},ds=Date;Pe.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(){gs.setUTCDate.apply(this._,arguments)},setDay:function(){gs.setUTCDay.apply(this._,arguments)},setFullYear:function(){gs.setUTCFullYear.apply(this._,arguments)},setHours:function(){gs.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){gs.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){gs.setUTCMinutes.apply(this._,arguments)},setMonth:function(){gs.setUTCMonth.apply(this._,arguments)},setSeconds:function(){gs.setUTCSeconds.apply(this._,arguments)},setTime:function(){gs.setTime.apply(this._,arguments)}};var gs=Date.prototype;ps.year=Ie(function(t){return t=ps.day(t),t.setMonth(0,1),t},function(t,e){t.setFullYear(t.getFullYear()+e)},function(t){return t.getFullYear()}),ps.years=ps.year.range,ps.years.utc=ps.year.utc.range,ps.day=Ie(function(t){var e=new ds(2e3,0);return e.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),e},function(t,e){t.setDate(t.getDate()+e)},function(t){return t.getDate()-1}),ps.days=ps.day.range,ps.days.utc=ps.day.utc.range,ps.dayOfYear=function(t){var e=ps.year(t);return Math.floor((t-e-6e4*(t.getTimezoneOffset()-e.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(t,e){e=7-e;var n=ps[t]=Ie(function(t){return(t=ps.day(t)).setDate(t.getDate()-(t.getDay()+e)%7),t},function(t,e){t.setDate(t.getDate()+7*Math.floor(e))},function(t){var n=ps.year(t).getDay();return Math.floor((ps.dayOfYear(t)+(n+e)%7)/7)-(n!==e)});ps[t+"s"]=n.range,ps[t+"s"].utc=n.utc.range,ps[t+"OfYear"]=function(t){var n=ps.year(t).getDay();return Math.floor((ps.dayOfYear(t)+(n+e)%7)/7)}}),ps.week=ps.sunday,ps.weeks=ps.sunday.range,ps.weeks.utc=ps.sunday.utc.range,ps.weekOfYear=ps.sundayOfYear;var vs={"-":"",_:" ",0:"0"},ms=/^\s*\d+/,ys=/^%/;ru.locale=function(t){return{numberFormat:ze(t),timeFormat:Be(t)}};var bs=ru.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});ru.format=bs.numberFormat,ru.geo={},cn.prototype={s:0,t:0,add:function(t){fn(t,this.t,xs),fn(xs.s,this.s,this),this.s?this.t+=xs.t:this.s=xs.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var xs=new cn;ru.geo.stream=function(t,e){t&&ws.hasOwnProperty(t.type)?ws[t.type](t,e):hn(t,e)};var ws={Feature:function(t,e){hn(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,r=-1,i=n.length;++r<i;)hn(n[r].geometry,e)}},_s={Sphere:function(t,e){e.sphere()},Point:function(t,e){t=t.coordinates,e.point(t[0],t[1],t[2])},MultiPoint:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)t=n[r],e.point(t[0],t[1],t[2])},LineString:function(t,e){pn(t.coordinates,e,0)},MultiLineString:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)pn(n[r],e,0)},Polygon:function(t,e){dn(t.coordinates,e)},MultiPolygon:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)dn(n[r],e)},GeometryCollection:function(t,e){for(var n=t.geometries,r=-1,i=n.length;++r<i;)hn(n[r],e)}};ru.geo.area=function(t){return Ms=0,ru.geo.stream(t,Es),Ms};var Ms,ks=new cn,Es={sphere:function(){Ms+=4*zu},point:b,lineStart:b,lineEnd:b,polygonStart:function(){ks.reset(),Es.lineStart=gn},polygonEnd:function(){var t=2*ks;Ms+=0>t?4*zu+t:t,Es.lineStart=Es.lineEnd=Es.point=b}};ru.geo.bounds=function(){function t(t,e){b.push(x=[c=t,h=t]),f>e&&(f=e),e>p&&(p=e)}function e(e,n){var r=vn([e*Hu,n*Hu]);if(m){var i=yn(m,r),o=[i[1],-i[0],0],a=yn(o,i);wn(a),a=_n(a);var s=e-d,l=s>0?1:-1,g=a[0]*Bu*l,v=mu(s)>180;if(v^(g>l*d&&l*e>g)){var y=a[1]*Bu;y>p&&(p=y)}else if(g=(g+360)%360-180,v^(g>l*d&&l*e>g)){var y=-a[1]*Bu;f>y&&(f=y)}else f>n&&(f=n),n>p&&(p=n);v?d>e?u(c,e)>u(c,h)&&(h=e):u(e,h)>u(c,h)&&(c=e):h>=c?(c>e&&(c=e),e>h&&(h=e)):e>d?u(c,e)>u(c,h)&&(h=e):u(e,h)>u(c,h)&&(c=e)}else t(e,n);m=r,d=e}function n(){w.point=e}function r(){x[0]=c,x[1]=h,w.point=t,m=null}function i(t,n){if(m){var r=t-d;y+=mu(r)>180?r+(r>0?360:-360):r}else g=t,v=n;Es.point(t,n),e(t,n)}function o(){Es.lineStart()}function a(){i(g,v),Es.lineEnd(),mu(y)>Lu&&(c=-(h=180)),x[0]=c,x[1]=h,m=null}function u(t,e){return(e-=t)<0?e+360:e}function s(t,e){return t[0]-e[0]}function l(t,e){return e[0]<=e[1]?e[0]<=t&&t<=e[1]:t<e[0]||e[1]<t}var c,f,h,p,d,g,v,m,y,b,x,w={point:t,lineStart:n,lineEnd:r,polygonStart:function(){w.point=i,w.lineStart=o,w.lineEnd=a,y=0,Es.polygonStart()},polygonEnd:function(){Es.polygonEnd(),w.point=t,w.lineStart=n,w.lineEnd=r,0>ks?(c=-(h=180),f=-(p=90)):y>Lu?p=90:-Lu>y&&(f=-90),x[0]=c,x[1]=h}};return function(t){p=h=-(c=f=1/0),b=[],ru.geo.stream(t,w);var e=b.length;if(e){b.sort(s);for(var n,r=1,i=b[0],o=[i];e>r;++r)n=b[r],l(n[0],i)||l(n[1],i)?(u(i[0],n[1])>u(i[0],i[1])&&(i[1]=n[1]),u(n[0],i[1])>u(i[0],i[1])&&(i[0]=n[0])):o.push(i=n);for(var a,n,d=-1/0,e=o.length-1,r=0,i=o[e];e>=r;i=n,++r)n=o[r],(a=u(i[1],n[0]))>d&&(d=a,c=n[0],h=i[1])}return b=x=null,1/0===c||1/0===f?[[0/0,0/0],[0/0,0/0]]:[[c,f],[h,p]]}}(),ru.geo.centroid=function(t){Cs=Ss=Ts=js=As=Ns=qs=Os=Ds=Ls=Fs=0,ru.geo.stream(t,zs);var e=Ds,n=Ls,r=Fs,i=e*e+n*n+r*r;return Fu>i&&(e=Ns,n=qs,r=Os,Lu>Ss&&(e=Ts,n=js,r=As),i=e*e+n*n+r*r,Fu>i)?[0/0,0/0]:[Math.atan2(n,e)*Bu,ee(r/Math.sqrt(i))*Bu]};var Cs,Ss,Ts,js,As,Ns,qs,Os,Ds,Ls,Fs,zs={sphere:b,point:kn,lineStart:Cn,lineEnd:Sn,polygonStart:function(){zs.lineStart=Tn},polygonEnd:function(){zs.lineStart=Cn}},Rs=Dn(An,Rn,In,[-zu,-zu/2]),Ps=1e9;ru.geo.clipExtent=function(){var t,e,n,r,i,o,a={stream:function(t){return i&&(i.valid=!1),i=o(t),i.valid=!0,i},extent:function(u){return arguments.length?(o=Vn(t=+u[0][0],e=+u[0][1],n=+u[1][0],r=+u[1][1]),i&&(i.valid=!1,i=null),a):[[t,e],[n,r]]}};return a.extent([[0,0],[960,500]])},(ru.geo.conicEqualArea=function(){return Un(Wn)}).raw=Wn,ru.geo.albers=function(){return ru.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},ru.geo.albersUsa=function(){function t(t){var o=t[0],a=t[1];return e=null,n(o,a),e||(r(o,a),e)||i(o,a),e}var e,n,r,i,o=ru.geo.albers(),a=ru.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),u=ru.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),s={point:function(t,n){e=[t,n]}};return t.invert=function(t){var e=o.scale(),n=o.translate(),r=(t[0]-n[0])/e,i=(t[1]-n[1])/e;return(i>=.12&&.234>i&&r>=-.425&&-.214>r?a:i>=.166&&.234>i&&r>=-.214&&-.115>r?u:o).invert(t)},t.stream=function(t){var e=o.stream(t),n=a.stream(t),r=u.stream(t);return{point:function(t,i){e.point(t,i),n.point(t,i),r.point(t,i)},sphere:function(){e.sphere(),n.sphere(),r.sphere()},lineStart:function(){e.lineStart(),n.lineStart(),r.lineStart()},lineEnd:function(){e.lineEnd(),n.lineEnd(),r.lineEnd()},polygonStart:function(){e.polygonStart(),n.polygonStart(),r.polygonStart()},polygonEnd:function(){e.polygonEnd(),n.polygonEnd(),r.polygonEnd()}}},t.precision=function(e){return arguments.length?(o.precision(e),a.precision(e),u.precision(e),t):o.precision()},t.scale=function(e){return arguments.length?(o.scale(e),a.scale(.35*e),u.scale(e),t.translate(o.translate())):o.scale()},t.translate=function(e){if(!arguments.length)return o.translate();var l=o.scale(),c=+e[0],f=+e[1];return n=o.translate(e).clipExtent([[c-.455*l,f-.238*l],[c+.455*l,f+.238*l]]).stream(s).point,r=a.translate([c-.307*l,f+.201*l]).clipExtent([[c-.425*l+Lu,f+.12*l+Lu],[c-.214*l-Lu,f+.234*l-Lu]]).stream(s).point,i=u.translate([c-.205*l,f+.212*l]).clipExtent([[c-.214*l+Lu,f+.166*l+Lu],[c-.115*l-Lu,f+.234*l-Lu]]).stream(s).point,t},t.scale(1070)};var Is,Hs,Bs,$s,Vs,Us,Ws={point:b,lineStart:b,lineEnd:b,polygonStart:function(){Hs=0,Ws.lineStart=Yn},polygonEnd:function(){Ws.lineStart=Ws.lineEnd=Ws.point=b,Is+=mu(Hs/2)}},Ys={point:Xn,lineStart:b,lineEnd:b,polygonStart:b,polygonEnd:b},Xs={point:Gn,lineStart:Kn,lineEnd:Qn,polygonStart:function(){Xs.lineStart=tr},polygonEnd:function(){Xs.point=Gn,Xs.lineStart=Kn,Xs.lineEnd=Qn}};ru.geo.path=function(){function t(t){return t&&("function"==typeof u&&o.pointRadius(+u.apply(this,arguments)),a&&a.valid||(a=i(o)),ru.geo.stream(t,a)),o.result()}function e(){return a=null,t}var n,r,i,o,a,u=4.5;return t.area=function(t){return Is=0,ru.geo.stream(t,i(Ws)),Is},t.centroid=function(t){return Ts=js=As=Ns=qs=Os=Ds=Ls=Fs=0,ru.geo.stream(t,i(Xs)),Fs?[Ds/Fs,Ls/Fs]:Os?[Ns/Os,qs/Os]:As?[Ts/As,js/As]:[0/0,0/0]},t.bounds=function(t){return Vs=Us=-(Bs=$s=1/0),ru.geo.stream(t,i(Ys)),[[Bs,$s],[Vs,Us]]},t.projection=function(t){return arguments.length?(i=(n=t)?t.stream||rr(t):Se,e()):n},t.context=function(t){return arguments.length?(o=null==(r=t)?new Jn:new er(t),"function"!=typeof u&&o.pointRadius(u),e()):r},t.pointRadius=function(e){return arguments.length?(u="function"==typeof e?e:(o.pointRadius(+e),+e),t):u},t.projection(ru.geo.albersUsa()).context(null)},ru.geo.transform=function(t){return{stream:function(e){var n=new ir(e);for(var r in t)n[r]=t[r];return n}}},ir.prototype={point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},ru.geo.projection=ar,ru.geo.projectionMutator=ur,(ru.geo.equirectangular=function(){return ar(lr)}).raw=lr.invert=lr,ru.geo.rotation=function(t){function e(e){return e=t(e[0]*Hu,e[1]*Hu),e[0]*=Bu,e[1]*=Bu,e +}return t=fr(t[0]%360*Hu,t[1]*Hu,t.length>2?t[2]*Hu:0),e.invert=function(e){return e=t.invert(e[0]*Hu,e[1]*Hu),e[0]*=Bu,e[1]*=Bu,e},e},cr.invert=lr,ru.geo.circle=function(){function t(){var t="function"==typeof r?r.apply(this,arguments):r,e=fr(-t[0]*Hu,-t[1]*Hu,0).invert,i=[];return n(null,null,1,{point:function(t,n){i.push(t=e(t,n)),t[0]*=Bu,t[1]*=Bu}}),{type:"Polygon",coordinates:[i]}}var e,n,r=[0,0],i=6;return t.origin=function(e){return arguments.length?(r=e,t):r},t.angle=function(r){return arguments.length?(n=gr((e=+r)*Hu,i*Hu),t):e},t.precision=function(r){return arguments.length?(n=gr(e*Hu,(i=+r)*Hu),t):i},t.angle(90)},ru.geo.distance=function(t,e){var n,r=(e[0]-t[0])*Hu,i=t[1]*Hu,o=e[1]*Hu,a=Math.sin(r),u=Math.cos(r),s=Math.sin(i),l=Math.cos(i),c=Math.sin(o),f=Math.cos(o);return Math.atan2(Math.sqrt((n=f*a)*n+(n=l*c-s*f*u)*n),s*c+l*f*u)},ru.geo.graticule=function(){function t(){return{type:"MultiLineString",coordinates:e()}}function e(){return ru.range(Math.ceil(o/v)*v,i,v).map(h).concat(ru.range(Math.ceil(l/m)*m,s,m).map(p)).concat(ru.range(Math.ceil(r/d)*d,n,d).filter(function(t){return mu(t%v)>Lu}).map(c)).concat(ru.range(Math.ceil(u/g)*g,a,g).filter(function(t){return mu(t%m)>Lu}).map(f))}var n,r,i,o,a,u,s,l,c,f,h,p,d=10,g=d,v=90,m=360,y=2.5;return t.lines=function(){return e().map(function(t){return{type:"LineString",coordinates:t}})},t.outline=function(){return{type:"Polygon",coordinates:[h(o).concat(p(s).slice(1),h(i).reverse().slice(1),p(l).reverse().slice(1))]}},t.extent=function(e){return arguments.length?t.majorExtent(e).minorExtent(e):t.minorExtent()},t.majorExtent=function(e){return arguments.length?(o=+e[0][0],i=+e[1][0],l=+e[0][1],s=+e[1][1],o>i&&(e=o,o=i,i=e),l>s&&(e=l,l=s,s=e),t.precision(y)):[[o,l],[i,s]]},t.minorExtent=function(e){return arguments.length?(r=+e[0][0],n=+e[1][0],u=+e[0][1],a=+e[1][1],r>n&&(e=r,r=n,n=e),u>a&&(e=u,u=a,a=e),t.precision(y)):[[r,u],[n,a]]},t.step=function(e){return arguments.length?t.majorStep(e).minorStep(e):t.minorStep()},t.majorStep=function(e){return arguments.length?(v=+e[0],m=+e[1],t):[v,m]},t.minorStep=function(e){return arguments.length?(d=+e[0],g=+e[1],t):[d,g]},t.precision=function(e){return arguments.length?(y=+e,c=mr(u,a,90),f=yr(r,n,y),h=mr(l,s,90),p=yr(o,i,y),t):y},t.majorExtent([[-180,-90+Lu],[180,90-Lu]]).minorExtent([[-180,-80-Lu],[180,80+Lu]])},ru.geo.greatArc=function(){function t(){return{type:"LineString",coordinates:[e||r.apply(this,arguments),n||i.apply(this,arguments)]}}var e,n,r=br,i=xr;return t.distance=function(){return ru.geo.distance(e||r.apply(this,arguments),n||i.apply(this,arguments))},t.source=function(n){return arguments.length?(r=n,e="function"==typeof n?null:n,t):r},t.target=function(e){return arguments.length?(i=e,n="function"==typeof e?null:e,t):i},t.precision=function(){return arguments.length?t:0},t},ru.geo.interpolate=function(t,e){return wr(t[0]*Hu,t[1]*Hu,e[0]*Hu,e[1]*Hu)},ru.geo.length=function(t){return Js=0,ru.geo.stream(t,Zs),Js};var Js,Zs={sphere:b,point:b,lineStart:_r,lineEnd:b,polygonStart:b,polygonEnd:b},Gs=Mr(function(t){return Math.sqrt(2/(1+t))},function(t){return 2*Math.asin(t/2)});(ru.geo.azimuthalEqualArea=function(){return ar(Gs)}).raw=Gs;var Ks=Mr(function(t){var e=Math.acos(t);return e&&e/Math.sin(e)},Se);(ru.geo.azimuthalEquidistant=function(){return ar(Ks)}).raw=Ks,(ru.geo.conicConformal=function(){return Un(kr)}).raw=kr,(ru.geo.conicEquidistant=function(){return Un(Er)}).raw=Er;var Qs=Mr(function(t){return 1/t},Math.atan);(ru.geo.gnomonic=function(){return ar(Qs)}).raw=Qs,Cr.invert=function(t,e){return[t,2*Math.atan(Math.exp(e))-Iu]},(ru.geo.mercator=function(){return Sr(Cr)}).raw=Cr;var tl=Mr(function(){return 1},Math.asin);(ru.geo.orthographic=function(){return ar(tl)}).raw=tl;var el=Mr(function(t){return 1/(1+t)},function(t){return 2*Math.atan(t)});(ru.geo.stereographic=function(){return ar(el)}).raw=el,Tr.invert=function(t,e){return[-e,2*Math.atan(Math.exp(t))-Iu]},(ru.geo.transverseMercator=function(){var t=Sr(Tr),e=t.center,n=t.rotate;return t.center=function(t){return t?e([-t[1],t[0]]):(t=e(),[t[1],-t[0]])},t.rotate=function(t){return t?n([t[0],t[1],t.length>2?t[2]+90:90]):(t=n(),[t[0],t[1],t[2]-90])},n([0,0,90])}).raw=Tr,ru.geom={},ru.geom.hull=function(t){function e(data){if(data.length<3)return[];var t,e=Ce(n),i=Ce(r),o=data.length,a=[],u=[];for(t=0;o>t;t++)a.push([+e.call(this,data[t],t),+i.call(this,data[t],t),t]);for(a.sort(qr),t=0;o>t;t++)u.push([a[t][0],-a[t][1]]);var s=Nr(a),l=Nr(u),c=l[0]===s[0],f=l[l.length-1]===s[s.length-1],h=[];for(t=s.length-1;t>=0;--t)h.push(data[a[s[t]][2]]);for(t=+c;t<l.length-f;++t)h.push(data[a[l[t]][2]]);return h}var n=jr,r=Ar;return arguments.length?e(t):(e.x=function(t){return arguments.length?(n=t,e):n},e.y=function(t){return arguments.length?(r=t,e):r},e)},ru.geom.polygon=function(t){return _u(t,nl),t};var nl=ru.geom.polygon.prototype=[];nl.area=function(){for(var t,e=-1,n=this.length,r=this[n-1],i=0;++e<n;)t=r,r=this[e],i+=t[1]*r[0]-t[0]*r[1];return.5*i},nl.centroid=function(t){var e,n,r=-1,i=this.length,o=0,a=0,u=this[i-1];for(arguments.length||(t=-1/(6*this.area()));++r<i;)e=u,u=this[r],n=e[0]*u[1]-u[0]*e[1],o+=(e[0]+u[0])*n,a+=(e[1]+u[1])*n;return[o*t,a*t]},nl.clip=function(t){for(var e,n,r,i,o,a,u=Lr(t),s=-1,l=this.length-Lr(this),c=this[l-1];++s<l;){for(e=t.slice(),t.length=0,i=this[s],o=e[(r=e.length-u)-1],n=-1;++n<r;)a=e[n],Or(a,c,i)?(Or(o,c,i)||t.push(Dr(o,a,c,i)),t.push(a)):Or(o,c,i)&&t.push(Dr(o,a,c,i)),o=a;u&&t.push(t[0]),c=i}return t};var rl,il,ol,al,ul,sl=[],ll=[];$r.prototype.prepare=function(){for(var t,e=this.edges,n=e.length;n--;)t=e[n].edge,t.b&&t.a||e.splice(n,1);return e.sort(Ur),e.length},ei.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},ni.prototype={insert:function(t,e){var n,r,i;if(t){if(e.P=t,e.N=t.N,t.N&&(t.N.P=e),t.N=e,t.R){for(t=t.R;t.L;)t=t.L;t.L=e}else t.R=e;n=t}else this._?(t=ai(this._),e.P=null,e.N=t,t.P=t.L=e,n=t):(e.P=e.N=null,this._=e,n=null);for(e.L=e.R=null,e.U=n,e.C=!0,t=e;n&&n.C;)r=n.U,n===r.L?(i=r.R,i&&i.C?(n.C=i.C=!1,r.C=!0,t=r):(t===n.R&&(ii(this,n),t=n,n=t.U),n.C=!1,r.C=!0,oi(this,r))):(i=r.L,i&&i.C?(n.C=i.C=!1,r.C=!0,t=r):(t===n.L&&(oi(this,n),t=n,n=t.U),n.C=!1,r.C=!0,ii(this,r))),n=t.U;this._.C=!1},remove:function(t){t.N&&(t.N.P=t.P),t.P&&(t.P.N=t.N),t.N=t.P=null;var e,n,r,i=t.U,o=t.L,a=t.R;if(n=o?a?ai(a):o:a,i?i.L===t?i.L=n:i.R=n:this._=n,o&&a?(r=n.C,n.C=t.C,n.L=o,o.U=n,n!==a?(i=n.U,n.U=t.U,t=n.R,i.L=t,n.R=a,a.U=n):(n.U=i,i=n,t=n.R)):(r=t.C,t=n),t&&(t.U=i),!r){if(t&&t.C)return void(t.C=!1);do{if(t===this._)break;if(t===i.L){if(e=i.R,e.C&&(e.C=!1,i.C=!0,ii(this,i),e=i.R),e.L&&e.L.C||e.R&&e.R.C){e.R&&e.R.C||(e.L.C=!1,e.C=!0,oi(this,e),e=i.R),e.C=i.C,i.C=e.R.C=!1,ii(this,i),t=this._;break}}else if(e=i.L,e.C&&(e.C=!1,i.C=!0,oi(this,i),e=i.L),e.L&&e.L.C||e.R&&e.R.C){e.L&&e.L.C||(e.R.C=!1,e.C=!0,ii(this,e),e=i.L),e.C=i.C,i.C=e.L.C=!1,oi(this,i),t=this._;break}e.C=!0,t=i,i=i.U}while(!t.C);t&&(t.C=!1)}}},ru.geom.voronoi=function(t){function e(data){var t=new Array(data.length),e=u[0][0],r=u[0][1],i=u[1][0],o=u[1][1];return ui(n(data),u).cells.forEach(function(n,a){var u=n.edges,s=n.site,l=t[a]=u.length?u.map(function(t){var e=t.start();return[e.x,e.y]}):s.x>=e&&s.x<=i&&s.y>=r&&s.y<=o?[[e,o],[i,o],[i,r],[e,r]]:[];l.point=data[a]}),t}function n(data){return data.map(function(t,e){return{x:Math.round(o(t,e)/Lu)*Lu,y:Math.round(a(t,e)/Lu)*Lu,i:e}})}var r=jr,i=Ar,o=r,a=i,u=cl;return t?e(t):(e.links=function(data){return ui(n(data)).edges.filter(function(t){return t.l&&t.r}).map(function(t){return{source:data[t.l.i],target:data[t.r.i]}})},e.triangles=function(data){var t=[];return ui(n(data)).cells.forEach(function(e,n){for(var r,i,o=e.site,a=e.edges.sort(Ur),u=-1,s=a.length,l=a[s-1].edge,c=l.l===o?l.r:l.l;++u<s;)r=l,i=c,l=a[u].edge,c=l.l===o?l.r:l.l,n<i.i&&n<c.i&&li(o,i,c)<0&&t.push([data[n],data[i.i],data[c.i]])}),t},e.x=function(t){return arguments.length?(o=Ce(r=t),e):r},e.y=function(t){return arguments.length?(a=Ce(i=t),e):i},e.clipExtent=function(t){return arguments.length?(u=null==t?cl:t,e):u===cl?null:u},e.size=function(t){return arguments.length?e.clipExtent(t&&[[0,0],t]):u===cl?null:u&&u[1]},e)};var cl=[[-1e6,-1e6],[1e6,1e6]];ru.geom.delaunay=function(t){return ru.geom.voronoi().triangles(t)},ru.geom.quadtree=function(t,e,n,r,i){function o(data){function t(t,e,n,r,i,a,u,s){if(!isNaN(n)&&!isNaN(r))if(t.leaf){var l=t.x,c=t.y;if(null!=l)if(mu(l-n)+mu(c-r)<.01)o(t,e,n,r,i,a,u,s);else{var f=t.point;t.x=t.y=t.point=null,o(t,f,l,c,i,a,u,s),o(t,e,n,r,i,a,u,s)}else t.x=n,t.y=r,t.point=e}else o(t,e,n,r,i,a,u,s)}function o(e,n,r,i,o,a,u,s){var l=.5*(o+u),c=.5*(a+s),f=r>=l,h=i>=c,p=h<<1|f;e.leaf=!1,e=e.nodes[p]||(e.nodes[p]=hi()),f?o=l:u=l,h?a=c:s=c,t(e,n,r,i,o,a,u,s)}var l,c,f,h,p,d,g,v,m,y=Ce(u),b=Ce(s);if(null!=e)d=e,g=n,v=r,m=i;else if(v=m=-(d=g=1/0),c=[],f=[],p=data.length,a)for(h=0;p>h;++h)l=data[h],l.x<d&&(d=l.x),l.y<g&&(g=l.y),l.x>v&&(v=l.x),l.y>m&&(m=l.y),c.push(l.x),f.push(l.y);else for(h=0;p>h;++h){var x=+y(l=data[h],h),w=+b(l,h);d>x&&(d=x),g>w&&(g=w),x>v&&(v=x),w>m&&(m=w),c.push(x),f.push(w)}var _=v-d,M=m-g;_>M?m=g+_:v=d+M;var k=hi();if(k.add=function(e){t(k,e,+y(e,++h),+b(e,h),d,g,v,m)},k.visit=function(t){pi(t,k,d,g,v,m)},k.find=function(t){return di(k,t[0],t[1],d,g,v,m)},h=-1,null==e){for(;++h<p;)t(k,data[h],c[h],f[h],d,g,v,m);--h}else data.forEach(k.add);return c=f=data=l=null,k}var a,u=jr,s=Ar;return(a=arguments.length)?(u=ci,s=fi,3===a&&(i=n,r=e,n=e=0),o(t)):(o.x=function(t){return arguments.length?(u=t,o):u},o.y=function(t){return arguments.length?(s=t,o):s},o.extent=function(t){return arguments.length?(null==t?e=n=r=i=null:(e=+t[0][0],n=+t[0][1],r=+t[1][0],i=+t[1][1]),o):null==e?null:[[e,n],[r,i]]},o.size=function(t){return arguments.length?(null==t?e=n=r=i=null:(e=n=0,r=+t[0],i=+t[1]),o):null==e?null:[r-e,i-n]},o)},ru.interpolateRgb=gi,ru.interpolateObject=vi,ru.interpolateNumber=mi,ru.interpolateString=yi;var fl=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,hl=new RegExp(fl.source,"g");ru.interpolate=bi,ru.interpolators=[function(t,e){var n=typeof e;return("string"===n?rs.has(e)||/^(#|rgb\(|hsl\()/.test(e)?gi:yi:e instanceof ae?gi:Array.isArray(e)?xi:"object"===n&&isNaN(e)?vi:mi)(t,e)}],ru.interpolateArray=xi;var pl=function(){return Se},dl=ru.map({linear:pl,poly:Si,quad:function(){return ki},cubic:function(){return Ei},sin:function(){return Ti},exp:function(){return ji},circle:function(){return Ai},elastic:Ni,back:qi,bounce:function(){return Oi}}),gl=ru.map({"in":Se,out:_i,"in-out":Mi,"out-in":function(t){return Mi(_i(t))}});ru.ease=function(t){var e=t.indexOf("-"),n=e>=0?t.slice(0,e):t,r=e>=0?t.slice(e+1):"in";return n=dl.get(n)||pl,r=gl.get(r)||Se,wi(r(n.apply(null,iu.call(arguments,1))))},ru.interpolateHcl=Di,ru.interpolateHsl=Li,ru.interpolateLab=Fi,ru.interpolateRound=zi,ru.transform=function(t){var e=au.createElementNS(ru.ns.prefix.svg,"g");return(ru.transform=function(t){if(null!=t){e.setAttribute("transform",t);var n=e.transform.baseVal.consolidate()}return new Ri(n?n.matrix:vl)})(t)},Ri.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var vl={a:1,b:0,c:0,d:1,e:0,f:0};ru.interpolateTransform=Bi,ru.layout={},ru.layout.bundle=function(){return function(t){for(var e=[],n=-1,r=t.length;++n<r;)e.push(Ui(t[n]));return e}},ru.layout.chord=function(){function t(){var t,l,f,h,p,d={},g=[],v=ru.range(o),m=[];for(n=[],r=[],t=0,h=-1;++h<o;){for(l=0,p=-1;++p<o;)l+=i[h][p];g.push(l),m.push(ru.range(o)),t+=l}for(a&&v.sort(function(t,e){return a(g[t],g[e])}),u&&m.forEach(function(t,e){t.sort(function(t,n){return u(i[e][t],i[e][n])})}),t=(Ru-c*o)/t,l=0,h=-1;++h<o;){for(f=l,p=-1;++p<o;){var y=v[h],b=m[y][p],x=i[y][b],w=l,_=l+=x*t;d[y+"-"+b]={index:y,subindex:b,startAngle:w,endAngle:_,value:x}}r[y]={index:y,startAngle:f,endAngle:l,value:(l-f)/t},l+=c}for(h=-1;++h<o;)for(p=h-1;++p<o;){var M=d[h+"-"+p],k=d[p+"-"+h];(M.value||k.value)&&n.push(M.value<k.value?{source:k,target:M}:{source:M,target:k})}s&&e()}function e(){n.sort(function(t,e){return s((t.source.value+t.target.value)/2,(e.source.value+e.target.value)/2)})}var n,r,i,o,a,u,s,l={},c=0;return l.matrix=function(t){return arguments.length?(o=(i=t)&&i.length,n=r=null,l):i},l.padding=function(t){return arguments.length?(c=t,n=r=null,l):c},l.sortGroups=function(t){return arguments.length?(a=t,n=r=null,l):a},l.sortSubgroups=function(t){return arguments.length?(u=t,n=null,l):u},l.sortChords=function(t){return arguments.length?(s=t,n&&e(),l):s},l.chords=function(){return n||t(),n},l.groups=function(){return r||t(),r},l},ru.layout.force=function(){function t(t){return function(e,n,r,i){if(e.point!==t){var o=e.cx-t.x,a=e.cy-t.y,u=i-n,s=o*o+a*a;if(s>u*u/v){if(d>s){var l=e.charge/s;t.px-=o*l,t.py-=a*l}return!0}if(e.point&&s&&d>s){var l=e.pointCharge/s;t.px-=o*l,t.py-=a*l}}return!e.charge}}function e(t){t.px=ru.event.x,t.py=ru.event.y,u.resume()}var n,r,i,o,a,u={},s=ru.dispatch("start","tick","end"),l=[1,1],c=.9,f=ml,h=yl,p=-30,d=bl,g=.1,v=.64,m=[],y=[];return u.tick=function(){if((r*=.99)<.005)return s.end({type:"end",alpha:r=0}),!0;var e,n,u,f,h,d,v,b,x,w=m.length,_=y.length;for(n=0;_>n;++n)u=y[n],f=u.source,h=u.target,b=h.x-f.x,x=h.y-f.y,(d=b*b+x*x)&&(d=r*o[n]*((d=Math.sqrt(d))-i[n])/d,b*=d,x*=d,h.x-=b*(v=f.weight/(h.weight+f.weight)),h.y-=x*v,f.x+=b*(v=1-v),f.y+=x*v);if((v=r*g)&&(b=l[0]/2,x=l[1]/2,n=-1,v))for(;++n<w;)u=m[n],u.x+=(b-u.x)*v,u.y+=(x-u.y)*v;if(p)for(Ki(e=ru.geom.quadtree(m),r,a),n=-1;++n<w;)(u=m[n]).fixed||e.visit(t(u));for(n=-1;++n<w;)u=m[n],u.fixed?(u.x=u.px,u.y=u.py):(u.x-=(u.px-(u.px=u.x))*c,u.y-=(u.py-(u.py=u.y))*c);s.tick({type:"tick",alpha:r})},u.nodes=function(t){return arguments.length?(m=t,u):m},u.links=function(t){return arguments.length?(y=t,u):y},u.size=function(t){return arguments.length?(l=t,u):l},u.linkDistance=function(t){return arguments.length?(f="function"==typeof t?t:+t,u):f},u.distance=u.linkDistance,u.linkStrength=function(t){return arguments.length?(h="function"==typeof t?t:+t,u):h},u.friction=function(t){return arguments.length?(c=+t,u):c},u.charge=function(t){return arguments.length?(p="function"==typeof t?t:+t,u):p},u.chargeDistance=function(t){return arguments.length?(d=t*t,u):Math.sqrt(d)},u.gravity=function(t){return arguments.length?(g=+t,u):g},u.theta=function(t){return arguments.length?(v=t*t,u):Math.sqrt(v)},u.alpha=function(t){return arguments.length?(t=+t,r?r=t>0?t:0:t>0&&(s.start({type:"start",alpha:r=t}),ru.timer(u.tick)),u):r},u.start=function(){function t(t,r){if(!n){for(n=new Array(s),u=0;s>u;++u)n[u]=[];for(u=0;l>u;++u){var i=y[u];n[i.source.index].push(i.target),n[i.target.index].push(i.source)}}for(var o,a=n[e],u=-1,l=a.length;++u<l;)if(!isNaN(o=a[u][t]))return o;return Math.random()*r}var e,n,r,s=m.length,c=y.length,d=l[0],g=l[1];for(e=0;s>e;++e)(r=m[e]).index=e,r.weight=0;for(e=0;c>e;++e)r=y[e],"number"==typeof r.source&&(r.source=m[r.source]),"number"==typeof r.target&&(r.target=m[r.target]),++r.source.weight,++r.target.weight;for(e=0;s>e;++e)r=m[e],isNaN(r.x)&&(r.x=t("x",d)),isNaN(r.y)&&(r.y=t("y",g)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(i=[],"function"==typeof f)for(e=0;c>e;++e)i[e]=+f.call(this,y[e],e);else for(e=0;c>e;++e)i[e]=f;if(o=[],"function"==typeof h)for(e=0;c>e;++e)o[e]=+h.call(this,y[e],e);else for(e=0;c>e;++e)o[e]=h;if(a=[],"function"==typeof p)for(e=0;s>e;++e)a[e]=+p.call(this,m[e],e);else for(e=0;s>e;++e)a[e]=p;return u.resume()},u.resume=function(){return u.alpha(.1)},u.stop=function(){return u.alpha(0)},u.drag=function(){return n||(n=ru.behavior.drag().origin(Se).on("dragstart.force",Xi).on("drag.force",e).on("dragend.force",Ji)),arguments.length?void this.on("mouseover.force",Zi).on("mouseout.force",Gi).call(n):n},ru.rebind(u,s,"on")};var ml=20,yl=1,bl=1/0;ru.layout.hierarchy=function(){function t(i){var o,a=[i],u=[];for(i.depth=0;null!=(o=a.pop());)if(u.push(o),(l=n.call(t,o,o.depth))&&(s=l.length)){for(var s,l,c;--s>=0;)a.push(c=l[s]),c.parent=o,c.depth=o.depth+1;r&&(o.value=0),o.children=l}else r&&(o.value=+r.call(t,o,o.depth)||0),delete o.children;return eo(i,function(t){var n,i;e&&(n=t.children)&&n.sort(e),r&&(i=t.parent)&&(i.value+=t.value)}),u}var e=io,n=no,r=ro;return t.sort=function(n){return arguments.length?(e=n,t):e},t.children=function(e){return arguments.length?(n=e,t):n},t.value=function(e){return arguments.length?(r=e,t):r},t.revalue=function(e){return r&&(to(e,function(t){t.children&&(t.value=0)}),eo(e,function(e){var n;e.children||(e.value=+r.call(t,e,e.depth)||0),(n=e.parent)&&(n.value+=e.value)})),e},t},ru.layout.partition=function(){function t(e,n,r,i){var o=e.children;if(e.x=n,e.y=e.depth*i,e.dx=r,e.dy=i,o&&(a=o.length)){var a,u,s,l=-1;for(r=e.value?r/e.value:0;++l<a;)t(u=o[l],n,s=u.value*r,i),n+=s}}function e(t){var n=t.children,r=0;if(n&&(i=n.length))for(var i,o=-1;++o<i;)r=Math.max(r,e(n[o]));return 1+r}function n(n,o){var a=r.call(this,n,o);return t(a[0],0,i[0],i[1]/e(a[0])),a}var r=ru.layout.hierarchy(),i=[1,1];return n.size=function(t){return arguments.length?(i=t,n):i},Qi(n,r)},ru.layout.pie=function(){function t(data){var a,u=data.length,s=data.map(function(n,r){return+e.call(t,n,r)}),l=+("function"==typeof r?r.apply(this,arguments):r),c=("function"==typeof i?i.apply(this,arguments):i)-l,f=Math.min(Math.abs(c)/u,+("function"==typeof o?o.apply(this,arguments):o)),h=f*(0>c?-1:1),p=(c-u*h)/ru.sum(s),d=ru.range(u),g=[];return null!=n&&d.sort(n===xl?function(t,e){return s[e]-s[t]}:function(t,e){return n(data[t],data[e])}),d.forEach(function(t){g[t]={data:data[t],value:a=s[t],startAngle:l,endAngle:l+=a*p+h,padAngle:f}}),g}var e=Number,n=xl,r=0,i=Ru,o=0;return t.value=function(n){return arguments.length?(e=n,t):e},t.sort=function(e){return arguments.length?(n=e,t):n},t.startAngle=function(e){return arguments.length?(r=e,t):r},t.endAngle=function(e){return arguments.length?(i=e,t):i},t.padAngle=function(e){return arguments.length?(o=e,t):o},t};var xl={};ru.layout.stack=function(){function t(data,u){if(!(f=data.length))return data;var s=data.map(function(n,r){return e.call(t,n,r)}),l=s.map(function(e){return e.map(function(e,n){return[o.call(t,e,n),a.call(t,e,n)]})}),c=n.call(t,l,u);s=ru.permute(s,c),l=ru.permute(l,c);var f,h,p,d,g=r.call(t,l,u),v=s[0].length;for(p=0;v>p;++p)for(i.call(t,s[0][p],d=g[p],l[0][p][1]),h=1;f>h;++h)i.call(t,s[h][p],d+=l[h-1][p][1],l[h][p][1]);return data}var e=Se,n=lo,r=co,i=so,o=ao,a=uo;return t.values=function(n){return arguments.length?(e=n,t):e},t.order=function(e){return arguments.length?(n="function"==typeof e?e:wl.get(e)||lo,t):n},t.offset=function(e){return arguments.length?(r="function"==typeof e?e:_l.get(e)||co,t):r},t.x=function(e){return arguments.length?(o=e,t):o},t.y=function(e){return arguments.length?(a=e,t):a},t.out=function(e){return arguments.length?(i=e,t):i},t};var wl=ru.map({"inside-out":function(data){var t,e,n=data.length,r=data.map(fo),i=data.map(ho),o=ru.range(n).sort(function(t,e){return r[t]-r[e]}),a=0,u=0,s=[],l=[];for(t=0;n>t;++t)e=o[t],u>a?(a+=i[e],s.push(e)):(u+=i[e],l.push(e));return l.reverse().concat(s)},reverse:function(data){return ru.range(data.length).reverse()},"default":lo}),_l=ru.map({silhouette:function(data){var t,e,n,r=data.length,i=data[0].length,o=[],a=0,u=[];for(e=0;i>e;++e){for(t=0,n=0;r>t;t++)n+=data[t][e][1];n>a&&(a=n),o.push(n)}for(e=0;i>e;++e)u[e]=(a-o[e])/2;return u},wiggle:function(data){var t,e,n,r,i,o,a,u,s,l=data.length,c=data[0],f=c.length,h=[];for(h[0]=u=s=0,e=1;f>e;++e){for(t=0,r=0;l>t;++t)r+=data[t][e][1];for(t=0,i=0,a=c[e][0]-c[e-1][0];l>t;++t){for(n=0,o=(data[t][e][1]-data[t][e-1][1])/(2*a);t>n;++n)o+=(data[n][e][1]-data[n][e-1][1])/a;i+=o*data[t][e][1]}h[e]=u-=r?i/r*a:0,s>u&&(s=u)}for(e=0;f>e;++e)h[e]-=s;return h},expand:function(data){var t,e,n,r=data.length,i=data[0].length,o=1/r,a=[];for(e=0;i>e;++e){for(t=0,n=0;r>t;t++)n+=data[t][e][1];if(n)for(t=0;r>t;t++)data[t][e][1]/=n;else for(t=0;r>t;t++)data[t][e][1]=o}for(e=0;i>e;++e)a[e]=0;return a},zero:co});ru.layout.histogram=function(){function t(data,t){for(var o,a,u=[],s=data.map(n,this),l=r.call(this,s,t),c=i.call(this,l,s,t),t=-1,f=s.length,h=c.length-1,p=e?1:1/f;++t<h;)o=u[t]=[],o.dx=c[t+1]-(o.x=c[t]),o.y=0;if(h>0)for(t=-1;++t<f;)a=s[t],a>=l[0]&&a<=l[1]&&(o=u[ru.bisect(c,a,1,h)-1],o.y+=p,o.push(data[t]));return u}var e=!0,n=Number,r=mo,i=go;return t.value=function(e){return arguments.length?(n=e,t):n},t.range=function(e){return arguments.length?(r=Ce(e),t):r},t.bins=function(e){return arguments.length?(i="number"==typeof e?function(t){return vo(t,e)}:Ce(e),t):i},t.frequency=function(n){return arguments.length?(e=!!n,t):e},t},ru.layout.pack=function(){function t(t,o){var a=n.call(this,t,o),u=a[0],s=i[0],l=i[1],c=null==e?Math.sqrt:"function"==typeof e?e:function(){return e};if(u.x=u.y=0,eo(u,function(t){t.r=+c(t.value)}),eo(u,_o),r){var f=r*(e?1:Math.max(2*u.r/s,2*u.r/l))/2;eo(u,function(t){t.r+=f}),eo(u,_o),eo(u,function(t){t.r-=f})}return Eo(u,s/2,l/2,e?1:1/Math.max(2*u.r/s,2*u.r/l)),a}var e,n=ru.layout.hierarchy().sort(yo),r=0,i=[1,1];return t.size=function(e){return arguments.length?(i=e,t):i},t.radius=function(n){return arguments.length?(e=null==n||"function"==typeof n?n:+n,t):e},t.padding=function(e){return arguments.length?(r=+e,t):r},Qi(t,n)},ru.layout.tree=function(){function t(t,i){var c=a.call(this,t,i),f=c[0],h=e(f);if(eo(h,n),h.parent.m=-h.z,to(h,r),l)to(f,o);else{var p=f,d=f,g=f;to(f,function(t){t.x<p.x&&(p=t),t.x>d.x&&(d=t),t.depth>g.depth&&(g=t)});var v=u(p,d)/2-p.x,m=s[0]/(d.x+u(d,p)/2+v),y=s[1]/(g.depth||1);to(f,function(t){t.x=(t.x+v)*m,t.y=t.depth*y})}return c}function e(t){for(var e,n={A:null,children:[t]},r=[n];null!=(e=r.pop());)for(var i,o=e.children,a=0,u=o.length;u>a;++a)r.push((o[a]=i={_:o[a],parent:e,children:(i=o[a].children)&&i.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:a}).a=i);return n.children[0]}function n(t){var e=t.children,n=t.parent.children,r=t.i?n[t.i-1]:null;if(e.length){No(t);var o=(e[0].z+e[e.length-1].z)/2;r?(t.z=r.z+u(t._,r._),t.m=t.z-o):t.z=o}else r&&(t.z=r.z+u(t._,r._));t.parent.A=i(t,r,t.parent.A||n[0])}function r(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function i(t,e,n){if(e){for(var r,i=t,o=t,a=e,s=i.parent.children[0],l=i.m,c=o.m,f=a.m,h=s.m;a=jo(a),i=To(i),a&&i;)s=To(s),o=jo(o),o.a=t,r=a.z+f-i.z-l+u(a._,i._),r>0&&(Ao(qo(a,t,n),t,r),l+=r,c+=r),f+=a.m,l+=i.m,h+=s.m,c+=o.m;a&&!jo(o)&&(o.t=a,o.m+=f-c),i&&!To(s)&&(s.t=i,s.m+=l-h,n=t)}return n}function o(t){t.x*=s[0],t.y=t.depth*s[1]}var a=ru.layout.hierarchy().sort(null).value(null),u=So,s=[1,1],l=null;return t.separation=function(e){return arguments.length?(u=e,t):u},t.size=function(e){return arguments.length?(l=null==(s=e)?o:null,t):l?null:s},t.nodeSize=function(e){return arguments.length?(l=null==(s=e)?null:o,t):l?s:null},Qi(t,a)},ru.layout.cluster=function(){function t(t,o){var a,u=e.call(this,t,o),s=u[0],l=0;eo(s,function(t){var e=t.children;e&&e.length?(t.x=Do(e),t.y=Oo(e)):(t.x=a?l+=n(t,a):0,t.y=0,a=t)});var c=Lo(s),f=Fo(s),h=c.x-n(c,f)/2,p=f.x+n(f,c)/2;return eo(s,i?function(t){t.x=(t.x-s.x)*r[0],t.y=(s.y-t.y)*r[1]}:function(t){t.x=(t.x-h)/(p-h)*r[0],t.y=(1-(s.y?t.y/s.y:1))*r[1]}),u}var e=ru.layout.hierarchy().sort(null).value(null),n=So,r=[1,1],i=!1;return t.separation=function(e){return arguments.length?(n=e,t):n},t.size=function(e){return arguments.length?(i=null==(r=e),t):i?null:r},t.nodeSize=function(e){return arguments.length?(i=null!=(r=e),t):i?r:null},Qi(t,e)},ru.layout.treemap=function(){function t(t,e){for(var n,r,i=-1,o=t.length;++i<o;)r=(n=t[i]).value*(0>e?0:e),n.area=isNaN(r)||0>=r?0:r}function e(n){var o=n.children;if(o&&o.length){var a,u,s,l=f(n),c=[],h=o.slice(),d=1/0,g="slice"===p?l.dx:"dice"===p?l.dy:"slice-dice"===p?1&n.depth?l.dy:l.dx:Math.min(l.dx,l.dy);for(t(h,l.dx*l.dy/n.value),c.area=0;(s=h.length)>0;)c.push(a=h[s-1]),c.area+=a.area,"squarify"!==p||(u=r(c,g))<=d?(h.pop(),d=u):(c.area-=c.pop().area,i(c,g,l,!1),g=Math.min(l.dx,l.dy),c.length=c.area=0,d=1/0);c.length&&(i(c,g,l,!0),c.length=c.area=0),o.forEach(e)}}function n(e){var r=e.children;if(r&&r.length){var o,a=f(e),u=r.slice(),s=[];for(t(u,a.dx*a.dy/e.value),s.area=0;o=u.pop();)s.push(o),s.area+=o.area,null!=o.z&&(i(s,o.z?a.dx:a.dy,a,!u.length),s.length=s.area=0);r.forEach(n)}}function r(t,e){for(var n,r=t.area,i=0,o=1/0,a=-1,u=t.length;++a<u;)(n=t[a].area)&&(o>n&&(o=n),n>i&&(i=n));return r*=r,e*=e,r?Math.max(e*i*d/r,r/(e*o*d)):1/0}function i(t,e,n,r){var i,o=-1,a=t.length,u=n.x,l=n.y,c=e?s(t.area/e):0;if(e==n.dx){for((r||c>n.dy)&&(c=n.dy);++o<a;)i=t[o],i.x=u,i.y=l,i.dy=c,u+=i.dx=Math.min(n.x+n.dx-u,c?s(i.area/c):0);i.z=!0,i.dx+=n.x+n.dx-u,n.y+=c,n.dy-=c}else{for((r||c>n.dx)&&(c=n.dx);++o<a;)i=t[o],i.x=u,i.y=l,i.dx=c,l+=i.dy=Math.min(n.y+n.dy-l,c?s(i.area/c):0);i.z=!1,i.dy+=n.y+n.dy-l,n.x+=c,n.dx-=c}}function o(r){var i=a||u(r),o=i[0];return o.x=0,o.y=0,o.dx=l[0],o.dy=l[1],a&&u.revalue(o),t([o],o.dx*o.dy/o.value),(a?n:e)(o),h&&(a=i),i}var a,u=ru.layout.hierarchy(),s=Math.round,l=[1,1],c=null,f=zo,h=!1,p="squarify",d=.5*(1+Math.sqrt(5));return o.size=function(t){return arguments.length?(l=t,o):l},o.padding=function(t){function e(e){var n=t.call(o,e,e.depth);return null==n?zo(e):Ro(e,"number"==typeof n?[n,n,n,n]:n)}function n(e){return Ro(e,t)}if(!arguments.length)return c;var r;return f=null==(c=t)?zo:"function"==(r=typeof t)?e:"number"===r?(t=[t,t,t,t],n):n,o},o.round=function(t){return arguments.length?(s=t?Math.round:Number,o):s!=Number},o.sticky=function(t){return arguments.length?(h=t,a=null,o):h},o.ratio=function(t){return arguments.length?(d=t,o):d},o.mode=function(t){return arguments.length?(p=t+"",o):p},Qi(o,u)},ru.random={normal:function(t,e){var n=arguments.length;return 2>n&&(e=1),1>n&&(t=0),function(){var n,r,i;do n=2*Math.random()-1,r=2*Math.random()-1,i=n*n+r*r;while(!i||i>1);return t+e*n*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var t=ru.random.normal.apply(ru,arguments);return function(){return Math.exp(t())}},bates:function(t){var e=ru.random.irwinHall(t);return function(){return e()/t}},irwinHall:function(t){return function(){for(var e=0,n=0;t>n;n++)e+=Math.random();return e}}},ru.scale={};var Ml={floor:Se,ceil:Se};ru.scale.linear=function(){return Uo([0,1],[0,1],bi,!1)};var kl={s:1,g:1,p:1,r:1,e:1};ru.scale.log=function(){return Qo(ru.scale.linear().domain([0,1]),10,!0,[1,10])};var El=ru.format(".0e"),Cl={floor:function(t){return-Math.ceil(-t)},ceil:function(t){return-Math.floor(-t)}};ru.scale.pow=function(){return ta(ru.scale.linear(),1,[0,1])},ru.scale.sqrt=function(){return ru.scale.pow().exponent(.5)},ru.scale.ordinal=function(){return na([],{t:"range",a:[[]]})},ru.scale.category10=function(){return ru.scale.ordinal().range(Sl)},ru.scale.category20=function(){return ru.scale.ordinal().range(Tl)},ru.scale.category20b=function(){return ru.scale.ordinal().range(jl)},ru.scale.category20c=function(){return ru.scale.ordinal().range(Al)};var Sl=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(be),Tl=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(be),jl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(be),Al=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(be);ru.scale.quantile=function(){return ra([],[])},ru.scale.quantize=function(){return ia(0,1,[0,1])},ru.scale.threshold=function(){return oa([.5],[0,1])},ru.scale.identity=function(){return aa([0,1])},ru.svg={},ru.svg.arc=function(){function t(){var t=Math.max(0,+n.apply(this,arguments)),l=Math.max(0,+r.apply(this,arguments)),c=a.apply(this,arguments)-Iu,f=u.apply(this,arguments)-Iu,h=Math.abs(f-c),p=c>f?0:1;if(t>l&&(d=l,l=t,t=d),h>=Pu)return e(l,p)+(t?e(t,1-p):"")+"Z";var d,g,v,m,y,b,x,w,_,M,k,E,C=0,S=0,T=[];if((m=(+s.apply(this,arguments)||0)/2)&&(v=o===Nl?Math.sqrt(t*t+l*l):+o.apply(this,arguments),p||(S*=-1),l&&(S=ee(v/l*Math.sin(m))),t&&(C=ee(v/t*Math.sin(m)))),l){y=l*Math.cos(c+S),b=l*Math.sin(c+S),x=l*Math.cos(f-S),w=l*Math.sin(f-S);var j=Math.abs(f-c-2*S)<=zu?0:1;if(S&&pa(y,b,x,w)===p^j){var A=(c+f)/2;y=l*Math.cos(A),b=l*Math.sin(A),x=w=null}}else y=b=0;if(t){_=t*Math.cos(f-C),M=t*Math.sin(f-C),k=t*Math.cos(c+C),E=t*Math.sin(c+C);var N=Math.abs(c-f+2*C)<=zu?0:1;if(C&&pa(_,M,k,E)===1-p^N){var q=(c+f)/2;_=t*Math.cos(q),M=t*Math.sin(q),k=E=null}}else _=M=0;if((d=Math.min(Math.abs(l-t)/2,+i.apply(this,arguments)))>.001){g=l>t^p?0:1;var O=null==k?[_,M]:null==x?[y,b]:Dr([y,b],[k,E],[x,w],[_,M]),D=y-O[0],L=b-O[1],F=x-O[0],z=w-O[1],R=1/Math.sin(Math.acos((D*F+L*z)/(Math.sqrt(D*D+L*L)*Math.sqrt(F*F+z*z)))/2),P=Math.sqrt(O[0]*O[0]+O[1]*O[1]);if(null!=x){var I=Math.min(d,(l-P)/(R+1)),H=da(null==k?[_,M]:[k,E],[y,b],l,I,p),B=da([x,w],[_,M],l,I,p);d===I?T.push("M",H[0],"A",I,",",I," 0 0,",g," ",H[1],"A",l,",",l," 0 ",1-p^pa(H[1][0],H[1][1],B[1][0],B[1][1]),",",p," ",B[1],"A",I,",",I," 0 0,",g," ",B[0]):T.push("M",H[0],"A",I,",",I," 0 1,",g," ",B[0])}else T.push("M",y,",",b);if(null!=k){var $=Math.min(d,(t-P)/(R-1)),V=da([y,b],[k,E],t,-$,p),U=da([_,M],null==x?[y,b]:[x,w],t,-$,p);d===$?T.push("L",U[0],"A",$,",",$," 0 0,",g," ",U[1],"A",t,",",t," 0 ",p^pa(U[1][0],U[1][1],V[1][0],V[1][1]),",",1-p," ",V[1],"A",$,",",$," 0 0,",g," ",V[0]):T.push("L",U[0],"A",$,",",$," 0 0,",g," ",V[0])}else T.push("L",_,",",M)}else T.push("M",y,",",b),null!=x&&T.push("A",l,",",l," 0 ",j,",",p," ",x,",",w),T.push("L",_,",",M),null!=k&&T.push("A",t,",",t," 0 ",N,",",1-p," ",k,",",E);return T.push("Z"),T.join("")}function e(t,e){return"M0,"+t+"A"+t+","+t+" 0 1,"+e+" 0,"+-t+"A"+t+","+t+" 0 1,"+e+" 0,"+t}var n=sa,r=la,i=ua,o=Nl,a=ca,u=fa,s=ha;return t.innerRadius=function(e){return arguments.length?(n=Ce(e),t):n},t.outerRadius=function(e){return arguments.length?(r=Ce(e),t):r},t.cornerRadius=function(e){return arguments.length?(i=Ce(e),t):i},t.padRadius=function(e){return arguments.length?(o=e==Nl?Nl:Ce(e),t):o},t.startAngle=function(e){return arguments.length?(a=Ce(e),t):a},t.endAngle=function(e){return arguments.length?(u=Ce(e),t):u},t.padAngle=function(e){return arguments.length?(s=Ce(e),t):s},t.centroid=function(){var t=(+n.apply(this,arguments)+ +r.apply(this,arguments))/2,e=(+a.apply(this,arguments)+ +u.apply(this,arguments))/2-Iu;return[Math.cos(e)*t,Math.sin(e)*t]},t};var Nl="auto";ru.svg.line=function(){return ga(Se)};var ql=ru.map({linear:va,"linear-closed":ma,step:ya,"step-before":ba,"step-after":xa,basis:Ca,"basis-open":Sa,"basis-closed":Ta,bundle:ja,cardinal:Ma,"cardinal-open":wa,"cardinal-closed":_a,monotone:La});ql.forEach(function(t,e){e.key=t,e.closed=/-closed$/.test(t)});var Ol=[0,2/3,1/3,0],Dl=[0,1/3,2/3,0],Ll=[0,1/6,2/3,1/6];ru.svg.line.radial=function(){var t=ga(Fa);return t.radius=t.x,delete t.x,t.angle=t.y,delete t.y,t},ba.reverse=xa,xa.reverse=ba,ru.svg.area=function(){return za(Se)},ru.svg.area.radial=function(){var t=za(Fa);return t.radius=t.x,delete t.x,t.innerRadius=t.x0,delete t.x0,t.outerRadius=t.x1,delete t.x1,t.angle=t.y,delete t.y,t.startAngle=t.y0,delete t.y0,t.endAngle=t.y1,delete t.y1,t},ru.svg.chord=function(){function t(t,u){var s=e(this,o,t,u),l=e(this,a,t,u);return"M"+s.p0+r(s.r,s.p1,s.a1-s.a0)+(n(s,l)?i(s.r,s.p1,s.r,s.p0):i(s.r,s.p1,l.r,l.p0)+r(l.r,l.p1,l.a1-l.a0)+i(l.r,l.p1,s.r,s.p0))+"Z"}function e(t,e,n,r){var i=e.call(t,n,r),o=u.call(t,i,r),a=s.call(t,i,r)-Iu,c=l.call(t,i,r)-Iu;return{r:o,a0:a,a1:c,p0:[o*Math.cos(a),o*Math.sin(a)],p1:[o*Math.cos(c),o*Math.sin(c)]}}function n(t,e){return t.a0==e.a0&&t.a1==e.a1}function r(t,e,n){return"A"+t+","+t+" 0 "+ +(n>zu)+",1 "+e}function i(t,e,n,r){return"Q 0,0 "+r}var o=br,a=xr,u=Ra,s=ca,l=fa;return t.radius=function(e){return arguments.length?(u=Ce(e),t):u +},t.source=function(e){return arguments.length?(o=Ce(e),t):o},t.target=function(e){return arguments.length?(a=Ce(e),t):a},t.startAngle=function(e){return arguments.length?(s=Ce(e),t):s},t.endAngle=function(e){return arguments.length?(l=Ce(e),t):l},t},ru.svg.diagonal=function(){function t(t,i){var o=e.call(this,t,i),a=n.call(this,t,i),u=(o.y+a.y)/2,s=[o,{x:o.x,y:u},{x:a.x,y:u},a];return s=s.map(r),"M"+s[0]+"C"+s[1]+" "+s[2]+" "+s[3]}var e=br,n=xr,r=Pa;return t.source=function(n){return arguments.length?(e=Ce(n),t):e},t.target=function(e){return arguments.length?(n=Ce(e),t):n},t.projection=function(e){return arguments.length?(r=e,t):r},t},ru.svg.diagonal.radial=function(){var t=ru.svg.diagonal(),e=Pa,n=t.projection;return t.projection=function(t){return arguments.length?n(Ia(e=t)):e},t},ru.svg.symbol=function(){function t(t,r){return(Fl.get(e.call(this,t,r))||$a)(n.call(this,t,r))}var e=Ba,n=Ha;return t.type=function(n){return arguments.length?(e=Ce(n),t):e},t.size=function(e){return arguments.length?(n=Ce(e),t):n},t};var Fl=ru.map({circle:$a,cross:function(t){var e=Math.sqrt(t/5)/2;return"M"+-3*e+","+-e+"H"+-e+"V"+-3*e+"H"+e+"V"+-e+"H"+3*e+"V"+e+"H"+e+"V"+3*e+"H"+-e+"V"+e+"H"+-3*e+"Z"},diamond:function(t){var e=Math.sqrt(t/(2*Rl)),n=e*Rl;return"M0,"+-e+"L"+n+",0 0,"+e+" "+-n+",0Z"},square:function(t){var e=Math.sqrt(t)/2;return"M"+-e+","+-e+"L"+e+","+-e+" "+e+","+e+" "+-e+","+e+"Z"},"triangle-down":function(t){var e=Math.sqrt(t/zl),n=e*zl/2;return"M0,"+n+"L"+e+","+-n+" "+-e+","+-n+"Z"},"triangle-up":function(t){var e=Math.sqrt(t/zl),n=e*zl/2;return"M0,"+-n+"L"+e+","+n+" "+-e+","+n+"Z"}});ru.svg.symbolTypes=Fl.keys();var zl=Math.sqrt(3),Rl=Math.tan(30*Hu);Su.transition=function(t){for(var e,n,r=Pl||++$l,i=Xa(t),o=[],a=Il||{time:Date.now(),ease:Ci,delay:0,duration:250},u=-1,s=this.length;++u<s;){o.push(e=[]);for(var l=this[u],c=-1,f=l.length;++c<f;)(n=l[c])&&Ja(n,c,i,r,a),e.push(n)}return Ua(o,i,r)},Su.interrupt=function(t){return this.each(null==t?Hl:Va(Xa(t)))};var Pl,Il,Hl=Va(Xa()),Bl=[],$l=0;Bl.call=Su.call,Bl.empty=Su.empty,Bl.node=Su.node,Bl.size=Su.size,ru.transition=function(t,e){return t&&t.transition?Pl?t.transition(e):t:Au.transition(t)},ru.transition.prototype=Bl,Bl.select=function(t){var e,n,r,i=this.id,o=this.namespace,a=[];t=C(t);for(var u=-1,s=this.length;++u<s;){a.push(e=[]);for(var l=this[u],c=-1,f=l.length;++c<f;)(r=l[c])&&(n=t.call(r,r.__data__,c,u))?("__data__"in r&&(n.__data__=r.__data__),Ja(n,c,o,i,r[o][i]),e.push(n)):e.push(null)}return Ua(a,o,i)},Bl.selectAll=function(t){var e,n,r,i,o,a=this.id,u=this.namespace,s=[];t=S(t);for(var l=-1,c=this.length;++l<c;)for(var f=this[l],h=-1,p=f.length;++h<p;)if(r=f[h]){o=r[u][a],n=t.call(r,r.__data__,h,l),s.push(e=[]);for(var d=-1,g=n.length;++d<g;)(i=n[d])&&Ja(i,d,u,a,o),e.push(i)}return Ua(s,u,a)},Bl.filter=function(t){var e,n,r,i=[];"function"!=typeof t&&(t=P(t));for(var o=0,a=this.length;a>o;o++){i.push(e=[]);for(var n=this[o],u=0,s=n.length;s>u;u++)(r=n[u])&&t.call(r,r.__data__,u,o)&&e.push(r)}return Ua(i,this.namespace,this.id)},Bl.tween=function(t,e){var n=this.id,r=this.namespace;return arguments.length<2?this.node()[r][n].tween.get(t):H(this,null==e?function(e){e[r][n].tween.remove(t)}:function(i){i[r][n].tween.set(t,e)})},Bl.attr=function(t,e){function n(){this.removeAttribute(u)}function r(){this.removeAttributeNS(u.space,u.local)}function i(t){return null==t?n:(t+="",function(){var e,n=this.getAttribute(u);return n!==t&&(e=a(n,t),function(t){this.setAttribute(u,e(t))})})}function o(t){return null==t?r:(t+="",function(){var e,n=this.getAttributeNS(u.space,u.local);return n!==t&&(e=a(n,t),function(t){this.setAttributeNS(u.space,u.local,e(t))})})}if(arguments.length<2){for(e in t)this.attr(e,t[e]);return this}var a="transform"==t?Bi:bi,u=ru.ns.qualify(t);return Wa(this,"attr."+t,e,u.local?o:i)},Bl.attrTween=function(t,e){function n(t,n){var r=e.call(this,t,n,this.getAttribute(i));return r&&function(t){this.setAttribute(i,r(t))}}function r(t,n){var r=e.call(this,t,n,this.getAttributeNS(i.space,i.local));return r&&function(t){this.setAttributeNS(i.space,i.local,r(t))}}var i=ru.ns.qualify(t);return this.tween("attr."+t,i.local?r:n)},Bl.style=function(t,e,n){function r(){this.style.removeProperty(t)}function i(e){return null==e?r:(e+="",function(){var r,i=su.getComputedStyle(this,null).getPropertyValue(t);return i!==e&&(r=bi(i,e),function(e){this.style.setProperty(t,r(e),n)})})}var o=arguments.length;if(3>o){if("string"!=typeof t){2>o&&(e="");for(n in t)this.style(n,t[n],e);return this}n=""}return Wa(this,"style."+t,e,i)},Bl.styleTween=function(t,e,n){function r(r,i){var o=e.call(this,r,i,su.getComputedStyle(this,null).getPropertyValue(t));return o&&function(e){this.style.setProperty(t,o(e),n)}}return arguments.length<3&&(n=""),this.tween("style."+t,r)},Bl.text=function(t){return Wa(this,"text",t,Ya)},Bl.remove=function(){var t=this.namespace;return this.each("end.transition",function(){var e;this[t].count<2&&(e=this.parentNode)&&e.removeChild(this)})},Bl.ease=function(t){var e=this.id,n=this.namespace;return arguments.length<1?this.node()[n][e].ease:("function"!=typeof t&&(t=ru.ease.apply(ru,arguments)),H(this,function(r){r[n][e].ease=t}))},Bl.delay=function(t){var e=this.id,n=this.namespace;return arguments.length<1?this.node()[n][e].delay:H(this,"function"==typeof t?function(r,i,o){r[n][e].delay=+t.call(r,r.__data__,i,o)}:(t=+t,function(r){r[n][e].delay=t}))},Bl.duration=function(t){var e=this.id,n=this.namespace;return arguments.length<1?this.node()[n][e].duration:H(this,"function"==typeof t?function(r,i,o){r[n][e].duration=Math.max(1,t.call(r,r.__data__,i,o))}:(t=Math.max(1,t),function(r){r[n][e].duration=t}))},Bl.each=function(t,e){var n=this.id,r=this.namespace;if(arguments.length<2){var i=Il,o=Pl;try{Pl=n,H(this,function(e,i,o){Il=e[r][n],t.call(e,e.__data__,i,o)})}finally{Il=i,Pl=o}}else H(this,function(i){var o=i[r][n];(o.event||(o.event=ru.dispatch("start","end","interrupt"))).on(t,e)});return this},Bl.transition=function(){for(var t,e,n,r,i=this.id,o=++$l,a=this.namespace,u=[],s=0,l=this.length;l>s;s++){u.push(t=[]);for(var e=this[s],c=0,f=e.length;f>c;c++)(n=e[c])&&(r=n[a][i],Ja(n,c,a,o,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),t.push(n)}return Ua(u,a,o)},ru.svg.axis=function(){function t(t){t.each(function(){var t,l=ru.select(this),c=this.__chart__||n,f=this.__chart__=n.copy(),h=null==s?f.ticks?f.ticks.apply(f,u):f.domain():s,p=null==e?f.tickFormat?f.tickFormat.apply(f,u):Se:e,d=l.selectAll(".tick").data(h,f),g=d.enter().insert("g",".domain").attr("class","tick").style("opacity",Lu),v=ru.transition(d.exit()).style("opacity",Lu).remove(),m=ru.transition(d.order()).style("opacity",1),y=Math.max(i,0)+a,b=Io(f),x=l.selectAll(".domain").data([0]),w=(x.enter().append("path").attr("class","domain"),ru.transition(x));g.append("line"),g.append("text");var _,M,k,E,C=g.select("line"),S=m.select("line"),T=d.select("text").text(p),j=g.select("text"),A=m.select("text"),N="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(t=Za,_="x",k="y",M="x2",E="y2",T.attr("dy",0>N?"0em":".71em").style("text-anchor","middle"),w.attr("d","M"+b[0]+","+N*o+"V0H"+b[1]+"V"+N*o)):(t=Ga,_="y",k="x",M="y2",E="x2",T.attr("dy",".32em").style("text-anchor",0>N?"end":"start"),w.attr("d","M"+N*o+","+b[0]+"H0V"+b[1]+"H"+N*o)),C.attr(E,N*i),j.attr(k,N*y),S.attr(M,0).attr(E,N*i),A.attr(_,0).attr(k,N*y),f.rangeBand){var q=f,O=q.rangeBand()/2;c=f=function(t){return q(t)+O}}else c.rangeBand?c=f:v.call(t,f,c);g.call(t,c,f),m.call(t,f,f)})}var e,n=ru.scale.linear(),r=Vl,i=6,o=6,a=3,u=[10],s=null;return t.scale=function(e){return arguments.length?(n=e,t):n},t.orient=function(e){return arguments.length?(r=e in Ul?e+"":Vl,t):r},t.ticks=function(){return arguments.length?(u=arguments,t):u},t.tickValues=function(e){return arguments.length?(s=e,t):s},t.tickFormat=function(n){return arguments.length?(e=n,t):e},t.tickSize=function(e){var n=arguments.length;return n?(i=+e,o=+arguments[n-1],t):i},t.innerTickSize=function(e){return arguments.length?(i=+e,t):i},t.outerTickSize=function(e){return arguments.length?(o=+e,t):o},t.tickPadding=function(e){return arguments.length?(a=+e,t):a},t.tickSubdivide=function(){return arguments.length&&t},t};var Vl="bottom",Ul={top:1,right:1,bottom:1,left:1};ru.svg.brush=function(){function t(o){o.each(function(){var o=ru.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",i).on("touchstart.brush",i),a=o.selectAll(".background").data([0]);a.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),o.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var u=o.selectAll(".resize").data(d,Se);u.exit().remove(),u.enter().append("g").attr("class",function(t){return"resize "+t}).style("cursor",function(t){return Wl[t]}).append("rect").attr("x",function(t){return/[ew]$/.test(t)?-3:null}).attr("y",function(t){return/^[ns]/.test(t)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),u.style("display",t.empty()?"none":null);var c,f=ru.transition(o),h=ru.transition(a);s&&(c=Io(s),h.attr("x",c[0]).attr("width",c[1]-c[0]),n(f)),l&&(c=Io(l),h.attr("y",c[0]).attr("height",c[1]-c[0]),r(f)),e(f)})}function e(t){t.selectAll(".resize").attr("transform",function(t){return"translate("+c[+/e$/.test(t)]+","+f[+/^s/.test(t)]+")"})}function n(t){t.select(".extent").attr("x",c[0]),t.selectAll(".extent,.n>rect,.s>rect").attr("width",c[1]-c[0])}function r(t){t.select(".extent").attr("y",f[0]),t.selectAll(".extent,.e>rect,.w>rect").attr("height",f[1]-f[0])}function i(){function i(){32==ru.event.keyCode&&(T||(y=null,A[0]-=c[1],A[1]-=f[1],T=2),_())}function d(){32==ru.event.keyCode&&2==T&&(A[0]+=c[1],A[1]+=f[1],T=0,_())}function g(){var t=ru.mouse(x),i=!1;b&&(t[0]+=b[0],t[1]+=b[1]),T||(ru.event.altKey?(y||(y=[(c[0]+c[1])/2,(f[0]+f[1])/2]),A[0]=c[+(t[0]<y[0])],A[1]=f[+(t[1]<y[1])]):y=null),C&&v(t,s,0)&&(n(k),i=!0),S&&v(t,l,1)&&(r(k),i=!0),i&&(e(k),M({type:"brush",mode:T?"move":"resize"}))}function v(t,e,n){var r,i,u=Io(e),s=u[0],l=u[1],d=A[n],g=n?f:c,v=g[1]-g[0];return T&&(s-=d,l-=v+d),r=(n?p:h)?Math.max(s,Math.min(l,t[n])):t[n],T?i=(r+=d)+v:(y&&(d=Math.max(s,Math.min(l,2*y[n]-r))),r>d?(i=r,r=d):i=d),g[0]!=r||g[1]!=i?(n?a=null:o=null,g[0]=r,g[1]=i,!0):void 0}function m(){g(),k.style("pointer-events","all").selectAll(".resize").style("display",t.empty()?"none":null),ru.select("body").style("cursor",null),N.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),j(),M({type:"brushend"})}var y,b,x=this,w=ru.select(ru.event.target),M=u.of(x,arguments),k=ru.select(x),E=w.datum(),C=!/^(n|s)$/.test(E)&&s,S=!/^(e|w)$/.test(E)&&l,T=w.classed("extent"),j=Y(),A=ru.mouse(x),N=ru.select(su).on("keydown.brush",i).on("keyup.brush",d);if(ru.event.changedTouches?N.on("touchmove.brush",g).on("touchend.brush",m):N.on("mousemove.brush",g).on("mouseup.brush",m),k.interrupt().selectAll("*").interrupt(),T)A[0]=c[0]-A[0],A[1]=f[0]-A[1];else if(E){var q=+/w$/.test(E),O=+/^n/.test(E);b=[c[1-q]-A[0],f[1-O]-A[1]],A[0]=c[q],A[1]=f[O]}else ru.event.altKey&&(y=A.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),ru.select("body").style("cursor",w.style("cursor")),M({type:"brushstart"}),g()}var o,a,u=k(t,"brushstart","brush","brushend"),s=null,l=null,c=[0,0],f=[0,0],h=!0,p=!0,d=Yl[0];return t.event=function(t){t.each(function(){var t=u.of(this,arguments),e={x:c,y:f,i:o,j:a},n=this.__chart__||e;this.__chart__=e,Pl?ru.select(this).transition().each("start.brush",function(){o=n.i,a=n.j,c=n.x,f=n.y,t({type:"brushstart"})}).tween("brush:brush",function(){var n=xi(c,e.x),r=xi(f,e.y);return o=a=null,function(i){c=e.x=n(i),f=e.y=r(i),t({type:"brush",mode:"resize"})}}).each("end.brush",function(){o=e.i,a=e.j,t({type:"brush",mode:"resize"}),t({type:"brushend"})}):(t({type:"brushstart"}),t({type:"brush",mode:"resize"}),t({type:"brushend"}))})},t.x=function(e){return arguments.length?(s=e,d=Yl[!s<<1|!l],t):s},t.y=function(e){return arguments.length?(l=e,d=Yl[!s<<1|!l],t):l},t.clamp=function(e){return arguments.length?(s&&l?(h=!!e[0],p=!!e[1]):s?h=!!e:l&&(p=!!e),t):s&&l?[h,p]:s?h:l?p:null},t.extent=function(e){var n,r,i,u,h;return arguments.length?(s&&(n=e[0],r=e[1],l&&(n=n[0],r=r[0]),o=[n,r],s.invert&&(n=s(n),r=s(r)),n>r&&(h=n,n=r,r=h),(n!=c[0]||r!=c[1])&&(c=[n,r])),l&&(i=e[0],u=e[1],s&&(i=i[1],u=u[1]),a=[i,u],l.invert&&(i=l(i),u=l(u)),i>u&&(h=i,i=u,u=h),(i!=f[0]||u!=f[1])&&(f=[i,u])),t):(s&&(o?(n=o[0],r=o[1]):(n=c[0],r=c[1],s.invert&&(n=s.invert(n),r=s.invert(r)),n>r&&(h=n,n=r,r=h))),l&&(a?(i=a[0],u=a[1]):(i=f[0],u=f[1],l.invert&&(i=l.invert(i),u=l.invert(u)),i>u&&(h=i,i=u,u=h))),s&&l?[[n,i],[r,u]]:s?[n,r]:l&&[i,u])},t.clear=function(){return t.empty()||(c=[0,0],f=[0,0],o=a=null),t},t.empty=function(){return!!s&&c[0]==c[1]||!!l&&f[0]==f[1]},ru.rebind(t,u,"on")};var Wl={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Yl=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Xl=ps.format=bs.timeFormat,Jl=Xl.utc,Zl=Jl("%Y-%m-%dT%H:%M:%S.%LZ");Xl.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Ka:Zl,Ka.parse=function(t){var e=new Date(t);return isNaN(e)?null:e},Ka.toString=Zl.toString,ps.second=Ie(function(t){return new ds(1e3*Math.floor(t/1e3))},function(t,e){t.setTime(t.getTime()+1e3*Math.floor(e))},function(t){return t.getSeconds()}),ps.seconds=ps.second.range,ps.seconds.utc=ps.second.utc.range,ps.minute=Ie(function(t){return new ds(6e4*Math.floor(t/6e4))},function(t,e){t.setTime(t.getTime()+6e4*Math.floor(e))},function(t){return t.getMinutes()}),ps.minutes=ps.minute.range,ps.minutes.utc=ps.minute.utc.range,ps.hour=Ie(function(t){var e=t.getTimezoneOffset()/60;return new ds(36e5*(Math.floor(t/36e5-e)+e))},function(t,e){t.setTime(t.getTime()+36e5*Math.floor(e))},function(t){return t.getHours()}),ps.hours=ps.hour.range,ps.hours.utc=ps.hour.utc.range,ps.month=Ie(function(t){return t=ps.day(t),t.setDate(1),t},function(t,e){t.setMonth(t.getMonth()+e)},function(t){return t.getMonth()}),ps.months=ps.month.range,ps.months.utc=ps.month.utc.range;var Gl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Kl=[[ps.second,1],[ps.second,5],[ps.second,15],[ps.second,30],[ps.minute,1],[ps.minute,5],[ps.minute,15],[ps.minute,30],[ps.hour,1],[ps.hour,3],[ps.hour,6],[ps.hour,12],[ps.day,1],[ps.day,2],[ps.week,1],[ps.month,1],[ps.month,3],[ps.year,1]],Ql=Xl.multi([[".%L",function(t){return t.getMilliseconds()}],[":%S",function(t){return t.getSeconds()}],["%I:%M",function(t){return t.getMinutes()}],["%I %p",function(t){return t.getHours()}],["%a %d",function(t){return t.getDay()&&1!=t.getDate()}],["%b %d",function(t){return 1!=t.getDate()}],["%B",function(t){return t.getMonth()}],["%Y",An]]),tc={range:function(t,e,n){return ru.range(Math.ceil(t/n)*n,+e,n).map(tu)},floor:Se,ceil:Se};Kl.year=ps.year,ps.scale=function(){return Qa(ru.scale.linear(),Kl,Ql)};var ec=Kl.map(function(t){return[t[0].utc,t[1]]}),nc=Jl.multi([[".%L",function(t){return t.getUTCMilliseconds()}],[":%S",function(t){return t.getUTCSeconds()}],["%I:%M",function(t){return t.getUTCMinutes()}],["%I %p",function(t){return t.getUTCHours()}],["%a %d",function(t){return t.getUTCDay()&&1!=t.getUTCDate()}],["%b %d",function(t){return 1!=t.getUTCDate()}],["%B",function(t){return t.getUTCMonth()}],["%Y",An]]);ec.year=ps.year.utc,ps.scale.utc=function(){return Qa(ru.scale.linear(),ec,nc)},ru.text=Te(function(t){return t.responseText}),ru.json=function(t,e){return je(t,"application/json",eu,e)},ru.html=function(t,e){return je(t,"text/html",nu,e)},ru.xml=Te(function(t){return t.responseXML}),"function"==typeof define&&define.amd?define(ru):"object"==typeof e&&e.exports&&(e.exports=ru),this.d3=ru}()},{}],54:[function(t,e,n){function r(){return"WebkitAppearance"in document.documentElement.style||window.console&&(console.firebug||console.exception&&console.table)||navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31}function i(){var t=arguments,e=this.useColors;if(t[0]=(e?"%c":"")+this.namespace+(e?" %c":" ")+t[0]+(e?"%c ":" ")+"+"+n.humanize(this.diff),!e)return t;var r="color: "+this.color;t=[t[0],r,"color: inherit"].concat(Array.prototype.slice.call(t,1));var i=0,o=0;return t[0].replace(/%[a-z%]/g,function(t){"%%"!==t&&(i++,"%c"===t&&(o=i))}),t.splice(o,0,r),t}function o(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function a(t){try{null==t?s.removeItem("debug"):s.debug=t}catch(e){}}function u(){var t;try{t=s.debug}catch(e){}return t}n=e.exports=t("./debug"),n.log=o,n.formatArgs=i,n.save=a,n.load=u,n.useColors=r;var s;s="undefined"!=typeof chrome&&"undefined"!=typeof chrome.storage?chrome.storage.local:window.localStorage,n.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],n.formatters.j=function(t){return JSON.stringify(t)},n.enable(u())},{"./debug":55}],55:[function(t,e,n){function r(){return n.colors[c++%n.colors.length]}function i(t){function e(){}function i(){var t=i,e=+new Date,o=e-(l||e);t.diff=o,t.prev=l,t.curr=e,l=e,null==t.useColors&&(t.useColors=n.useColors()),null==t.color&&t.useColors&&(t.color=r());var a=Array.prototype.slice.call(arguments);a[0]=n.coerce(a[0]),"string"!=typeof a[0]&&(a=["%o"].concat(a));var u=0;a[0]=a[0].replace(/%([a-z%])/g,function(e,r){if("%%"===e)return e;u++;var i=n.formatters[r];if("function"==typeof i){var o=a[u];e=i.call(t,o),a.splice(u,1),u--}return e}),"function"==typeof n.formatArgs&&(a=n.formatArgs.apply(t,a));var s=i.log||n.log||console.log.bind(console);s.apply(t,a)}e.enabled=!1,i.enabled=!0;var o=n.enabled(t)?i:e;return o.namespace=t,o}function o(t){n.save(t);for(var e=(t||"").split(/[\s,]+/),r=e.length,i=0;r>i;i++)e[i]&&(t=e[i].replace(/\*/g,".*?"),"-"===t[0]?n.skips.push(new RegExp("^"+t.substr(1)+"$")):n.names.push(new RegExp("^"+t+"$")))}function a(){n.enable("")}function u(t){var e,r;for(e=0,r=n.skips.length;r>e;e++)if(n.skips[e].test(t))return!1;for(e=0,r=n.names.length;r>e;e++)if(n.names[e].test(t))return!0;return!1}function s(t){return t instanceof Error?t.stack||t.message:t}n=e.exports=i,n.coerce=s,n.disable=a,n.enable=o,n.enabled=u,n.humanize=t("ms"),n.names=[],n.skips=[],n.formatters={};var l,c=0},{ms:56}],56:[function(t,e){function n(t){var e=/^((?:\d+)?\.?\d+) *(ms|seconds?|s|minutes?|m|hours?|h|days?|d|years?|y)?$/i.exec(t);if(e){var n=parseFloat(e[1]),r=(e[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"y":return n*c;case"days":case"day":case"d":return n*l;case"hours":case"hour":case"h":return n*s;case"minutes":case"minute":case"m":return n*u;case"seconds":case"second":case"s":return n*a;case"ms":return n}}}function r(t){return t>=l?Math.round(t/l)+"d":t>=s?Math.round(t/s)+"h":t>=u?Math.round(t/u)+"m":t>=a?Math.round(t/a)+"s":t+"ms"}function i(t){return o(t,l,"day")||o(t,s,"hour")||o(t,u,"minute")||o(t,a,"second")||t+" ms"}function o(t,e,n){return e>t?void 0:1.5*e>t?Math.floor(t/e)+" "+n:Math.ceil(t/e)+" "+n+"s"}var a=1e3,u=60*a,s=60*u,l=24*s,c=365.25*l;e.exports=function(t,e){return e=e||{},"string"==typeof t?n(t):e["long"]?i(t):r(t)}},{}],57:[function(t,e,n){(function(r){!function(t){if("object"==typeof n&&"undefined"!=typeof e)e.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var i;"undefined"!=typeof window?i=window:"undefined"!=typeof r?i=r:"undefined"!=typeof self&&(i=self),i.jade=t()}}(function(){return function e(n,r,i){function o(u,s){if(!r[u]){if(!n[u]){var l="function"==typeof t&&t;if(!s&&l)return l(u,!0);if(a)return a(u,!0);var c=new Error("Cannot find module '"+u+"'");throw c.code="MODULE_NOT_FOUND",c}var f=r[u]={exports:{}};n[u][0].call(f.exports,function(t){var e=n[u][1][t];return o(e?e:t)},f,f.exports,e,n,r,i)}return r[u].exports}for(var a="function"==typeof t&&t,u=0;u<i.length;u++)o(i[u]);return o}({1:[function(t,e,n){"use strict";function r(t){return null!=t&&""!==t}function i(t){return(Array.isArray(t)?t.map(i):t&&"object"==typeof t?Object.keys(t).filter(function(e){return t[e]}):[t]).filter(r).join(" ")}n.merge=function o(t,e){if(1===arguments.length){for(var n=t[0],i=1;i<t.length;i++)n=o(n,t[i]);return n}var a=t["class"],u=e["class"];(a||u)&&(a=a||[],u=u||[],Array.isArray(a)||(a=[a]),Array.isArray(u)||(u=[u]),t["class"]=a.concat(u).filter(r));for(var s in e)"class"!=s&&(t[s]=e[s]);return t},n.joinClasses=i,n.cls=function(t,e){for(var r=[],o=0;o<t.length;o++)r.push(e&&e[o]?n.escape(i([t[o]])):i(t[o]));var a=i(r);return a.length?' class="'+a+'"':""},n.style=function(t){return t&&"object"==typeof t?Object.keys(t).map(function(e){return e+":"+t[e]}).join(";"):t},n.attr=function(t,e,r,i){return"style"===t&&(e=n.style(e)),"boolean"==typeof e||null==e?e?" "+(i?t:t+'="'+t+'"'):"":0==t.indexOf("data")&&"string"!=typeof e?(-1!==JSON.stringify(e).indexOf("&")&&console.warn("Since Jade 2.0.0, ampersands (`&`) in data attributes will be escaped to `&`"),e&&"function"==typeof e.toISOString&&console.warn("Jade will eliminate the double quotes around dates in ISO form after 2.0.0")," "+t+"='"+JSON.stringify(e).replace(/'/g,"'")+"'"):r?(e&&"function"==typeof e.toISOString&&console.warn("Jade will stringify dates in ISO form after 2.0.0")," "+t+'="'+n.escape(e)+'"'):(e&&"function"==typeof e.toISOString&&console.warn("Jade will stringify dates in ISO form after 2.0.0")," "+t+'="'+e+'"')},n.attrs=function(t,e){var r=[],o=Object.keys(t);if(o.length)for(var a=0;a<o.length;++a){var u=o[a],s=t[u];"class"==u?(s=i(s))&&r.push(" "+u+'="'+s+'"'):r.push(n.attr(u,s,!1,e))}return r.join("")},n.escape=function(t){var e=String(t).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""");return e===""+t?t:e},n.rethrow=function a(e,n,r,i){if(!(e instanceof Error))throw e;if(!("undefined"==typeof window&&n||i))throw e.message+=" on line "+r,e;try{i=i||t("fs").readFileSync(n,"utf8")}catch(o){a(e,null,r)}var u=3,s=i.split("\n"),l=Math.max(r-u,0),c=Math.min(s.length,r+u),u=s.slice(l,c).map(function(t,e){var n=e+l+1;return(n==r?" > ":" ")+n+"| "+t}).join("\n");throw e.path=n,e.message=(n||"Jade")+":"+r+"\n"+u+"\n\n"+e.message,e}},{fs:2}],2:[function(){},{}]},{},[1])(1)})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{fs:52}],58:[function(t,e){!function(t,n){"object"==typeof e&&"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(t){if(!t.document)throw new Error("jQuery requires a window with a document");return n(t)}:n(t)}("undefined"!=typeof window?window:this,function(t,e){function n(t){var e=t.length,n=Q.type(t);return"function"===n||Q.isWindow(t)?!1:1===t.nodeType&&e?!0:"array"===n||0===e||"number"==typeof e&&e>0&&e-1 in t}function r(t,e,n){if(Q.isFunction(e))return Q.grep(t,function(t,r){return!!e.call(t,r,t)!==n});if(e.nodeType)return Q.grep(t,function(t){return t===e!==n});if("string"==typeof e){if(ue.test(e))return Q.filter(e,t,n);e=Q.filter(e,t)}return Q.grep(t,function(t){return W.call(e,t)>=0!==n})}function i(t,e){for(;(t=t[e])&&1!==t.nodeType;);return t}function o(t){var e=de[t]={};return Q.each(t.match(pe)||[],function(t,n){e[n]=!0}),e}function a(){G.removeEventListener("DOMContentLoaded",a,!1),t.removeEventListener("load",a,!1),Q.ready()}function u(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=Q.expando+u.uid++}function s(t,e,data){var n;if(void 0===data&&1===t.nodeType)if(n="data-"+e.replace(xe,"-$1").toLowerCase(),data=t.getAttribute(n),"string"==typeof data){try{data="true"===data?!0:"false"===data?!1:"null"===data?null:+data+""===data?+data:be.test(data)?Q.parseJSON(data):data}catch(r){}ye.set(t,e,data)}else data=void 0;return data}function l(){return!0}function c(){return!1}function f(){try{return G.activeElement}catch(t){}}function h(t,e){return Q.nodeName(t,"table")&&Q.nodeName(11!==e.nodeType?e:e.firstChild,"tr")?t.getElementsByTagName("tbody")[0]||t.appendChild(t.ownerDocument.createElement("tbody")):t}function p(t){return t.type=(null!==t.getAttribute("type"))+"/"+t.type,t}function d(t){var e=Fe.exec(t.type);return e?t.type=e[1]:t.removeAttribute("type"),t}function g(t,e){for(var n=0,r=t.length;r>n;n++)me.set(t[n],"globalEval",!e||me.get(e[n],"globalEval"))}function v(t,e){var n,r,i,o,a,u,s,l;if(1===e.nodeType){if(me.hasData(t)&&(o=me.access(t),a=me.set(e,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;r>n;n++)Q.event.add(e,i,l[i][n])}ye.hasData(t)&&(u=ye.access(t),s=Q.extend({},u),ye.set(e,s))}}function m(t,e){var n=t.getElementsByTagName?t.getElementsByTagName(e||"*"):t.querySelectorAll?t.querySelectorAll(e||"*"):[];return void 0===e||e&&Q.nodeName(t,e)?Q.merge([t],n):n}function y(t,e){var n=e.nodeName.toLowerCase();"input"===n&&ke.test(t.type)?e.checked=t.checked:("input"===n||"textarea"===n)&&(e.defaultValue=t.defaultValue)}function b(e,n){var r,i=Q(n.createElement(e)).appendTo(n.body),o=t.getDefaultComputedStyle&&(r=t.getDefaultComputedStyle(i[0]))?r.display:Q.css(i[0],"display");return i.detach(),o}function x(t){var e=G,n=Ie[t];return n||(n=b(t,e),"none"!==n&&n||(Pe=(Pe||Q("<iframe frameborder='0' width='0' height='0'/>")).appendTo(e.documentElement),e=Pe[0].contentDocument,e.write(),e.close(),n=b(t,e),Pe.detach()),Ie[t]=n),n}function w(t,e,n){var r,i,o,a,u=t.style;return n=n||$e(t),n&&(a=n.getPropertyValue(e)||n[e]),n&&(""!==a||Q.contains(t.ownerDocument,t)||(a=Q.style(t,e)),Be.test(a)&&He.test(e)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=n.width,u.width=r,u.minWidth=i,u.maxWidth=o)),void 0!==a?a+"":a}function _(t,e){return{get:function(){return t()?void delete this.get:(this.get=e).apply(this,arguments)}}}function M(t,e){if(e in t)return e;for(var n=e[0].toUpperCase()+e.slice(1),r=e,i=Je.length;i--;)if(e=Je[i]+n,e in t)return e;return r}function k(t,e,n){var r=Ue.exec(e);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):e}function E(t,e,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===e?1:0,a=0;4>o;o+=2)"margin"===n&&(a+=Q.css(t,n+_e[o],!0,i)),r?("content"===n&&(a-=Q.css(t,"padding"+_e[o],!0,i)),"margin"!==n&&(a-=Q.css(t,"border"+_e[o]+"Width",!0,i))):(a+=Q.css(t,"padding"+_e[o],!0,i),"padding"!==n&&(a+=Q.css(t,"border"+_e[o]+"Width",!0,i)));return a}function C(t,e,n){var r=!0,i="width"===e?t.offsetWidth:t.offsetHeight,o=$e(t),a="border-box"===Q.css(t,"boxSizing",!1,o);if(0>=i||null==i){if(i=w(t,e,o),(0>i||null==i)&&(i=t.style[e]),Be.test(i))return i;r=a&&(Z.boxSizingReliable()||i===t.style[e]),i=parseFloat(i)||0}return i+E(t,e,n||(a?"border":"content"),r,o)+"px"}function S(t,e){for(var n,r,i,o=[],a=0,u=t.length;u>a;a++)r=t[a],r.style&&(o[a]=me.get(r,"olddisplay"),n=r.style.display,e?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&Me(r)&&(o[a]=me.access(r,"olddisplay",x(r.nodeName)))):(i=Me(r),"none"===n&&i||me.set(r,"olddisplay",i?n:Q.css(r,"display"))));for(a=0;u>a;a++)r=t[a],r.style&&(e&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=e?o[a]||"":"none"));return t}function T(t,e,n,r,i){return new T.prototype.init(t,e,n,r,i)}function j(){return setTimeout(function(){Ze=void 0}),Ze=Q.now()}function A(t,e){var n,r=0,i={height:t};for(e=e?1:0;4>r;r+=2-e)n=_e[r],i["margin"+n]=i["padding"+n]=t;return e&&(i.opacity=i.width=t),i}function N(t,e,n){for(var r,i=(nn[e]||[]).concat(nn["*"]),o=0,a=i.length;a>o;o++)if(r=i[o].call(n,e,t))return r}function q(t,e,n){var r,i,o,a,u,s,l,c,f=this,h={},p=t.style,d=t.nodeType&&Me(t),g=me.get(t,"fxshow");n.queue||(u=Q._queueHooks(t,"fx"),null==u.unqueued&&(u.unqueued=0,s=u.empty.fire,u.empty.fire=function(){u.unqueued||s()}),u.unqueued++,f.always(function(){f.always(function(){u.unqueued--,Q.queue(t,"fx").length||u.empty.fire()})})),1===t.nodeType&&("height"in e||"width"in e)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],l=Q.css(t,"display"),c="none"===l?me.get(t,"olddisplay")||x(t.nodeName):l,"inline"===c&&"none"===Q.css(t,"float")&&(p.display="inline-block")),n.overflow&&(p.overflow="hidden",f.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in e)if(i=e[r],Ke.exec(i)){if(delete e[r],o=o||"toggle"===i,i===(d?"hide":"show")){if("show"!==i||!g||void 0===g[r])continue;d=!0}h[r]=g&&g[r]||Q.style(t,r)}else l=void 0;if(Q.isEmptyObject(h))"inline"===("none"===l?x(t.nodeName):l)&&(p.display=l);else{g?"hidden"in g&&(d=g.hidden):g=me.access(t,"fxshow",{}),o&&(g.hidden=!d),d?Q(t).show():f.done(function(){Q(t).hide()}),f.done(function(){var e;me.remove(t,"fxshow");for(e in h)Q.style(t,e,h[e])});for(r in h)a=N(d?g[r]:0,r,f),r in g||(g[r]=a.start,d&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function O(t,e){var n,r,i,o,a;for(n in t)if(r=Q.camelCase(n),i=e[r],o=t[n],Q.isArray(o)&&(i=o[1],o=t[n]=o[0]),n!==r&&(t[r]=o,delete t[n]),a=Q.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete t[r];for(n in o)n in t||(t[n]=o[n],e[n]=i)}else e[r]=i}function D(t,e,n){var r,i,o=0,a=en.length,u=Q.Deferred().always(function(){delete s.elem}),s=function(){if(i)return!1;for(var e=Ze||j(),n=Math.max(0,l.startTime+l.duration-e),r=n/l.duration||0,o=1-r,a=0,s=l.tweens.length;s>a;a++)l.tweens[a].run(o);return u.notifyWith(t,[l,o,n]),1>o&&s?n:(u.resolveWith(t,[l]),!1)},l=u.promise({elem:t,props:Q.extend({},e),opts:Q.extend(!0,{specialEasing:{}},n),originalProperties:e,originalOptions:n,startTime:Ze||j(),duration:n.duration,tweens:[],createTween:function(e,n){var r=Q.Tween(t,l.opts,e,n,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(r),r},stop:function(e){var n=0,r=e?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return e?u.resolveWith(t,[l,e]):u.rejectWith(t,[l,e]),this}}),c=l.props;for(O(c,l.opts.specialEasing);a>o;o++)if(r=en[o].call(l,t,c,l.opts))return r;return Q.map(c,N,l),Q.isFunction(l.opts.start)&&l.opts.start.call(t,l),Q.fx.timer(Q.extend(s,{elem:t,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function L(t){return function(e,n){"string"!=typeof e&&(n=e,e="*");var r,i=0,o=e.toLowerCase().match(pe)||[];if(Q.isFunction(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(t[r]=t[r]||[]).unshift(n)):(t[r]=t[r]||[]).push(n)}}function F(t,e,n,r){function i(u){var s;return o[u]=!0,Q.each(t[u]||[],function(t,u){var l=u(e,n,r);return"string"!=typeof l||a||o[l]?a?!(s=l):void 0:(e.dataTypes.unshift(l),i(l),!1)}),s}var o={},a=t===xn;return i(e.dataTypes[0])||!o["*"]&&i("*")}function z(t,e){var n,r,i=Q.ajaxSettings.flatOptions||{};for(n in e)void 0!==e[n]&&((i[n]?t:r||(r={}))[n]=e[n]);return r&&Q.extend(!0,t,r),t}function R(t,e,n){for(var r,i,o,a,u=t.contents,s=t.dataTypes;"*"===s[0];)s.shift(),void 0===r&&(r=t.mimeType||e.getResponseHeader("Content-Type"));if(r)for(i in u)if(u[i]&&u[i].test(r)){s.unshift(i);break}if(s[0]in n)o=s[0];else{for(i in n){if(!s[0]||t.converters[i+" "+s[0]]){o=i;break}a||(a=i)}o=o||a}return o?(o!==s[0]&&s.unshift(o),n[o]):void 0}function P(t,e,n,r){var i,o,a,u,s,l={},c=t.dataTypes.slice();if(c[1])for(a in t.converters)l[a.toLowerCase()]=t.converters[a];for(o=c.shift();o;)if(t.responseFields[o]&&(n[t.responseFields[o]]=e),!s&&r&&t.dataFilter&&(e=t.dataFilter(e,t.dataType)),s=o,o=c.shift())if("*"===o)o=s;else if("*"!==s&&s!==o){if(a=l[s+" "+o]||l["* "+o],!a)for(i in l)if(u=i.split(" "),u[1]===o&&(a=l[s+" "+u[0]]||l["* "+u[0]])){a===!0?a=l[i]:l[i]!==!0&&(o=u[0],c.unshift(u[1]));break}if(a!==!0)if(a&&t["throws"])e=a(e);else try{e=a(e)}catch(f){return{state:"parsererror",error:a?f:"No conversion from "+s+" to "+o}}}return{state:"success",data:e}}function I(t,e,n,r){var i;if(Q.isArray(e))Q.each(e,function(e,i){n||En.test(t)?r(t,i):I(t+"["+("object"==typeof i?e:"")+"]",i,n,r)});else if(n||"object"!==Q.type(e))r(t,e); +else for(i in e)I(t+"["+i+"]",e[i],n,r)}function H(t){return Q.isWindow(t)?t:9===t.nodeType&&t.defaultView}var B=[],$=B.slice,V=B.concat,U=B.push,W=B.indexOf,Y={},X=Y.toString,J=Y.hasOwnProperty,Z={},G=t.document,K="2.1.3",Q=function(t,e){return new Q.fn.init(t,e)},te=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,ee=/^-ms-/,ne=/-([\da-z])/gi,re=function(t,e){return e.toUpperCase()};Q.fn=Q.prototype={jquery:K,constructor:Q,selector:"",length:0,toArray:function(){return $.call(this)},get:function(t){return null!=t?0>t?this[t+this.length]:this[t]:$.call(this)},pushStack:function(t){var e=Q.merge(this.constructor(),t);return e.prevObject=this,e.context=this.context,e},each:function(t,e){return Q.each(this,t,e)},map:function(t){return this.pushStack(Q.map(this,function(e,n){return t.call(e,n,e)}))},slice:function(){return this.pushStack($.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(t){var e=this.length,n=+t+(0>t?e:0);return this.pushStack(n>=0&&e>n?[this[n]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:U,sort:B.sort,splice:B.splice},Q.extend=Q.fn.extend=function(){var t,e,n,r,i,o,a=arguments[0]||{},u=1,s=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[u]||{},u++),"object"==typeof a||Q.isFunction(a)||(a={}),u===s&&(a=this,u--);s>u;u++)if(null!=(t=arguments[u]))for(e in t)n=a[e],r=t[e],a!==r&&(l&&r&&(Q.isPlainObject(r)||(i=Q.isArray(r)))?(i?(i=!1,o=n&&Q.isArray(n)?n:[]):o=n&&Q.isPlainObject(n)?n:{},a[e]=Q.extend(l,o,r)):void 0!==r&&(a[e]=r));return a},Q.extend({expando:"jQuery"+(K+Math.random()).replace(/\D/g,""),isReady:!0,error:function(t){throw new Error(t)},noop:function(){},isFunction:function(t){return"function"===Q.type(t)},isArray:Array.isArray,isWindow:function(t){return null!=t&&t===t.window},isNumeric:function(t){return!Q.isArray(t)&&t-parseFloat(t)+1>=0},isPlainObject:function(t){return"object"!==Q.type(t)||t.nodeType||Q.isWindow(t)?!1:t.constructor&&!J.call(t.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(t){var e;for(e in t)return!1;return!0},type:function(t){return null==t?t+"":"object"==typeof t||"function"==typeof t?Y[X.call(t)]||"object":typeof t},globalEval:function(t){var e,n=eval;t=Q.trim(t),t&&(1===t.indexOf("use strict")?(e=G.createElement("script"),e.text=t,G.head.appendChild(e).parentNode.removeChild(e)):n(t))},camelCase:function(t){return t.replace(ee,"ms-").replace(ne,re)},nodeName:function(t,e){return t.nodeName&&t.nodeName.toLowerCase()===e.toLowerCase()},each:function(t,e,r){var i,o=0,a=t.length,u=n(t);if(r){if(u)for(;a>o&&(i=e.apply(t[o],r),i!==!1);o++);else for(o in t)if(i=e.apply(t[o],r),i===!1)break}else if(u)for(;a>o&&(i=e.call(t[o],o,t[o]),i!==!1);o++);else for(o in t)if(i=e.call(t[o],o,t[o]),i===!1)break;return t},trim:function(t){return null==t?"":(t+"").replace(te,"")},makeArray:function(t,e){var r=e||[];return null!=t&&(n(Object(t))?Q.merge(r,"string"==typeof t?[t]:t):U.call(r,t)),r},inArray:function(t,e,n){return null==e?-1:W.call(e,t,n)},merge:function(t,e){for(var n=+e.length,r=0,i=t.length;n>r;r++)t[i++]=e[r];return t.length=i,t},grep:function(t,e,n){for(var r,i=[],o=0,a=t.length,u=!n;a>o;o++)r=!e(t[o],o),r!==u&&i.push(t[o]);return i},map:function(t,e,r){var i,o=0,a=t.length,u=n(t),s=[];if(u)for(;a>o;o++)i=e(t[o],o,r),null!=i&&s.push(i);else for(o in t)i=e(t[o],o,r),null!=i&&s.push(i);return V.apply([],s)},guid:1,proxy:function(t,e){var n,r,i;return"string"==typeof e&&(n=t[e],e=t,t=n),Q.isFunction(t)?(r=$.call(arguments,2),i=function(){return t.apply(e||this,r.concat($.call(arguments)))},i.guid=t.guid=t.guid||Q.guid++,i):void 0},now:Date.now,support:Z}),Q.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(t,e){Y["[object "+e+"]"]=e.toLowerCase()});var ie=function(t){function e(t,e,n,r){var i,o,a,u,s,l,f,p,d,g;if((e?e.ownerDocument||e:I)!==q&&N(e),e=e||q,n=n||[],u=e.nodeType,"string"!=typeof t||!t||1!==u&&9!==u&&11!==u)return n;if(!r&&D){if(11!==u&&(i=ye.exec(t)))if(a=i[1]){if(9===u){if(o=e.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(e.ownerDocument&&(o=e.ownerDocument.getElementById(a))&&R(e,o)&&o.id===a)return n.push(o),n}else{if(i[2])return K.apply(n,e.getElementsByTagName(t)),n;if((a=i[3])&&w.getElementsByClassName)return K.apply(n,e.getElementsByClassName(a)),n}if(w.qsa&&(!L||!L.test(t))){if(p=f=P,d=e,g=1!==u&&t,1===u&&"object"!==e.nodeName.toLowerCase()){for(l=E(t),(f=e.getAttribute("id"))?p=f.replace(xe,"\\$&"):e.setAttribute("id",p),p="[id='"+p+"'] ",s=l.length;s--;)l[s]=p+h(l[s]);d=be.test(t)&&c(e.parentNode)||e,g=l.join(",")}if(g)try{return K.apply(n,d.querySelectorAll(g)),n}catch(v){}finally{f||e.removeAttribute("id")}}}return S(t.replace(se,"$1"),e,n,r)}function n(){function t(n,r){return e.push(n+" ")>_.cacheLength&&delete t[e.shift()],t[n+" "]=r}var e=[];return t}function r(t){return t[P]=!0,t}function i(t){var e=q.createElement("div");try{return!!t(e)}catch(n){return!1}finally{e.parentNode&&e.parentNode.removeChild(e),e=null}}function o(t,e){for(var n=t.split("|"),r=t.length;r--;)_.attrHandle[n[r]]=e}function a(t,e){var n=e&&t,r=n&&1===t.nodeType&&1===e.nodeType&&(~e.sourceIndex||Y)-(~t.sourceIndex||Y);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===e)return-1;return t?1:-1}function u(t){return function(e){var n=e.nodeName.toLowerCase();return"input"===n&&e.type===t}}function s(t){return function(e){var n=e.nodeName.toLowerCase();return("input"===n||"button"===n)&&e.type===t}}function l(t){return r(function(e){return e=+e,r(function(n,r){for(var i,o=t([],n.length,e),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function c(t){return t&&"undefined"!=typeof t.getElementsByTagName&&t}function f(){}function h(t){for(var e=0,n=t.length,r="";n>e;e++)r+=t[e].value;return r}function p(t,e,n){var r=e.dir,i=n&&"parentNode"===r,o=B++;return e.first?function(e,n,o){for(;e=e[r];)if(1===e.nodeType||i)return t(e,n,o)}:function(e,n,a){var u,s,l=[H,o];if(a){for(;e=e[r];)if((1===e.nodeType||i)&&t(e,n,a))return!0}else for(;e=e[r];)if(1===e.nodeType||i){if(s=e[P]||(e[P]={}),(u=s[r])&&u[0]===H&&u[1]===o)return l[2]=u[2];if(s[r]=l,l[2]=t(e,n,a))return!0}}}function d(t){return t.length>1?function(e,n,r){for(var i=t.length;i--;)if(!t[i](e,n,r))return!1;return!0}:t[0]}function g(t,n,r){for(var i=0,o=n.length;o>i;i++)e(t,n[i],r);return r}function v(t,e,n,r,i){for(var o,a=[],u=0,s=t.length,l=null!=e;s>u;u++)(o=t[u])&&(!n||n(o,r,i))&&(a.push(o),l&&e.push(u));return a}function m(t,e,n,i,o,a){return i&&!i[P]&&(i=m(i)),o&&!o[P]&&(o=m(o,a)),r(function(r,a,u,s){var l,c,f,h=[],p=[],d=a.length,m=r||g(e||"*",u.nodeType?[u]:u,[]),y=!t||!r&&e?m:v(m,h,t,u,s),b=n?o||(r?t:d||i)?[]:a:y;if(n&&n(y,b,u,s),i)for(l=v(b,p),i(l,[],u,s),c=l.length;c--;)(f=l[c])&&(b[p[c]]=!(y[p[c]]=f));if(r){if(o||t){if(o){for(l=[],c=b.length;c--;)(f=b[c])&&l.push(y[c]=f);o(null,b=[],l,s)}for(c=b.length;c--;)(f=b[c])&&(l=o?te(r,f):h[c])>-1&&(r[l]=!(a[l]=f))}}else b=v(b===a?b.splice(d,b.length):b),o?o(null,a,b,s):K.apply(a,b)})}function y(t){for(var e,n,r,i=t.length,o=_.relative[t[0].type],a=o||_.relative[" "],u=o?1:0,s=p(function(t){return t===e},a,!0),l=p(function(t){return te(e,t)>-1},a,!0),c=[function(t,n,r){var i=!o&&(r||n!==T)||((e=n).nodeType?s(t,n,r):l(t,n,r));return e=null,i}];i>u;u++)if(n=_.relative[t[u].type])c=[p(d(c),n)];else{if(n=_.filter[t[u].type].apply(null,t[u].matches),n[P]){for(r=++u;i>r&&!_.relative[t[r].type];r++);return m(u>1&&d(c),u>1&&h(t.slice(0,u-1).concat({value:" "===t[u-2].type?"*":""})).replace(se,"$1"),n,r>u&&y(t.slice(u,r)),i>r&&y(t=t.slice(r)),i>r&&h(t))}c.push(n)}return d(c)}function b(t,n){var i=n.length>0,o=t.length>0,a=function(r,a,u,s,l){var c,f,h,p=0,d="0",g=r&&[],m=[],y=T,b=r||o&&_.find.TAG("*",l),x=H+=null==y?1:Math.random()||.1,w=b.length;for(l&&(T=a!==q&&a);d!==w&&null!=(c=b[d]);d++){if(o&&c){for(f=0;h=t[f++];)if(h(c,a,u)){s.push(c);break}l&&(H=x)}i&&((c=!h&&c)&&p--,r&&g.push(c))}if(p+=d,i&&d!==p){for(f=0;h=n[f++];)h(g,m,a,u);if(r){if(p>0)for(;d--;)g[d]||m[d]||(m[d]=Z.call(s));m=v(m)}K.apply(s,m),l&&!r&&m.length>0&&p+n.length>1&&e.uniqueSort(s)}return l&&(H=x,T=y),g};return i?r(a):a}var x,w,_,M,k,E,C,S,T,j,A,N,q,O,D,L,F,z,R,P="sizzle"+1*new Date,I=t.document,H=0,B=0,$=n(),V=n(),U=n(),W=function(t,e){return t===e&&(A=!0),0},Y=1<<31,X={}.hasOwnProperty,J=[],Z=J.pop,G=J.push,K=J.push,Q=J.slice,te=function(t,e){for(var n=0,r=t.length;r>n;n++)if(t[n]===e)return n;return-1},ee="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ne="[\\x20\\t\\r\\n\\f]",re="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",ie=re.replace("w","w#"),oe="\\["+ne+"*("+re+")(?:"+ne+"*([*^$|!~]?=)"+ne+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+ie+"))|)"+ne+"*\\]",ae=":("+re+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+oe+")*)|.*)\\)|)",ue=new RegExp(ne+"+","g"),se=new RegExp("^"+ne+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ne+"+$","g"),le=new RegExp("^"+ne+"*,"+ne+"*"),ce=new RegExp("^"+ne+"*([>+~]|"+ne+")"+ne+"*"),fe=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),he=new RegExp(ae),pe=new RegExp("^"+ie+"$"),de={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re.replace("w","w*")+")"),ATTR:new RegExp("^"+oe),PSEUDO:new RegExp("^"+ae),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+ee+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},ge=/^(?:input|select|textarea|button)$/i,ve=/^h\d$/i,me=/^[^{]+\{\s*\[native \w/,ye=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,be=/[+~]/,xe=/'|\\/g,we=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),_e=function(t,e,n){var r="0x"+e-65536;return r!==r||n?e:0>r?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},Me=function(){N()};try{K.apply(J=Q.call(I.childNodes),I.childNodes),J[I.childNodes.length].nodeType}catch(ke){K={apply:J.length?function(t,e){G.apply(t,Q.call(e))}:function(t,e){for(var n=t.length,r=0;t[n++]=e[r++];);t.length=n-1}}}w=e.support={},k=e.isXML=function(t){var e=t&&(t.ownerDocument||t).documentElement;return e?"HTML"!==e.nodeName:!1},N=e.setDocument=function(t){var e,n,r=t?t.ownerDocument||t:I;return r!==q&&9===r.nodeType&&r.documentElement?(q=r,O=r.documentElement,n=r.defaultView,n&&n!==n.top&&(n.addEventListener?n.addEventListener("unload",Me,!1):n.attachEvent&&n.attachEvent("onunload",Me)),D=!k(r),w.attributes=i(function(t){return t.className="i",!t.getAttribute("className")}),w.getElementsByTagName=i(function(t){return t.appendChild(r.createComment("")),!t.getElementsByTagName("*").length}),w.getElementsByClassName=me.test(r.getElementsByClassName),w.getById=i(function(t){return O.appendChild(t).id=P,!r.getElementsByName||!r.getElementsByName(P).length}),w.getById?(_.find.ID=function(t,e){if("undefined"!=typeof e.getElementById&&D){var n=e.getElementById(t);return n&&n.parentNode?[n]:[]}},_.filter.ID=function(t){var e=t.replace(we,_e);return function(t){return t.getAttribute("id")===e}}):(delete _.find.ID,_.filter.ID=function(t){var e=t.replace(we,_e);return function(t){var n="undefined"!=typeof t.getAttributeNode&&t.getAttributeNode("id");return n&&n.value===e}}),_.find.TAG=w.getElementsByTagName?function(t,e){return"undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t):w.qsa?e.querySelectorAll(t):void 0}:function(t,e){var n,r=[],i=0,o=e.getElementsByTagName(t);if("*"===t){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},_.find.CLASS=w.getElementsByClassName&&function(t,e){return D?e.getElementsByClassName(t):void 0},F=[],L=[],(w.qsa=me.test(r.querySelectorAll))&&(i(function(t){O.appendChild(t).innerHTML="<a id='"+P+"'></a><select id='"+P+"-\f]' msallowcapture=''><option selected=''></option></select>",t.querySelectorAll("[msallowcapture^='']").length&&L.push("[*^$]="+ne+"*(?:''|\"\")"),t.querySelectorAll("[selected]").length||L.push("\\["+ne+"*(?:value|"+ee+")"),t.querySelectorAll("[id~="+P+"-]").length||L.push("~="),t.querySelectorAll(":checked").length||L.push(":checked"),t.querySelectorAll("a#"+P+"+*").length||L.push(".#.+[+~]")}),i(function(t){var e=r.createElement("input");e.setAttribute("type","hidden"),t.appendChild(e).setAttribute("name","D"),t.querySelectorAll("[name=d]").length&&L.push("name"+ne+"*[*^$|!~]?="),t.querySelectorAll(":enabled").length||L.push(":enabled",":disabled"),t.querySelectorAll("*,:x"),L.push(",.*:")})),(w.matchesSelector=me.test(z=O.matches||O.webkitMatchesSelector||O.mozMatchesSelector||O.oMatchesSelector||O.msMatchesSelector))&&i(function(t){w.disconnectedMatch=z.call(t,"div"),z.call(t,"[s!='']:x"),F.push("!=",ae)}),L=L.length&&new RegExp(L.join("|")),F=F.length&&new RegExp(F.join("|")),e=me.test(O.compareDocumentPosition),R=e||me.test(O.contains)?function(t,e){var n=9===t.nodeType?t.documentElement:t,r=e&&e.parentNode;return t===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):t.compareDocumentPosition&&16&t.compareDocumentPosition(r)))}:function(t,e){if(e)for(;e=e.parentNode;)if(e===t)return!0;return!1},W=e?function(t,e){if(t===e)return A=!0,0;var n=!t.compareDocumentPosition-!e.compareDocumentPosition;return n?n:(n=(t.ownerDocument||t)===(e.ownerDocument||e)?t.compareDocumentPosition(e):1,1&n||!w.sortDetached&&e.compareDocumentPosition(t)===n?t===r||t.ownerDocument===I&&R(I,t)?-1:e===r||e.ownerDocument===I&&R(I,e)?1:j?te(j,t)-te(j,e):0:4&n?-1:1)}:function(t,e){if(t===e)return A=!0,0;var n,i=0,o=t.parentNode,u=e.parentNode,s=[t],l=[e];if(!o||!u)return t===r?-1:e===r?1:o?-1:u?1:j?te(j,t)-te(j,e):0;if(o===u)return a(t,e);for(n=t;n=n.parentNode;)s.unshift(n);for(n=e;n=n.parentNode;)l.unshift(n);for(;s[i]===l[i];)i++;return i?a(s[i],l[i]):s[i]===I?-1:l[i]===I?1:0},r):q},e.matches=function(t,n){return e(t,null,null,n)},e.matchesSelector=function(t,n){if((t.ownerDocument||t)!==q&&N(t),n=n.replace(fe,"='$1']"),!(!w.matchesSelector||!D||F&&F.test(n)||L&&L.test(n)))try{var r=z.call(t,n);if(r||w.disconnectedMatch||t.document&&11!==t.document.nodeType)return r}catch(i){}return e(n,q,null,[t]).length>0},e.contains=function(t,e){return(t.ownerDocument||t)!==q&&N(t),R(t,e)},e.attr=function(t,e){(t.ownerDocument||t)!==q&&N(t);var n=_.attrHandle[e.toLowerCase()],r=n&&X.call(_.attrHandle,e.toLowerCase())?n(t,e,!D):void 0;return void 0!==r?r:w.attributes||!D?t.getAttribute(e):(r=t.getAttributeNode(e))&&r.specified?r.value:null},e.error=function(t){throw new Error("Syntax error, unrecognized expression: "+t)},e.uniqueSort=function(t){var e,n=[],r=0,i=0;if(A=!w.detectDuplicates,j=!w.sortStable&&t.slice(0),t.sort(W),A){for(;e=t[i++];)e===t[i]&&(r=n.push(i));for(;r--;)t.splice(n[r],1)}return j=null,t},M=e.getText=function(t){var e,n="",r=0,i=t.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof t.textContent)return t.textContent;for(t=t.firstChild;t;t=t.nextSibling)n+=M(t)}else if(3===i||4===i)return t.nodeValue}else for(;e=t[r++];)n+=M(e);return n},_=e.selectors={cacheLength:50,createPseudo:r,match:de,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(t){return t[1]=t[1].replace(we,_e),t[3]=(t[3]||t[4]||t[5]||"").replace(we,_e),"~="===t[2]&&(t[3]=" "+t[3]+" "),t.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||e.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&e.error(t[0]),t},PSEUDO:function(t){var e,n=!t[6]&&t[2];return de.CHILD.test(t[0])?null:(t[3]?t[2]=t[4]||t[5]||"":n&&he.test(n)&&(e=E(n,!0))&&(e=n.indexOf(")",n.length-e)-n.length)&&(t[0]=t[0].slice(0,e),t[2]=n.slice(0,e)),t.slice(0,3))}},filter:{TAG:function(t){var e=t.replace(we,_e).toLowerCase();return"*"===t?function(){return!0}:function(t){return t.nodeName&&t.nodeName.toLowerCase()===e}},CLASS:function(t){var e=$[t+" "];return e||(e=new RegExp("(^|"+ne+")"+t+"("+ne+"|$)"))&&$(t,function(t){return e.test("string"==typeof t.className&&t.className||"undefined"!=typeof t.getAttribute&&t.getAttribute("class")||"")})},ATTR:function(t,n,r){return function(i){var o=e.attr(i,t);return null==o?"!="===n:n?(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(ue," ")+" ").indexOf(r)>-1:"|="===n?o===r||o.slice(0,r.length+1)===r+"-":!1):!0}},CHILD:function(t,e,n,r,i){var o="nth"!==t.slice(0,3),a="last"!==t.slice(-4),u="of-type"===e;return 1===r&&0===i?function(t){return!!t.parentNode}:function(e,n,s){var l,c,f,h,p,d,g=o!==a?"nextSibling":"previousSibling",v=e.parentNode,m=u&&e.nodeName.toLowerCase(),y=!s&&!u;if(v){if(o){for(;g;){for(f=e;f=f[g];)if(u?f.nodeName.toLowerCase()===m:1===f.nodeType)return!1;d=g="only"===t&&!d&&"nextSibling"}return!0}if(d=[a?v.firstChild:v.lastChild],a&&y){for(c=v[P]||(v[P]={}),l=c[t]||[],p=l[0]===H&&l[1],h=l[0]===H&&l[2],f=p&&v.childNodes[p];f=++p&&f&&f[g]||(h=p=0)||d.pop();)if(1===f.nodeType&&++h&&f===e){c[t]=[H,p,h];break}}else if(y&&(l=(e[P]||(e[P]={}))[t])&&l[0]===H)h=l[1];else for(;(f=++p&&f&&f[g]||(h=p=0)||d.pop())&&((u?f.nodeName.toLowerCase()!==m:1!==f.nodeType)||!++h||(y&&((f[P]||(f[P]={}))[t]=[H,h]),f!==e)););return h-=i,h===r||h%r===0&&h/r>=0}}},PSEUDO:function(t,n){var i,o=_.pseudos[t]||_.setFilters[t.toLowerCase()]||e.error("unsupported pseudo: "+t);return o[P]?o(n):o.length>1?(i=[t,t,"",n],_.setFilters.hasOwnProperty(t.toLowerCase())?r(function(t,e){for(var r,i=o(t,n),a=i.length;a--;)r=te(t,i[a]),t[r]=!(e[r]=i[a])}):function(t){return o(t,0,i)}):o}},pseudos:{not:r(function(t){var e=[],n=[],i=C(t.replace(se,"$1"));return i[P]?r(function(t,e,n,r){for(var o,a=i(t,null,r,[]),u=t.length;u--;)(o=a[u])&&(t[u]=!(e[u]=o))}):function(t,r,o){return e[0]=t,i(e,null,o,n),e[0]=null,!n.pop()}}),has:r(function(t){return function(n){return e(t,n).length>0}}),contains:r(function(t){return t=t.replace(we,_e),function(e){return(e.textContent||e.innerText||M(e)).indexOf(t)>-1}}),lang:r(function(t){return pe.test(t||"")||e.error("unsupported lang: "+t),t=t.replace(we,_e).toLowerCase(),function(e){var n;do if(n=D?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return n=n.toLowerCase(),n===t||0===n.indexOf(t+"-");while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var n=t.location&&t.location.hash;return n&&n.slice(1)===e.id},root:function(t){return t===O},focus:function(t){return t===q.activeElement&&(!q.hasFocus||q.hasFocus())&&!!(t.type||t.href||~t.tabIndex)},enabled:function(t){return t.disabled===!1},disabled:function(t){return t.disabled===!0},checked:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&!!t.checked||"option"===e&&!!t.selected},selected:function(t){return t.parentNode&&t.parentNode.selectedIndex,t.selected===!0},empty:function(t){for(t=t.firstChild;t;t=t.nextSibling)if(t.nodeType<6)return!1;return!0},parent:function(t){return!_.pseudos.empty(t)},header:function(t){return ve.test(t.nodeName)},input:function(t){return ge.test(t.nodeName)},button:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&"button"===t.type||"button"===e},text:function(t){var e;return"input"===t.nodeName.toLowerCase()&&"text"===t.type&&(null==(e=t.getAttribute("type"))||"text"===e.toLowerCase())},first:l(function(){return[0]}),last:l(function(t,e){return[e-1]}),eq:l(function(t,e,n){return[0>n?n+e:n]}),even:l(function(t,e){for(var n=0;e>n;n+=2)t.push(n);return t}),odd:l(function(t,e){for(var n=1;e>n;n+=2)t.push(n);return t}),lt:l(function(t,e,n){for(var r=0>n?n+e:n;--r>=0;)t.push(r);return t}),gt:l(function(t,e,n){for(var r=0>n?n+e:n;++r<e;)t.push(r);return t})}},_.pseudos.nth=_.pseudos.eq;for(x in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})_.pseudos[x]=u(x);for(x in{submit:!0,reset:!0})_.pseudos[x]=s(x);return f.prototype=_.filters=_.pseudos,_.setFilters=new f,E=e.tokenize=function(t,n){var r,i,o,a,u,s,l,c=V[t+" "];if(c)return n?0:c.slice(0);for(u=t,s=[],l=_.preFilter;u;){(!r||(i=le.exec(u)))&&(i&&(u=u.slice(i[0].length)||u),s.push(o=[])),r=!1,(i=ce.exec(u))&&(r=i.shift(),o.push({value:r,type:i[0].replace(se," ")}),u=u.slice(r.length));for(a in _.filter)!(i=de[a].exec(u))||l[a]&&!(i=l[a](i))||(r=i.shift(),o.push({value:r,type:a,matches:i}),u=u.slice(r.length));if(!r)break}return n?u.length:u?e.error(t):V(t,s).slice(0)},C=e.compile=function(t,e){var n,r=[],i=[],o=U[t+" "];if(!o){for(e||(e=E(t)),n=e.length;n--;)o=y(e[n]),o[P]?r.push(o):i.push(o);o=U(t,b(i,r)),o.selector=t}return o},S=e.select=function(t,e,n,r){var i,o,a,u,s,l="function"==typeof t&&t,f=!r&&E(t=l.selector||t);if(n=n||[],1===f.length){if(o=f[0]=f[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&w.getById&&9===e.nodeType&&D&&_.relative[o[1].type]){if(e=(_.find.ID(a.matches[0].replace(we,_e),e)||[])[0],!e)return n;l&&(e=e.parentNode),t=t.slice(o.shift().value.length)}for(i=de.needsContext.test(t)?0:o.length;i--&&(a=o[i],!_.relative[u=a.type]);)if((s=_.find[u])&&(r=s(a.matches[0].replace(we,_e),be.test(o[0].type)&&c(e.parentNode)||e))){if(o.splice(i,1),t=r.length&&h(o),!t)return K.apply(n,r),n;break}}return(l||C(t,f))(r,e,!D,n,be.test(t)&&c(e.parentNode)||e),n},w.sortStable=P.split("").sort(W).join("")===P,w.detectDuplicates=!!A,N(),w.sortDetached=i(function(t){return 1&t.compareDocumentPosition(q.createElement("div"))}),i(function(t){return t.innerHTML="<a href='#'></a>","#"===t.firstChild.getAttribute("href")})||o("type|href|height|width",function(t,e,n){return n?void 0:t.getAttribute(e,"type"===e.toLowerCase()?1:2)}),w.attributes&&i(function(t){return t.innerHTML="<input/>",t.firstChild.setAttribute("value",""),""===t.firstChild.getAttribute("value")})||o("value",function(t,e,n){return n||"input"!==t.nodeName.toLowerCase()?void 0:t.defaultValue}),i(function(t){return null==t.getAttribute("disabled")})||o(ee,function(t,e,n){var r;return n?void 0:t[e]===!0?e.toLowerCase():(r=t.getAttributeNode(e))&&r.specified?r.value:null}),e}(t);Q.find=ie,Q.expr=ie.selectors,Q.expr[":"]=Q.expr.pseudos,Q.unique=ie.uniqueSort,Q.text=ie.getText,Q.isXMLDoc=ie.isXML,Q.contains=ie.contains;var oe=Q.expr.match.needsContext,ae=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,ue=/^.[^:#\[\.,]*$/;Q.filter=function(t,e,n){var r=e[0];return n&&(t=":not("+t+")"),1===e.length&&1===r.nodeType?Q.find.matchesSelector(r,t)?[r]:[]:Q.find.matches(t,Q.grep(e,function(t){return 1===t.nodeType}))},Q.fn.extend({find:function(t){var e,n=this.length,r=[],i=this;if("string"!=typeof t)return this.pushStack(Q(t).filter(function(){for(e=0;n>e;e++)if(Q.contains(i[e],this))return!0}));for(e=0;n>e;e++)Q.find(t,i[e],r);return r=this.pushStack(n>1?Q.unique(r):r),r.selector=this.selector?this.selector+" "+t:t,r},filter:function(t){return this.pushStack(r(this,t||[],!1))},not:function(t){return this.pushStack(r(this,t||[],!0))},is:function(t){return!!r(this,"string"==typeof t&&oe.test(t)?Q(t):t||[],!1).length}});var se,le=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,ce=Q.fn.init=function(t,e){var n,r;if(!t)return this;if("string"==typeof t){if(n="<"===t[0]&&">"===t[t.length-1]&&t.length>=3?[null,t,null]:le.exec(t),!n||!n[1]&&e)return!e||e.jquery?(e||se).find(t):this.constructor(e).find(t);if(n[1]){if(e=e instanceof Q?e[0]:e,Q.merge(this,Q.parseHTML(n[1],e&&e.nodeType?e.ownerDocument||e:G,!0)),ae.test(n[1])&&Q.isPlainObject(e))for(n in e)Q.isFunction(this[n])?this[n](e[n]):this.attr(n,e[n]);return this}return r=G.getElementById(n[2]),r&&r.parentNode&&(this.length=1,this[0]=r),this.context=G,this.selector=t,this}return t.nodeType?(this.context=this[0]=t,this.length=1,this):Q.isFunction(t)?"undefined"!=typeof se.ready?se.ready(t):t(Q):(void 0!==t.selector&&(this.selector=t.selector,this.context=t.context),Q.makeArray(t,this))};ce.prototype=Q.fn,se=Q(G);var fe=/^(?:parents|prev(?:Until|All))/,he={children:!0,contents:!0,next:!0,prev:!0};Q.extend({dir:function(t,e,n){for(var r=[],i=void 0!==n;(t=t[e])&&9!==t.nodeType;)if(1===t.nodeType){if(i&&Q(t).is(n))break;r.push(t)}return r},sibling:function(t,e){for(var n=[];t;t=t.nextSibling)1===t.nodeType&&t!==e&&n.push(t);return n}}),Q.fn.extend({has:function(t){var e=Q(t,this),n=e.length;return this.filter(function(){for(var t=0;n>t;t++)if(Q.contains(this,e[t]))return!0})},closest:function(t,e){for(var n,r=0,i=this.length,o=[],a=oe.test(t)||"string"!=typeof t?Q(t,e||this.context):0;i>r;r++)for(n=this[r];n&&n!==e;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&Q.find.matchesSelector(n,t))){o.push(n);break}return this.pushStack(o.length>1?Q.unique(o):o)},index:function(t){return t?"string"==typeof t?W.call(Q(t),this[0]):W.call(this,t.jquery?t[0]:t):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(t,e){return this.pushStack(Q.unique(Q.merge(this.get(),Q(t,e))))},addBack:function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}}),Q.each({parent:function(t){var e=t.parentNode;return e&&11!==e.nodeType?e:null},parents:function(t){return Q.dir(t,"parentNode")},parentsUntil:function(t,e,n){return Q.dir(t,"parentNode",n)},next:function(t){return i(t,"nextSibling")},prev:function(t){return i(t,"previousSibling")},nextAll:function(t){return Q.dir(t,"nextSibling")},prevAll:function(t){return Q.dir(t,"previousSibling")},nextUntil:function(t,e,n){return Q.dir(t,"nextSibling",n)},prevUntil:function(t,e,n){return Q.dir(t,"previousSibling",n)},siblings:function(t){return Q.sibling((t.parentNode||{}).firstChild,t)},children:function(t){return Q.sibling(t.firstChild)},contents:function(t){return t.contentDocument||Q.merge([],t.childNodes)}},function(t,e){Q.fn[t]=function(n,r){var i=Q.map(this,e,n);return"Until"!==t.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=Q.filter(r,i)),this.length>1&&(he[t]||Q.unique(i),fe.test(t)&&i.reverse()),this.pushStack(i)}});var pe=/\S+/g,de={};Q.Callbacks=function(t){t="string"==typeof t?de[t]||o(t):Q.extend({},t);var e,n,r,i,a,u,s=[],l=!t.once&&[],c=function(data){for(e=t.memory&&data,n=!0,u=i||0,i=0,a=s.length,r=!0;s&&a>u;u++)if(s[u].apply(data[0],data[1])===!1&&t.stopOnFalse){e=!1;break}r=!1,s&&(l?l.length&&c(l.shift()):e?s=[]:f.disable())},f={add:function(){if(s){var n=s.length;!function o(e){Q.each(e,function(e,n){var r=Q.type(n);"function"===r?t.unique&&f.has(n)||s.push(n):n&&n.length&&"string"!==r&&o(n)})}(arguments),r?a=s.length:e&&(i=n,c(e))}return this},remove:function(){return s&&Q.each(arguments,function(t,e){for(var n;(n=Q.inArray(e,s,n))>-1;)s.splice(n,1),r&&(a>=n&&a--,u>=n&&u--)}),this},has:function(t){return t?Q.inArray(t,s)>-1:!(!s||!s.length)},empty:function(){return s=[],a=0,this},disable:function(){return s=l=e=void 0,this},disabled:function(){return!s},lock:function(){return l=void 0,e||f.disable(),this},locked:function(){return!l},fireWith:function(t,e){return!s||n&&!l||(e=e||[],e=[t,e.slice?e.slice():e],r?l.push(e):c(e)),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!n}};return f},Q.extend({Deferred:function(t){var e=[["resolve","done",Q.Callbacks("once memory"),"resolved"],["reject","fail",Q.Callbacks("once memory"),"rejected"],["notify","progress",Q.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var t=arguments;return Q.Deferred(function(n){Q.each(e,function(e,o){var a=Q.isFunction(t[e])&&t[e];i[o[1]](function(){var t=a&&a.apply(this,arguments);t&&Q.isFunction(t.promise)?t.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[o[0]+"With"](this===r?n.promise():this,a?[t]:arguments)})}),t=null}).promise()},promise:function(t){return null!=t?Q.extend(t,r):r}},i={};return r.pipe=r.then,Q.each(e,function(t,o){var a=o[2],u=o[3];r[o[1]]=a.add,u&&a.add(function(){n=u},e[1^t][2].disable,e[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),t&&t.call(i,i),i},when:function(t){var e,n,r,i=0,o=$.call(arguments),a=o.length,u=1!==a||t&&Q.isFunction(t.promise)?a:0,s=1===u?t:Q.Deferred(),l=function(t,n,r){return function(i){n[t]=this,r[t]=arguments.length>1?$.call(arguments):i,r===e?s.notifyWith(n,r):--u||s.resolveWith(n,r)}};if(a>1)for(e=new Array(a),n=new Array(a),r=new Array(a);a>i;i++)o[i]&&Q.isFunction(o[i].promise)?o[i].promise().done(l(i,r,o)).fail(s.reject).progress(l(i,n,e)):--u;return u||s.resolveWith(r,o),s.promise()}});var ge;Q.fn.ready=function(t){return Q.ready.promise().done(t),this},Q.extend({isReady:!1,readyWait:1,holdReady:function(t){t?Q.readyWait++:Q.ready(!0)},ready:function(t){(t===!0?--Q.readyWait:Q.isReady)||(Q.isReady=!0,t!==!0&&--Q.readyWait>0||(ge.resolveWith(G,[Q]),Q.fn.triggerHandler&&(Q(G).triggerHandler("ready"),Q(G).off("ready"))))}}),Q.ready.promise=function(e){return ge||(ge=Q.Deferred(),"complete"===G.readyState?setTimeout(Q.ready):(G.addEventListener("DOMContentLoaded",a,!1),t.addEventListener("load",a,!1))),ge.promise(e)},Q.ready.promise();var ve=Q.access=function(t,e,n,r,i,o,a){var u=0,s=t.length,l=null==n;if("object"===Q.type(n)){i=!0;for(u in n)Q.access(t,e,u,n[u],!0,o,a)}else if(void 0!==r&&(i=!0,Q.isFunction(r)||(a=!0),l&&(a?(e.call(t,r),e=null):(l=e,e=function(t,e,n){return l.call(Q(t),n)})),e))for(;s>u;u++)e(t[u],n,a?r:r.call(t[u],u,e(t[u],n)));return i?t:l?e.call(t):s?e(t[0],n):o};Q.acceptData=function(t){return 1===t.nodeType||9===t.nodeType||!+t.nodeType},u.uid=1,u.accepts=Q.acceptData,u.prototype={key:function(t){if(!u.accepts(t))return 0;var e={},n=t[this.expando];if(!n){n=u.uid++;try{e[this.expando]={value:n},Object.defineProperties(t,e)}catch(r){e[this.expando]=n,Q.extend(t,e)}}return this.cache[n]||(this.cache[n]={}),n},set:function(t,data,e){var n,r=this.key(t),i=this.cache[r];if("string"==typeof data)i[data]=e;else if(Q.isEmptyObject(i))Q.extend(this.cache[r],data);else for(n in data)i[n]=data[n];return i},get:function(t,e){var n=this.cache[this.key(t)];return void 0===e?n:n[e]},access:function(t,e,n){var r;return void 0===e||e&&"string"==typeof e&&void 0===n?(r=this.get(t,e),void 0!==r?r:this.get(t,Q.camelCase(e))):(this.set(t,e,n),void 0!==n?n:e)},remove:function(t,e){var n,r,i,o=this.key(t),a=this.cache[o];if(void 0===e)this.cache[o]={};else{Q.isArray(e)?r=e.concat(e.map(Q.camelCase)):(i=Q.camelCase(e),e in a?r=[e,i]:(r=i,r=r in a?[r]:r.match(pe)||[])),n=r.length;for(;n--;)delete a[r[n]]}},hasData:function(t){return!Q.isEmptyObject(this.cache[t[this.expando]]||{})},discard:function(t){t[this.expando]&&delete this.cache[t[this.expando]]}};var me=new u,ye=new u,be=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,xe=/([A-Z])/g;Q.extend({hasData:function(t){return ye.hasData(t)||me.hasData(t)},data:function(t,e,data){return ye.access(t,e,data)},removeData:function(t,e){ye.remove(t,e)},_data:function(t,e,data){return me.access(t,e,data)},_removeData:function(t,e){me.remove(t,e)}}),Q.fn.extend({data:function(t,e){var n,r,data,i=this[0],o=i&&i.attributes;if(void 0===t){if(this.length&&(data=ye.get(i),1===i.nodeType&&!me.get(i,"hasDataAttrs"))){for(n=o.length;n--;)o[n]&&(r=o[n].name,0===r.indexOf("data-")&&(r=Q.camelCase(r.slice(5)),s(i,r,data[r])));me.set(i,"hasDataAttrs",!0)}return data}return"object"==typeof t?this.each(function(){ye.set(this,t)}):ve(this,function(e){var data,n=Q.camelCase(t);if(i&&void 0===e){if(data=ye.get(i,t),void 0!==data)return data;if(data=ye.get(i,n),void 0!==data)return data;if(data=s(i,n,void 0),void 0!==data)return data}else this.each(function(){var data=ye.get(this,n);ye.set(this,n,e),-1!==t.indexOf("-")&&void 0!==data&&ye.set(this,t,e)})},null,e,arguments.length>1,null,!0)},removeData:function(t){return this.each(function(){ye.remove(this,t)})}}),Q.extend({queue:function(t,e,data){var n;return t?(e=(e||"fx")+"queue",n=me.get(t,e),data&&(!n||Q.isArray(data)?n=me.access(t,e,Q.makeArray(data)):n.push(data)),n||[]):void 0},dequeue:function(t,e){e=e||"fx";var n=Q.queue(t,e),r=n.length,i=n.shift(),o=Q._queueHooks(t,e),a=function(){Q.dequeue(t,e) +};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===e&&n.unshift("inprogress"),delete o.stop,i.call(t,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(t,e){var n=e+"queueHooks";return me.get(t,n)||me.access(t,n,{empty:Q.Callbacks("once memory").add(function(){me.remove(t,[e+"queue",n])})})}}),Q.fn.extend({queue:function(t,data){var e=2;return"string"!=typeof t&&(data=t,t="fx",e--),arguments.length<e?Q.queue(this[0],t):void 0===data?this:this.each(function(){var e=Q.queue(this,t,data);Q._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&Q.dequeue(this,t)})},dequeue:function(t){return this.each(function(){Q.dequeue(this,t)})},clearQueue:function(t){return this.queue(t||"fx",[])},promise:function(t,e){var n,r=1,i=Q.Deferred(),o=this,a=this.length,u=function(){--r||i.resolveWith(o,[o])};for("string"!=typeof t&&(e=t,t=void 0),t=t||"fx";a--;)n=me.get(o[a],t+"queueHooks"),n&&n.empty&&(r++,n.empty.add(u));return u(),i.promise(e)}});var we=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,_e=["Top","Right","Bottom","Left"],Me=function(t,e){return t=e||t,"none"===Q.css(t,"display")||!Q.contains(t.ownerDocument,t)},ke=/^(?:checkbox|radio)$/i;!function(){var t=G.createDocumentFragment(),e=t.appendChild(G.createElement("div")),n=G.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),e.appendChild(n),Z.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",Z.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var Ee="undefined";Z.focusinBubbles="onfocusin"in t;var Ce=/^key/,Se=/^(?:mouse|pointer|contextmenu)|click/,Te=/^(?:focusinfocus|focusoutblur)$/,je=/^([^.]*)(?:\.(.+)|)$/;Q.event={global:{},add:function(t,e,n,data,r){var i,o,a,u,s,l,c,f,h,p,d,g=me.get(t);if(g)for(n.handler&&(i=n,n=i.handler,r=i.selector),n.guid||(n.guid=Q.guid++),(u=g.events)||(u=g.events={}),(o=g.handle)||(o=g.handle=function(e){return typeof Q!==Ee&&Q.event.triggered!==e.type?Q.event.dispatch.apply(t,arguments):void 0}),e=(e||"").match(pe)||[""],s=e.length;s--;)a=je.exec(e[s])||[],h=d=a[1],p=(a[2]||"").split(".").sort(),h&&(c=Q.event.special[h]||{},h=(r?c.delegateType:c.bindType)||h,c=Q.event.special[h]||{},l=Q.extend({type:h,origType:d,data:data,handler:n,guid:n.guid,selector:r,needsContext:r&&Q.expr.match.needsContext.test(r),namespace:p.join(".")},i),(f=u[h])||(f=u[h]=[],f.delegateCount=0,c.setup&&c.setup.call(t,data,p,o)!==!1||t.addEventListener&&t.addEventListener(h,o,!1)),c.add&&(c.add.call(t,l),l.handler.guid||(l.handler.guid=n.guid)),r?f.splice(f.delegateCount++,0,l):f.push(l),Q.event.global[h]=!0)},remove:function(t,e,n,r,i){var o,a,u,s,l,c,f,h,p,d,g,v=me.hasData(t)&&me.get(t);if(v&&(s=v.events)){for(e=(e||"").match(pe)||[""],l=e.length;l--;)if(u=je.exec(e[l])||[],p=g=u[1],d=(u[2]||"").split(".").sort(),p){for(f=Q.event.special[p]||{},p=(r?f.delegateType:f.bindType)||p,h=s[p]||[],u=u[2]&&new RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=h.length;o--;)c=h[o],!i&&g!==c.origType||n&&n.guid!==c.guid||u&&!u.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(h.splice(o,1),c.selector&&h.delegateCount--,f.remove&&f.remove.call(t,c));a&&!h.length&&(f.teardown&&f.teardown.call(t,d,v.handle)!==!1||Q.removeEvent(t,p,v.handle),delete s[p])}else for(p in s)Q.event.remove(t,p+e[l],n,r,!0);Q.isEmptyObject(s)&&(delete v.handle,me.remove(t,"events"))}},trigger:function(e,data,n,r){var i,o,a,u,s,l,c,f=[n||G],h=J.call(e,"type")?e.type:e,p=J.call(e,"namespace")?e.namespace.split("."):[];if(o=a=n=n||G,3!==n.nodeType&&8!==n.nodeType&&!Te.test(h+Q.event.triggered)&&(h.indexOf(".")>=0&&(p=h.split("."),h=p.shift(),p.sort()),s=h.indexOf(":")<0&&"on"+h,e=e[Q.expando]?e:new Q.Event(h,"object"==typeof e&&e),e.isTrigger=r?2:3,e.namespace=p.join("."),e.namespace_re=e.namespace?new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),data=null==data?[e]:Q.makeArray(data,[e]),c=Q.event.special[h]||{},r||!c.trigger||c.trigger.apply(n,data)!==!1)){if(!r&&!c.noBubble&&!Q.isWindow(n)){for(u=c.delegateType||h,Te.test(u+h)||(o=o.parentNode);o;o=o.parentNode)f.push(o),a=o;a===(n.ownerDocument||G)&&f.push(a.defaultView||a.parentWindow||t)}for(i=0;(o=f[i++])&&!e.isPropagationStopped();)e.type=i>1?u:c.bindType||h,l=(me.get(o,"events")||{})[e.type]&&me.get(o,"handle"),l&&l.apply(o,data),l=s&&o[s],l&&l.apply&&Q.acceptData(o)&&(e.result=l.apply(o,data),e.result===!1&&e.preventDefault());return e.type=h,r||e.isDefaultPrevented()||c._default&&c._default.apply(f.pop(),data)!==!1||!Q.acceptData(n)||s&&Q.isFunction(n[h])&&!Q.isWindow(n)&&(a=n[s],a&&(n[s]=null),Q.event.triggered=h,n[h](),Q.event.triggered=void 0,a&&(n[s]=a)),e.result}},dispatch:function(t){t=Q.event.fix(t);var e,n,r,i,o,a=[],u=$.call(arguments),s=(me.get(this,"events")||{})[t.type]||[],l=Q.event.special[t.type]||{};if(u[0]=t,t.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,t)!==!1){for(a=Q.event.handlers.call(this,t,s),e=0;(i=a[e++])&&!t.isPropagationStopped();)for(t.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!t.isImmediatePropagationStopped();)(!t.namespace_re||t.namespace_re.test(o.namespace))&&(t.handleObj=o,t.data=o.data,r=((Q.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u),void 0!==r&&(t.result=r)===!1&&(t.preventDefault(),t.stopPropagation()));return l.postDispatch&&l.postDispatch.call(this,t),t.result}},handlers:function(t,e){var n,r,i,o,a=[],u=e.delegateCount,s=t.target;if(u&&s.nodeType&&(!t.button||"click"!==t.type))for(;s!==this;s=s.parentNode||this)if(s.disabled!==!0||"click"!==t.type){for(r=[],n=0;u>n;n++)o=e[n],i=o.selector+" ",void 0===r[i]&&(r[i]=o.needsContext?Q(i,this).index(s)>=0:Q.find(i,this,null,[s]).length),r[i]&&r.push(o);r.length&&a.push({elem:s,handlers:r})}return u<e.length&&a.push({elem:this,handlers:e.slice(u)}),a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(t,e){return null==t.which&&(t.which=null!=e.charCode?e.charCode:e.keyCode),t}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(t,e){var n,r,i,o=e.button;return null==t.pageX&&null!=e.clientX&&(n=t.target.ownerDocument||G,r=n.documentElement,i=n.body,t.pageX=e.clientX+(r&&r.scrollLeft||i&&i.scrollLeft||0)-(r&&r.clientLeft||i&&i.clientLeft||0),t.pageY=e.clientY+(r&&r.scrollTop||i&&i.scrollTop||0)-(r&&r.clientTop||i&&i.clientTop||0)),t.which||void 0===o||(t.which=1&o?1:2&o?3:4&o?2:0),t}},fix:function(t){if(t[Q.expando])return t;var e,n,r,i=t.type,o=t,a=this.fixHooks[i];for(a||(this.fixHooks[i]=a=Se.test(i)?this.mouseHooks:Ce.test(i)?this.keyHooks:{}),r=a.props?this.props.concat(a.props):this.props,t=new Q.Event(o),e=r.length;e--;)n=r[e],t[n]=o[n];return t.target||(t.target=G),3===t.target.nodeType&&(t.target=t.target.parentNode),a.filter?a.filter(t,o):t},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==f()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===f()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&Q.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(t){return Q.nodeName(t.target,"a")}},beforeunload:{postDispatch:function(t){void 0!==t.result&&t.originalEvent&&(t.originalEvent.returnValue=t.result)}}},simulate:function(t,e,n,r){var i=Q.extend(new Q.Event,n,{type:t,isSimulated:!0,originalEvent:{}});r?Q.event.trigger(i,null,e):Q.event.dispatch.call(e,i),i.isDefaultPrevented()&&n.preventDefault()}},Q.removeEvent=function(t,e,n){t.removeEventListener&&t.removeEventListener(e,n,!1)},Q.Event=function(t,e){return this instanceof Q.Event?(t&&t.type?(this.originalEvent=t,this.type=t.type,this.isDefaultPrevented=t.defaultPrevented||void 0===t.defaultPrevented&&t.returnValue===!1?l:c):this.type=t,e&&Q.extend(this,e),this.timeStamp=t&&t.timeStamp||Q.now(),void(this[Q.expando]=!0)):new Q.Event(t,e)},Q.Event.prototype={isDefaultPrevented:c,isPropagationStopped:c,isImmediatePropagationStopped:c,preventDefault:function(){var t=this.originalEvent;this.isDefaultPrevented=l,t&&t.preventDefault&&t.preventDefault()},stopPropagation:function(){var t=this.originalEvent;this.isPropagationStopped=l,t&&t.stopPropagation&&t.stopPropagation()},stopImmediatePropagation:function(){var t=this.originalEvent;this.isImmediatePropagationStopped=l,t&&t.stopImmediatePropagation&&t.stopImmediatePropagation(),this.stopPropagation()}},Q.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(t,e){Q.event.special[t]={delegateType:e,bindType:e,handle:function(t){var n,r=this,i=t.relatedTarget,o=t.handleObj;return(!i||i!==r&&!Q.contains(r,i))&&(t.type=o.origType,n=o.handler.apply(this,arguments),t.type=e),n}}}),Z.focusinBubbles||Q.each({focus:"focusin",blur:"focusout"},function(t,e){var n=function(t){Q.event.simulate(e,t.target,Q.event.fix(t),!0)};Q.event.special[e]={setup:function(){var r=this.ownerDocument||this,i=me.access(r,e);i||r.addEventListener(t,n,!0),me.access(r,e,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=me.access(r,e)-1;i?me.access(r,e,i):(r.removeEventListener(t,n,!0),me.remove(r,e))}}}),Q.fn.extend({on:function(t,e,data,n,r){var i,o;if("object"==typeof t){"string"!=typeof e&&(data=data||e,e=void 0);for(o in t)this.on(o,e,data,t[o],r);return this}if(null==data&&null==n?(n=e,data=e=void 0):null==n&&("string"==typeof e?(n=data,data=void 0):(n=data,data=e,e=void 0)),n===!1)n=c;else if(!n)return this;return 1===r&&(i=n,n=function(t){return Q().off(t),i.apply(this,arguments)},n.guid=i.guid||(i.guid=Q.guid++)),this.each(function(){Q.event.add(this,t,n,data,e)})},one:function(t,e,data,n){return this.on(t,e,data,n,1)},off:function(t,e,n){var r,i;if(t&&t.preventDefault&&t.handleObj)return r=t.handleObj,Q(t.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof t){for(i in t)this.off(i,e,t[i]);return this}return(e===!1||"function"==typeof e)&&(n=e,e=void 0),n===!1&&(n=c),this.each(function(){Q.event.remove(this,t,n,e)})},trigger:function(t,data){return this.each(function(){Q.event.trigger(t,data,this)})},triggerHandler:function(t,data){var e=this[0];return e?Q.event.trigger(t,data,e,!0):void 0}});var Ae=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Ne=/<([\w:]+)/,qe=/<|&#?\w+;/,Oe=/<(?:script|style|link)/i,De=/checked\s*(?:[^=]|=\s*.checked.)/i,Le=/^$|\/(?:java|ecma)script/i,Fe=/^true\/(.*)/,ze=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Re={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Re.optgroup=Re.option,Re.tbody=Re.tfoot=Re.colgroup=Re.caption=Re.thead,Re.th=Re.td,Q.extend({clone:function(t,e,n){var r,i,o,a,u=t.cloneNode(!0),s=Q.contains(t.ownerDocument,t);if(!(Z.noCloneChecked||1!==t.nodeType&&11!==t.nodeType||Q.isXMLDoc(t)))for(a=m(u),o=m(t),r=0,i=o.length;i>r;r++)y(o[r],a[r]);if(e)if(n)for(o=o||m(t),a=a||m(u),r=0,i=o.length;i>r;r++)v(o[r],a[r]);else v(t,u);return a=m(u,"script"),a.length>0&&g(a,!s&&m(t,"script")),u},buildFragment:function(t,e,n,r){for(var i,o,a,u,s,l,c=e.createDocumentFragment(),f=[],h=0,p=t.length;p>h;h++)if(i=t[h],i||0===i)if("object"===Q.type(i))Q.merge(f,i.nodeType?[i]:i);else if(qe.test(i)){for(o=o||c.appendChild(e.createElement("div")),a=(Ne.exec(i)||["",""])[1].toLowerCase(),u=Re[a]||Re._default,o.innerHTML=u[1]+i.replace(Ae,"<$1></$2>")+u[2],l=u[0];l--;)o=o.lastChild;Q.merge(f,o.childNodes),o=c.firstChild,o.textContent=""}else f.push(e.createTextNode(i));for(c.textContent="",h=0;i=f[h++];)if((!r||-1===Q.inArray(i,r))&&(s=Q.contains(i.ownerDocument,i),o=m(c.appendChild(i),"script"),s&&g(o),n))for(l=0;i=o[l++];)Le.test(i.type||"")&&n.push(i);return c},cleanData:function(t){for(var data,e,n,r,i=Q.event.special,o=0;void 0!==(e=t[o]);o++){if(Q.acceptData(e)&&(r=e[me.expando],r&&(data=me.cache[r]))){if(data.events)for(n in data.events)i[n]?Q.event.remove(e,n):Q.removeEvent(e,n,data.handle);me.cache[r]&&delete me.cache[r]}delete ye.cache[e[ye.expando]]}}}),Q.fn.extend({text:function(t){return ve(this,function(t){return void 0===t?Q.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=t)})},null,t,arguments.length)},append:function(){return this.domManip(arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=h(this,t);e.appendChild(t)}})},prepend:function(){return this.domManip(arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=h(this,t);e.insertBefore(t,e.firstChild)}})},before:function(){return this.domManip(arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this)})},after:function(){return this.domManip(arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this.nextSibling)})},remove:function(t,e){for(var n,r=t?Q.filter(t,this):this,i=0;null!=(n=r[i]);i++)e||1!==n.nodeType||Q.cleanData(m(n)),n.parentNode&&(e&&Q.contains(n.ownerDocument,n)&&g(m(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){for(var t,e=0;null!=(t=this[e]);e++)1===t.nodeType&&(Q.cleanData(m(t,!1)),t.textContent="");return this},clone:function(t,e){return t=null==t?!1:t,e=null==e?t:e,this.map(function(){return Q.clone(this,t,e)})},html:function(t){return ve(this,function(t){var e=this[0]||{},n=0,r=this.length;if(void 0===t&&1===e.nodeType)return e.innerHTML;if("string"==typeof t&&!Oe.test(t)&&!Re[(Ne.exec(t)||["",""])[1].toLowerCase()]){t=t.replace(Ae,"<$1></$2>");try{for(;r>n;n++)e=this[n]||{},1===e.nodeType&&(Q.cleanData(m(e,!1)),e.innerHTML=t);e=0}catch(i){}}e&&this.empty().append(t)},null,t,arguments.length)},replaceWith:function(){var t=arguments[0];return this.domManip(arguments,function(e){t=this.parentNode,Q.cleanData(m(this)),t&&t.replaceChild(e,this)}),t&&(t.length||t.nodeType)?this:this.remove()},detach:function(t){return this.remove(t,!0)},domManip:function(t,e){t=V.apply([],t);var n,r,i,o,a,u,s=0,l=this.length,c=this,f=l-1,h=t[0],g=Q.isFunction(h);if(g||l>1&&"string"==typeof h&&!Z.checkClone&&De.test(h))return this.each(function(n){var r=c.eq(n);g&&(t[0]=h.call(this,n,r.html())),r.domManip(t,e)});if(l&&(n=Q.buildFragment(t,this[0].ownerDocument,!1,this),r=n.firstChild,1===n.childNodes.length&&(n=r),r)){for(i=Q.map(m(n,"script"),p),o=i.length;l>s;s++)a=n,s!==f&&(a=Q.clone(a,!0,!0),o&&Q.merge(i,m(a,"script"))),e.call(this[s],a,s);if(o)for(u=i[i.length-1].ownerDocument,Q.map(i,d),s=0;o>s;s++)a=i[s],Le.test(a.type||"")&&!me.access(a,"globalEval")&&Q.contains(u,a)&&(a.src?Q._evalUrl&&Q._evalUrl(a.src):Q.globalEval(a.textContent.replace(ze,"")))}return this}}),Q.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(t,e){Q.fn[t]=function(t){for(var n,r=[],i=Q(t),o=i.length-1,a=0;o>=a;a++)n=a===o?this:this.clone(!0),Q(i[a])[e](n),U.apply(r,n.get());return this.pushStack(r)}});var Pe,Ie={},He=/^margin/,Be=new RegExp("^("+we+")(?!px)[a-z%]+$","i"),$e=function(e){return e.ownerDocument.defaultView.opener?e.ownerDocument.defaultView.getComputedStyle(e,null):t.getComputedStyle(e,null)};!function(){function e(){a.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",a.innerHTML="",i.appendChild(o);var e=t.getComputedStyle(a,null);n="1%"!==e.top,r="4px"===e.width,i.removeChild(o)}var n,r,i=G.documentElement,o=G.createElement("div"),a=G.createElement("div");a.style&&(a.style.backgroundClip="content-box",a.cloneNode(!0).style.backgroundClip="",Z.clearCloneStyle="content-box"===a.style.backgroundClip,o.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",o.appendChild(a),t.getComputedStyle&&Q.extend(Z,{pixelPosition:function(){return e(),n},boxSizingReliable:function(){return null==r&&e(),r},reliableMarginRight:function(){var e,n=a.appendChild(G.createElement("div"));return n.style.cssText=a.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",n.style.marginRight=n.style.width="0",a.style.width="1px",i.appendChild(o),e=!parseFloat(t.getComputedStyle(n,null).marginRight),i.removeChild(o),a.removeChild(n),e}}))}(),Q.swap=function(t,e,n,r){var i,o,a={};for(o in e)a[o]=t.style[o],t.style[o]=e[o];i=n.apply(t,r||[]);for(o in e)t.style[o]=a[o];return i};var Ve=/^(none|table(?!-c[ea]).+)/,Ue=new RegExp("^("+we+")(.*)$","i"),We=new RegExp("^([+-])=("+we+")","i"),Ye={position:"absolute",visibility:"hidden",display:"block"},Xe={letterSpacing:"0",fontWeight:"400"},Je=["Webkit","O","Moz","ms"];Q.extend({cssHooks:{opacity:{get:function(t,e){if(e){var n=w(t,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(t,e,n,r){if(t&&3!==t.nodeType&&8!==t.nodeType&&t.style){var i,o,a,u=Q.camelCase(e),s=t.style;return e=Q.cssProps[u]||(Q.cssProps[u]=M(s,u)),a=Q.cssHooks[e]||Q.cssHooks[u],void 0===n?a&&"get"in a&&void 0!==(i=a.get(t,!1,r))?i:s[e]:(o=typeof n,"string"===o&&(i=We.exec(n))&&(n=(i[1]+1)*i[2]+parseFloat(Q.css(t,e)),o="number"),null!=n&&n===n&&("number"!==o||Q.cssNumber[u]||(n+="px"),Z.clearCloneStyle||""!==n||0!==e.indexOf("background")||(s[e]="inherit"),a&&"set"in a&&void 0===(n=a.set(t,n,r))||(s[e]=n)),void 0)}},css:function(t,e,n,r){var i,o,a,u=Q.camelCase(e);return e=Q.cssProps[u]||(Q.cssProps[u]=M(t.style,u)),a=Q.cssHooks[e]||Q.cssHooks[u],a&&"get"in a&&(i=a.get(t,!0,n)),void 0===i&&(i=w(t,e,r)),"normal"===i&&e in Xe&&(i=Xe[e]),""===n||n?(o=parseFloat(i),n===!0||Q.isNumeric(o)?o||0:i):i}}),Q.each(["height","width"],function(t,e){Q.cssHooks[e]={get:function(t,n,r){return n?Ve.test(Q.css(t,"display"))&&0===t.offsetWidth?Q.swap(t,Ye,function(){return C(t,e,r)}):C(t,e,r):void 0},set:function(t,n,r){var i=r&&$e(t);return k(t,n,r?E(t,e,r,"border-box"===Q.css(t,"boxSizing",!1,i),i):0)}}}),Q.cssHooks.marginRight=_(Z.reliableMarginRight,function(t,e){return e?Q.swap(t,{display:"inline-block"},w,[t,"marginRight"]):void 0}),Q.each({margin:"",padding:"",border:"Width"},function(t,e){Q.cssHooks[t+e]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];4>r;r++)i[t+_e[r]+e]=o[r]||o[r-2]||o[0];return i}},He.test(t)||(Q.cssHooks[t+e].set=k)}),Q.fn.extend({css:function(t,e){return ve(this,function(t,e,n){var r,i,o={},a=0;if(Q.isArray(e)){for(r=$e(t),i=e.length;i>a;a++)o[e[a]]=Q.css(t,e[a],!1,r);return o}return void 0!==n?Q.style(t,e,n):Q.css(t,e)},t,e,arguments.length>1)},show:function(){return S(this,!0)},hide:function(){return S(this)},toggle:function(t){return"boolean"==typeof t?t?this.show():this.hide():this.each(function(){Me(this)?Q(this).show():Q(this).hide()})}}),Q.Tween=T,T.prototype={constructor:T,init:function(t,e,n,r,i,o){this.elem=t,this.prop=n,this.easing=i||"swing",this.options=e,this.start=this.now=this.cur(),this.end=r,this.unit=o||(Q.cssNumber[n]?"":"px")},cur:function(){var t=T.propHooks[this.prop];return t&&t.get?t.get(this):T.propHooks._default.get(this)},run:function(t){var e,n=T.propHooks[this.prop];return this.pos=e=this.options.duration?Q.easing[this.easing](t,this.options.duration*t,0,1,this.options.duration):t,this.now=(this.end-this.start)*e+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):T.propHooks._default.set(this),this}},T.prototype.init.prototype=T.prototype,T.propHooks={_default:{get:function(t){var e;return null==t.elem[t.prop]||t.elem.style&&null!=t.elem.style[t.prop]?(e=Q.css(t.elem,t.prop,""),e&&"auto"!==e?e:0):t.elem[t.prop]},set:function(t){Q.fx.step[t.prop]?Q.fx.step[t.prop](t):t.elem.style&&(null!=t.elem.style[Q.cssProps[t.prop]]||Q.cssHooks[t.prop])?Q.style(t.elem,t.prop,t.now+t.unit):t.elem[t.prop]=t.now}}},T.propHooks.scrollTop=T.propHooks.scrollLeft={set:function(t){t.elem.nodeType&&t.elem.parentNode&&(t.elem[t.prop]=t.now)}},Q.easing={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2}},Q.fx=T.prototype.init,Q.fx.step={};var Ze,Ge,Ke=/^(?:toggle|show|hide)$/,Qe=new RegExp("^(?:([+-])=|)("+we+")([a-z%]*)$","i"),tn=/queueHooks$/,en=[q],nn={"*":[function(t,e){var n=this.createTween(t,e),r=n.cur(),i=Qe.exec(e),o=i&&i[3]||(Q.cssNumber[t]?"":"px"),a=(Q.cssNumber[t]||"px"!==o&&+r)&&Qe.exec(Q.css(n.elem,t)),u=1,s=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do u=u||".5",a/=u,Q.style(n.elem,t,a+o);while(u!==(u=n.cur()/r)&&1!==u&&--s)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};Q.Animation=Q.extend(D,{tweener:function(t,e){Q.isFunction(t)?(e=t,t=["*"]):t=t.split(" ");for(var n,r=0,i=t.length;i>r;r++)n=t[r],nn[n]=nn[n]||[],nn[n].unshift(e)},prefilter:function(t,e){e?en.unshift(t):en.push(t)}}),Q.speed=function(t,e,n){var r=t&&"object"==typeof t?Q.extend({},t):{complete:n||!n&&e||Q.isFunction(t)&&t,duration:t,easing:n&&e||e&&!Q.isFunction(e)&&e};return r.duration=Q.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in Q.fx.speeds?Q.fx.speeds[r.duration]:Q.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){Q.isFunction(r.old)&&r.old.call(this),r.queue&&Q.dequeue(this,r.queue)},r},Q.fn.extend({fadeTo:function(t,e,n,r){return this.filter(Me).css("opacity",0).show().end().animate({opacity:e},t,n,r)},animate:function(t,e,n,r){var i=Q.isEmptyObject(t),o=Q.speed(e,n,r),a=function(){var e=D(this,Q.extend({},t),o);(i||me.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(t,e,n){var r=function(t){var e=t.stop;delete t.stop,e(n)};return"string"!=typeof t&&(n=e,e=t,t=void 0),e&&t!==!1&&this.queue(t||"fx",[]),this.each(function(){var e=!0,i=null!=t&&t+"queueHooks",o=Q.timers,data=me.get(this);if(i)data[i]&&data[i].stop&&r(data[i]);else for(i in data)data[i]&&data[i].stop&&tn.test(i)&&r(data[i]);for(i=o.length;i--;)o[i].elem!==this||null!=t&&o[i].queue!==t||(o[i].anim.stop(n),e=!1,o.splice(i,1));(e||!n)&&Q.dequeue(this,t)})},finish:function(t){return t!==!1&&(t=t||"fx"),this.each(function(){var e,data=me.get(this),n=data[t+"queue"],r=data[t+"queueHooks"],i=Q.timers,o=n?n.length:0;for(data.finish=!0,Q.queue(this,t,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===t&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;o>e;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete data.finish})}}),Q.each(["toggle","show","hide"],function(t,e){var n=Q.fn[e];Q.fn[e]=function(t,r,i){return null==t||"boolean"==typeof t?n.apply(this,arguments):this.animate(A(e,!0),t,r,i)}}),Q.each({slideDown:A("show"),slideUp:A("hide"),slideToggle:A("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(t,e){Q.fn[t]=function(t,n,r){return this.animate(e,t,n,r)}}),Q.timers=[],Q.fx.tick=function(){var t,e=0,n=Q.timers;for(Ze=Q.now();e<n.length;e++)t=n[e],t()||n[e]!==t||n.splice(e--,1);n.length||Q.fx.stop(),Ze=void 0},Q.fx.timer=function(t){Q.timers.push(t),t()?Q.fx.start():Q.timers.pop()},Q.fx.interval=13,Q.fx.start=function(){Ge||(Ge=setInterval(Q.fx.tick,Q.fx.interval))},Q.fx.stop=function(){clearInterval(Ge),Ge=null},Q.fx.speeds={slow:600,fast:200,_default:400},Q.fn.delay=function(t,e){return t=Q.fx?Q.fx.speeds[t]||t:t,e=e||"fx",this.queue(e,function(e,n){var r=setTimeout(e,t);n.stop=function(){clearTimeout(r)}})},function(){var t=G.createElement("input"),e=G.createElement("select"),n=e.appendChild(G.createElement("option"));t.type="checkbox",Z.checkOn=""!==t.value,Z.optSelected=n.selected,e.disabled=!0,Z.optDisabled=!n.disabled,t=G.createElement("input"),t.value="t",t.type="radio",Z.radioValue="t"===t.value}();var rn,on,an=Q.expr.attrHandle;Q.fn.extend({attr:function(t,e){return ve(this,Q.attr,t,e,arguments.length>1)},removeAttr:function(t){return this.each(function(){Q.removeAttr(this,t)})}}),Q.extend({attr:function(t,e,n){var r,i,o=t.nodeType;if(t&&3!==o&&8!==o&&2!==o)return typeof t.getAttribute===Ee?Q.prop(t,e,n):(1===o&&Q.isXMLDoc(t)||(e=e.toLowerCase(),r=Q.attrHooks[e]||(Q.expr.match.bool.test(e)?on:rn)),void 0===n?r&&"get"in r&&null!==(i=r.get(t,e))?i:(i=Q.find.attr(t,e),null==i?void 0:i):null!==n?r&&"set"in r&&void 0!==(i=r.set(t,n,e))?i:(t.setAttribute(e,n+""),n):void Q.removeAttr(t,e))},removeAttr:function(t,e){var n,r,i=0,o=e&&e.match(pe);if(o&&1===t.nodeType)for(;n=o[i++];)r=Q.propFix[n]||n,Q.expr.match.bool.test(n)&&(t[r]=!1),t.removeAttribute(n)},attrHooks:{type:{set:function(t,e){if(!Z.radioValue&&"radio"===e&&Q.nodeName(t,"input")){var n=t.value;return t.setAttribute("type",e),n&&(t.value=n),e}}}}}),on={set:function(t,e,n){return e===!1?Q.removeAttr(t,n):t.setAttribute(n,n),n}},Q.each(Q.expr.match.bool.source.match(/\w+/g),function(t,e){var n=an[e]||Q.find.attr;an[e]=function(t,e,r){var i,o;return r||(o=an[e],an[e]=i,i=null!=n(t,e,r)?e.toLowerCase():null,an[e]=o),i}});var un=/^(?:input|select|textarea|button)$/i;Q.fn.extend({prop:function(t,e){return ve(this,Q.prop,t,e,arguments.length>1)},removeProp:function(t){return this.each(function(){delete this[Q.propFix[t]||t]})}}),Q.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(t,e,n){var r,i,o,a=t.nodeType;if(t&&3!==a&&8!==a&&2!==a)return o=1!==a||!Q.isXMLDoc(t),o&&(e=Q.propFix[e]||e,i=Q.propHooks[e]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(t,n,e))?r:t[e]=n:i&&"get"in i&&null!==(r=i.get(t,e))?r:t[e]},propHooks:{tabIndex:{get:function(t){return t.hasAttribute("tabindex")||un.test(t.nodeName)||t.href?t.tabIndex:-1}}}}),Z.optSelected||(Q.propHooks.selected={get:function(t){var e=t.parentNode;return e&&e.parentNode&&e.parentNode.selectedIndex,null}}),Q.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){Q.propFix[this.toLowerCase()]=this});var sn=/[\t\r\n\f]/g;Q.fn.extend({addClass:function(t){var e,n,r,i,o,a,u="string"==typeof t&&t,s=0,l=this.length;if(Q.isFunction(t))return this.each(function(e){Q(this).addClass(t.call(this,e,this.className))});if(u)for(e=(t||"").match(pe)||[];l>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(sn," "):" ")){for(o=0;i=e[o++];)r.indexOf(" "+i+" ")<0&&(r+=i+" ");a=Q.trim(r),n.className!==a&&(n.className=a)}return this},removeClass:function(t){var e,n,r,i,o,a,u=0===arguments.length||"string"==typeof t&&t,s=0,l=this.length;if(Q.isFunction(t))return this.each(function(e){Q(this).removeClass(t.call(this,e,this.className))});if(u)for(e=(t||"").match(pe)||[];l>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(sn," "):"")){for(o=0;i=e[o++];)for(;r.indexOf(" "+i+" ")>=0;)r=r.replace(" "+i+" "," ");a=t?Q.trim(r):"",n.className!==a&&(n.className=a)}return this},toggleClass:function(t,e){var n=typeof t;return"boolean"==typeof e&&"string"===n?e?this.addClass(t):this.removeClass(t):this.each(Q.isFunction(t)?function(n){Q(this).toggleClass(t.call(this,n,this.className,e),e)}:function(){if("string"===n)for(var e,r=0,i=Q(this),o=t.match(pe)||[];e=o[r++];)i.hasClass(e)?i.removeClass(e):i.addClass(e);else(n===Ee||"boolean"===n)&&(this.className&&me.set(this,"__className__",this.className),this.className=this.className||t===!1?"":me.get(this,"__className__")||"")})},hasClass:function(t){for(var e=" "+t+" ",n=0,r=this.length;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(sn," ").indexOf(e)>=0)return!0;return!1}});var ln=/\r/g;Q.fn.extend({val:function(t){var e,n,r,i=this[0];{if(arguments.length)return r=Q.isFunction(t),this.each(function(n){var i;1===this.nodeType&&(i=r?t.call(this,n,Q(this).val()):t,null==i?i="":"number"==typeof i?i+="":Q.isArray(i)&&(i=Q.map(i,function(t){return null==t?"":t+""})),e=Q.valHooks[this.type]||Q.valHooks[this.nodeName.toLowerCase()],e&&"set"in e&&void 0!==e.set(this,i,"value")||(this.value=i))});if(i)return e=Q.valHooks[i.type]||Q.valHooks[i.nodeName.toLowerCase()],e&&"get"in e&&void 0!==(n=e.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(ln,""):null==n?"":n)}}}),Q.extend({valHooks:{option:{get:function(t){var e=Q.find.attr(t,"value");return null!=e?e:Q.trim(Q.text(t))}},select:{get:function(t){for(var e,n,r=t.options,i=t.selectedIndex,o="select-one"===t.type||0>i,a=o?null:[],u=o?i+1:r.length,s=0>i?u:o?i:0;u>s;s++)if(n=r[s],!(!n.selected&&s!==i||(Z.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&Q.nodeName(n.parentNode,"optgroup"))){if(e=Q(n).val(),o)return e;a.push(e)}return a},set:function(t,e){for(var n,r,i=t.options,o=Q.makeArray(e),a=i.length;a--;)r=i[a],(r.selected=Q.inArray(r.value,o)>=0)&&(n=!0);return n||(t.selectedIndex=-1),o}}}}),Q.each(["radio","checkbox"],function(){Q.valHooks[this]={set:function(t,e){return Q.isArray(e)?t.checked=Q.inArray(Q(t).val(),e)>=0:void 0}},Z.checkOn||(Q.valHooks[this].get=function(t){return null===t.getAttribute("value")?"on":t.value})}),Q.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(t,e){Q.fn[e]=function(data,t){return arguments.length>0?this.on(e,null,data,t):this.trigger(e)}}),Q.fn.extend({hover:function(t,e){return this.mouseenter(t).mouseleave(e||t)},bind:function(t,data,e){return this.on(t,null,data,e)},unbind:function(t,e){return this.off(t,null,e)},delegate:function(t,e,data,n){return this.on(e,t,data,n)},undelegate:function(t,e,n){return 1===arguments.length?this.off(t,"**"):this.off(e,t||"**",n)}});var cn=Q.now(),fn=/\?/;Q.parseJSON=function(data){return JSON.parse(data+"")},Q.parseXML=function(data){var t,e;if(!data||"string"!=typeof data)return null;try{e=new DOMParser,t=e.parseFromString(data,"text/xml")}catch(n){t=void 0}return(!t||t.getElementsByTagName("parsererror").length)&&Q.error("Invalid XML: "+data),t};var hn=/#.*$/,pn=/([?&])_=[^&]*/,dn=/^(.*?):[ \t]*([^\r\n]*)$/gm,gn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,yn=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,bn={},xn={},wn="*/".concat("*"),_n=t.location.href,Mn=yn.exec(_n.toLowerCase())||[];Q.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:_n,type:"GET",isLocal:gn.test(Mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":wn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":Q.parseJSON,"text xml":Q.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(t,e){return e?z(z(t,Q.ajaxSettings),e):z(Q.ajaxSettings,t)},ajaxPrefilter:L(bn),ajaxTransport:L(xn),ajax:function(t,e){function n(t,e,n,a){var s,c,m,y,x,_=e;2!==b&&(b=2,u&&clearTimeout(u),r=void 0,o=a||"",w.readyState=t>0?4:0,s=t>=200&&300>t||304===t,n&&(y=R(f,w,n)),y=P(f,y,w,s),s?(f.ifModified&&(x=w.getResponseHeader("Last-Modified"),x&&(Q.lastModified[i]=x),x=w.getResponseHeader("etag"),x&&(Q.etag[i]=x)),204===t||"HEAD"===f.type?_="nocontent":304===t?_="notmodified":(_=y.state,c=y.data,m=y.error,s=!m)):(m=_,(t||!_)&&(_="error",0>t&&(t=0))),w.status=t,w.statusText=(e||_)+"",s?d.resolveWith(h,[c,_,w]):d.rejectWith(h,[w,_,m]),w.statusCode(v),v=void 0,l&&p.trigger(s?"ajaxSuccess":"ajaxError",[w,f,s?c:m]),g.fireWith(h,[w,_]),l&&(p.trigger("ajaxComplete",[w,f]),--Q.active||Q.event.trigger("ajaxStop"))) +}"object"==typeof t&&(e=t,t=void 0),e=e||{};var r,i,o,a,u,s,l,c,f=Q.ajaxSetup({},e),h=f.context||f,p=f.context&&(h.nodeType||h.jquery)?Q(h):Q.event,d=Q.Deferred(),g=Q.Callbacks("once memory"),v=f.statusCode||{},m={},y={},b=0,x="canceled",w={readyState:0,getResponseHeader:function(t){var e;if(2===b){if(!a)for(a={};e=dn.exec(o);)a[e[1].toLowerCase()]=e[2];e=a[t.toLowerCase()]}return null==e?null:e},getAllResponseHeaders:function(){return 2===b?o:null},setRequestHeader:function(t,e){var n=t.toLowerCase();return b||(t=y[n]=y[n]||t,m[t]=e),this},overrideMimeType:function(t){return b||(f.mimeType=t),this},statusCode:function(t){var e;if(t)if(2>b)for(e in t)v[e]=[v[e],t[e]];else w.always(t[w.status]);return this},abort:function(t){var e=t||x;return r&&r.abort(e),n(0,e),this}};if(d.promise(w).complete=g.add,w.success=w.done,w.error=w.fail,f.url=((t||f.url||_n)+"").replace(hn,"").replace(mn,Mn[1]+"//"),f.type=e.method||e.type||f.method||f.type,f.dataTypes=Q.trim(f.dataType||"*").toLowerCase().match(pe)||[""],null==f.crossDomain&&(s=yn.exec(f.url.toLowerCase()),f.crossDomain=!(!s||s[1]===Mn[1]&&s[2]===Mn[2]&&(s[3]||("http:"===s[1]?"80":"443"))===(Mn[3]||("http:"===Mn[1]?"80":"443")))),f.data&&f.processData&&"string"!=typeof f.data&&(f.data=Q.param(f.data,f.traditional)),F(bn,f,e,w),2===b)return w;l=Q.event&&f.global,l&&0===Q.active++&&Q.event.trigger("ajaxStart"),f.type=f.type.toUpperCase(),f.hasContent=!vn.test(f.type),i=f.url,f.hasContent||(f.data&&(i=f.url+=(fn.test(i)?"&":"?")+f.data,delete f.data),f.cache===!1&&(f.url=pn.test(i)?i.replace(pn,"$1_="+cn++):i+(fn.test(i)?"&":"?")+"_="+cn++)),f.ifModified&&(Q.lastModified[i]&&w.setRequestHeader("If-Modified-Since",Q.lastModified[i]),Q.etag[i]&&w.setRequestHeader("If-None-Match",Q.etag[i])),(f.data&&f.hasContent&&f.contentType!==!1||e.contentType)&&w.setRequestHeader("Content-Type",f.contentType),w.setRequestHeader("Accept",f.dataTypes[0]&&f.accepts[f.dataTypes[0]]?f.accepts[f.dataTypes[0]]+("*"!==f.dataTypes[0]?", "+wn+"; q=0.01":""):f.accepts["*"]);for(c in f.headers)w.setRequestHeader(c,f.headers[c]);if(f.beforeSend&&(f.beforeSend.call(h,w,f)===!1||2===b))return w.abort();x="abort";for(c in{success:1,error:1,complete:1})w[c](f[c]);if(r=F(xn,f,e,w)){w.readyState=1,l&&p.trigger("ajaxSend",[w,f]),f.async&&f.timeout>0&&(u=setTimeout(function(){w.abort("timeout")},f.timeout));try{b=1,r.send(m,n)}catch(_){if(!(2>b))throw _;n(-1,_)}}else n(-1,"No Transport");return w},getJSON:function(t,data,e){return Q.get(t,data,e,"json")},getScript:function(t,e){return Q.get(t,void 0,e,"script")}}),Q.each(["get","post"],function(t,e){Q[e]=function(t,data,n,r){return Q.isFunction(data)&&(r=r||n,n=data,data=void 0),Q.ajax({url:t,type:e,dataType:r,data:data,success:n})}}),Q._evalUrl=function(t){return Q.ajax({url:t,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},Q.fn.extend({wrapAll:function(t){var e;return Q.isFunction(t)?this.each(function(e){Q(this).wrapAll(t.call(this,e))}):(this[0]&&(e=Q(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map(function(){for(var t=this;t.firstElementChild;)t=t.firstElementChild;return t}).append(this)),this)},wrapInner:function(t){return this.each(Q.isFunction(t)?function(e){Q(this).wrapInner(t.call(this,e))}:function(){var e=Q(this),n=e.contents();n.length?n.wrapAll(t):e.append(t)})},wrap:function(t){var e=Q.isFunction(t);return this.each(function(n){Q(this).wrapAll(e?t.call(this,n):t)})},unwrap:function(){return this.parent().each(function(){Q.nodeName(this,"body")||Q(this).replaceWith(this.childNodes)}).end()}}),Q.expr.filters.hidden=function(t){return t.offsetWidth<=0&&t.offsetHeight<=0},Q.expr.filters.visible=function(t){return!Q.expr.filters.hidden(t)};var kn=/%20/g,En=/\[\]$/,Cn=/\r?\n/g,Sn=/^(?:submit|button|image|reset|file)$/i,Tn=/^(?:input|select|textarea|keygen)/i;Q.param=function(t,e){var n,r=[],i=function(t,e){e=Q.isFunction(e)?e():null==e?"":e,r[r.length]=encodeURIComponent(t)+"="+encodeURIComponent(e)};if(void 0===e&&(e=Q.ajaxSettings&&Q.ajaxSettings.traditional),Q.isArray(t)||t.jquery&&!Q.isPlainObject(t))Q.each(t,function(){i(this.name,this.value)});else for(n in t)I(n,t[n],e,i);return r.join("&").replace(kn,"+")},Q.fn.extend({serialize:function(){return Q.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var t=Q.prop(this,"elements");return t?Q.makeArray(t):this}).filter(function(){var t=this.type;return this.name&&!Q(this).is(":disabled")&&Tn.test(this.nodeName)&&!Sn.test(t)&&(this.checked||!ke.test(t))}).map(function(t,e){var n=Q(this).val();return null==n?null:Q.isArray(n)?Q.map(n,function(t){return{name:e.name,value:t.replace(Cn,"\r\n")}}):{name:e.name,value:n.replace(Cn,"\r\n")}}).get()}}),Q.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(t){}};var jn=0,An={},Nn={0:200,1223:204},qn=Q.ajaxSettings.xhr();t.attachEvent&&t.attachEvent("onunload",function(){for(var t in An)An[t]()}),Z.cors=!!qn&&"withCredentials"in qn,Z.ajax=qn=!!qn,Q.ajaxTransport(function(t){var e;return Z.cors||qn&&!t.crossDomain?{send:function(n,r){var i,o=t.xhr(),a=++jn;if(o.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(i in t.xhrFields)o[i]=t.xhrFields[i];t.mimeType&&o.overrideMimeType&&o.overrideMimeType(t.mimeType),t.crossDomain||n["X-Requested-With"]||(n["X-Requested-With"]="XMLHttpRequest");for(i in n)o.setRequestHeader(i,n[i]);e=function(t){return function(){e&&(delete An[a],e=o.onload=o.onerror=null,"abort"===t?o.abort():"error"===t?r(o.status,o.statusText):r(Nn[o.status]||o.status,o.statusText,"string"==typeof o.responseText?{text:o.responseText}:void 0,o.getAllResponseHeaders()))}},o.onload=e(),o.onerror=e("error"),e=An[a]=e("abort");try{o.send(t.hasContent&&t.data||null)}catch(u){if(e)throw u}},abort:function(){e&&e()}}:void 0}),Q.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(t){return Q.globalEval(t),t}}}),Q.ajaxPrefilter("script",function(t){void 0===t.cache&&(t.cache=!1),t.crossDomain&&(t.type="GET")}),Q.ajaxTransport("script",function(t){if(t.crossDomain){var e,n;return{send:function(r,i){e=Q("<script>").prop({async:!0,charset:t.scriptCharset,src:t.url}).on("load error",n=function(t){e.remove(),n=null,t&&i("error"===t.type?404:200,t.type)}),G.head.appendChild(e[0])},abort:function(){n&&n()}}}});var On=[],Dn=/(=)\?(?=&|$)|\?\?/;Q.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var t=On.pop()||Q.expando+"_"+cn++;return this[t]=!0,t}}),Q.ajaxPrefilter("json jsonp",function(e,n,r){var i,o,a,u=e.jsonp!==!1&&(Dn.test(e.url)?"url":"string"==typeof e.data&&!(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(e.data)&&"data");return u||"jsonp"===e.dataTypes[0]?(i=e.jsonpCallback=Q.isFunction(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,u?e[u]=e[u].replace(Dn,"$1"+i):e.jsonp!==!1&&(e.url+=(fn.test(e.url)?"&":"?")+e.jsonp+"="+i),e.converters["script json"]=function(){return a||Q.error(i+" was not called"),a[0]},e.dataTypes[0]="json",o=t[i],t[i]=function(){a=arguments},r.always(function(){t[i]=o,e[i]&&(e.jsonpCallback=n.jsonpCallback,On.push(i)),a&&Q.isFunction(o)&&o(a[0]),a=o=void 0}),"script"):void 0}),Q.parseHTML=function(data,t,e){if(!data||"string"!=typeof data)return null;"boolean"==typeof t&&(e=t,t=!1),t=t||G;var n=ae.exec(data),r=!e&&[];return n?[t.createElement(n[1])]:(n=Q.buildFragment([data],t,r),r&&r.length&&Q(r).remove(),Q.merge([],n.childNodes))};var Ln=Q.fn.load;Q.fn.load=function(t,e,n){if("string"!=typeof t&&Ln)return Ln.apply(this,arguments);var r,i,o,a=this,u=t.indexOf(" ");return u>=0&&(r=Q.trim(t.slice(u)),t=t.slice(0,u)),Q.isFunction(e)?(n=e,e=void 0):e&&"object"==typeof e&&(i="POST"),a.length>0&&Q.ajax({url:t,type:i,dataType:"html",data:e}).done(function(t){o=arguments,a.html(r?Q("<div>").append(Q.parseHTML(t)).find(r):t)}).complete(n&&function(t,e){a.each(n,o||[t.responseText,e,t])}),this},Q.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(t,e){Q.fn[e]=function(t){return this.on(e,t)}}),Q.expr.filters.animated=function(t){return Q.grep(Q.timers,function(e){return t===e.elem}).length};var Fn=t.document.documentElement;Q.offset={setOffset:function(t,e,n){var r,i,o,a,u,s,l,c=Q.css(t,"position"),f=Q(t),h={};"static"===c&&(t.style.position="relative"),u=f.offset(),o=Q.css(t,"top"),s=Q.css(t,"left"),l=("absolute"===c||"fixed"===c)&&(o+s).indexOf("auto")>-1,l?(r=f.position(),a=r.top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(s)||0),Q.isFunction(e)&&(e=e.call(t,n,u)),null!=e.top&&(h.top=e.top-u.top+a),null!=e.left&&(h.left=e.left-u.left+i),"using"in e?e.using.call(t,h):f.css(h)}},Q.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){Q.offset.setOffset(this,t,e)});var e,n,r=this[0],i={top:0,left:0},o=r&&r.ownerDocument;if(o)return e=o.documentElement,Q.contains(e,r)?(typeof r.getBoundingClientRect!==Ee&&(i=r.getBoundingClientRect()),n=H(o),{top:i.top+n.pageYOffset-e.clientTop,left:i.left+n.pageXOffset-e.clientLeft}):i},position:function(){if(this[0]){var t,e,n=this[0],r={top:0,left:0};return"fixed"===Q.css(n,"position")?e=n.getBoundingClientRect():(t=this.offsetParent(),e=this.offset(),Q.nodeName(t[0],"html")||(r=t.offset()),r.top+=Q.css(t[0],"borderTopWidth",!0),r.left+=Q.css(t[0],"borderLeftWidth",!0)),{top:e.top-r.top-Q.css(n,"marginTop",!0),left:e.left-r.left-Q.css(n,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||Fn;t&&!Q.nodeName(t,"html")&&"static"===Q.css(t,"position");)t=t.offsetParent;return t||Fn})}}),Q.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r="pageYOffset"===n;Q.fn[e]=function(i){return ve(this,function(e,i,o){var a=H(e);return void 0===o?a?a[n]:e[i]:void(a?a.scrollTo(r?t.pageXOffset:o,r?o:t.pageYOffset):e[i]=o)},e,i,arguments.length,null)}}),Q.each(["top","left"],function(t,e){Q.cssHooks[e]=_(Z.pixelPosition,function(t,n){return n?(n=w(t,e),Be.test(n)?Q(t).position()[e]+"px":n):void 0})}),Q.each({Height:"height",Width:"width"},function(t,e){Q.each({padding:"inner"+t,content:e,"":"outer"+t},function(n,r){Q.fn[r]=function(r,i){var o=arguments.length&&(n||"boolean"!=typeof r),a=n||(r===!0||i===!0?"margin":"border");return ve(this,function(e,n,r){var i;return Q.isWindow(e)?e.document.documentElement["client"+t]:9===e.nodeType?(i=e.documentElement,Math.max(e.body["scroll"+t],i["scroll"+t],e.body["offset"+t],i["offset"+t],i["client"+t])):void 0===r?Q.css(e,n,a):Q.style(e,n,r,a)},e,o?r:void 0,o,null)}})}),Q.fn.size=function(){return this.length},Q.fn.andSelf=Q.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return Q});var zn=t.jQuery,Rn=t.$;return Q.noConflict=function(e){return t.$===Q&&(t.$=Rn),e&&t.jQuery===Q&&(t.jQuery=zn),Q},typeof e===Ee&&(t.jQuery=t.$=Q),Q})},{}],59:[function(t,e,n){(function(t){(function(){function r(t,e,n){for(var r=(n||0)-1,i=t?t.length:0;++r<i;)if(t[r]===e)return r;return-1}function i(t,e){var n=typeof e;if(t=t.cache,"boolean"==n||null==e)return t[e]?0:-1;"number"!=n&&"string"!=n&&(n="object");var i="number"==n?e:x+e;return t=(t=t[n])&&t[i],"object"==n?t&&r(t,e)>-1?0:-1:t?0:-1}function o(t){var e=this.cache,n=typeof t;if("boolean"==n||null==t)e[t]=!0;else{"number"!=n&&"string"!=n&&(n="object");var r="number"==n?t:x+t,i=e[n]||(e[n]={});"object"==n?(i[r]||(i[r]=[])).push(t):i[r]=!0}}function a(t){return t.charCodeAt(0)}function u(t,e){for(var n=t.criteria,r=e.criteria,i=-1,o=n.length;++i<o;){var a=n[i],u=r[i];if(a!==u){if(a>u||"undefined"==typeof a)return 1;if(u>a||"undefined"==typeof u)return-1}}return t.index-e.index}function s(t){var e=-1,n=t.length,r=t[0],i=t[n/2|0],a=t[n-1];if(r&&"object"==typeof r&&i&&"object"==typeof i&&a&&"object"==typeof a)return!1;var u=f();u["false"]=u["null"]=u["true"]=u.undefined=!1;var s=f();for(s.array=t,s.cache=u,s.push=o;++e<n;)s.push(t[e]);return s}function l(t){return"\\"+Z[t]}function c(){return m.pop()||[]}function f(){return y.pop()||{array:null,cache:null,criteria:null,"false":!1,index:0,"null":!1,number:null,object:null,push:null,string:null,"true":!1,undefined:!1,value:null}}function h(t){t.length=0,m.length<_&&m.push(t)}function p(t){var e=t.cache;e&&p(e),t.array=t.cache=t.criteria=t.object=t.number=t.string=t.value=null,y.length<_&&y.push(t)}function d(t,e,n){e||(e=0),"undefined"==typeof n&&(n=t?t.length:0);for(var r=-1,i=n-e||0,o=Array(0>i?0:i);++r<i;)o[r]=t[e+r];return o}function g(t){function e(t){return t&&"object"==typeof t&&!Kr(t)&&Dr.call(t,"__wrapped__")?t:new n(t)}function n(t,e){this.__chain__=!!e,this.__wrapped__=t}function o(t){function e(){if(r){var t=d(r);Lr.apply(t,arguments)}if(this instanceof e){var o=y(n.prototype),a=n.apply(o,t||arguments);return Ae(a)?a:o}return n.apply(i,t||arguments)}var n=t[0],r=t[2],i=t[4];return Gr(e,t),e}function m(t,e,n,r,i){if(n){var o=n(t);if("undefined"!=typeof o)return o}var a=Ae(t);if(!a)return t;var u=Sr.call(t);if(!W[u])return t;var s=Jr[u];switch(u){case P:case I:return new s(+t);case B:case U:return new s(t);case V:return o=s(t.source,T.exec(t)),o.lastIndex=t.lastIndex,o}var l=Kr(t);if(e){var f=!r;r||(r=c()),i||(i=c());for(var p=r.length;p--;)if(r[p]==t)return i[p];o=l?s(t.length):{}}else o=l?d(t):oi({},t);return l&&(Dr.call(t,"index")&&(o.index=t.index),Dr.call(t,"input")&&(o.input=t.input)),e?(r.push(t),i.push(o),(l?Ze:si)(t,function(t,a){o[a]=m(t,e,n,r,i)}),f&&(h(r),h(i)),o):o}function y(t){return Ae(t)?Ir(t):{}}function _(t,e,n){if("function"!=typeof t)return Kn;if("undefined"==typeof e||!("prototype"in t))return t;var r=t.__bindData__;if("undefined"==typeof r&&(Zr.funcNames&&(r=!t.name),r=r||!Zr.funcDecomp,!r)){var i=qr.call(t);Zr.funcNames||(r=!j.test(i)),r||(r=O.test(i),Gr(t,r))}if(r===!1||r!==!0&&1&r[1])return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)};case 4:return function(n,r,i,o){return t.call(e,n,r,i,o)}}return Ln(t,e)}function Z(t){function e(){var t=s?a:this;if(i){var p=d(i);Lr.apply(p,arguments)}if((o||c)&&(p||(p=d(arguments)),o&&Lr.apply(p,o),c&&p.length<u))return r|=16,Z([n,f?r:-4&r,p,null,a,u]);if(p||(p=arguments),l&&(n=t[h]),this instanceof e){t=y(n.prototype);var g=n.apply(t,p);return Ae(g)?g:t}return n.apply(t,p)}var n=t[0],r=t[1],i=t[2],o=t[3],a=t[4],u=t[5],s=1&r,l=2&r,c=4&r,f=8&r,h=n;return Gr(e,t),e}function K(t,e){var n=-1,o=se(),a=t?t.length:0,u=a>=w&&o===r,l=[];if(u){var c=s(e);c?(o=i,e=c):u=!1}for(;++n<a;){var f=t[n];o(e,f)<0&&l.push(f)}return u&&p(e),l}function Q(t,e,n,r){for(var i=(r||0)-1,o=t?t.length:0,a=[];++i<o;){var u=t[i];if(u&&"object"==typeof u&&"number"==typeof u.length&&(Kr(u)||he(u))){e||(u=Q(u,e,n));var s=-1,l=u.length,c=a.length;for(a.length+=l;++s<l;)a[c++]=u[s]}else n||a.push(u)}return a}function te(t,e,n,r,i,o){if(n){var a=n(t,e);if("undefined"!=typeof a)return!!a}if(t===e)return 0!==t||1/t==1/e;var u=typeof t,s=typeof e;if(!(t!==t||t&&J[u]||e&&J[s]))return!1;if(null==t||null==e)return t===e;var l=Sr.call(t),f=Sr.call(e);if(l==z&&(l=$),f==z&&(f=$),l!=f)return!1;switch(l){case P:case I:return+t==+e;case B:return t!=+t?e!=+e:0==t?1/t==1/e:t==+e;case V:case U:return t==_r(e)}var p=l==R;if(!p){var d=Dr.call(t,"__wrapped__"),g=Dr.call(e,"__wrapped__");if(d||g)return te(d?t.__wrapped__:t,g?e.__wrapped__:e,n,r,i,o);if(l!=$)return!1;var v=t.constructor,m=e.constructor;if(v!=m&&!(je(v)&&v instanceof v&&je(m)&&m instanceof m)&&"constructor"in t&&"constructor"in e)return!1}var y=!i;i||(i=c()),o||(o=c());for(var b=i.length;b--;)if(i[b]==t)return o[b]==e;var x=0;if(a=!0,i.push(t),o.push(e),p){if(b=t.length,x=e.length,a=x==b,a||r)for(;x--;){var w=b,_=e[x];if(r)for(;w--&&!(a=te(t[w],_,n,r,i,o)););else if(!(a=te(t[x],_,n,r,i,o)))break}}else ui(e,function(e,u,s){return Dr.call(s,u)?(x++,a=Dr.call(t,u)&&te(t[u],e,n,r,i,o)):void 0}),a&&!r&&ui(t,function(t,e,n){return Dr.call(n,e)?a=--x>-1:void 0});return i.pop(),o.pop(),y&&(h(i),h(o)),a}function ee(t,e,n,r,i){(Kr(e)?Ze:si)(e,function(e,o){var a,u,s=e,l=t[o];if(e&&((u=Kr(e))||li(e))){for(var c=r.length;c--;)if(a=r[c]==e){l=i[c];break}if(!a){var f;n&&(s=n(l,e),(f="undefined"!=typeof s)&&(l=s)),f||(l=u?Kr(l)?l:[]:li(l)?l:{}),r.push(e),i.push(l),f||ee(l,e,n,r,i)}}else n&&(s=n(l,e),"undefined"==typeof s&&(s=e)),"undefined"!=typeof s&&(l=s);t[o]=l})}function re(t,e){return t+Nr(Xr()*(e-t+1))}function ie(t,e,n){var o=-1,a=se(),u=t?t.length:0,l=[],f=!e&&u>=w&&a===r,d=n||f?c():l;if(f){var g=s(d);a=i,d=g}for(;++o<u;){var v=t[o],m=n?n(v,o,t):v;(e?!o||d[d.length-1]!==m:a(d,m)<0)&&((n||f)&&d.push(m),l.push(v))}return f?(h(d.array),p(d)):n&&h(d),l}function oe(t){return function(n,r,i){var o={};r=e.createCallback(r,i,3);var a=-1,u=n?n.length:0;if("number"==typeof u)for(;++a<u;){var s=n[a];t(o,s,r(s,a,n),n)}else si(n,function(e,n,i){t(o,e,r(e,n,i),i)});return o}}function ae(t,e,n,r,i,a){var u=1&e,s=2&e,l=4&e,c=16&e,f=32&e;if(!s&&!je(t))throw new Mr;c&&!n.length&&(e&=-17,c=n=!1),f&&!r.length&&(e&=-33,f=r=!1);var h=t&&t.__bindData__;if(h&&h!==!0)return h=d(h),h[2]&&(h[2]=d(h[2])),h[3]&&(h[3]=d(h[3])),!u||1&h[1]||(h[4]=i),!u&&1&h[1]&&(e|=8),!l||4&h[1]||(h[5]=a),c&&Lr.apply(h[2]||(h[2]=[]),n),f&&Rr.apply(h[3]||(h[3]=[]),r),h[1]|=e,ae.apply(null,h);var p=1==e||17===e?o:Z;return p([t,e,n,r,i,a])}function ue(t){return ei[t]}function se(){var t=(t=e.indexOf)===yn?r:t;return t}function le(t){return"function"==typeof t&&Tr.test(t)}function ce(t){var e,n;return t&&Sr.call(t)==$&&(e=t.constructor,!je(e)||e instanceof e)?(ui(t,function(t,e){n=e}),"undefined"==typeof n||Dr.call(t,n)):!1}function fe(t){return ni[t]}function he(t){return t&&"object"==typeof t&&"number"==typeof t.length&&Sr.call(t)==z||!1}function pe(t,e,n,r){return"boolean"!=typeof e&&null!=e&&(r=n,n=e,e=!1),m(t,e,"function"==typeof n&&_(n,r,1))}function de(t,e,n){return m(t,!0,"function"==typeof e&&_(e,n,1))}function ge(t,e){var n=y(t);return e?oi(n,e):n}function ve(t,n,r){var i;return n=e.createCallback(n,r,3),si(t,function(t,e,r){return n(t,e,r)?(i=e,!1):void 0}),i}function me(t,n,r){var i;return n=e.createCallback(n,r,3),be(t,function(t,e,r){return n(t,e,r)?(i=e,!1):void 0}),i}function ye(t,e,n){var r=[];ui(t,function(t,e){r.push(e,t)});var i=r.length;for(e=_(e,n,3);i--&&e(r[i--],r[i],t)!==!1;);return t}function be(t,e,n){var r=ti(t),i=r.length;for(e=_(e,n,3);i--;){var o=r[i];if(e(t[o],o,t)===!1)break}return t}function xe(t){var e=[];return ui(t,function(t,n){je(t)&&e.push(n)}),e.sort()}function we(t,e){return t?Dr.call(t,e):!1}function _e(t){for(var e=-1,n=ti(t),r=n.length,i={};++e<r;){var o=n[e];i[t[o]]=o}return i}function Me(t){return t===!0||t===!1||t&&"object"==typeof t&&Sr.call(t)==P||!1}function ke(t){return t&&"object"==typeof t&&Sr.call(t)==I||!1}function Ee(t){return t&&1===t.nodeType||!1}function Ce(t){var e=!0;if(!t)return e;var n=Sr.call(t),r=t.length;return n==R||n==U||n==z||n==$&&"number"==typeof r&&je(t.splice)?!r:(si(t,function(){return e=!1}),e)}function Se(t,e,n,r){return te(t,e,"function"==typeof n&&_(n,r,2))}function Te(t){return Br(t)&&!$r(parseFloat(t))}function je(t){return"function"==typeof t}function Ae(t){return!(!t||!J[typeof t])}function Ne(t){return Oe(t)&&t!=+t}function qe(t){return null===t}function Oe(t){return"number"==typeof t||t&&"object"==typeof t&&Sr.call(t)==B||!1}function De(t){return t&&"object"==typeof t&&Sr.call(t)==V||!1}function Le(t){return"string"==typeof t||t&&"object"==typeof t&&Sr.call(t)==U||!1}function Fe(t){return"undefined"==typeof t}function ze(t,n,r){var i={};return n=e.createCallback(n,r,3),si(t,function(t,e,r){i[e]=n(t,e,r)}),i}function Re(t){var e=arguments,n=2;if(!Ae(t))return t;if("number"!=typeof e[2]&&(n=e.length),n>3&&"function"==typeof e[n-2])var r=_(e[--n-1],e[n--],2);else n>2&&"function"==typeof e[n-1]&&(r=e[--n]);for(var i=d(arguments,1,n),o=-1,a=c(),u=c();++o<n;)ee(t,i[o],r,a,u);return h(a),h(u),t}function Pe(t,n,r){var i={};if("function"!=typeof n){var o=[];ui(t,function(t,e){o.push(e)}),o=K(o,Q(arguments,!0,!1,1));for(var a=-1,u=o.length;++a<u;){var s=o[a];i[s]=t[s]}}else n=e.createCallback(n,r,3),ui(t,function(t,e,r){n(t,e,r)||(i[e]=t)});return i}function Ie(t){for(var e=-1,n=ti(t),r=n.length,i=dr(r);++e<r;){var o=n[e];i[e]=[o,t[o]]}return i}function He(t,n,r){var i={};if("function"!=typeof n)for(var o=-1,a=Q(arguments,!0,!1,1),u=Ae(t)?a.length:0;++o<u;){var s=a[o];s in t&&(i[s]=t[s])}else n=e.createCallback(n,r,3),ui(t,function(t,e,r){n(t,e,r)&&(i[e]=t)});return i}function Be(t,n,r,i){var o=Kr(t);if(null==r)if(o)r=[];else{var a=t&&t.constructor,u=a&&a.prototype;r=y(u)}return n&&(n=e.createCallback(n,i,4),(o?Ze:si)(t,function(t,e,i){return n(r,t,e,i)})),r}function $e(t){for(var e=-1,n=ti(t),r=n.length,i=dr(r);++e<r;)i[e]=t[n[e]];return i}function Ve(t){for(var e=arguments,n=-1,r=Q(e,!0,!1,1),i=e[2]&&e[2][e[1]]===t?1:r.length,o=dr(i);++n<i;)o[n]=t[r[n]];return o}function Ue(t,e,n){var r=-1,i=se(),o=t?t.length:0,a=!1;return n=(0>n?Ur(0,o+n):n)||0,Kr(t)?a=i(t,e,n)>-1:"number"==typeof o?a=(Le(t)?t.indexOf(e,n):i(t,e,n))>-1:si(t,function(t){return++r>=n?!(a=t===e):void 0}),a}function We(t,n,r){var i=!0;n=e.createCallback(n,r,3);var o=-1,a=t?t.length:0;if("number"==typeof a)for(;++o<a&&(i=!!n(t[o],o,t)););else si(t,function(t,e,r){return i=!!n(t,e,r)});return i}function Ye(t,n,r){var i=[];n=e.createCallback(n,r,3);var o=-1,a=t?t.length:0;if("number"==typeof a)for(;++o<a;){var u=t[o];n(u,o,t)&&i.push(u)}else si(t,function(t,e,r){n(t,e,r)&&i.push(t)});return i}function Xe(t,n,r){n=e.createCallback(n,r,3);var i=-1,o=t?t.length:0;if("number"!=typeof o){var a;return si(t,function(t,e,r){return n(t,e,r)?(a=t,!1):void 0}),a}for(;++i<o;){var u=t[i];if(n(u,i,t))return u}}function Je(t,n,r){var i;return n=e.createCallback(n,r,3),Ge(t,function(t,e,r){return n(t,e,r)?(i=t,!1):void 0}),i}function Ze(t,e,n){var r=-1,i=t?t.length:0;if(e=e&&"undefined"==typeof n?e:_(e,n,3),"number"==typeof i)for(;++r<i&&e(t[r],r,t)!==!1;);else si(t,e);return t}function Ge(t,e,n){var r=t?t.length:0;if(e=e&&"undefined"==typeof n?e:_(e,n,3),"number"==typeof r)for(;r--&&e(t[r],r,t)!==!1;);else{var i=ti(t);r=i.length,si(t,function(t,n,o){return n=i?i[--r]:--r,e(o[n],n,o)})}return t}function Ke(t,e){var n=d(arguments,2),r=-1,i="function"==typeof e,o=t?t.length:0,a=dr("number"==typeof o?o:0);return Ze(t,function(t){a[++r]=(i?e:t[e]).apply(t,n)}),a}function Qe(t,n,r){var i=-1,o=t?t.length:0;if(n=e.createCallback(n,r,3),"number"==typeof o)for(var a=dr(o);++i<o;)a[i]=n(t[i],i,t);else a=[],si(t,function(t,e,r){a[++i]=n(t,e,r)});return a}function tn(t,n,r){var i=-1/0,o=i;if("function"!=typeof n&&r&&r[n]===t&&(n=null),null==n&&Kr(t))for(var u=-1,s=t.length;++u<s;){var l=t[u];l>o&&(o=l)}else n=null==n&&Le(t)?a:e.createCallback(n,r,3),Ze(t,function(t,e,r){var a=n(t,e,r);a>i&&(i=a,o=t)});return o}function en(t,n,r){var i=1/0,o=i;if("function"!=typeof n&&r&&r[n]===t&&(n=null),null==n&&Kr(t))for(var u=-1,s=t.length;++u<s;){var l=t[u];o>l&&(o=l)}else n=null==n&&Le(t)?a:e.createCallback(n,r,3),Ze(t,function(t,e,r){var a=n(t,e,r);i>a&&(i=a,o=t)});return o}function nn(t,n,r,i){if(!t)return r;var o=arguments.length<3;n=e.createCallback(n,i,4);var a=-1,u=t.length;if("number"==typeof u)for(o&&(r=t[++a]);++a<u;)r=n(r,t[a],a,t);else si(t,function(t,e,i){r=o?(o=!1,t):n(r,t,e,i)});return r}function rn(t,n,r,i){var o=arguments.length<3;return n=e.createCallback(n,i,4),Ge(t,function(t,e,i){r=o?(o=!1,t):n(r,t,e,i)}),r}function on(t,n,r){return n=e.createCallback(n,r,3),Ye(t,function(t,e,r){return!n(t,e,r)})}function an(t,e,n){if(t&&"number"!=typeof t.length&&(t=$e(t)),null==e||n)return t?t[re(0,t.length-1)]:v;var r=un(t);return r.length=Wr(Ur(0,e),r.length),r}function un(t){var e=-1,n=t?t.length:0,r=dr("number"==typeof n?n:0);return Ze(t,function(t){var n=re(0,++e);r[e]=r[n],r[n]=t}),r}function sn(t){var e=t?t.length:0;return"number"==typeof e?e:ti(t).length}function ln(t,n,r){var i;n=e.createCallback(n,r,3);var o=-1,a=t?t.length:0;if("number"==typeof a)for(;++o<a&&!(i=n(t[o],o,t)););else si(t,function(t,e,r){return!(i=n(t,e,r))});return!!i}function cn(t,n,r){var i=-1,o=Kr(n),a=t?t.length:0,s=dr("number"==typeof a?a:0);for(o||(n=e.createCallback(n,r,3)),Ze(t,function(t,e,r){var a=s[++i]=f();o?a.criteria=Qe(n,function(e){return t[e]}):(a.criteria=c())[0]=n(t,e,r),a.index=i,a.value=t}),a=s.length,s.sort(u);a--;){var l=s[a];s[a]=l.value,o||h(l.criteria),p(l)}return s}function fn(t){return t&&"number"==typeof t.length?d(t):$e(t)}function hn(t){for(var e=-1,n=t?t.length:0,r=[];++e<n;){var i=t[e];i&&r.push(i)}return r}function pn(t){return K(t,Q(arguments,!0,!0,1))}function dn(t,n,r){var i=-1,o=t?t.length:0;for(n=e.createCallback(n,r,3);++i<o;)if(n(t[i],i,t))return i;return-1}function gn(t,n,r){var i=t?t.length:0;for(n=e.createCallback(n,r,3);i--;)if(n(t[i],i,t))return i;return-1}function vn(t,n,r){var i=0,o=t?t.length:0;if("number"!=typeof n&&null!=n){var a=-1;for(n=e.createCallback(n,r,3);++a<o&&n(t[a],a,t);)i++}else if(i=n,null==i||r)return t?t[0]:v;return d(t,0,Wr(Ur(0,i),o))}function mn(t,e,n,r){return"boolean"!=typeof e&&null!=e&&(r=n,n="function"!=typeof e&&r&&r[e]===t?null:e,e=!1),null!=n&&(t=Qe(t,n,r)),Q(t,e)}function yn(t,e,n){if("number"==typeof n){var i=t?t.length:0;n=0>n?Ur(0,i+n):n||0}else if(n){var o=Sn(t,e);return t[o]===e?o:-1}return r(t,e,n)}function bn(t,n,r){var i=0,o=t?t.length:0;if("number"!=typeof n&&null!=n){var a=o;for(n=e.createCallback(n,r,3);a--&&n(t[a],a,t);)i++}else i=null==n||r?1:n||i;return d(t,0,Wr(Ur(0,o-i),o))}function xn(){for(var t=[],e=-1,n=arguments.length,o=c(),a=se(),u=a===r,l=c();++e<n;){var f=arguments[e];(Kr(f)||he(f))&&(t.push(f),o.push(u&&f.length>=w&&s(e?t[e]:l)))}var d=t[0],g=-1,v=d?d.length:0,m=[];t:for(;++g<v;){var y=o[0];if(f=d[g],(y?i(y,f):a(l,f))<0){for(e=n,(y||l).push(f);--e;)if(y=o[e],(y?i(y,f):a(t[e],f))<0)continue t;m.push(f)}}for(;n--;)y=o[n],y&&p(y);return h(o),h(l),m}function wn(t,n,r){var i=0,o=t?t.length:0;if("number"!=typeof n&&null!=n){var a=o;for(n=e.createCallback(n,r,3);a--&&n(t[a],a,t);)i++}else if(i=n,null==i||r)return t?t[o-1]:v;return d(t,Ur(0,o-i))}function _n(t,e,n){var r=t?t.length:0;for("number"==typeof n&&(r=(0>n?Ur(0,r+n):Wr(n,r-1))+1);r--;)if(t[r]===e)return r;return-1}function Mn(t){for(var e=arguments,n=0,r=e.length,i=t?t.length:0;++n<r;)for(var o=-1,a=e[n];++o<i;)t[o]===a&&(zr.call(t,o--,1),i--);return t}function kn(t,e,n){t=+t||0,n="number"==typeof n?n:+n||1,null==e&&(e=t,t=0);for(var r=-1,i=Ur(0,jr((e-t)/(n||1))),o=dr(i);++r<i;)o[r]=t,t+=n;return o}function En(t,n,r){var i=-1,o=t?t.length:0,a=[];for(n=e.createCallback(n,r,3);++i<o;){var u=t[i];n(u,i,t)&&(a.push(u),zr.call(t,i--,1),o--)}return a}function Cn(t,n,r){if("number"!=typeof n&&null!=n){var i=0,o=-1,a=t?t.length:0;for(n=e.createCallback(n,r,3);++o<a&&n(t[o],o,t);)i++}else i=null==n||r?1:Ur(0,n);return d(t,i)}function Sn(t,n,r,i){var o=0,a=t?t.length:o;for(r=r?e.createCallback(r,i,1):Kn,n=r(n);a>o;){var u=o+a>>>1;r(t[u])<n?o=u+1:a=u}return o}function Tn(){return ie(Q(arguments,!0,!0))}function jn(t,n,r,i){return"boolean"!=typeof n&&null!=n&&(i=r,r="function"!=typeof n&&i&&i[n]===t?null:n,n=!1),null!=r&&(r=e.createCallback(r,i,3)),ie(t,n,r)}function An(t){return K(t,d(arguments,1))}function Nn(){for(var t=-1,e=arguments.length;++t<e;){var n=arguments[t];if(Kr(n)||he(n))var r=r?ie(K(r,n).concat(K(n,r))):n}return r||[]}function qn(){for(var t=arguments.length>1?arguments:arguments[0],e=-1,n=t?tn(pi(t,"length")):0,r=dr(0>n?0:n);++e<n;)r[e]=pi(t,e);return r}function On(t,e){var n=-1,r=t?t.length:0,i={};for(e||!r||Kr(t[0])||(e=[]);++n<r;){var o=t[n];e?i[o]=e[n]:o&&(i[o[0]]=o[1])}return i}function Dn(t,e){if(!je(e))throw new Mr;return function(){return--t<1?e.apply(this,arguments):void 0}}function Ln(t,e){return arguments.length>2?ae(t,17,d(arguments,2),null,e):ae(t,1,null,null,e)}function Fn(t){for(var e=arguments.length>1?Q(arguments,!0,!1,1):xe(t),n=-1,r=e.length;++n<r;){var i=e[n];t[i]=ae(t[i],1,null,null,t)}return t}function zn(t,e){return arguments.length>2?ae(e,19,d(arguments,2),null,t):ae(e,3,null,null,t)}function Rn(){for(var t=arguments,e=t.length;e--;)if(!je(t[e]))throw new Mr;return function(){for(var e=arguments,n=t.length;n--;)e=[t[n].apply(this,e)];return e[0]}}function Pn(t,e){return e="number"==typeof e?e:+e||t.length,ae(t,4,null,null,null,e)}function In(t,e,n){var r,i,o,a,u,s,l,c=0,f=!1,h=!0;if(!je(t))throw new Mr;if(e=Ur(0,e)||0,n===!0){var p=!0;h=!1}else Ae(n)&&(p=n.leading,f="maxWait"in n&&(Ur(e,n.maxWait)||0),h="trailing"in n?n.trailing:h);var d=function(){var n=e-(gi()-a);if(0>=n){i&&Ar(i);var f=l;i=s=l=v,f&&(c=gi(),o=t.apply(u,r),s||i||(r=u=null))}else s=Fr(d,n)},g=function(){s&&Ar(s),i=s=l=v,(h||f!==e)&&(c=gi(),o=t.apply(u,r),s||i||(r=u=null))};return function(){if(r=arguments,a=gi(),u=this,l=h&&(s||!p),f===!1)var n=p&&!s;else{i||p||(c=a);var v=f-(a-c),m=0>=v;m?(i&&(i=Ar(i)),c=a,o=t.apply(u,r)):i||(i=Fr(g,v))}return m&&s?s=Ar(s):s||e===f||(s=Fr(d,e)),n&&(m=!0,o=t.apply(u,r)),!m||s||i||(r=u=null),o}}function Hn(t){if(!je(t))throw new Mr;var e=d(arguments,1);return Fr(function(){t.apply(v,e)},1)}function Bn(t,e){if(!je(t))throw new Mr;var n=d(arguments,2);return Fr(function(){t.apply(v,n)},e)}function $n(t,e){if(!je(t))throw new Mr;var n=function(){var r=n.cache,i=e?e.apply(this,arguments):x+arguments[0];return Dr.call(r,i)?r[i]:r[i]=t.apply(this,arguments)};return n.cache={},n}function Vn(t){var e,n;if(!je(t))throw new Mr;return function(){return e?n:(e=!0,n=t.apply(this,arguments),t=null,n)}}function Un(t){return ae(t,16,d(arguments,1))}function Wn(t){return ae(t,32,null,d(arguments,1))}function Yn(t,e,n){var r=!0,i=!0;if(!je(t))throw new Mr;return n===!1?r=!1:Ae(n)&&(r="leading"in n?n.leading:r,i="trailing"in n?n.trailing:i),Y.leading=r,Y.maxWait=e,Y.trailing=i,In(t,e,Y)}function Xn(t,e){return ae(e,16,[t])}function Jn(t){return function(){return t}}function Zn(t,e,n){var r=typeof t;if(null==t||"function"==r)return _(t,e,n);if("object"!=r)return nr(t);var i=ti(t),o=i[0],a=t[o];return 1!=i.length||a!==a||Ae(a)?function(e){for(var n=i.length,r=!1;n--&&(r=te(e[i[n]],t[i[n]],null,!0)););return r}:function(t){var e=t[o];return a===e&&(0!==a||1/a==1/e)}}function Gn(t){return null==t?"":_r(t).replace(ii,ue)}function Kn(t){return t}function Qn(t,r,i){var o=!0,a=r&&xe(r);r&&(i||a.length)||(null==i&&(i=r),u=n,r=t,t=e,a=xe(r)),i===!1?o=!1:Ae(i)&&"chain"in i&&(o=i.chain);var u=t,s=je(u);Ze(a,function(e){var n=t[e]=r[e];s&&(u.prototype[e]=function(){var e=this.__chain__,r=this.__wrapped__,i=[r];Lr.apply(i,arguments);var a=n.apply(t,i);if(o||e){if(r===a&&Ae(a))return this;a=new u(a),a.__chain__=e}return a})})}function tr(){return t._=Cr,this}function er(){}function nr(t){return function(e){return e[t]}}function rr(t,e,n){var r=null==t,i=null==e;if(null==n&&("boolean"==typeof t&&i?(n=t,t=1):i||"boolean"!=typeof e||(n=e,i=!0)),r&&i&&(e=1),t=+t||0,i?(e=t,t=0):e=+e||0,n||t%1||e%1){var o=Xr();return Wr(t+o*(e-t+parseFloat("1e-"+((o+"").length-1))),e)}return re(t,e)}function ir(t,e){if(t){var n=t[e];return je(n)?t[e]():n}}function or(t,data,n){var r=e.templateSettings;t=_r(t||""),n=ai({},n,r);var i,o=ai({},n.imports,r.imports),a=ti(o),u=$e(o),s=0,c=n.interpolate||q,f="__p += '",h=wr((n.escape||q).source+"|"+c.source+"|"+(c===A?S:q).source+"|"+(n.evaluate||q).source+"|$","g");t.replace(h,function(e,n,r,o,a,u){return r||(r=o),f+=t.slice(s,u).replace(D,l),n&&(f+="' +\n__e("+n+") +\n'"),a&&(i=!0,f+="';\n"+a+";\n__p += '"),r&&(f+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),s=u+e.length,e}),f+="';\n";var p=n.variable,d=p;d||(p="obj",f="with ("+p+") {\n"+f+"\n}\n"),f=(i?f.replace(k,""):f).replace(E,"$1").replace(C,"$1;"),f="function("+p+") {\n"+(d?"":p+" || ("+p+" = {});\n")+"var __t, __p = '', __e = _.escape"+(i?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+f+"return __p\n}";var g="\n/*\n//# sourceURL="+(n.sourceURL||"/lodash/template/source["+F++ +"]")+"\n*/";try{var m=mr(a,"return "+f+g).apply(v,u) +}catch(y){throw y.source=f,y}return data?m(data):(m.source=f,m)}function ar(t,e,n){t=(t=+t)>-1?t:0;var r=-1,i=dr(t);for(e=_(e,n,1);++r<t;)i[r]=e(r);return i}function ur(t){return null==t?"":_r(t).replace(ri,fe)}function sr(t){var e=++b;return _r(null==t?"":t)+e}function lr(t){return t=new n(t),t.__chain__=!0,t}function cr(t,e){return e(t),t}function fr(){return this.__chain__=!0,this}function hr(){return _r(this.__wrapped__)}function pr(){return this.__wrapped__}t=t?ne.defaults(G.Object(),t,ne.pick(G,L)):G;var dr=t.Array,gr=t.Boolean,vr=t.Date,mr=t.Function,yr=t.Math,br=t.Number,xr=t.Object,wr=t.RegExp,_r=t.String,Mr=t.TypeError,kr=[],Er=xr.prototype,Cr=t._,Sr=Er.toString,Tr=wr("^"+_r(Sr).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),jr=yr.ceil,Ar=t.clearTimeout,Nr=yr.floor,qr=mr.prototype.toString,Or=le(Or=xr.getPrototypeOf)&&Or,Dr=Er.hasOwnProperty,Lr=kr.push,Fr=t.setTimeout,zr=kr.splice,Rr=kr.unshift,Pr=function(){try{var t={},e=le(e=xr.defineProperty)&&e,n=e(t,t,t)&&e}catch(r){}return n}(),Ir=le(Ir=xr.create)&&Ir,Hr=le(Hr=dr.isArray)&&Hr,Br=t.isFinite,$r=t.isNaN,Vr=le(Vr=xr.keys)&&Vr,Ur=yr.max,Wr=yr.min,Yr=t.parseInt,Xr=yr.random,Jr={};Jr[R]=dr,Jr[P]=gr,Jr[I]=vr,Jr[H]=mr,Jr[$]=xr,Jr[B]=br,Jr[V]=wr,Jr[U]=_r,n.prototype=e.prototype;var Zr=e.support={};Zr.funcDecomp=!le(t.WinRTError)&&O.test(g),Zr.funcNames="string"==typeof mr.name,e.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:A,variable:"",imports:{_:e}},Ir||(y=function(){function e(){}return function(n){if(Ae(n)){e.prototype=n;var r=new e;e.prototype=null}return r||t.Object()}}());var Gr=Pr?function(t,e){X.value=e,Pr(t,"__bindData__",X)}:er,Kr=Hr||function(t){return t&&"object"==typeof t&&"number"==typeof t.length&&Sr.call(t)==R||!1},Qr=function(t){var e,n=t,r=[];if(!n)return r;if(!J[typeof t])return r;for(e in n)Dr.call(n,e)&&r.push(e);return r},ti=Vr?function(t){return Ae(t)?Vr(t):[]}:Qr,ei={"&":"&","<":"<",">":">",'"':""","'":"'"},ni=_e(ei),ri=wr("("+ti(ni).join("|")+")","g"),ii=wr("["+ti(ei).join("")+"]","g"),oi=function(t,e,n){var r,i=t,o=i;if(!i)return o;var a=arguments,u=0,s="number"==typeof n?2:a.length;if(s>3&&"function"==typeof a[s-2])var l=_(a[--s-1],a[s--],2);else s>2&&"function"==typeof a[s-1]&&(l=a[--s]);for(;++u<s;)if(i=a[u],i&&J[typeof i])for(var c=-1,f=J[typeof i]&&ti(i),h=f?f.length:0;++c<h;)r=f[c],o[r]=l?l(o[r],i[r]):i[r];return o},ai=function(t,e,n){var r,i=t,o=i;if(!i)return o;for(var a=arguments,u=0,s="number"==typeof n?2:a.length;++u<s;)if(i=a[u],i&&J[typeof i])for(var l=-1,c=J[typeof i]&&ti(i),f=c?c.length:0;++l<f;)r=c[l],"undefined"==typeof o[r]&&(o[r]=i[r]);return o},ui=function(t,e,n){var r,i=t,o=i;if(!i)return o;if(!J[typeof i])return o;e=e&&"undefined"==typeof n?e:_(e,n,3);for(r in i)if(e(i[r],r,t)===!1)return o;return o},si=function(t,e,n){var r,i=t,o=i;if(!i)return o;if(!J[typeof i])return o;e=e&&"undefined"==typeof n?e:_(e,n,3);for(var a=-1,u=J[typeof i]&&ti(i),s=u?u.length:0;++a<s;)if(r=u[a],e(i[r],r,t)===!1)return o;return o},li=Or?function(t){if(!t||Sr.call(t)!=$)return!1;var e=t.valueOf,n=le(e)&&(n=Or(e))&&Or(n);return n?t==n||Or(t)==n:ce(t)}:ce,ci=oe(function(t,e,n){Dr.call(t,n)?t[n]++:t[n]=1}),fi=oe(function(t,e,n){(Dr.call(t,n)?t[n]:t[n]=[]).push(e)}),hi=oe(function(t,e,n){t[n]=e}),pi=Qe,di=Ye,gi=le(gi=vr.now)&&gi||function(){return(new vr).getTime()},vi=8==Yr(M+"08")?Yr:function(t,e){return Yr(Le(t)?t.replace(N,""):t,e||0)};return e.after=Dn,e.assign=oi,e.at=Ve,e.bind=Ln,e.bindAll=Fn,e.bindKey=zn,e.chain=lr,e.compact=hn,e.compose=Rn,e.constant=Jn,e.countBy=ci,e.create=ge,e.createCallback=Zn,e.curry=Pn,e.debounce=In,e.defaults=ai,e.defer=Hn,e.delay=Bn,e.difference=pn,e.filter=Ye,e.flatten=mn,e.forEach=Ze,e.forEachRight=Ge,e.forIn=ui,e.forInRight=ye,e.forOwn=si,e.forOwnRight=be,e.functions=xe,e.groupBy=fi,e.indexBy=hi,e.initial=bn,e.intersection=xn,e.invert=_e,e.invoke=Ke,e.keys=ti,e.map=Qe,e.mapValues=ze,e.max=tn,e.memoize=$n,e.merge=Re,e.min=en,e.omit=Pe,e.once=Vn,e.pairs=Ie,e.partial=Un,e.partialRight=Wn,e.pick=He,e.pluck=pi,e.property=nr,e.pull=Mn,e.range=kn,e.reject=on,e.remove=En,e.rest=Cn,e.shuffle=un,e.sortBy=cn,e.tap=cr,e.throttle=Yn,e.times=ar,e.toArray=fn,e.transform=Be,e.union=Tn,e.uniq=jn,e.values=$e,e.where=di,e.without=An,e.wrap=Xn,e.xor=Nn,e.zip=qn,e.zipObject=On,e.collect=Qe,e.drop=Cn,e.each=Ze,e.eachRight=Ge,e.extend=oi,e.methods=xe,e.object=On,e.select=Ye,e.tail=Cn,e.unique=jn,e.unzip=qn,Qn(e),e.clone=pe,e.cloneDeep=de,e.contains=Ue,e.escape=Gn,e.every=We,e.find=Xe,e.findIndex=dn,e.findKey=ve,e.findLast=Je,e.findLastIndex=gn,e.findLastKey=me,e.has=we,e.identity=Kn,e.indexOf=yn,e.isArguments=he,e.isArray=Kr,e.isBoolean=Me,e.isDate=ke,e.isElement=Ee,e.isEmpty=Ce,e.isEqual=Se,e.isFinite=Te,e.isFunction=je,e.isNaN=Ne,e.isNull=qe,e.isNumber=Oe,e.isObject=Ae,e.isPlainObject=li,e.isRegExp=De,e.isString=Le,e.isUndefined=Fe,e.lastIndexOf=_n,e.mixin=Qn,e.noConflict=tr,e.noop=er,e.now=gi,e.parseInt=vi,e.random=rr,e.reduce=nn,e.reduceRight=rn,e.result=ir,e.runInContext=g,e.size=sn,e.some=ln,e.sortedIndex=Sn,e.template=or,e.unescape=ur,e.uniqueId=sr,e.all=We,e.any=ln,e.detect=Xe,e.findWhere=Xe,e.foldl=nn,e.foldr=rn,e.include=Ue,e.inject=nn,Qn(function(){var t={};return si(e,function(n,r){e.prototype[r]||(t[r]=n)}),t}(),!1),e.first=vn,e.last=wn,e.sample=an,e.take=vn,e.head=vn,si(e,function(t,r){var i="sample"!==r;e.prototype[r]||(e.prototype[r]=function(e,r){var o=this.__chain__,a=t(this.__wrapped__,e,r);return o||null!=e&&(!r||i&&"function"==typeof e)?new n(a,o):a})}),e.VERSION="2.4.1",e.prototype.chain=fr,e.prototype.toString=hr,e.prototype.value=pr,e.prototype.valueOf=pr,Ze(["join","pop","shift"],function(t){var r=kr[t];e.prototype[t]=function(){var t=this.__chain__,e=r.apply(this.__wrapped__,arguments);return t?new n(e,t):e}}),Ze(["push","reverse","sort","unshift"],function(t){var n=kr[t];e.prototype[t]=function(){return n.apply(this.__wrapped__,arguments),this}}),Ze(["concat","slice","splice"],function(t){var r=kr[t];e.prototype[t]=function(){return new n(r.apply(this.__wrapped__,arguments),this.__chain__)}}),e}var v,m=[],y=[],b=0,x=+new Date+"",w=75,_=40,M=" \f \n\r\u2028\u2029 ",k=/\b__p \+= '';/g,E=/\b(__p \+=) '' \+/g,C=/(__e\(.*?\)|\b__t\)) \+\n'';/g,S=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,T=/\w*$/,j=/^\s*function[ \n\r\t]+\w/,A=/<%=([\s\S]+?)%>/g,N=RegExp("^["+M+"]*0+(?=.$)"),q=/($^)/,O=/\bthis\b/,D=/['\n\r\t\u2028\u2029\\]/g,L=["Array","Boolean","Date","Function","Math","Number","Object","RegExp","String","_","attachEvent","clearTimeout","isFinite","isNaN","parseInt","setTimeout"],F=0,z="[object Arguments]",R="[object Array]",P="[object Boolean]",I="[object Date]",H="[object Function]",B="[object Number]",$="[object Object]",V="[object RegExp]",U="[object String]",W={};W[H]=!1,W[z]=W[R]=W[P]=W[I]=W[B]=W[$]=W[V]=W[U]=!0;var Y={leading:!1,maxWait:0,trailing:!1},X={configurable:!1,enumerable:!1,value:null,writable:!1},J={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},Z={"\\":"\\","'":"'","\n":"n","\r":"r"," ":"t","\u2028":"u2028","\u2029":"u2029"},G=J[typeof window]&&window||this,K=J[typeof n]&&n&&!n.nodeType&&n,Q=J[typeof e]&&e&&!e.nodeType&&e,te=Q&&Q.exports===K&&K,ee=J[typeof t]&&t;!ee||ee.global!==ee&&ee.window!==ee||(G=ee);var ne=g();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(G._=ne,define(function(){return ne})):K&&Q?te?(Q.exports=ne)._=ne:K._=ne:G._=ne}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],60:[function(t,e){{var n=t("ampersand-view"),r=t("./sidebar"),i=t("./chart"),o=t("jquery");t("debug")("view:app"),e.exports=n.extend({template:t("./templates/app.jade"),props:{chartView:"object",menuOpen:{type:"boolean","default":!1}},events:{"click .navbar-right label":"navButtonClicked","click [data-hook=menu-toggle]":"menuToggled"},bindings:{"model.chart.subSampled":{type:"toggle",hook:"sample-warning"},menuOpen:{type:"booleanClass",selector:"#wrapper",name:"active"}},subviews:{sidebar:{hook:"sidebar",waitFor:"model.sidebar",prepareView:function(t){return new r({el:t,model:this.model.sidebar})}},chart:{hook:"chart",waitFor:"model.chart",prepareView:function(t){return this.chartView=new i({el:t,model:this.model.chart}),this.chartView}}},statChanged:function(){this.model.chart.recalcXDomain=!0,this.chartView.render()},render:function(){this.renderWithTemplate(this.model)},navButtonClicked:function(t){var e=o(t.target).find("input"),n=e.attr("name"),r=e.val();this.model.chart[n]=r,this.model.chart.recalcXDomain="xSetting"===n,this.chartView.render()},menuToggled:function(){this.toggle("menuOpen")}})}},{"./chart":61,"./sidebar":64,"./templates/app.jade":66,"ampersand-view":30,debug:54,jquery:58}],61:[function(t,e){{var n=t("ampersand-view"),r=t("./viz"),i=t("./empty");t("d3"),t("jquery"),t("debug")("view:chart"),e.exports=n.extend({props:{vizView:{type:"any","default":null},emptyView:{type:"any","default":null},activeView:{type:"string","default":"empty",values:["empty","viz"]}},template:t("./templates/chart.jade"),bindings:{activeView:{type:"switch",cases:{empty:"[data-hook=empty]",viz:"[data-hook=graph]"}}},render:function(){this.activeView=this.model.empty?"empty":"viz",this.vizView?(this.vizView.data={series:this.model.series.filter(function(t){return t.selected}),model:this.model},this.vizView.redraw()):(this.renderWithTemplate(this.model),this.vizView=new r({width:"auto",height:600,renderMode:"svg",className:"multiline",debounceRender:!1,vizFn:t("./viz/d3-multiline"),data:{series:this.model.series.filter(function(t){return t.selected}),model:this.model}}),this.emptyView=new i,this.renderSubview(this.emptyView,"[data-hook=empty]"),this.renderSubview(this.vizView,"[data-hook=graph]"))}})}},{"./empty":62,"./templates/chart.jade":67,"./viz":72,"./viz/d3-multiline":73,"ampersand-view":30,d3:53,debug:54,jquery:58}],62:[function(t,e){{var n=t("ampersand-view");t("debug")("view:empty"),e.exports=n.extend({template:t("./templates/empty.jade"),autorender:!0})}},{"./templates/empty.jade":68,"ampersand-view":30,debug:54}],63:[function(t,e){{var n=t("ampersand-view"),r=t("ampersand-subcollection"),i=t("./stat"),o=t("jquery");t("lodash"),t("debug")("view:panel"),e.exports=n.extend({props:{indicator:{type:"string","default":"none",values:["none","some","all"]},statViews:"object",filteredStats:"object"},template:t("./templates/panel.jade"),events:{"click a":"collapsibleToggle","click [data-hook=caret]":"collapsibleToggle","click [data-hook=indicator]":"indicatorClicked"},bindings:{indicator:{type:function(t){switch($el=o(t),$el.removeClass(),this.model.selected){case"all":$el.addClass("fa fa-circle");break;case"some":$el.addClass("fa fa-adjust");break;case"none":$el.addClass("fa fa-circle-o")}},hook:"indicator"},"model.open":{type:"booleanClass",hook:"caret",yes:"fa-caret-up",no:"fa-caret-down"}},initialize:function(){this.filteredStats=new r(this.model.stats,{comparator:function(t){return t.name}})},render:function(){this.renderWithTemplate(this.model),this.statViews=this.renderCollection(this.filteredStats,i,this.queryByHook("stats"))},indicatorClicked:function(){var t="all"!==this.model.selected;switch(this.filteredStats.each(function(e){e.selected=t}),this.model.selected){case"all":case"some":this.collapsibleOpen();break;case"none":this.collapsibleClose()}this.model.app.clearSelectionState(),this.statChanged(null,{propagate:!0})},statChanged:function(t,e){e=e||{},this.indicator=this.model.selected,e.propagate&&this.parent.parent.statChanged(t,e)},collapsibleToggle:function(t){this.model.open?this.collapsibleClose(t):this.collapsibleOpen(t)},collapsibleClose:function(){o(this.query(".collapse")).collapse("hide"),this.model.open=!1},collapsibleOpen:function(){o(this.query(".collapse")).collapse("show"),this.model.open=!0},resetStats:function(){this.filteredStats.configure({},!0)},filterStats:function(t){this.filteredStats.configure({filter:function(e){return-1!==e.name.search(new RegExp(t),"gi")}},!0),0===this.filteredStats.length?this.collapsibleClose():this.collapsibleOpen()}})}},{"./stat":65,"./templates/panel.jade":69,"ampersand-subcollection":24,"ampersand-view":30,debug:54,jquery:58,lodash:59}],64:[function(t,e){{var n=t("ampersand-view"),r=t("./panel"),i=t("lodash");t("debug")("view:sidebar"),e.exports=n.extend({props:{panelViews:"object"},template:t("./templates/sidebar.jade"),events:{"click [data-hook=button]":"clearClicked","input [data-hook=input]":"inputChanged"},bindings:{"model.search.content":{type:"value",hook:"input"}},render:function(){this.renderWithTemplate(this.model),this.panelViews=this.renderCollection(this.model.panels,r,this.queryByHook("panels"))},closeAndReset:function(){i.each(this.panelViews.views,function(t){t.collapsibleClose(),t.resetStats()})},clearClicked:function(){this.model.search.content="",this.closeAndReset(),this.queryByHook("button").blur()},filterPanels:function(t){i.each(this.panelViews.views,function(e){e.filterStats(t)})},statChanged:function(t,e){this.parent.statChanged(t,e),e.all&&i.each(this.panelViews.views,function(e){e.statChanged(t,{all:!1,propagate:!1})})},inputChanged:i.debounce(function(){var t=this.queryByHook("input").value;this.model.search.content=t,""===t.trim()?this.closeAndReset():this.filterPanels(t)},200,{leading:!1,trailing:!0})})}},{"./panel":63,"./templates/sidebar.jade":70,"ampersand-view":30,debug:54,lodash:59}],65:[function(t,e){{var n=t("ampersand-view");t("debug")("view:stat"),e.exports=n.extend({template:t("./templates/stat.jade"),render:function(){this.renderWithTemplate(this.model)},events:{click:"clicked"},bindings:{"model.selected":{type:"booleanClass",hook:"circle",yes:"fa-circle",no:"fa-circle-o"}},clicked:function(t){t.shiftKey?this.model.app.toggleAllExcept(this.model):(this.model.app.clearSelectionState(),this.model.toggle("selected")),this.parent.parent.statChanged(this,{all:t.shiftKey,propagate:!0})}})}},{"./templates/stat.jade":71,"ampersand-view":30,debug:54}],66:[function(t,e){t("jade/runtime");e.exports=function(){var t=[];return t.push('<div id="app"><nav id="navbar" role="navigation" class="navbar navbar-default"><div class="container-fluid"><div class="navbar-header"><div class="navbar-brand"> <div data-hook="menu-toggle" class="brand-image"></div></div></div><ul class="nav navbar-right"><li data-hook="sample-warning" class="navbar-text"><div title="warning: more series data points than pixels. data is being sub-sampled to improve performance. To avoid sub-sampling, increase the browser window width or zoom in." class="alert alert-warning"><i id="menubtn" class="fa fa-warning"></i><span>sub-sampling</span></div></li><li class="navbar-text"><i id="menubtn" class="fa fa-clock-o"></i><span>x-axis</span><div data-toggle="buttons" data-hook="xSetting" class="btn-group"><label class="btn btn-default active"><input type="radio" name="xSetting" id="relative" value="relative" checked="checked"/>relative</label><label class="btn btn-default"><input type="radio" name="xSetting" id="absolute" value="absolute"/>absolute</label></div></li><li class="navbar-text"><i id="menubtn" class="fa fa-line-chart"></i><span>y-axis</span><div data-toggle="buttons" data-hook="ySetting" class="btn-group"><label class="btn btn-default active"><input type="radio" name="ySetting" value="linear" checked="checked"/>linear</label><label class="btn btn-default"><input type="radio" name="ySetting" value="log-scale"/>log-scale</label></div></li></ul></div></nav><div id="wrapper"><div id="sidebar-wrapper"><div class="sidebar-nav"><div data-hook="sidebar"></div></div></div><div class="container-fluid"><div class="row"><div class="col-md-12"><div data-hook="chart"></div></div></div></div></div></div>'),t.join("")}},{"jade/runtime":57}],67:[function(t,e){t("jade/runtime");e.exports=function(){var t=[];return t.push('<div><div class="container-fluid"><div class="row"><div class="col-md-12"><div data-hook="empty"></div><div data-hook="graph"></div></div></div></div></div>'),t.join("")}},{"jade/runtime":57}],68:[function(t,e){t("jade/runtime");e.exports=function(){var t=[];return t.push('<div class="instructions"><dl class="dl-horizontal"><dt><h1><span class="searchbox">mem| </span><i class="fa fa-search"></i></h1></dt><dd>filter stats by typing in the text box</dd><dt><h1> <u>cursor</u><i class="fa fa-caret-down"></i></h1></dt><dd>open/close group panels</dd><dt><h1><i class="fa fa-circle-o"></i><i class="fa fa-adjust"> </i><i class="fa fa-circle"> </i></h1></dt><dd>click to toggle individual stats or the entire group</dd><dt><h1><i class="fa fa-expand"></i><i class="fa fa-arrows-h"> </i><i class="fa fa-compress"> </i></h1></dt><dd>zoom with two-finger scroll or mouse wheel, pan with click+drag</dd><dt><h1>x<i class="fa fa-clock-o"></i>y<i class="fa fa-line-chart"> </i></h1></dt><dd>change x/y axis scaling with buttons at the top</dd></dl></div>'),t.join("")}},{"jade/runtime":57}],69:[function(t,e){var n=t("jade/runtime");e.exports=function(t){var e,r=[],i=t||{};return function(t,i){r.push('<div class="panel panel-default"><div class="panel-heading">'),i&&r.push('<span class="suptitle">'+n.escape(null==(e=i)?"":e)+"</span>"),r.push('<h4 class="panel-title"><i data-hook="indicator" class="fa fa-circle-o"></i><a data-toggle="collapse" data-parent="#panel-accordion">'+n.escape(null==(e=t)?"":e)+'</a><div class="pull-right"><i data-hook="caret" class="fa"></i></div></h4></div><div class="panel-collapse collapse"><div class="panel-body"><ul data-hook="stats" class="stats"></ul></div></div></div>')}.call(this,"subtitle"in i?i.subtitle:"undefined"!=typeof subtitle?subtitle:void 0,"suptitle"in i?i.suptitle:"undefined"!=typeof suptitle?suptitle:void 0),r.join("")}},{"jade/runtime":57}],70:[function(t,e){t("jade/runtime");e.exports=function(){var t=[];return t.push('<ul class="sidebar-nav"><li><div class="input-group"><input data-hook="input" type="text" class="form-control"/><span class="input-group-btn"><button data-hook="button" type="button" class="btn btn-default">Clear</button></span></div></li><li><div data-hook="panels" id="panel-accordion" class="panel-group"></div></li></ul>'),t.join("")}},{"jade/runtime":57}],71:[function(t,e){var n=t("jade/runtime");e.exports=function(t){var e,r=[],i=t||{};return function(t,i){r.push('<li class="stat"><i data-hook="circle"'+n.attr("style","color:"+t,!0,!1)+' class="fa fa-circle"></i>'+n.escape(null==(e=i)?"":e)+"</li>")}.call(this,"color"in i?i.color:"undefined"!=typeof color?color:void 0,"name"in i?i.name:"undefined"!=typeof name?name:void 0),r.join("")}},{"jade/runtime":57}],72:[function(t,e){{var n=t("ampersand-view"),r=t("lodash"),i=t("jquery");t("debug")("view:viz")}e.exports=n.extend({_values:{},_autoWidth:!1,_autoHeight:!1,props:{data:"any",className:"any",vizFn:"any",debounceRender:{type:"boolean","default":!0},renderMode:{type:"string",values:["canvas","svg","html"],"default":"svg"},width:{type:"any","default":"auto"},height:{type:"any","default":400}},bindings:{width:[{type:"attribute",name:"width",hook:"viz-container"}],height:{type:"attribute",name:"height",hook:"viz-container"},className:{type:"attribute",name:"class",hook:"viz-container"}},initialize:function(){switch(("auto"===this.width||void 0===this.width)&&(this._autoWidth=!0,this.width=0),("auto"===this.height||void 0===this.height)&&(this._autoHeight=!0,this.height=0),(this._autoWidth||this._autoHeight)&&(this.debounceRender?window.addEventListener("resize",r.debounce(this.redraw.bind(this),100)):window.addEventListener("resize",this.redraw.bind(this))),this.renderMode){case"canvas":this.template='<canvas data-hook="viz-container" id="canvas"></canvas>';break;case"svg":this.template='<svg data-hook="viz-container"></svg>';break;case"html":this.template='<div data-hook="viz-container"></div>'}},_measure:function(){this.el&&(this._autoWidth&&(this.width=i(this.el).parent().width()),this._autoHeight&&(this.height=i(this.el).parent().height()))},_chooseDataSource:function(){void 0!==this.model?this.data=this.model.toJSON():void 0!==this.collection&&(this.data=this.collection.toJSON())},remove:function(){return window.removeEventListener("resize",this._onResize),this},transform:function(data){return data},render:function(){return this._chooseDataSource(),this.data=this.transform(this.data),this.renderWithTemplate(this),this._measure(),this.vizFn&&(this.vizFn=this.vizFn({width:this.width,height:this.height,data:this.data,el:this.el})),this},redraw:function(){this._chooseDataSource(),this.data=this.transform(this.data),this._measure(),this.vizFn&&this.vizFn({width:this.width,height:this.height,data:this.data,el:this.el})}}),e.exports.create=function(t,n){return e.exports.extend({className:t,vizFn:n})}},{"ampersand-view":30,debug:54,jquery:58,lodash:59}],73:[function(t,e){{var n=t("d3"),r=t("lodash");t("debug")("viz:d3-multiline")}n.selection.prototype.moveToFront=function(){return this.each(function(){this.parentNode.appendChild(this)})},e.exports=function(t){function e(e){if(e){if(t=e,f=t.width-c.left-c.right,h=t.height-c.top-c.bottom,data=t.data,d=data.model,g=d.serialize(),F=data.series,0===F.length?T.style("visibility","hidden"):T.style("visibility","visible"),T.attr({width:f,height:h}),"relative"===g.xSetting?(v=function(t){return t.xrel},x=y,w.tickFormat(n.format(","))):(v=function(t){return t.x},x=m,w.tickFormat(b)),x.range([0,f]),(r.isEqual(x.domain(),[0,1])||r.isEqual(x.domain(),[new Date(0),new Date(1)])||g.recalcXDomain)&&(z=[n.min(F,function(t){return n.min(t.data,function(t){return v(t)})}),n.max(F,function(t){return n.max(t.data,function(t){return v(t)})})],x.domain(z),S.x(x)),F.length>0){var i=r.find(F,function(t){return t.data.length>1}).data;L=i?x(v(i[1]))-x(v(i[0])):1}else L=1;d.subSampled=g.allowSampling&&1>L,"linear"===g.ySetting?(k=_,k.domain([n.min(F,function(t){return n.min(t.data,function(t){return t.y})}),n.max(F,function(t){return n.max(t.data,function(t){return t.y})})])):(k=M,k.domain([.1,n.max(F,function(t){return n.max(t.data,function(t){return t.y})})])),k.range([h,0])}T.selectAll(".x").call(w.scale(x)),T.selectAll(".y").call(E.scale(k)),O=T.selectAll(".serie").data(F,function(t){return t.cid}),O.enter().append("g").attr("class","serie").append("path").attr("class","line").style("stroke",function(t){return t.color}),O.exit().remove(),O.selectAll(".line").attr("d",function(t){return C(v)(o(t.data))}),L>6?(D=O.selectAll(".point").data(function(t){return o(t.data).map(function(e){return{x:v(e),y:e.y,c:t.color}})}),D.enter().append("circle").attr("class","point").attr("r","3px").style("fill",function(t){return t.c}),D.exit().remove(),D.attr("cx",function(t){return x(t.x)}).attr("cy",function(t){return k(t.y)})):O.selectAll(".point").remove(),j.attr("x2",f),A.attr("y2",h+20),R.attr("width",f).attr("height",h).moveToFront()}function i(data){var t=x.domain(),e=s(v)(data,t[0]),n=s(v)(data,t[1]);return data.slice(e,n)}function o(data){data=i(data);var t=1/L;return g.allowSampling&&t>1?data.filter(function(e,n){return n%Math.ceil(t)===0}):data}function a(t,e){var n=o(e.data),r=x.invert(t),i=s(v)(n,r),a=n[i-1],u=n[i];return void 0===a?u:void 0===u?a:r-v(a)>v(u)-r?u:a}function u(){var t=n.mouse(this),e=t[0],r=t[1],i=F.map(function(t){return a(e,t)}),o=i.map(function(t){return t?Math.pow(e-x(v(t)),2)+Math.pow(r-k(t.y),2):1/0}),u=o.indexOf(Math.min.apply(Math,o)),s=F[u],l=i[u];N.attr("transform","translate("+x(v(l))+","+k(l.y)+")").moveToFront(),N.select("circle").attr("stroke",s.color),N.select("text.name").text(s.name),N.select("text.value").text(n.format(",")(l.y)),q.attr("transform","translate("+x(v(l))+","+(h+34)+")").text("relative"===g.xSetting?n.format(",")(v(l)):n.time.format("%b %d %H:%M:%S")(v(l))).moveToFront(),j.attr("y1",k(l.y)).attr("y2",k(l.y)),A.attr("x1",x(v(l))).attr("x2",x(v(l)))}function s(t){return n.bisector(function(e){return t(e)}).left}function l(){d.recalcXDomain=!1,e(t)}var c={top:80,right:20,bottom:60,left:100},f=t.width-c.left-c.right,h=t.height-c.top-c.bottom,data=t.data,p=t.el,d=data.model,g=d.serialize(),v=function(t){return t.x},m=n.time.scale(),y=n.scale.linear(),b=n.time.format.multi([[".%L",function(t){return t.getMilliseconds()}],[":%S",function(t){return t.getSeconds()}],["%b %e %H:%M",function(t){return t.getMinutes()}],["%b %e %H:%M",function(t){return t.getHours()}],["%b %e",function(t){return t.getDay()&&1!=t.getDate()}],["%b %e",function(t){return 1!=t.getDate()}],["%Y",function(t){return t.getMonth()}],["%Y",function(){return!0}]]),x="relative"===g.xSetting?y:m,w=n.svg.axis().scale(x).ticks(10).orient("bottom"),_=n.scale.linear().range([h,0]),M=n.scale.log().clamp(!0).range([h,0]).nice(),k="linear"===g.ySetting?_:M,E=n.svg.axis().scale(k).orient("left"),C=function(t){return n.svg.line().x(function(e){return x(t(e))}).y(function(t){return k(t.y)})},S=n.behavior.zoom().scaleExtent([1,50]).x(x).on("zoom",l),T=n.select(p).append("g").attr("transform","translate("+c.left+","+c.top+")").call(S);T.append("g").attr("class","x axis").attr("transform","translate(0,"+h+")"),T.append("g").attr("class","y axis");var j=T.append("line").style("stroke","#ddd").style("display","none").attr("class","x cross").attr("x1",0),A=T.append("line").style("stroke","#ddd").style("display","none").attr("class","x cross").attr("y1",0),N=T.append("g").attr("class","focus").style("display","none");N.append("circle").attr("r",6).attr("fill","none").attr("stroke-width",2);var q=T.append("text").attr("text-anchor","middle").attr("class","xlabel").attr("font-size","0.8em").attr("fill","#bbb");N.append("text").attr("class","name").attr("fill","black").attr("x",9).attr("dy","-.8em"),N.append("text").attr("class","value").attr("fill","black").attr("font-size","20px").attr("x",8).attr("dy","-1.2em");var O,D,L,F,z,R=T.append("rect").attr("class","windshield").style("opacity",0).on("mouseover",function(){j.style("display",null),A.style("display",null),N.style("display",null),q.style("display",null)}).on("mouseout",function(){N.style("display","none"),j.style("display","none"),A.style("display","none"),q.style("display","none")}).on("mousemove",u);return e}},{d3:53,debug:54,lodash:59}]},{},[1]); +}).call(this,typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{}]},{},[1])</script></html>
\ No newline at end of file diff --git a/tools/wtstats.py b/tools/wtstats/wtstats.py index 031b7cb546f..031b7cb546f 100755 --- a/tools/wtstats.py +++ b/tools/wtstats/wtstats.py |