genoverse 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +197 -0
- package/.github/workflows/test.yml +24 -0
- package/LICENSE.TXT +24 -0
- package/README.md +11 -0
- package/css/controlPanel.css +200 -0
- package/css/fileDrop.css +22 -0
- package/css/font-awesome.css +3 -0
- package/css/fullscreen.css +19 -0
- package/css/genoverse.css +466 -0
- package/css/karyotype.css +85 -0
- package/css/resizer.css +36 -0
- package/css/tooltips.css +26 -0
- package/css/trackControls.css +111 -0
- package/expanded.html +120 -0
- package/fontawesome/css/fontawesome.min.css +5 -0
- package/fontawesome/css/regular.min.css +5 -0
- package/fontawesome/css/solid.min.css +5 -0
- package/fontawesome/webfonts/fa-brands-400.ttf +0 -0
- package/fontawesome/webfonts/fa-brands-400.woff +0 -0
- package/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
- package/fontawesome/webfonts/fa-regular-400.ttf +0 -0
- package/fontawesome/webfonts/fa-regular-400.woff +0 -0
- package/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
- package/fontawesome/webfonts/fa-solid-900.ttf +0 -0
- package/fontawesome/webfonts/fa-solid-900.woff +0 -0
- package/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
- package/help.pdf +0 -0
- package/i/sort_handle.png +0 -0
- package/index.html +68 -0
- package/index.js +83 -0
- package/jest.config.js +4 -0
- package/js/Genoverse.js +1681 -0
- package/js/Track/Controller/Sequence.js +17 -0
- package/js/Track/Controller/Stranded.js +73 -0
- package/js/Track/Controller.js +620 -0
- package/js/Track/Model/File/BAM.js +44 -0
- package/js/Track/Model/File/BED.js +116 -0
- package/js/Track/Model/File/GFF.js +40 -0
- package/js/Track/Model/File/VCF.js +101 -0
- package/js/Track/Model/File/WIG.js +67 -0
- package/js/Track/Model/File.js +36 -0
- package/js/Track/Model/Gene/Ensembl.js +22 -0
- package/js/Track/Model/Gene.js +5 -0
- package/js/Track/Model/Sequence/Ensembl.js +4 -0
- package/js/Track/Model/Sequence/Fasta.js +60 -0
- package/js/Track/Model/Sequence.js +50 -0
- package/js/Track/Model/SequenceVariation.js +41 -0
- package/js/Track/Model/Stranded.js +28 -0
- package/js/Track/Model/Transcript/Ensembl.js +67 -0
- package/js/Track/Model/Transcript.js +5 -0
- package/js/Track/Model.js +303 -0
- package/js/Track/View/Gene/Ensembl.js +46 -0
- package/js/Track/View/Gene.js +6 -0
- package/js/Track/View/Sequence/Variation.js +115 -0
- package/js/Track/View/Sequence.js +63 -0
- package/js/Track/View/Transcript/Ensembl.js +12 -0
- package/js/Track/View/Transcript.js +28 -0
- package/js/Track/View.js +566 -0
- package/js/Track/library/Chromosome.js +145 -0
- package/js/Track/library/File/BAM.js +30 -0
- package/js/Track/library/File/BED.js +24 -0
- package/js/Track/library/File/BIGBED.js +47 -0
- package/js/Track/library/File/BIGWIG.js +52 -0
- package/js/Track/library/File/GFF.js +9 -0
- package/js/Track/library/File/VCF.js +71 -0
- package/js/Track/library/File/WIG.js +5 -0
- package/js/Track/library/File.js +10 -0
- package/js/Track/library/Gene.js +37 -0
- package/js/Track/library/Graph/Bar.js +235 -0
- package/js/Track/library/Graph/Line.js +296 -0
- package/js/Track/library/Graph.js +355 -0
- package/js/Track/library/HighlightRegion.js +292 -0
- package/js/Track/library/Legend.js +224 -0
- package/js/Track/library/Scalebar.js +227 -0
- package/js/Track/library/Scaleline.js +91 -0
- package/js/Track/library/Static.js +78 -0
- package/js/Track/library/dbSNP.js +142 -0
- package/js/Track.js +632 -0
- package/js/genomes/grch37.js +990 -0
- package/js/genomes/grch38.js +990 -0
- package/js/genoverse.min.js +2 -0
- package/js/genoverse.min.js.map +1 -0
- package/js/lib/BWReader.js +578 -0
- package/js/lib/Base.js +145 -0
- package/js/lib/VCFReader.js +286 -0
- package/js/lib/dalliance/js/bam.js +494 -0
- package/js/lib/dalliance/js/bin.js +185 -0
- package/js/lib/dalliance/js/das.js +749 -0
- package/js/lib/dalliance/js/utils.js +370 -0
- package/js/lib/dalliance-lib.js +3594 -0
- package/js/lib/dalliance-lib.min.js +68 -0
- package/js/lib/jDataView.js +2 -0
- package/js/lib/jParser.js +192 -0
- package/js/lib/jquery-ui.js +8 -0
- package/js/lib/jquery.js +2 -0
- package/js/lib/jquery.mousehold.js +53 -0
- package/js/lib/jquery.mousewheel.js +84 -0
- package/js/lib/jquery.tipsy.js +258 -0
- package/js/lib/rtree.js +1 -0
- package/js/plugins/controlPanel.js +395 -0
- package/js/plugins/fileDrop.js +62 -0
- package/js/plugins/focusRegion.js +12 -0
- package/js/plugins/fullscreen.js +77 -0
- package/js/plugins/karyotype.js +210 -0
- package/js/plugins/resizer.js +45 -0
- package/js/plugins/tooltips.js +94 -0
- package/js/plugins/trackControls.js +143 -0
- package/package.json +43 -0
- package/test/View/__snapshots__/render-bar-graph.test.js.snap +111 -0
- package/test/View/__snapshots__/render-blocks.test.js.snap +105 -0
- package/test/View/__snapshots__/render-chromosome.test.js.snap +5 -0
- package/test/View/__snapshots__/render-highlights.test.js.snap +73 -0
- package/test/View/__snapshots__/render-insert-variants.test.js.snap +9 -0
- package/test/View/__snapshots__/render-labels.test.js.snap +241 -0
- package/test/View/__snapshots__/render-legends.test.js.snap +13 -0
- package/test/View/__snapshots__/render-line-graph.test.js.snap +349 -0
- package/test/View/__snapshots__/render-scalebar.test.js.snap +49 -0
- package/test/View/__snapshots__/render-scaleline.test.js.snap +31 -0
- package/test/View/__snapshots__/render-sequence.test.js.snap +23 -0
- package/test/View/__snapshots__/render-stranded.test.js.snap +5 -0
- package/test/View/__snapshots__/render-transcripts.test.js.snap +193 -0
- package/test/View/render-bar-graph.test.js +87 -0
- package/test/View/render-blocks.test.js +171 -0
- package/test/View/render-chromosome.test.js +40 -0
- package/test/View/render-highlights.test.js +67 -0
- package/test/View/render-insert-variants.test.js +11 -0
- package/test/View/render-labels.test.js +266 -0
- package/test/View/render-legends.test.js +31 -0
- package/test/View/render-line-graph.test.js +169 -0
- package/test/View/render-scalebar.test.js +36 -0
- package/test/View/render-scaleline.test.js +28 -0
- package/test/View/render-sequence.test.js +49 -0
- package/test/View/render-stranded.test.js +10 -0
- package/test/View/render-transcripts.test.js +165 -0
- package/test/create-and-destroy.test.js +63 -0
- package/test/track-ordering.test.js +514 -0
- package/test/track_config/__snapshots__/config-settings.test.js.snap +23 -0
- package/test/track_config/config-settings.test.js +321 -0
- package/test/track_config/zoom-level-settings.test.js +98 -0
- package/test/utils.js +80 -0
- package/utils/createGenome.js +52 -0
- package/utils/devServer.js +36 -0
- package/utils/expandedTemplate.html +46 -0
- package/utils/git-hooks/post-commit +9 -0
- package/utils/git-hooks/pre-commit +7 -0
- package/utils/git-hooks/setup +6 -0
- package/utils/makeExpanded.js +19 -0
- package/webpack.config.js +39 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genoverse.min.js","mappings":"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EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GACnf,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EACnf,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAClf,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EACnf,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,GACpf,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EACnf,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IACpf,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,EAA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","sources":["webpack://genoverse/./js/Genoverse.js","webpack://genoverse/./js/Track.js","webpack://genoverse/./js/Track/Controller.js","webpack://genoverse/./js/Track/Controller/Sequence.js","webpack://genoverse/./js/Track/Controller/Stranded.js","webpack://genoverse/./js/Track/Model.js","webpack://genoverse/./js/Track/Model/File.js","webpack://genoverse/./js/Track/Model/File/BAM.js","webpack://genoverse/./js/Track/Model/File/BED.js","webpack://genoverse/./js/Track/Model/File/GFF.js","webpack://genoverse/./js/Track/Model/File/VCF.js","webpack://genoverse/./js/Track/Model/File/WIG.js","webpack://genoverse/./js/Track/Model/Gene.js","webpack://genoverse/./js/Track/Model/Gene/Ensembl.js","webpack://genoverse/./js/Track/Model/Sequence.js","webpack://genoverse/./js/Track/Model/Sequence/Ensembl.js","webpack://genoverse/./js/Track/Model/Sequence/Fasta.js","webpack://genoverse/./js/Track/Model/SequenceVariation.js","webpack://genoverse/./js/Track/Model/Stranded.js","webpack://genoverse/./js/Track/Model/Transcript.js","webpack://genoverse/./js/Track/Model/Transcript/Ensembl.js","webpack://genoverse/./js/Track/View.js","webpack://genoverse/./js/Track/View/Gene.js","webpack://genoverse/./js/Track/View/Gene/Ensembl.js","webpack://genoverse/./js/Track/View/Sequence.js","webpack://genoverse/./js/Track/View/Sequence/Variation.js","webpack://genoverse/./js/Track/View/Transcript.js","webpack://genoverse/./js/Track/View/Transcript/Ensembl.js","webpack://genoverse/./js/Track/library/Chromosome.js","webpack://genoverse/./js/Track/library/File.js","webpack://genoverse/./js/Track/library/File/BAM.js","webpack://genoverse/./js/Track/library/File/BED.js","webpack://genoverse/./js/Track/library/File/BIGBED.js","webpack://genoverse/./js/Track/library/File/BIGWIG.js","webpack://genoverse/./js/Track/library/File/GFF.js","webpack://genoverse/./js/Track/library/File/VCF.js","webpack://genoverse/./js/Track/library/File/WIG.js","webpack://genoverse/./js/Track/library/Gene.js","webpack://genoverse/./js/Track/library/Graph.js","webpack://genoverse/./js/Track/library/Graph/Bar.js","webpack://genoverse/./js/Track/library/Graph/Line.js","webpack://genoverse/./js/Track/library/HighlightRegion.js","webpack://genoverse/./js/Track/library/Legend.js","webpack://genoverse/./js/Track/library/Scalebar.js","webpack://genoverse/./js/Track/library/Scaleline.js","webpack://genoverse/./js/Track/library/Static.js","webpack://genoverse/./js/Track/library/dbSNP.js","webpack://genoverse/./js/lib/BWReader.js","webpack://genoverse/./js/lib/Base.js","webpack://genoverse/./js/lib/VCFReader.js","webpack://genoverse/./js/lib/dalliance-lib.min.js","webpack://genoverse/./js/lib/jDataView.js","webpack://genoverse/./js/lib/jParser.js","webpack://genoverse/./js/lib/jquery-ui.js","webpack://genoverse/./js/lib/jquery.js","webpack://genoverse/./js/lib/jquery.mousehold.js","webpack://genoverse/./js/lib/jquery.mousewheel.js","webpack://genoverse/./js/lib/jquery.tipsy.js","webpack://genoverse/./js/lib/rtree.js","webpack://genoverse/./js/plugins/controlPanel.js","webpack://genoverse/./js/plugins/fileDrop.js","webpack://genoverse/./js/plugins/focusRegion.js","webpack://genoverse/./js/plugins/fullscreen.js","webpack://genoverse/./js/plugins/karyotype.js","webpack://genoverse/./js/plugins/resizer.js","webpack://genoverse/./js/plugins/tooltips.js","webpack://genoverse/./js/plugins/trackControls.js","webpack://genoverse/webpack/bootstrap","webpack://genoverse/webpack/runtime/global","webpack://genoverse/./index.js"],"sourcesContent":["var Genoverse = Base.extend({\n // Defaults\n baseURL : undefined, // If multiple instances of Genoverse exist on a page at once, specifying different baseURL values allows some/all to ignore external URL changes\n urlParamTemplate : 'r=__CHR__:__START__-__END__', // Overwrite this for your URL style\n width : 1000,\n longestLabel : 30,\n defaultLength : 5000,\n defaultScrollDelta : 100,\n tracks : [],\n highlights : [],\n plugins : [],\n dragAction : 'scroll', // Options are: scroll, select, off\n wheelAction : 'off', // Options are: zoom, off\n isStatic : false, // If true, will stop drag, select and zoom actions occurring\n saveable : false, // If true, track configuration and ordering will be saved in sessionStorage/localStorage\n saveKey : '', // Default key for sessionStorage/localStorage configuration is 'genoverse'. saveKey will be appended to this if it is set\n storageType : 'sessionStorage', // Set to localStorage for permanence\n autoHideMessages : true, // Determines whether to collapse track messages by default\n trackAutoHeight : false, // Determines whether to automatically resize tracks to show all their features (can be overridden by track.autoHeight)\n hideEmptyTracks : true, // Determines whether to hide an automatically resized tracks if it has no features, or to show it empty (can be overridden by track.hideEmpty)\n genome : undefined, // The genome used in the browser - can be an object or a string, which will be used to obtain a javascript file\n useHash : undefined, // If true, window.location.hash is changed on navigation. If false, window.history.pushState is used. If undefined, pushState will be used if present in the browser\n\n // Default coordinates for initial view, overwrite in your config\n chr : 1,\n start : 1,\n end : 1000000,\n\n constructor: function (config) {\n var browser = this;\n\n if (!this.supported()) {\n return this.die('Your browser does not support this functionality');\n }\n\n config = config || {};\n\n config.container = $(config.container); // Make sure container is a jquery object, jquery recognises itself automatically\n\n if (!(config.container && config.container.length)) {\n config.container = $('<div>').appendTo('body');\n }\n\n config.container.addClass('genoverse').data('genoverse', this);\n\n $.extend(this, config);\n\n this.eventNamespace = '.genoverse.' + (++Genoverse.id);\n this.events = { browser: {}, tracks: {} };\n\n $.when(Genoverse.ready, this.loadGenome(), this.loadPlugins()).always(function () {\n Genoverse.wrapFunctions(browser);\n browser.init();\n });\n },\n\n loadGenome: function () {\n if (typeof this.genome === 'string') {\n var genomeName = this.genome.toLowerCase();\n\n return $.ajax({\n url : Genoverse.origin + 'js/genomes/' + genomeName + '.js',\n dataType : 'script',\n context : this,\n success : function () {\n this.genomeName = this.genome;\n this.genome = Genoverse.Genomes[genomeName];\n\n if (!this.genome) {\n this.die('Unable to load genome ' + genomeName);\n }\n }\n });\n }\n },\n\n loadPlugins: function (plugins) {\n var browser = this;\n var loadPluginsTask = $.Deferred();\n var i;\n\n plugins = plugins || this.plugins;\n\n this.loadedPlugins = this.loadedPlugins || {};\n\n for (i in Genoverse.Plugins) {\n this.loadedPlugins[i] = this.loadedPlugins[i] || 'script';\n }\n\n if (typeof plugins === 'string') {\n plugins = [ plugins ];\n }\n\n plugins = plugins.map(function (plugin) {\n return Array.isArray(plugin) ? plugin : [ plugin, {}];\n });\n\n var pluginsByName = plugins.reduce(\n function (acc, plugin) {\n acc[plugin[0]] = plugin;\n return acc;\n },\n {}\n );\n\n function loadPlugin(arg) {\n var plugin = arg[0];\n var css = Genoverse.origin + 'css/' + plugin + '.css';\n var js = Genoverse.origin + 'js/plugins/' + plugin + '.js';\n var deferred = $.Deferred();\n\n function getCSS() {\n function done() {\n browser.loadedPlugins[plugin] = browser.loadedPlugins[plugin] || 'script';\n deferred.resolve(arg);\n }\n\n if (Genoverse.Plugins[plugin].noCSS || $('link[href=\"' + css + '\"]').length) {\n return done();\n }\n\n $('<link href=\"' + css + '\" rel=\"stylesheet\">').on('load', done).appendTo('body');\n }\n\n if (browser.loadedPlugins[plugin] || $('script[src=\"' + js + '\"]').length) {\n getCSS();\n } else {\n $.getScript(js, getCSS);\n }\n\n return deferred;\n }\n\n function initializePlugin(plugin, conf) {\n if (typeof Genoverse.Plugins[plugin] !== 'function' || browser.loadedPlugins[plugin] === true) {\n return [];\n }\n\n var requires = Genoverse.Plugins[plugin].requires;\n var deferred = $.Deferred();\n\n function init() {\n if (browser.loadedPlugins[plugin] !== true) {\n Genoverse.Plugins[plugin].call(browser, conf);\n browser.container.addClass('gv-' + plugin.replace(/([A-Z])/g, '-$1').toLowerCase() + '-plugin');\n browser.loadedPlugins[plugin] = true;\n }\n\n deferred.resolve();\n }\n\n if (requires) {\n $.when(\n browser.loadPlugins(\n [].concat(requires).map(function (pluginName) {\n return pluginsByName[pluginName] || pluginName;\n })\n )\n ).done(init);\n } else {\n init();\n }\n\n return deferred;\n }\n\n // Load plugins css file\n $.when.apply($, $.map(plugins, loadPlugin)).done(function () {\n var pluginsLoaded = [];\n var plugin;\n\n for (i = 0; i < arguments.length; i++) {\n plugin = arguments[i];\n\n if (browser.loadedPlugins[plugin[0]] !== true) {\n pluginsLoaded.push(initializePlugin(plugin[0], plugin[1]));\n }\n }\n\n $.when.apply($, pluginsLoaded).always(loadPluginsTask.resolve);\n });\n\n return loadPluginsTask;\n },\n\n init: function () {\n var width = this.width;\n\n this.addDomElements(width);\n this.addUserEventHandlers();\n\n if (this.isStatic) {\n this.dragAction = this.wheelAction = 'off';\n this.urlParamTemplate = false;\n }\n\n this.tracksById = {};\n this.prev = {};\n this.legends = {};\n this.initialLocation = { chr: this.chr, start: this.start, end: this.end };\n this.saveKey = this.saveKey ? 'genoverse-' + this.saveKey : 'genoverse';\n this.urlParamTemplate = this.urlParamTemplate || '';\n this.useHash = typeof this.useHash === 'boolean' ? this.useHash : typeof window.history.pushState !== 'function';\n this.textWidth = document.createElement('canvas').getContext('2d').measureText('W').width;\n this.labelWidth = this.labelContainer.outerWidth(true) || 0;\n this.width = Math.min(this.width - this.labelWidth, this.wrapper.width() || Infinity); // Recalculate the width to ignore the affect of borders\n this.paramRegex = (\n this.urlParamTemplate\n ? new RegExp(\n '([?&;])'\n + this.urlParamTemplate\n .replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n .replace(/(\\b(\\w+=)?__CHR__(.)?)/, '$2([\\\\w\\\\.]+)$3')\n .replace(/(\\b(\\w+=)?__START__(.)?)/, '$2(\\\\d+)$3')\n .replace(/(\\b(\\w+=)?__END__(.)?)/, '$2(\\\\d+)$3')\n + '([;&])'\n )\n : ''\n );\n\n var coords = this.getCoords();\n\n this.chr = coords.chr;\n\n if (this.genome) {\n this.chromosomeSize = this.genome[this.chr].size;\n }\n\n this.canChangeChr = !!this.genome;\n\n if (this.saveable) {\n this.loadConfig();\n } else {\n this.addTracks();\n }\n\n if (this.width > 0) {\n this.setRange(coords.start, coords.end);\n }\n\n if (this.highlights.length) {\n this.addHighlights(this.highlights);\n }\n },\n\n loadConfig: function () {\n var config;\n\n this.defaultTracks = $.extend(true, [], this.tracks);\n\n try {\n config = window[this.storageType].getItem(this.saveKey);\n } catch (e) {}\n\n if (config) {\n config = JSON.parse(config);\n } else {\n return this.addTracks();\n }\n\n var tracksByNamespace = Genoverse.getAllTrackTypes();\n var tracks = [];\n var tracksById = {};\n var savedConfig = {};\n var i, prop, track, trackId;\n\n function setConfig($track, conf) {\n for (prop in conf) {\n if (prop === 'config') {\n savedConfig[conf.id] = conf[prop];\n } else {\n if (prop === 'height') {\n conf[prop] = parseInt(conf[prop], 10);\n\n if (isNaN(conf[prop])) {\n continue;\n }\n }\n\n $track.prototype[prop] = conf[prop];\n }\n }\n }\n\n for (i = 0; i < this.tracks.length; i++) {\n if (this.tracks[i].prototype.id) {\n tracksById[this.tracks[i].prototype.id] = this.tracks[i];\n }\n }\n\n for (i = 0; i < config.length; i++) {\n track = tracksById[config[i].id];\n\n if (track) {\n setConfig(track, config[i]);\n track._fromStorage = true;\n } else if (tracksByNamespace[config[i].namespace]) {\n track = tracksByNamespace[config[i].namespace];\n trackId = track.prototype.id;\n\n this.trackIds = this.trackIds || {};\n this.trackIds[trackId] = this.trackIds[trackId] || 1;\n\n if (tracksById[trackId]) {\n track = tracksById[trackId];\n }\n\n setConfig(track, config[i]);\n tracks.push(track);\n }\n }\n\n for (i = 0; i < this.tracks.length; i++) {\n if (this.tracks[i].prototype.id && !this.tracks[i]._fromStorage) {\n continue;\n }\n\n tracks.push(this.tracks[i]);\n }\n\n this.tracks = tracks;\n this.savedConfig = savedConfig;\n\n this.addTracks();\n },\n\n saveConfig: function () {\n if (this._constructing || !this.saveable) {\n return;\n }\n\n var config = [];\n var conf, j;\n\n for (var i = 0; i < this.tracks.length; i++) {\n if (this.tracks[i].id && !(this.tracks[i] instanceof Genoverse.Track.Legend) && !(this.tracks[i] instanceof Genoverse.Track.HighlightRegion)) {\n // when saving height, initialHeight is the height of the track once margins have been added, while defaultHeight is the DEFINED height of the track.\n // Subtracting the difference between them gives you back the correct height to input back into the track when loading configuration\n conf = {\n id : this.tracks[i].id,\n namespace : this.tracks[i].namespace,\n order : this.tracks[i].order,\n autoHeight : this.tracks[i].autoHeight,\n height : this.tracks[i].height - (this.tracks[i].initialHeight - this.tracks[i].defaultHeight)\n };\n\n if (this.tracks[i].config) {\n for (j in this.tracks[i].config) {\n conf.config = conf.config || {};\n conf.config[j] = this.tracks[i].config[j];\n }\n }\n\n config.push(conf);\n }\n }\n\n // Safari in private browsing mode does not allow writes to storage, so wrap in a try/catch to stop errors occuring\n try {\n window[this.storageType].setItem(this.saveKey, JSON.stringify(config));\n } catch (e) {}\n },\n\n resetConfig: function () {\n // Non removable highlights should be re-added after reset\n var unremovableHighlights = [];\n\n if (this.tracksById.highlights) {\n this.tracksById.highlights.removeHighlights();\n unremovableHighlights = $.map(this.tracksById.highlights.prop('featuresById'), function (h) { return h; });\n }\n\n try {\n window[this.storageType].removeItem(this.saveKey);\n } catch (e) {}\n\n this._constructing = true;\n this.savedConfig = {};\n\n this.removeTracks($.extend([], this.tracks)); // Shallow clone to ensure that removeTracks doesn't hit problems when splicing this.tracks\n this.addTracks($.extend(true, [], this.defaultTracks));\n\n if (unremovableHighlights.length) {\n this.addHighlights(unremovableHighlights);\n }\n\n this._constructing = false;\n },\n\n addDomElements: function (width) {\n this.menus = $();\n this.labelContainer = $('<ul class=\"gv-label-container\">').appendTo(this.container).sortable({\n items : 'li:not(.gv-unsortable)',\n handle : '.gv-handle',\n axis : 'y',\n helper : 'clone',\n cursor : 'move',\n update : $.proxy(this.updateTrackOrder, this),\n start : function (e, ui) {\n ui.placeholder.css({ height: ui.item.height(), visibility: 'visible' }).html(ui.item.html());\n ui.helper.hide();\n }\n });\n\n this.wrapper = $('<div class=\"gv-wrapper\">').appendTo(this.container);\n this.selector = $('<div class=\"gv-selector gv-crosshair\">').appendTo(this.wrapper);\n\n this.selectorControls = this.zoomInHighlight = this.zoomOutHighlight = $();\n\n this.container.addClass('gv-canvas-container').width(width);\n\n if (!this.isStatic) {\n this.selectorControls = $(\n '<div class=\"gv-selector-controls gv-panel\">' +\n ' <div class=\"gv-button-set\">' +\n ' <div class=\"gv-position\">' +\n ' <div class=\"gv-chr\"></div>' +\n ' <div class=\"gv-start-end\">' +\n ' <div class=\"gv-start\"></div>' +\n ' <div class=\"gv-end\"></div>' +\n ' </div>' +\n ' </div>' +\n ' </div>' +\n ' <div class=\"gv-button-set\">' +\n ' <button class=\"gv-zoom-here\">Zoom here</button>' +\n ' </div>' +\n ' <div class=\"gv-button-set\">' +\n ' <button class=\"gv-center\">Center</button>' +\n ' </div>' +\n ' <div class=\"gv-button-set\">' +\n ' <button class=\"gv-highlight\">Highlight</button>' +\n ' </div>' +\n ' <div class=\"gv-button-set\">' +\n ' <button class=\"gv-cancel\">Cancel</button>' +\n ' </div>' +\n '</div>'\n ).appendTo(this.selector);\n\n this.zoomInHighlight = $(\n '<div class=\"gv-canvas-zoom gv-i\">' +\n ' <div class=\"gv-t gv-l gv-h\"></div>' +\n ' <div class=\"gv-t gv-r gv-h\"></div>' +\n ' <div class=\"gv-t gv-l gv-v\"></div>' +\n ' <div class=\"gv-t gv-r gv-v\"></div>' +\n ' <div class=\"gv-b gv-l gv-h\"></div>' +\n ' <div class=\"gv-b gv-r gv-h\"></div>' +\n ' <div class=\"gv-b gv-l gv-v\"></div>' +\n ' <div class=\"gv-b gv-r gv-v\"></div>' +\n '</div>'\n ).appendTo('body');\n\n this.zoomOutHighlight = this.zoomInHighlight.clone().toggleClass('gv-i gv-o').appendTo('body');\n }\n },\n\n addUserEventHandlers: function () {\n var browser = this;\n var eventNamespace = this.eventNamespace;\n var documentEvents = {};\n var events = {};\n\n events['mousedown' + eventNamespace] = function (e) {\n browser.hideMessages();\n\n // Only scroll on left click, and do nothing if clicking on a button in selectorControls\n if ((!e.which || e.which === 1) && !(this === browser.selector[0] && e.target !== this)) {\n browser.mousedown(e);\n }\n\n return false;\n };\n\n events['mousewheel' + eventNamespace] = function (e, delta, deltaX, deltaY) {\n if (browser.noWheelZoom) {\n return true;\n }\n\n browser.hideMessages();\n\n if (browser.wheelAction === 'zoom') {\n return browser.mousewheelZoom(e, delta);\n }\n\n // Support horizontal wheel/2-finger scroll on trackpads\n if (deltaY === 0 && deltaX !== 0) {\n browser.startDragScroll(e);\n browser.move(-deltaX * 10);\n browser.stopDragScroll(false);\n return false;\n }\n };\n\n events['dblclick' + eventNamespace] = function (e) {\n if (browser.isStatic) {\n return true;\n }\n\n browser.hideMessages();\n browser.mousewheelZoom(e, 1);\n };\n\n this.container.on(events, '.gv-image-container, .gv-selector');\n\n this.selectorControls.on('click', function (e) {\n var pos = browser.getSelectorPosition();\n\n switch (e.target.className) {\n case 'gv-zoom-here' : browser.setRange(pos.start, pos.end, true); break;\n case 'gv-center' : browser.moveTo(browser.chr, pos.start, pos.end, true, true); browser.cancelSelect(); break;\n case 'gv-highlight' : browser.addHighlight({ chr: browser.chr, start: pos.start, end: pos.end });\n case 'gv-cancel' : browser.cancelSelect(); break;\n default : break;\n }\n });\n\n documentEvents['mouseup' + this.eventNamespace] = $.proxy(this.mouseup, this);\n documentEvents['mousemove' + this.eventNamespace] = $.proxy(this.mousemove, this);\n documentEvents['keydown' + this.eventNamespace] = $.proxy(this.keydown, this);\n documentEvents['keyup' + this.eventNamespace] = $.proxy(this.keyup, this);\n documentEvents['mousewheel' + this.eventNamespace] = function (e) {\n if (browser.wheelAction === 'zoom') {\n if (browser.wheelTimeout) {\n clearTimeout(browser.wheelTimeout);\n }\n\n browser.noWheelZoom = browser.noWheelZoom || e.target !== browser.container[0];\n browser.wheelTimeout = setTimeout(function () { browser.noWheelZoom = false; }, 300);\n }\n };\n\n $(document).on(documentEvents);\n $(window).on((this.useHash ? 'hashchange' : 'popstate') + this.eventNamespace, $.proxy(this.popState, this));\n },\n\n onTracks: function () {\n var args = $.extend([], arguments);\n var func = args.shift();\n var mvc;\n\n for (var i = 0; i < this.tracks.length; i++) {\n if (this.tracks[i].disabled) {\n continue;\n }\n\n mvc = this.tracks[i]._interface[func];\n\n if (mvc) {\n this.tracks[i][mvc][func].apply(this.tracks[i][mvc], args);\n } else if (this.tracks[i][func]) {\n this.tracks[i][func].apply(this.tracks[i], args);\n }\n }\n },\n\n reset: function () {\n this.onTracks.apply(this, [ 'reset' ].concat([].slice.call(arguments)));\n this.prev = {};\n this.scale = 9e99; // arbitrary value so that setScale resets track scales as well\n this.setRange(this.start, this.end);\n },\n\n setWidth: function (width) {\n this.width = width;\n this.width -= this.labelWidth;\n\n if (this.controlPanel) {\n this.width -= this.controlPanel.outerWidth(true);\n }\n\n if (this.superContainer) {\n this.superContainer.width(width);\n this.container.width(this.width);\n } else {\n this.container.width(width);\n }\n\n setTimeout(\n (function () {\n this.onTracks('setWidth', Math.min(this.width, this.container.width())); // If this.container has borders, this.container.width() could be less than this.width\n this.reset('resizing');\n }).bind(this),\n 1\n );\n },\n\n mousewheelZoom: function (e, delta) {\n var browser = this;\n\n clearTimeout(this.zoomDeltaTimeout);\n clearTimeout(this.zoomTimeout);\n\n this.zoomDeltaTimeout = setTimeout(function () {\n if (delta > 0) {\n browser.zoomInHighlight.css({ left: e.pageX - 20, top: e.pageY - 20, display: 'block' }).animate({\n width: 80, height: 80, top: '-=20', left: '-=20'\n }, {\n complete: function () { $(this).css({ width: 40, height: 40, display: 'none' }); }\n });\n } else {\n browser.zoomOutHighlight.css({ left: e.pageX - 40, top: e.pageY - 40, display: 'block' }).animate({\n width: 40, height: 40, top: '+=20', left: '+=20'\n }, {\n complete: function () { $(this).css({ width: 80, height: 80, display: 'none' }); }\n });\n }\n }, 100);\n\n this.zoomTimeout = setTimeout(function () {\n browser[delta > 0 ? 'zoomIn' : 'zoomOut'](e.pageX - browser.container.offset().left - browser.labelWidth);\n\n if (browser.dragAction === 'select') {\n browser.moveSelector(e);\n }\n }, 300);\n\n return false;\n },\n\n startDragScroll: function (e) {\n this.dragging = 'scroll';\n this.scrolling = !e;\n this.dragOffset = e ? e.pageX - this.left : 0;\n this.dragStart = this.start;\n this.scrollDelta = Math.max(this.scale, this.defaultScrollDelta);\n },\n\n stopDragScroll: function (update) {\n this.dragging = false;\n this.scrolling = false;\n\n if (update !== false) {\n if (this.start !== this.dragStart) {\n this.updateURL();\n }\n\n this.checkTrackHeights();\n }\n },\n\n startDragSelect: function (e) {\n if (!e) {\n return false;\n }\n\n var x = Math.max(0, e.pageX - this.wrapper.offset().left - 2);\n\n this.dragging = 'select';\n this.selectorStalled = false;\n this.selectorStart = x;\n\n this.selector.css({ left: x, width: 0 }).removeClass('gv-crosshair');\n this.selectorControls.hide();\n },\n\n stopDragSelect: function (e) {\n if (!e) {\n return false;\n }\n\n this.dragging = false;\n this.selectorStalled = true;\n\n if (this.selector.outerWidth(true) < 2) {\n return this.cancelSelect();\n }\n\n // Calculate the position, so that selectorControls appear near the mouse cursor\n var top = Math.min(e.pageY - this.wrapper.offset().top, this.wrapper.outerHeight(true) - 1.2 * this.selectorControls.outerHeight(true));\n var pos = this.getSelectorPosition();\n\n this.selectorControls.find('.gv-chr').html(this.chr);\n this.selectorControls.find('.gv-start').html(pos.start);\n this.selectorControls.find('.gv-end').html(pos.end);\n\n this.selectorControls.find('.gv-selector-location').html(this.chr + ':' + pos.start + '-' + pos.end).end().css({\n top : top,\n left : this.selector.outerWidth(true) / 2 - this.selectorControls.outerWidth(true) / 2\n }).show();\n },\n\n cancelSelect: function (keepDragging) {\n if (!keepDragging) {\n this.dragging = false;\n }\n\n this.selectorStalled = false;\n\n this.selector.addClass('gv-crosshair').width(0);\n this.selectorControls.hide();\n\n if (this.dragAction === 'scroll') {\n this.selector.hide();\n }\n },\n\n dragSelect: function (e) {\n var x = e.pageX - this.wrapper.offset().left;\n\n if (x > this.selectorStart) {\n this.selector.css({\n left : this.selectorStart,\n width : Math.min(x - this.selectorStart, this.width - this.selectorStart - 1)\n });\n } else {\n this.selector.css({\n left : Math.max(x, 1),\n width : Math.min(this.selectorStart - x, this.selectorStart - 1)\n });\n }\n },\n\n setDragAction: function (action, keepSelect) {\n this.dragAction = action;\n\n if (this.dragAction === 'select') {\n this.selector.addClass('gv-crosshair').width(0).show();\n } else if (keepSelect && !this.selector.hasClass('gv-crosshair')) {\n this.selectorStalled = false;\n } else {\n this.cancelSelect();\n this.selector.hide();\n }\n },\n\n toggleSelect: function (on) {\n if (on) {\n this.prev.dragAction = 'scroll';\n this.setDragAction('select');\n } else {\n this.setDragAction(this.prev.dragAction, true);\n delete this.prev.dragAction;\n }\n },\n\n setWheelAction: function (action) {\n this.wheelAction = action;\n },\n\n keydown: function (e) {\n if (e.which === 16 && !this.prev.dragAction && this.dragAction === 'scroll') { // shift key\n this.toggleSelect(true);\n } else if (e.which === 27) { // escape key\n this.cancelSelect();\n this.closeMenus();\n }\n },\n\n keyup: function (e) {\n if (e.which === 16 && this.prev.dragAction) { // shift key\n this.toggleSelect();\n }\n },\n\n mousedown: function (e) {\n if (e.shiftKey) {\n if (this.dragAction === 'scroll') {\n this.toggleSelect(true);\n }\n } else if (this.prev.dragAction) {\n this.toggleSelect();\n }\n\n switch (this.dragAction) {\n case 'select' : this.startDragSelect(e); break;\n case 'scroll' : this.startDragScroll(e); break;\n default : break;\n }\n },\n\n mouseup: function (e) {\n switch (this.dragging) {\n case 'select' : this.stopDragSelect(e); break;\n case 'scroll' : this.stopDragScroll(); break;\n default : break;\n }\n },\n\n mousemove: function (e) {\n if (this.dragging && !this.scrolling) {\n switch (this.dragAction) {\n case 'scroll' : this.move(e.pageX - this.dragOffset - this.left); break;\n case 'select' : this.dragSelect(e); break;\n default : break;\n }\n } else if (this.dragAction === 'select') {\n this.moveSelector(e);\n }\n },\n\n moveSelector: function (e) {\n if (!this.selectorStalled) {\n this.selector.css('left', e.pageX - this.wrapper.offset().left - 2);\n }\n },\n\n move: function (delta) {\n var scale = this.scale;\n var start, end, left;\n\n if (scale > 1) {\n delta = Math.round(delta / scale) * scale; // Force stepping by base pair when in small regions\n }\n\n left = this.left + delta;\n\n if (left <= this.minLeft) {\n left = this.minLeft;\n delta = this.minLeft - this.left;\n } else if (left >= this.maxLeft) {\n left = this.maxLeft;\n delta = this.maxLeft - this.left;\n }\n\n start = Math.max(Math.round(this.start - delta / scale), 1);\n end = start + this.length - 1;\n\n if (end > this.chromosomeSize) {\n end = this.chromosomeSize;\n start = end - this.length + 1;\n }\n\n this.left = left;\n\n if (start !== this.dragStart) {\n this.closeMenus();\n this.cancelSelect(true);\n }\n\n this.onTracks('move', delta);\n this.setRange(start, end);\n },\n\n moveTo: function (chr, start, end, update, keepLength) {\n if (typeof chr !== 'undefined' && String(chr) !== String(this.chr)) {\n if (this.canChangeChr) {\n if (this.genome && this.genome[chr]) {\n this.chr = chr;\n this.chromosomeSize = this.genome[chr].size;\n this.start = this.end = this.scale = -1;\n } else {\n this.die('Chromosome cannot be found in genome');\n }\n\n this.onTracks('changeChr');\n } else {\n this.die('Chromosome changing is not allowed');\n }\n }\n\n this.setRange(start, end, update, keepLength);\n\n if (this.prev.scale === this.scale) {\n this.left = Math.max(Math.min(this.left + Math.round((this.prev.start - this.start) * this.scale), this.maxLeft), this.minLeft);\n this.onTracks('moveTo', this.chr, this.start, this.end, (this.prev.start - this.start) * this.scale);\n }\n },\n\n setRange: function (start, end, update, keepLength) {\n this.prev.start = this.start;\n this.prev.end = this.end;\n this.start = Math.min(Math.max(typeof start === 'number' ? Math.floor(start) : parseInt(start, 10), 1), this.chromosomeSize);\n this.end = Math.max(Math.min(typeof end === 'number' ? Math.floor(end) : parseInt(end, 10), this.chromosomeSize), 1);\n\n if (this.end < this.start) {\n this.end = Math.min(this.start + this.defaultLength - 1, this.chromosomeSize);\n }\n\n if (keepLength && this.end - this.start + 1 !== this.length) {\n if (this.end === this.chromosomeSize) {\n this.start = this.end - this.length + 1;\n } else {\n var center = (this.start + this.end) / 2;\n this.start = Math.max(Math.floor(center - this.length / 2), 1);\n this.end = this.start + this.length - 1;\n\n if (this.end > this.chromosomeSize) {\n this.end = this.chromosomeSize;\n this.start = this.end - this.length + 1;\n }\n }\n } else {\n this.length = this.end - this.start + 1;\n }\n\n this.setScale();\n\n if (update === true && (this.prev.start !== this.start || this.prev.end !== this.end)) {\n this.updateURL();\n }\n },\n\n setScale: function () {\n this.prev.scale = this.scale;\n this.scale = this.width / this.length;\n this.scaledStart = this.start * this.scale;\n\n if (this.prev.scale !== this.scale) {\n this.left = 0;\n this.minLeft = Math.round((this.end - this.chromosomeSize) * this.scale);\n this.maxLeft = Math.round((this.start - 1) * this.scale);\n this.labelBuffer = Math.ceil(this.textWidth / this.scale) * this.longestLabel;\n\n if (this.prev.scale) {\n this.cancelSelect();\n this.closeMenus();\n }\n\n this.onTracks('setScale');\n this.onTracks('makeFirstImage');\n }\n },\n\n checkTrackHeights: function () {\n if (this.dragging) {\n return;\n }\n\n this.onTracks('checkHeight');\n },\n\n resetTrackHeights: function () {\n this.onTracks('resetHeight');\n },\n\n zoomIn: function (x) {\n if (!x) {\n x = this.width / 2;\n }\n\n var start = Math.round(this.start + x / (2 * this.scale));\n var end = this.length === 2 ? start : Math.round(start + (this.length - 1) / 2);\n\n this.setRange(start, end, true);\n },\n\n zoomOut: function (x) {\n if (!x) {\n x = this.width / 2;\n }\n\n var start = Math.round(this.start - x / this.scale);\n var end = this.length === 1 ? start + 1 : Math.round(start + 2 * (this.length - 1));\n\n this.setRange(start, end, true);\n },\n\n addTrack: function (track, after) {\n return this.addTracks([ track ], after)[0];\n },\n\n addTracks: function (tracks, after) {\n var defaults = {\n browser : this,\n width : Math.min(this.width, this.container.width()) // If this.container has borders, this.container.width() could be less than this.width\n };\n\n var push = !!tracks;\n var order;\n\n tracks = tracks || $.extend([], this.tracks);\n\n if (push && !$.grep(this.tracks, function (t) { return typeof t === 'function'; }).length) {\n var insertAfter = (after ? $.grep(this.tracks, function (t) { return t.order < after; }) : this.tracks).sort(function (a, b) { return b.order - a.order; })[0];\n\n if (insertAfter) {\n order = insertAfter.order + 0.1;\n }\n }\n\n for (var i = 0; i < tracks.length; i++) {\n tracks[i] = new tracks[i]($.extend(defaults, {\n namespace : Genoverse.getTrackNamespace(tracks[i]),\n order : typeof order === 'number' ? order : i,\n config : this.savedConfig ? $.extend(true, {}, this.savedConfig[tracks[i].prototype.id]) : undefined\n }));\n\n if (tracks[i].id) {\n this.tracksById[tracks[i].id] = tracks[i];\n }\n\n if (push) {\n this.tracks.push(tracks[i]);\n } else {\n this.tracks[i] = tracks[i];\n }\n }\n\n this.sortTracks();\n this.saveConfig();\n\n return tracks;\n },\n\n removeTrack: function (track) {\n if (track) {\n this.removeTracks((track.prop('childTracks') || []).concat(track));\n }\n },\n\n removeTracks: function (tracks) {\n var i = tracks.length;\n var track, j;\n\n while (i--) {\n track = tracks[i];\n j = this.tracks.length;\n\n while (j--) {\n if (track === this.tracks[j]) {\n this.tracks.splice(j, 1);\n break;\n }\n }\n\n if (track.id) {\n delete this.tracksById[track.id];\n }\n\n track.destructor(); // Destroy DOM elements and track itself\n }\n\n this.saveConfig();\n },\n\n sortTracks: function () {\n if ($.grep(this.tracks, function (t) { return typeof t !== 'object'; }).length) {\n return;\n }\n\n var sorted = $.extend([], this.tracks).sort(function (a, b) { return a.order - b.order; });\n var labels = $();\n var containers = $();\n var container;\n\n for (var i = 0; i < sorted.length; i++) {\n if (sorted[i].prop('parentTrack')) {\n continue;\n }\n\n if (!sorted[i].prop('fixedOrder')) {\n sorted[i].prop('order', i);\n }\n\n container = sorted[i].prop('superContainer') || sorted[i].prop('container');\n\n if (sorted[i].prop('menus').length) {\n sorted[i].prop('top', container.position().top);\n }\n\n labels.push(sorted[i].prop('label')[0]);\n containers.push(container[0]);\n }\n\n this.labelContainer.append(labels);\n this.wrapper.append(containers);\n\n // Correct the order\n this.tracks = sorted;\n\n labels.map(function () { return $(this).data('track'); }).each(function () {\n if (this.prop('menus').length) {\n var diff = (this.prop('superContainer') || this.prop('container')).position().top - this.prop('top');\n this.prop('menus').css('top', function (j, top) { return parseInt(top, 10) + diff; });\n this.prop('top', null);\n }\n });\n\n sorted = labels = containers = null;\n },\n\n updateTrackOrder: function (e, ui) {\n var track = ui.item.data('track');\n\n if (track.prop('unsortable') || track.prop('fixedOrder')) {\n return;\n }\n\n var prev = ui.item.prev().data('track');\n var next = ui.item.next().data('track');\n var p = prev ? prev.prop('order') : 0;\n var n = next ? next.prop('order') : 0;\n var o = p || n;\n var order;\n\n if (prev && next && Math.floor(n) === Math.floor(p)) {\n order = p + (n - p) / 2;\n } else {\n order = o + ((p ? 1 : -1) * Math.abs(Math.round(o) - o || 1)) / 2;\n }\n\n track.prop('order', order);\n\n this.sortTracks();\n this.saveConfig();\n },\n\n updateURL: function () {\n if (this.urlParamTemplate) {\n if (this.useHash) {\n window.location.hash = this.getQueryString();\n } else {\n window.history.pushState({}, '', this.getQueryString());\n }\n }\n },\n\n popState: function () {\n if (this.baseURL && !window.location.href.match(this.baseURL)) {\n return;\n }\n\n var coords = this.getCoords();\n var start = parseInt(coords.start, 10);\n var end = parseInt(coords.end, 10);\n\n if (\n (coords.chr && String(coords.chr) !== String(this.chr)) ||\n (coords.start && !(start === this.start && end === this.end))\n ) {\n // FIXME: a back action which changes scale or a zoom out will reset tracks, since scrollStart will not be the same as it was before\n this.moveTo(coords.chr, start, end);\n this.closeMenus();\n this.hideMessages();\n }\n },\n\n getCoords: function () {\n var match = (decodeURIComponent(this.useHash ? window.location.hash.replace(/^#/, '?') || window.location.search : window.location.search) + '&').match(this.paramRegex);\n var coords = {};\n var i = 0;\n\n if (!match) {\n return this.initialLocation;\n }\n\n match = match.slice(2, -1);\n\n $.each(this.urlParamTemplate.split('__'), function () {\n var tmp = this.match(/^(CHR|START|END)$/);\n\n if (tmp) {\n coords[tmp[1].toLowerCase()] = tmp[1] === 'CHR' ? match[i++] : parseInt(match[i++], 10);\n }\n });\n\n return coords.chr && coords.start && coords.end && (this.genome ? this.genome[coords.chr] : true) ? coords : this.initialLocation;\n },\n\n getQueryString: function () {\n var location = this.urlParamTemplate\n .replace('__CHR__', this.chr)\n .replace('__START__', this.start)\n .replace('__END__', this.end);\n\n var currentLocation = decodeURIComponent(this.useHash ? window.location.hash.replace(/^#/, '?') : window.location.search) + '&';\n\n var newLocation = (\n currentLocation.match(this.paramRegex)\n ? currentLocation.replace(this.paramRegex, '$1' + location + '$5').slice(0, -1)\n : currentLocation + location\n );\n\n if (this.useHash) {\n newLocation = newLocation.replace(/^[&?]/, '');\n } else if (newLocation.indexOf('?') !== 0) {\n newLocation = '?' + newLocation.replace(/^&/, '');\n }\n\n return newLocation;\n },\n\n getChromosomeSize: function (chr) {\n return chr && this.genome && this.genome[chr] ? this.genome[chr].size : this.chromosomeSize;\n },\n\n supported: function () {\n var el = document.createElement('canvas');\n return !!(el.getContext && el.getContext('2d'));\n },\n\n die: function (error, el) {\n if (el && el.length) {\n el.html(error);\n } else {\n throw error;\n }\n\n this.failed = true;\n },\n\n menuTemplate: $(\n '<div class=\"gv-menu\">' +\n '<div class=\"gv-close gv-menu-button fas fa-times-circle\"></div>' +\n '<div class=\"gv-menu-loading\">Loading...</div>' +\n '<div class=\"gv-menu-error\">An error has occurred</div>' +\n '<div class=\"gv-menu-content\">' +\n '<div class=\"gv-title\"></div>' +\n '<table class=\"gv-focus-highlight\">' +\n '<tr>' +\n '<td><a class=\"gv-focus\" href=\"#\">Focus here</a></td>' +\n '<td><a class=\"gv-highlight\" href=\"#\">Highlight this feature</a></td>' +\n '</tr>' +\n '</table>' +\n '<table></table>' +\n '</div>' +\n '</div>'\n ).on('click', function (e) {\n if ($(e.target).hasClass('gv-close')) {\n $(this).fadeOut('fast', function () {\n var data = $(this).data();\n\n if (data.track) {\n data.track.prop('menus', data.track.prop('menus').not(this));\n }\n\n data.browser.menus = data.browser.menus.not(this);\n });\n }\n }),\n\n makeMenu: function (features, event, track) {\n if (!features) {\n return false;\n }\n\n if (!Array.isArray(features)) {\n features = [ features ];\n }\n\n if (features.length === 0) {\n return false;\n }\n\n if (features.length === 1) {\n return this.makeFeatureMenu(features[0], event, track);\n }\n\n var browser = this;\n var menu = this.menuTemplate.clone(true).data({ browser: this });\n var contentEl = $('.gv-menu-content', menu).addClass('gv-menu-content-first');\n var table = $('table:not(.gv-focus-highlight)', contentEl);\n\n $('.gv-focus-highlight, .gv-menu-loading', menu).remove();\n $('.gv-title', menu).html(features.length + ' features');\n\n $.each(\n track ? track.model.sortFeatures(features) : features.sort(function (a, b) { return a.start - b.start; }),\n function (i, feature) {\n var location = feature.chr + ':' + feature.start + (feature.end === feature.start ? '' : '-' + feature.end);\n var title = feature.menuLabel || feature.name || (Array.isArray(feature.label) ? feature.label.join(' ') : feature.label) || (feature.id + '');\n\n $('<a href=\"#\">').html(title.match(location) ? title : (location + ' ' + title)).on('click', function (e) {\n browser.makeFeatureMenu(feature, e, track);\n return false;\n }).appendTo($('<td>').appendTo($('<tr>').appendTo(table)));\n }\n );\n\n $('<div class=\"gv-menu-scroll-wrapper\">').append(table).appendTo(contentEl);\n\n menu.appendTo(this.superContainer || this.container).show();\n\n if (event) {\n menu.css({ left: 0, top: 0 }).position({ of: event, my: 'left top', collision: 'flipfit' });\n }\n\n this.menus = this.menus.add(menu);\n\n if (track) {\n track.prop('menus', track.prop('menus').add(menu));\n }\n\n return menu;\n },\n\n makeFeatureMenu: function (feature, e, track) {\n var browser = this;\n var container = this.superContainer || this.container;\n var menu, content, loading, getMenu, isDeferred, i, j, el, chr, start, end, linkData, key, columns, colspan;\n\n function focus() {\n var data = $(this).data();\n var length = data.end - data.start + 1;\n var context = Math.max(Math.round(length / 4), 25);\n\n browser.moveTo(data.chr, data.start - context, data.end + context, true);\n\n return false;\n }\n\n function highlight() {\n browser.addHighlight($(this).data());\n return false;\n }\n\n if (!feature.menuEl || feature.menuEl.data('hasErrored') === true) {\n menu = browser.menuTemplate.clone(true).data({ browser: browser, feature: feature });\n content = $('.gv-menu-content', menu).remove();\n loading = $('.gv-menu-loading', menu);\n\n try {\n getMenu = track ? track.controller.populateMenu(feature) : feature;\n } catch (error) {\n getMenu = $.Deferred().reject(error);\n menu.data('hasErrored', true);\n }\n\n isDeferred = typeof getMenu === 'object' && typeof getMenu.promise === 'function';\n\n if (!isDeferred) {\n loading.hide();\n }\n\n $.when(getMenu).done(function (properties) {\n var table;\n\n if (!Array.isArray(properties)) {\n properties = [ properties ];\n }\n\n for (i = 0; i < properties.length; i++) {\n table = '';\n el = content.clone().addClass(i ? '' : 'gv-menu-content-first').appendTo(menu);\n chr = typeof properties[i].chr !== 'undefined' ? properties[i].chr : feature.chr;\n start = parseInt(typeof properties[i].start !== 'undefined' ? properties[i].start : feature.start, 10);\n end = parseInt(typeof properties[i].end !== 'undefined' ? properties[i].end : feature.end, 10);\n columns = Math.max.apply(Math, $.map(properties[i], function (v) { return Array.isArray(v) ? v.length : 1; }));\n\n $('.gv-title', el)[properties[i].title ? 'html' : 'remove'](properties[i].title);\n\n if (track && start && end && !browser.isStatic) {\n linkData = { chr: chr, start: start, end: Math.max(end, start), label: feature.label || (properties[i].title || '').replace(/<[^>]+>/g, ''), color: feature.color };\n\n $('.gv-focus', el).data(linkData).on('click', focus);\n $('.gv-highlight', el).data(linkData).on('click', highlight);\n } else {\n $('.gv-focus-highlight', el).remove();\n }\n\n for (key in properties[i]) {\n if (/^start|end$/.test(key) && properties[i][key] === false) {\n continue;\n }\n\n if (key !== 'title') {\n colspan = properties[i][key] === '' ? ' colspan=\"' + (columns + 1) + '\"' : '';\n table += '<tr><td' + colspan + '>' + key + '</td>';\n\n if (!colspan) {\n if (Array.isArray(properties[i][key])) {\n for (j = 0; j < properties[i][key].length; j++) {\n table += '<td>' + properties[i][key][j] + '</td>';\n }\n } else if (columns === 1) {\n table += '<td>' + properties[i][key] + '</td>';\n } else {\n table += '<td colspan=\"' + columns + '\">' + properties[i][key] + '</td>';\n }\n }\n\n table += '</tr>';\n }\n }\n\n $('table:not(.gv-focus-highlight)', el)[table ? 'html' : 'remove'](table);\n }\n\n if (isDeferred) {\n loading.hide();\n }\n }).fail(function (error) {\n loading.hide();\n menu.data('hasErrored', true);\n $('.gv-menu-error', menu).css('display', 'block');\n console.error(error); // eslint-disable-line no-console\n });\n\n if (track) {\n menu.addClass(track.id).data('track', track);\n }\n\n feature.menuEl = menu.appendTo(container);\n } else {\n feature.menuEl.appendTo(container); // Move the menu to the end of the container again, so that it will always be on top of other menus\n }\n\n browser.menus = browser.menus.add(feature.menuEl);\n\n if (track) {\n track.prop('menus', track.prop('menus').add(feature.menuEl));\n }\n\n feature.menuEl.show(); // Must show before positioning, else position will be wrong\n\n if (e) {\n feature.menuEl.css({ left: 0, top: 0 }).position({ of: e, my: 'left top', collision: 'flipfit' });\n }\n\n return feature.menuEl;\n },\n\n closeMenus: function (obj) {\n obj = obj || this;\n\n obj.menus.filter(':visible').children('.gv-close').trigger('click');\n obj.menus = $();\n },\n\n hideMessages: function () {\n if (this.autoHideMessages) {\n this.wrapper.find('.gv-message-container').addClass('gv-collapsed');\n }\n },\n\n getSelectorPosition: function () {\n var left = this.selector.position().left;\n var width = this.selector.outerWidth(true);\n var start = Math.round(left / this.scale) + this.start;\n var end = Math.round((left + width) / this.scale) + this.start - 1;\n end = end <= start ? start : end;\n\n return { start: start, end: end, left: left, width: width };\n },\n\n addHighlight: function (highlight) {\n this.addHighlights([ highlight ]);\n },\n\n addHighlights: function (highlights) {\n if (!this.tracksById.highlights) {\n this.addTrack(Genoverse.Track.HighlightRegion);\n }\n\n this.tracksById.highlights.addHighlights(highlights);\n },\n\n on: function (events, obj, fn, once) {\n var browser = this;\n var eventMap = {};\n var i, j, f, fnString, event;\n\n function makeEventMap(types, handler) {\n types = types.split(' ');\n\n for (j = 0; j < types.length; j++) {\n eventMap[types[j]] = (eventMap[types[j]] || []).concat(handler);\n }\n }\n\n function makeFnString(func) {\n return func.toString();\n }\n\n function compare(func) {\n f = func.toString();\n\n for (j = 0; j < fnString.length; j++) {\n if (f === fnString[j]) {\n return true;\n }\n }\n }\n\n if (typeof events === 'object') {\n for (i in events) {\n makeEventMap(i, events[i]);\n }\n\n obj = obj || this;\n } else {\n if (typeof fn === 'undefined') {\n fn = obj;\n obj = this;\n }\n\n makeEventMap(events, fn);\n }\n\n var type = obj instanceof Genoverse.Track || obj === 'tracks' ? 'tracks' : 'browser';\n\n for (i in eventMap) {\n event = i + (once ? '.once' : '');\n\n browser.events[type][event] = browser.events[type][event] || [];\n fnString = $.map(eventMap[i], makeFnString);\n\n if (!$.grep(browser.events[type][event], compare).length) {\n browser.events[type][event].push.apply(browser.events[type][event], eventMap[i]);\n }\n }\n },\n\n once: function (events, obj, fn) {\n this.on(events, obj, fn, true);\n },\n\n destroy: function () {\n this.onTracks('destructor');\n (this.superContainer || this.container).empty();\n\n if (this.zoomInHighlight) {\n this.zoomInHighlight.add(this.zoomOutHighlight).remove();\n }\n\n this.container.off(this.eventNamespace);\n $(window).add(document).off(this.eventNamespace);\n\n for (var key in this) {\n delete this[key];\n }\n }\n}, $.extend({\n id : 0,\n ready : $.Deferred(),\n origin : (($('script[src]').filter(function () { return /\\/(?:Genoverse|genoverse\\.min.*)\\.js$/.test(this.src); }).attr('src') || '').match(/(.*)js\\/\\w+/) || [])[1] || '',\n Genomes : {},\n Plugins : {},\n\n wrapFunctions: function (obj) {\n for (var key in obj) {\n if (typeof obj[key] === 'function' && typeof obj[key].ancestor !== 'function' && !key.match(/^(base|extend|constructor|on|once|prop|loadPlugins|loadGenome)$/)) {\n Genoverse.functionWrap(key, obj);\n }\n }\n },\n\n /**\n * functionWrap - wraps event handlers and adds debugging functionality\n */\n functionWrap: function (key, obj) {\n obj.functions = obj.functions || {};\n\n if (obj.functions[key] || /^(before|after)/.test(key)) {\n return;\n }\n\n var func = key.substring(0, 1).toUpperCase() + key.substring(1);\n var isBrowser = obj instanceof Genoverse;\n var mainObj = isBrowser || obj instanceof Genoverse.Track ? obj : obj.track;\n var events = isBrowser ? obj.events.browser : obj.browser.events.tracks;\n var debug;\n\n if (mainObj.debug) {\n debug = [ isBrowser ? 'Genoverse' : mainObj.id || mainObj.name || 'Track' ];\n\n if (!isBrowser && obj !== mainObj) {\n debug.push(obj instanceof Genoverse.Track.Controller ? 'Controller' : obj instanceof Genoverse.Track.Model ? 'Model' : 'View');\n }\n\n debug = debug.concat(key).join('.');\n }\n\n obj.functions[key] = obj[key];\n\n obj[key] = function () {\n var args = [].slice.call(arguments);\n var currentConfig = (this._currentConfig || (this.track ? this.track._currentConfig : {}) || {}).func;\n var rtn;\n\n // Debugging functionality\n // Enabled by \"debug\": true || 'time' || { functionName: true, ...} option\n if (mainObj.debug === true) { // if \"debug\": true, simply log function call\n console.log(debug); // eslint-disable-line no-console\n } else if (mainObj.debug === 'time' || (typeof mainObj.debug === 'object' && mainObj.debug[key])) { // if debug: 'time' || { functionName: true, ...}, log function time\n console.time('time: ' + debug); // eslint-disable-line no-console\n }\n\n function trigger(when) {\n var once = events[when + func + '.once'] || [];\n var funcs = (events[when + func] || []).concat(once, typeof mainObj[when + func] === 'function' ? mainObj[when + func] : []);\n\n if (once.length) {\n delete events[when + func + '.once'];\n }\n\n for (var i = 0; i < funcs.length; i++) {\n funcs[i].apply(this, args);\n }\n }\n\n trigger.call(this, 'before');\n\n if (currentConfig && currentConfig[key]) {\n // override to add a value for this.base\n rtn = function () {\n this.base = this.functions[key] || function () {};\n return currentConfig[key].apply(this, arguments);\n }.apply(this, args);\n } else {\n rtn = this.functions[key].apply(this, args);\n }\n\n trigger.call(this, 'after');\n\n if (mainObj.debug === 'time' || (typeof mainObj.debug === 'object' && mainObj.debug[key])) {\n console.timeEnd('time: ' + debug); // eslint-disable-line no-console\n }\n\n return rtn;\n };\n },\n\n getAllTrackTypes: function (namespace, n) {\n namespace = namespace || Genoverse.Track;\n\n if (n) {\n namespace = namespace[n];\n }\n\n if (!namespace) {\n return [];\n }\n\n var trackTypes = {};\n\n $.each(namespace, function (type, func) {\n if (typeof func === 'function' && !Base[type] && !/^(Controller|Model|View)$/.test(type)) {\n $.each(Genoverse.getAllTrackTypes(namespace, type), function (subtype, fn) {\n if (typeof fn === 'function') {\n trackTypes[type + '.' + subtype] = fn;\n }\n });\n\n trackTypes[type] = func;\n }\n });\n\n return trackTypes;\n },\n\n getTrackNamespace: function (track) {\n var trackTypes = Genoverse.getAllTrackTypes();\n var namespaces = $.map(trackTypes, function (constructor, name) { return track === constructor || track.prototype instanceof constructor ? name : null; }); // Find all namespaces which this track could be\n var j = namespaces.length;\n var i;\n\n // Find the most specific namespace for this track - the one which isn't a parent of any other namespaces this track could be\n while (namespaces.length > 1) {\n for (i = 0; i < namespaces.length - 1; i++) {\n if (trackTypes[namespaces[i]].prototype instanceof trackTypes[namespaces[i + 1]]) {\n namespaces.splice(i + 1, 1);\n break;\n } else if (trackTypes[namespaces[i + 1]].prototype instanceof trackTypes[namespaces[i]]) {\n namespaces.splice(i, 1);\n break;\n }\n }\n\n if (j-- < 0) {\n break; // Stop infinite loop if something went really wrong\n }\n }\n\n return namespaces[0];\n }\n}, window.genoverseLoadOptions || {}));\n\n$(function () {\n var cssReady = $.Deferred();\n var fontAwesomeReady = $.Deferred();\n\n if (Genoverse.loadCSS === false || $('link[href^=\"' + Genoverse.origin + 'css/genoverse.css\"]').length) {\n cssReady.resolve();\n } else {\n $('<link href=\"' + Genoverse.origin + 'css/genoverse.css\" rel=\"stylesheet\">').prependTo('body').on('load', cssReady.resolve);\n }\n\n if (Genoverse.loadFontAwesome === false || $('link[href^=\"' + Genoverse.origin + 'css/font-awesome.css\"]').length) {\n fontAwesomeReady.resolve();\n } else {\n $('<link href=\"' + Genoverse.origin + 'css/font-awesome.css\" rel=\"stylesheet\">').prependTo('body').on('load', fontAwesomeReady.resolve);\n }\n\n $.when(cssReady, fontAwesomeReady).done(Genoverse.ready.resolve);\n});\n\nwindow.Genoverse = Genoverse;\n\nif (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = Genoverse;\n}\n","Genoverse.Track = Base.extend({\n height : 12, // The height of the gv-track-container div\n margin : 2, // The spacing between this track and the next\n resizable : true, // Is the track resizable - can be true, false or 'auto'. Auto means the track will automatically resize to show all features, but the user cannot resize it themselves.\n border : true, // Does the track have a bottom border\n unsortable : false, // Is the track unsortable by the user\n fixedOrder : false, // Is the track unsortable by the user or automatically - use for tracks which always need to go at the top/bottom\n invert : false, // If true, features are drawn from the bottom of the track, rather than from the top. This is actually achieved by performing a CSS transform on the gv-image-container div\n legend : false, // Does the track have a legend - can be true, false, or a Genoverse.Track.Legend extension/child class.\n children : undefined, // Does the track have any child tracks - can be one or an array of Genoverse.Track extension/child classes.\n name : undefined, // The name of the track, which appears in its label\n autoHeight : undefined, // Does the track automatically resize so that all the features are visible\n hideEmpty : undefined, // If the track automatically resizes, should it be hidden when there are no features, or should an empty track still be shown\n\n constructor: function (config) {\n if (this.stranded || config.stranded) {\n this.controller = this.controller || Genoverse.Track.Controller.Stranded;\n this.model = this.model || Genoverse.Track.Model.Stranded;\n }\n\n this.models = {};\n this.views = {};\n\n this.setInterface();\n this.extend(config);\n this.setDefaults();\n this.setEvents();\n\n Genoverse.wrapFunctions(this);\n\n this.setLengthMap();\n this.setMVC();\n\n if (this.browser.scale > 0) {\n this.controller.setScale();\n this.controller.makeFirstImage();\n }\n\n if (this.children) {\n this.addChildTracks();\n }\n\n if (this.legend) {\n this.addLegend();\n }\n },\n\n setEvents: $.noop,\n\n setDefaults: function () {\n this.config = this.config || {};\n this.configSettings = this.configSettings || {};\n this.defaultConfig = this.defaultConfig || {};\n this.controls = this.controls || [];\n this.defaultName = this.name;\n this.configName = [];\n this.defaultHeight = this.height;\n this.defaultAutoHeight = this.autoHeight;\n this.autoHeight = typeof this.autoHeight !== 'undefined' ? this.autoHeight : this.browser.trackAutoHeight;\n this.hideEmpty = typeof this.hideEmpty !== 'undefined' ? this.hideEmpty : this.browser.hideEmptyTracks;\n this.height += this.margin;\n this.initialHeight = this.height;\n\n if (this.resizable === 'auto') {\n this.autoHeight = true;\n }\n\n this.setDefaultConfig();\n },\n\n setDefaultConfig: function () {\n for (var i in this.defaultConfig) {\n if (typeof this.config[i] === 'undefined') {\n this.config[i] = this.defaultConfig[i];\n }\n }\n\n this._setCurrentConfig();\n },\n\n setInterface: function () {\n var mvc = [ 'Controller', 'Model', 'View', 'controller', 'model', 'view' ];\n var prop;\n\n this._interface = {};\n\n for (var i = 0; i < 3; i++) {\n for (prop in Genoverse.Track[mvc[i]].prototype) {\n if (!/^(constructor|init|reset|setDefaults|base|extend|lengthMap)$/.test(prop)) {\n this._interface[prop] = mvc[i + 3];\n }\n }\n }\n },\n\n setMVC: function () {\n if (this.model && typeof this.model.abort === 'function') { // TODO: don't abort unless model is changed?\n this.model.abort();\n }\n\n this._defaults = this._defaults || {};\n\n var settings = $.extend(true, {}, this.constructor.prototype, this.getSettingsForLength()[1]); // model, view, options\n var controllerSettings = { prop: {}, func: {} };\n var trackSettings = {};\n var i;\n\n settings.controller = settings.controller || this.controller || Genoverse.Track.Controller;\n\n for (i in settings) {\n if (!/^(constructor|init|reset|setDefaults|base|extend|lengthMap)$/.test(i) && isNaN(i)) {\n if (this._interface[i] === 'controller') {\n controllerSettings[typeof settings[i] === 'function' ? 'func' : 'prop'][i] = settings[i];\n } else if (!Genoverse.Track.prototype.hasOwnProperty(i) && !/^(controller|models|views|config|disabled)$/.test(i)) { // If we allow trackSettings to overwrite the MVC properties, we will potentially lose of information about instantiated objects that the track needs to perform future switching correctly.\n if (typeof this._defaults[i] === 'undefined') {\n this._defaults[i] = this[i];\n }\n\n trackSettings[i] = settings[i];\n }\n }\n }\n\n for (i in this._defaults) {\n if (typeof trackSettings[i] === 'undefined') {\n trackSettings[i] = this._defaults[i];\n }\n }\n\n // If there are configSettings for the track, ensure that any properties in _currentConfig are set for the model/view/controller/track as appropriate.\n // Functions in _currentConfig are accessed via Genoverse.functionWrap, so nothing needs to be done with them here.\n if (!$.isEmptyObject(this._currentConfig)) {\n var changed = {};\n var type;\n\n for (i in this._currentConfig.prop) {\n type = this._interface[i];\n\n if (/model|view/.test(type)) {\n if (trackSettings[type][i] !== this._currentConfig.prop[i]) {\n trackSettings[type][i] = this._currentConfig.prop[i];\n changed[type] = true;\n }\n } else if (type === 'controller') {\n controllerSettings.prop[i] = this._currentConfig.prop[i];\n } else {\n trackSettings[i] = this._currentConfig.prop[i];\n }\n }\n\n for (type in changed) {\n trackSettings[type].setDefaults(true);\n }\n }\n\n /*\n * Abandon all hope! If you've tracked a bug to this line of code, be afraid.\n * It will almost certainly be due to the wonderful way the javascript objects work.\n *\n * Consider the following:\n *\n * var Obj = function () {};\n *\n * Obj.prototype = {\n * scalar : 1,\n * array : [ 1, 2, 3 ],\n * hash : { a: 1, b : 2 }\n * };\n *\n * var x = new Obj();\n *\n * x.scalar = 10;\n * x.array[0] = 10;\n * x.hash.a = 10;\n *\n * var y = new Obj();\n *\n * y is now { scalar: 1, array: [ 10, 2, 3 ], hash: { a: 10, b : 2 } }, since memory locations of objects in prototypes are shared.\n *\n * This has been the cause of numerous Genoverse bugs in the past, due to property sharing between different tracks, models, views, and controllers.\n */\n this.extend(trackSettings);\n\n this.model.setChrProps(); // make sure the data stores for the current chromsome are being used\n\n if (!this.controller || typeof this.controller === 'function') {\n this.controller = this.newMVC(settings.controller, controllerSettings.func, $.extend(controllerSettings.prop, { model: this.model, view: this.view }));\n } else {\n controllerSettings.prop.threshold = controllerSettings.prop.threshold || this.controller.constructor.prototype.threshold;\n $.extend(this.controller, controllerSettings.prop, { model: this.model, view: this.view });\n }\n },\n\n newMVC: function (object, functions, properties) {\n return new (object.extend(\n $.extend(true, {}, object.prototype, functions, {\n prop: $.proxy(this.prop, this)\n })\n ))(\n $.extend(properties, {\n browser : this.browser,\n width : this.width,\n track : this\n })\n );\n },\n\n setLengthMap: function () {\n var mv = [ 'model', 'view' ];\n var lengthMap = [];\n var models = {};\n var views = {};\n var settings, value, deepCopy, prevLengthMap, mvSettings, type, prevType, i, j;\n\n function compare(a, b) {\n var checked = { browser: true, width: true, track: true }; // Properties set in newMVC should be ignored, as they will be missing if comparing an object with a prototype\n var key;\n\n for (key in a) {\n if (checked[key]) {\n continue;\n }\n\n checked[key] = true;\n\n if (typeof a[key] !== typeof b[key]) {\n return false;\n }\n\n if (typeof a[key] === 'function' && typeof b[key] === 'function') {\n if (a[key].toString() !== b[key].toString()) {\n return false;\n }\n } else if (typeof a[key] === 'object' && !(a[key] instanceof $) && !compare(a[key], b[key])) {\n return false;\n } else if (a[key] !== b[key]) {\n return false;\n }\n }\n\n for (key in b) {\n if (!checked[key]) {\n return false;\n }\n }\n\n return true;\n }\n\n // Find all scale-map like keys\n for (var key in this) {\n if (!isNaN(key)) {\n key = parseInt(key, 10);\n value = this[key];\n\n lengthMap.push([ key, value === false ? { threshold: key, resizable: 'auto', featureHeight: 0, model: Genoverse.Track.Model, view: Genoverse.Track.View } : $.extend(true, {}, value) ]);\n }\n }\n\n // Force at least one lengthMap entry to exist, containing the base model and view. lengthMap entries above -1 without a model or view will inherit from -1.\n lengthMap.push([ -1, { view: this.view || Genoverse.Track.View, model: this.model || Genoverse.Track.Model }]);\n\n lengthMap = lengthMap.sort(function (a, b) { return b[0] - a[0]; });\n\n for (i = 0; i < lengthMap.length; i++) {\n if (lengthMap[i][1].model && lengthMap[i][1].view) {\n continue;\n }\n\n deepCopy = {};\n\n if (lengthMap[i][0] !== -1) {\n for (j in lengthMap[i][1]) {\n if (this._interface[j]) {\n deepCopy[this._interface[j]] = true;\n }\n\n if (deepCopy.model && deepCopy.view) {\n break;\n }\n }\n }\n\n // Ensure that every lengthMap entry has a model and view property, copying them from entries with smaller lengths if needed.\n for (j = i + 1; j < lengthMap.length; j++) {\n if (!lengthMap[i][1].model && lengthMap[j][1].model) {\n lengthMap[i][1].model = deepCopy.model ? Genoverse.Track.Model.extend($.extend(true, {}, lengthMap[j][1].model.prototype)) : lengthMap[j][1].model;\n }\n\n if (!lengthMap[i][1].view && lengthMap[j][1].view) {\n lengthMap[i][1].view = deepCopy.view ? Genoverse.Track.View.extend($.extend(true, {}, lengthMap[j][1].view.prototype)) : lengthMap[j][1].view;\n }\n\n if (lengthMap[i][1].model && lengthMap[i][1].view) {\n break;\n }\n }\n }\n\n // Now every lengthMap entry has a model and a view class, create instances of those classes.\n for (i = 0; i < lengthMap.length; i++) {\n prevLengthMap = lengthMap[i - 1] ? lengthMap[i - 1][1] : {};\n settings = $.extend(true, {}, this.constructor.prototype, lengthMap[i][1]);\n mvSettings = { model: { prop: {}, func: {} }, view: { prop: {}, func: {} } };\n\n // Work out which settings belong to models or views\n for (j in settings) {\n if (j !== 'constructor' && mvSettings[this._interface[j]]) {\n mvSettings[this._interface[j]][typeof settings[j] === 'function' ? 'func' : 'prop'][j] = settings[j];\n }\n }\n\n // Create models and views, if settings.model or settings.view is a class rather than an instance\n for (j = 0; j < mv.length; j++) {\n type = mv[j];\n\n if (typeof settings[type] === 'function') {\n prevType = this[mv[j] + 's'];\n\n // If the previous lengthMap contains an instance of the class in settings, it can be reused.\n // This allows sharing of models and views between lengthMap entries if they are the same, stopping the need to fetch identical data or draw identical images more than once\n if (prevLengthMap[type] instanceof settings[type]) {\n settings[type] = prevLengthMap[type];\n } else {\n // Make an instance of the model/view, based on the settings[type] class but with a prototype that contains the functions in mvSettings[type].func\n settings[type] = this.newMVC(settings[type], mvSettings[type].func, mvSettings[type].prop);\n\n // If the track already has this.models/this.views and the prototype of the new model/view is the same as the value of this.models/this.views for the same length key, reuse that value.\n // This can happen if the track has configSettings and the user changes config but that only affects one of the model and view.\n // Again, reusing the old value stops the need to fetch identical data or draw identical images more than once.\n if (prevType[lengthMap[i][0]] && compare(prevType[lengthMap[i][0]].constructor.prototype, $.extend({}, settings[type].constructor.prototype, mvSettings[type].prop))) {\n settings[type] = prevType[lengthMap[i][0]];\n }\n }\n }\n }\n\n models[lengthMap[i][0]] = lengthMap[i][1].model = settings.model;\n views[lengthMap[i][0]] = lengthMap[i][1].view = settings.view;\n }\n\n this.lengthMap = lengthMap;\n this.models = models;\n this.views = views;\n },\n\n getSettingsForLength: function () {\n var length = this.browser.length || (this.browser.end - this.browser.start + 1);\n\n for (var i = 0; i < this.lengthMap.length; i++) {\n if (length > this.lengthMap[i][0] || (length === 1 && this.lengthMap[i][0] === 1) || (length < 0 && this.lengthMap[i][0] < 0)) {\n return this.lengthMap[i];\n }\n }\n\n return [];\n },\n\n prop: function (key, value) {\n var mvc = [ 'controller', 'model', 'view' ];\n var obj;\n\n if (this._interface[key]) {\n obj = this[this._interface[key]];\n } else {\n for (var i = 0; i < 3; i++) {\n if (this[mvc[i]] && typeof this[mvc[i]][key] !== 'undefined') {\n obj = this[mvc[i]];\n break;\n }\n }\n\n obj = obj || this;\n }\n\n if (typeof value !== 'undefined') {\n if (value === null) {\n delete obj[key];\n } else {\n obj[key] = value;\n }\n }\n\n return obj ? obj[key] : undefined;\n },\n\n setHeight: function (height, forceShow) {\n if (this.disabled || (forceShow !== true && height < this.prop('featureHeight')) || (this.prop('threshold') && !this.prop('thresholdMessage') && this.browser.length > this.prop('threshold'))) {\n height = 0;\n } else {\n height = Math.max(height, this.prop('minLabelHeight'));\n }\n\n this.height = height;\n\n return height;\n },\n\n resetHeight: function () {\n if (this.resizable === true) {\n var resizer = this.prop('resizer');\n\n this.autoHeight = !!([ this.defaultAutoHeight, this.browser.trackAutoHeight ].sort(function (a, b) {\n return (typeof a !== 'undefined' && a !== null ? 0 : 1) - (typeof b !== 'undefined' && b !== null ? 0 : 1);\n })[0]);\n\n this.controller.resize(this.autoHeight ? this.prop('fullVisibleHeight') : this.defaultHeight + this.margin + (resizer ? resizer.height() : 0));\n this.initialHeight = this.height;\n }\n },\n\n setConfig: function (config) {\n if (typeof config === 'string' && arguments.length === 2) {\n var _config = {};\n _config[config] = arguments[1];\n config = _config;\n }\n\n var configChanged = false;\n var conf;\n\n for (var type in config) {\n conf = config[type];\n\n if (typeof this.configSettings[type] === 'undefined' || typeof this.configSettings[type][conf] === 'undefined' || this.config[type] === conf) {\n continue;\n }\n\n this.config[type] = conf;\n\n configChanged = true;\n }\n\n if (configChanged) {\n var features = this.prop('featuresById');\n\n for (var i in features) {\n delete features[i].menuEl;\n }\n\n this._setCurrentConfig();\n\n if (!this.disabled) {\n this.reset.apply(this, configChanged ? [ 'config', config ] : []);\n }\n\n (this.prop('childTracks') || []).forEach(function (track) {\n track.setConfig(config);\n });\n\n this.browser.saveConfig();\n }\n },\n\n _setCurrentConfig: function () {\n var settings = [];\n var featureFilters = [];\n var configName = [];\n var controls = (Array.isArray(this.controls) ? this.controls : []).reduce(function (acc, control) { return acc.add(control); }, $());\n var conf, i;\n\n this._currentConfig = { prop: {}, func: {} };\n\n for (i in this.configSettings) {\n conf = this.getConfig(i);\n\n if (conf) {\n settings.push(conf);\n\n if (conf.featureFilter) {\n featureFilters.push(conf.featureFilter);\n }\n\n configName.push(\n conf.hasOwnProperty('name')\n ? typeof conf.name === 'function' ? conf.name.call(this) : conf.name\n : conf.featureFilter === false\n ? false\n : controls.filter('[data-control=\"' + i + '\"]').find('[value=\"' + this.config[i] + '\"]').html()\n );\n }\n }\n\n if (settings.length) {\n configName = configName.filter(Boolean);\n\n settings = $.extend.apply($, [ true, {}].concat(\n settings,\n {\n featureFilters : featureFilters,\n name : this.defaultName + (configName.length ? ' - ' + configName.join(', ') : ''),\n configName : [ this.defaultName ].concat(configName)\n }\n ));\n\n delete settings.featureFilter;\n }\n\n for (i in settings) {\n this._currentConfig[typeof settings[i] === 'function' && !/^(before|after)/.test(i) ? 'func' : 'prop'][i] = settings[i];\n }\n\n if (settings.name) {\n this.updateName(settings.name, settings.configName);\n }\n },\n\n getConfig: function (type) {\n return this.configSettings[type][this.config[type]];\n },\n\n addChildTracks: function () {\n if (!this.children) {\n return;\n }\n\n var track = this;\n var browser = this.browser;\n var children = (Array.isArray(this.children) ? this.children : [ this.children ]).filter(function (child) { return child.prototype instanceof Genoverse.Track; });\n var config = {\n parentTrack : this,\n controls : 'off',\n threshold : this.prop('threshold')\n };\n\n setTimeout(function () {\n track.childTracks = children.map(function (child) {\n if (child.prototype instanceof Genoverse.Track.Legend || child === Genoverse.Track.Legend) {\n track.addLegend(child.extend(config), true);\n return track.legendTrack;\n }\n\n return browser.addTrack(child.extend(config));\n });\n\n track.controller.setLabelHeight();\n }, 1);\n },\n\n addLegend: function (constructor, now) {\n if (!(constructor || this.legend)) {\n return;\n }\n\n constructor = constructor || (this.legend.prototype instanceof Genoverse.Track.Legend ? this.legend : Genoverse.Track.Legend);\n\n var track = this;\n var legendType = constructor.prototype.shared === true ? Genoverse.getTrackNamespace(constructor) : constructor.prototype.shared || this.id;\n var config = {\n id : legendType + 'Legend',\n name : constructor.prototype.name || (this.defaultName + ' Legend'),\n type : legendType\n };\n\n this.legendType = legendType;\n\n function makeLegendTrack() {\n track.legendTrack = track.browser.legends[config.id] || track.browser.addTrack(constructor.extend(config));\n return track.legendTrack;\n }\n\n if (now === true) {\n makeLegendTrack();\n } else {\n setTimeout(makeLegendTrack, 1);\n }\n },\n\n changeChr: function () {\n for (var i in this.models) {\n this.models[i].setChrProps();\n }\n },\n\n updateName: function (name, configName) { // For ease of use in external code\n if (this.controller && typeof this.controller !== 'function') {\n this.controller.setName(name, configName);\n } else {\n this.name = name;\n this.configName = configName || [];\n }\n },\n\n enable: function () {\n if (this.disabled === true) {\n this.disabled = false;\n this.controller.resize(this.initialHeight);\n this.reset();\n }\n },\n\n disable: function () {\n if (!this.disabled) {\n this.disabled = true;\n this.controller.resize(0);\n }\n },\n\n reset: function () {\n var i;\n\n this.setLengthMap();\n\n for (i in this.models) {\n if (this.models[i].url !== false) {\n this.models[i].init(true);\n }\n }\n\n for (i in this.views) {\n this.views[i].init();\n }\n\n this.controller.reset.apply(this.controller, arguments);\n },\n\n remove: function () {\n this.browser.removeTrack(this);\n },\n\n destructor: function () {\n this.controller.destroy();\n\n var objs = [ this.view, this.model, this.controller, this ];\n\n for (var obj in objs) {\n for (var key in obj) {\n delete obj[key];\n }\n }\n }\n});\n","Genoverse.Track.Controller = Base.extend({\n scrollBuffer : 1.2, // Number of widths, if left or right closer to the edges of viewpoint than the buffer, start making more images\n threshold : Infinity, // Length above which the track is not drawn\n clickTolerance : 0, // pixels of tolerance added to a click position when finding features for popup menus, when scale < 1\n messages : undefined,\n\n constructor: function (properties) {\n $.extend(this, properties);\n Genoverse.wrapFunctions(this);\n this.init();\n },\n\n init: function () {\n this.setDefaults();\n this.addDomElements();\n this.addUserEventHandlers();\n\n this.deferreds = []; // tracks deferreds so they can be stopped if the track is destroyed\n },\n\n setDefaults: function () {\n this.imgRange = {};\n this.scrollRange = {};\n this.messages = this.messages || {\n error : 'ERROR: ',\n threshold : 'Data for this track is not displayed in regions greater than ',\n resize : 'Some features are currently hidden, <a class=\"gv-resize\">resize to see all</a>'\n };\n },\n\n reset: function () {\n this.abort();\n this.setDefaults();\n this.resetImages();\n this.browser.closeMenus(this);\n\n if (arguments[0] !== 'resizing') {\n this.setScale();\n this.makeFirstImage();\n }\n },\n\n resetImages: function () {\n this.scrollContainer.empty();\n this.resetImageRanges();\n },\n\n resetImageRanges: function () {\n var browser = this.browser;\n\n this.left = 0;\n this.scrollStart = [ 'ss', browser.chr, browser.start, browser.end ].join('-');\n\n this.imgRange[this.scrollStart] = this.imgRange[this.scrollStart] || { left: this.width * -2, right: this.width * 2 };\n this.scrollRange[this.scrollStart] = this.scrollRange[this.scrollStart] || { start: Math.max(browser.start - browser.length, 1), end: Math.min(browser.end + browser.length, browser.chromosomeSize) };\n },\n\n setName: function (name, configName) {\n this.track.name = name;\n this.labelName = this.labelName || $('<span class=\"gv-name\">').appendTo(this.label);\n\n this.labelName.attr('title', name).html(\n configName && configName.length\n ? configName.map(function (part) { return '<span class=\"gv-name-part\">' + part + '</span>'; })\n : name\n );\n\n this.minLabelHeight = this.label.parents('body').length ? Math.max(this.labelName.outerHeight(true), this.labelName.outerHeight()) : 0;\n\n this.setLabelHeight(true);\n\n if (name && !this.track._constructing && this.track.height < this.minLabelHeight) {\n this.resize(this.minLabelHeight);\n }\n },\n\n addDomElements: function () {\n var name = this.track.name || '';\n\n this.menus = $();\n this.container = $('<div class=\"gv-track-container\">').appendTo(this.browser.wrapper);\n this.scrollContainer = $('<div class=\"gv-scroll-container\">').appendTo(this.container);\n this.imgContainer = $('<div class=\"gv-image-container\">').width(this.width).addClass(this.prop('invert') ? 'gv-invert' : '');\n this.messageContainer = $('<div class=\"gv-message-container\"><div class=\"gv-messages\"></div><i class=\"gv-control gv-collapse fas fa-angle-double-left\"></i><i class=\"gv-control gv-expand fas fa-angle-double-right\"></i></div>').appendTo(this.container);\n this.label = $('<li>').appendTo(this.browser.labelContainer).height(this.prop('height')).data('track', this.track);\n this.context = $('<canvas>')[0].getContext('2d');\n\n if (this.prop('border')) {\n $('<div class=\"gv-track-border\">').appendTo(this.container);\n }\n\n if (this.prop('unsortable')) {\n this.label.addClass('gv-unsortable');\n } else {\n $('<div class=\"gv-handle\">').appendTo(this.label);\n }\n\n if (this.prop('children')) {\n this.superContainer = $('<div class=\"gv-track-container gv-track-super-container\">').insertAfter(this.container);\n this.container.appendTo(this.superContainer);\n } else if (this.prop('parentTrack')) {\n this.superContainer = this.prop('parentTrack').prop('superContainer');\n\n this.container.appendTo(this.superContainer);\n this.label.remove();\n\n this.label = this.prop('parentTrack').prop('label');\n }\n\n this.setName(name, this.track.configName);\n\n this.container.height(this.prop('disabled') ? 0 : Math.max(this.prop('height'), this.minLabelHeight));\n },\n\n addUserEventHandlers: function () {\n var controller = this;\n var browser = this.browser;\n\n this.container.on('mouseup', '.gv-image-container', function (e) {\n if ((e.which && e.which !== 1) || (typeof browser.dragStart === 'number' && browser.start !== browser.dragStart) || (browser.dragAction === 'select' && browser.selector.outerWidth(true) > 2)) {\n return; // Only show menus on left click when not dragging and not selecting\n }\n\n controller.click(e);\n });\n\n this.messageContainer.children().on('click', function () {\n var collapsed = controller.messageContainer.children('.gv-messages').is(':visible') ? ' gv-collapsed' : '';\n var code = controller.messageContainer.find('.gv-msg').data('code');\n\n controller.messageContainer.attr('class', 'gv-message-container' + collapsed);\n controller.checkHeight();\n\n if (code !== 'error') {\n document.cookie = [ 'gv_msg', code, controller.prop('id') ].join('_') + '=1; expires=' + (collapsed ? 'Tue, 19 Jan 2038' : 'Thu, 01 Jan 1970') + ' 00:00:00 GMT; path=/';\n }\n });\n },\n\n click: function (e) {\n var target = $(e.target);\n var x = e.pageX - this.container.parent().offset().left + this.browser.scaledStart;\n var y = e.pageY - target.offset().top;\n\n if (this.imgContainer.hasClass('gv-invert')) {\n y = target.height() - y;\n }\n\n return this.browser.makeMenu(this.getClickedFeatures(x, y, target), e, this.track);\n },\n\n getClickedFeatures: function (x, y, target) {\n var bounds = { x: x, y: y, w: 1, h: 1 };\n var scale = this.scale;\n var tolerance = scale < 1 ? this.clickTolerance : 0;\n\n if (tolerance) {\n bounds.x -= tolerance / 2;\n bounds.w += tolerance;\n }\n\n var features = this[target && target.hasClass('gv-labels') ? 'labelPositions' : 'featurePositions'].search(bounds);\n\n if (tolerance) {\n return features.filter(function (f) {\n var featureBounds = f.position[scale].bounds;\n var center = featureBounds.x + (featureBounds.w / 2);\n var minX = Math.min(featureBounds.x, center - (tolerance / 2));\n var maxX = Math.max(featureBounds.x + featureBounds.w, center + (tolerance / 2));\n\n return x >= minX && x <= maxX;\n }).sort(function (a, b) {\n return Math.abs(a.position[scale].start - x) - Math.abs(b.position[scale].start - x);\n });\n }\n\n return this.model.sortFeatures(features);\n },\n\n // FIXME: messages are now hidden/shown instead of removed/added. This will cause a problem if a new message arrives with the same code as one that already exists.\n showMessage: function (code, additionalText) {\n var messages = this.messageContainer.children('.gv-messages');\n\n if (!messages.children('.gv-' + code).show().length) {\n var msg = $('<div class=\"gv-msg gv-' + code + '\">' + this.messages[code] + (additionalText || '') + '</div>').data('code', code).prependTo(messages);\n\n if (code === 'resize') {\n msg.children('a.gv-resize').on('click', $.proxy(function () {\n this.resize(this.fullVisibleHeight);\n }, this));\n }\n\n this.messageContainer[document.cookie.match([ 'gv_msg', code, this.prop('id') ].join('_') + '=1') ? 'addClass' : 'removeClass']('gv-collapsed');\n }\n\n var height = this.messageContainer.show().outerHeight(true);\n\n if (height > this.prop('height')) {\n this.resize(height, undefined, false);\n }\n\n messages = null;\n },\n\n hideMessage: function (code) {\n var messages = this.messageContainer.find('.gv-msg');\n\n if (code) {\n messages = messages.filter('.gv-' + code).hide();\n\n if (messages.length && !messages.siblings().filter(function () { return this.style.display !== 'none'; }).length) {\n this.messageContainer.hide();\n }\n } else {\n messages.hide();\n this.messageContainer.hide();\n }\n\n messages = null;\n },\n\n showError: function (error) {\n this.showMessage('error', error);\n },\n\n checkHeight: function () {\n if (this.browser.length > this.threshold) {\n if (this.thresholdMessage) {\n this.showMessage('threshold', this.thresholdMessage);\n this.fullVisibleHeight = Math.max(this.messageContainer.outerHeight(true), this.minLabelHeight);\n } else {\n this.fullVisibleHeight = 0;\n }\n } else if (this.thresholdMessage) {\n this.hideMessage('threshold');\n }\n\n if (!this.prop('resizable')) {\n return;\n }\n\n var autoHeight;\n\n if (this.browser.length > this.threshold) {\n autoHeight = this.prop('autoHeight');\n this.prop('autoHeight', true);\n } else {\n this.fullVisibleHeight = this.visibleFeatureHeight() || (this.messageContainer.is(':visible') ? this.messageContainer.outerHeight(true) : this.prop('hideEmpty') ? 0 : this.minLabelHeight);\n }\n\n this.autoResize();\n\n if (typeof autoHeight !== 'undefined') {\n this.prop('autoHeight', autoHeight);\n }\n },\n\n visibleFeatureHeight: function () {\n var bounds = { x: this.browser.scaledStart, w: this.width, y: 0, h: 9e99 };\n var scale = this.scale;\n var features = this.featurePositions.search(bounds);\n var minHeight = this.prop('hideEmpty') ? 0 : this.minLabelHeight;\n var height = Math.max.apply(Math, $.map(features, function (feature) { return feature.position[scale].bottom; }).concat(minHeight));\n\n if (this.prop('labels') === 'separate') {\n this.labelTop = height;\n height += Math.max.apply(Math, $.map(this.labelPositions.search(bounds).concat(this.prop('repeatLabels') ? features : []), function (feature) { return feature.position[scale].label.bottom; }).concat(minHeight));\n }\n\n return height;\n },\n\n autoResize: function () {\n var autoHeight = this.prop('autoHeight');\n\n if (autoHeight || this.prop('labels') === 'separate') {\n this.resize(autoHeight ? this.fullVisibleHeight : this.prop('height'), this.labelTop, false);\n } else {\n this.toggleExpander(false);\n }\n },\n\n resize: function (height, arg, saveConfig) {\n height = this.track.setHeight(height, arg);\n\n if (typeof arg === 'number') {\n this.imgContainers.children('.gv-labels').css('top', arg);\n }\n\n this.container.height(height)[height ? 'show' : 'hide']();\n this.setLabelHeight();\n this.toggleExpander();\n\n if (saveConfig !== false) {\n this.browser.saveConfig();\n }\n },\n\n toggleExpander: function (saveConfig) {\n if (this.prop('resizable') !== true) {\n return;\n }\n\n var featureMargin = this.prop('featureMargin');\n var height = this.prop('height');\n\n // Note: fullVisibleHeight - featureMargin.top - featureMargin.bottom is not actually the correct value to test against, but it's the easiest best guess to obtain.\n // fullVisibleHeight is the maximum bottom position of the track's features in the region, which includes margin at the bottom of each feature and label\n // Therefore fullVisibleHeight includes this margin for the bottom-most feature.\n // The correct value (for a track using the default positionFeatures code) is:\n // fullVisibleHeight - ([there are labels in this region] ? (labels === 'separate' ? 0 : featureMargin.bottom + 1) + 2 : featureMargin.bottom)\n if (this.fullVisibleHeight - featureMargin.top - featureMargin.bottom > height && !this.prop('disabled')) {\n this.showMessage('resize');\n\n var controller = this;\n var h = this.messageContainer.outerHeight(true);\n\n if (h > height) {\n this.resize(h, undefined, saveConfig);\n }\n\n this.expander = (this.expander || $('<div class=\"gv-expander gv-static\">').width(this.width).appendTo(this.container).on('click', function () {\n controller.resize(controller.fullVisibleHeight);\n }))[this.prop('height') === 0 ? 'hide' : 'show']();\n } else if (this.expander) {\n this.hideMessage('resize');\n this.expander.hide();\n }\n },\n\n setLabelHeight: function (enforceMinHeight) {\n var parent = this.prop('parentTrack');\n\n if (parent) {\n return parent.controller.setLabelHeight();\n }\n\n var tracks = [ this ].concat(this.prop('childTracks') || []);\n var height = tracks.reduce(function (h, track) { return h + (track.prop('disabled') ? 0 : track.prop('height')); }, 0);\n\n this.label.height(this.prop('disabled') ? 0 : enforceMinHeight && this.minLabelHeight ? Math.max(height, this.minLabelHeight) : height);\n\n if (tracks.length > 1) {\n var top = tracks[0].prop('height');\n\n tracks.slice(1).forEach(function (track) {\n var h = track.prop('height');\n\n track.prop('labelName').css('top', top)[h ? 'removeClass' : 'addClass']('gv-hide');\n top += h;\n });\n }\n },\n\n setWidth: function (width) {\n var track = this.track;\n\n $.each([ this, track, track.model, track.view ], function () {\n this.width = width;\n });\n\n this.imgContainer.add(this.expander).width(width);\n },\n\n setScale: function () {\n var controller = this;\n\n this.scale = this.browser.scale;\n\n this.track.setMVC();\n this.resetImageRanges();\n\n var labels = this.prop('labels');\n\n if (labels && labels !== 'overlay') {\n this.model.setLabelBuffer(this.browser.labelBuffer);\n }\n\n if (this.threshold !== Infinity && this.prop('resizable') !== 'auto') {\n this.thresholdMessage = this.view.formatLabel(this.threshold);\n }\n\n $.each(this.view.setScaleSettings(this.scale), function (k, v) { controller[k] = v; });\n\n this.hideMessage();\n },\n\n move: function (delta) {\n this.left += delta;\n this.scrollContainer.css('left', this.left);\n\n var scrollStart = this.scrollStart;\n\n if (this.imgRange[scrollStart] && this.imgRange[scrollStart].left + this.left > -this.scrollBuffer * this.width) {\n var end = this.scrollRange[scrollStart].start - 1;\n\n this.makeImage({\n scale : this.scale,\n chr : this.browser.chr,\n start : end - this.browser.length + 1,\n end : end,\n left : this.imgRange[scrollStart].left,\n cls : scrollStart\n });\n\n (this.imgRange[scrollStart] || {}).left -= this.width;\n (this.scrollRange[scrollStart] || {}).start -= this.browser.length;\n }\n\n if (this.imgRange[scrollStart] && this.imgRange[scrollStart].right + this.left < this.scrollBuffer * this.width) {\n var start = this.scrollRange[scrollStart].end + 1;\n\n this.makeImage({\n scale : this.scale,\n chr : this.browser.chr,\n start : start,\n end : start + this.browser.length - 1,\n left : this.imgRange[scrollStart].right,\n cls : scrollStart\n });\n\n (this.imgRange[scrollStart] || {}).right += this.width;\n (this.scrollRange[scrollStart] || {}).end += this.browser.length;\n }\n },\n\n moveTo: function (chr, start, end, delta) {\n var scrollRange = this.scrollRange[this.scrollStart];\n var scrollStart = [ 'ss', chr, start, end ].join('-');\n\n if (this.scrollRange[scrollStart] || start > scrollRange.end || end < scrollRange.start) {\n this.resetImageRanges();\n this.makeFirstImage(scrollStart);\n } else {\n this.move(typeof delta === 'number' ? delta : (start - this.browser.start) * this.scale);\n this.checkHeight();\n }\n },\n\n makeImage: function (params) {\n params.scaledStart = params.scaledStart || params.start * params.scale;\n params.width = params.width || this.width;\n params.height = params.height || this.prop('height');\n params.featureHeight = params.featureHeight || 0;\n params.labelHeight = params.labelHeight || 0;\n\n var deferred;\n var controller = this;\n var tooLarge = this.browser.length > this.threshold;\n var div = this.imgContainer.clone().addClass((params.cls + ' gv-loading').replace('.', '_')).css({ left: params.left, display: params.cls === this.scrollStart ? 'block' : 'none' });\n var bgImage = params.background ? $('<img class=\"gv-bg\">').hide().addClass(params.background).data(params).prependTo(div) : false;\n var image = $('<img class=\"gv-data\">').hide().data(params).appendTo(div).on('load', function () {\n $(this).fadeIn('fast').parent().removeClass('gv-loading');\n $(this).siblings('.gv-bg').show();\n });\n\n params.container = div;\n\n this.imgContainers.push(div[0]);\n this.scrollContainer.append(this.imgContainers);\n\n if (!tooLarge && !this.model.checkDataRange(params.chr, params.start, params.end)) {\n var buffer = this.prop('dataBuffer');\n\n params.start -= buffer.start;\n params.end += buffer.end;\n deferred = this.model.getData(params.chr, params.start, params.end);\n }\n\n if (!deferred) {\n deferred = $.Deferred();\n setTimeout($.proxy(deferred.resolve, this), 1); // This defer makes scrolling A LOT smoother, pushing render call to the end of the exec queue\n }\n\n this.deferreds.push(deferred);\n\n return deferred.done(function () {\n var features = tooLarge ? [] : controller.model.findFeatures(params.chr, params.start, params.end);\n controller.render(features, image);\n\n if (bgImage) {\n controller.renderBackground(features, bgImage);\n }\n }).fail(function (e) {\n controller.showError(e);\n });\n },\n\n makeFirstImage: function (moveTo) {\n var deferred = $.Deferred();\n\n if (this.scrollContainer.children().hide().filter('.' + (moveTo || this.scrollStart)).show().length) {\n this.scrollContainer.css('left', 0);\n this.checkHeight();\n\n return deferred.resolve();\n }\n\n var controller = this;\n var chr = this.browser.chr;\n var start = this.browser.start;\n var end = this.browser.end;\n var length = this.browser.length;\n var scale = this.scale;\n var cls = this.scrollStart;\n var images = [{ chr: chr, start: start, end: end, scale: scale, cls: cls, left: 0 }];\n var left = 0;\n var width = this.width;\n\n if (!this.browser.isStatic) {\n if (start > 1) {\n images.push({ chr: chr, start: start - length, end: start - 1, scale: scale, cls: cls, left: -this.width });\n left = -this.width;\n width += this.width;\n }\n\n if (end < this.browser.getChromosomeSize(chr)) {\n images.push({ chr: chr, start: end + 1, end: end + length, scale: scale, cls: cls, left: this.width });\n width += this.width;\n }\n }\n\n var loading = this.imgContainer.clone().addClass('gv-loading').css({ left: left, width: width }).prependTo(this.scrollContainer.css('left', 0));\n\n function makeImages() {\n $.when.apply($, images.map(function (image) {\n return controller.makeImage(image);\n })).done(deferred.resolve);\n\n loading.remove();\n }\n\n if (length > this.threshold || this.model.checkDataRange(chr, start, end)) {\n makeImages();\n } else {\n var buffer = this.prop('dataBuffer');\n\n this.model.getData(chr, start - buffer.start - length, end + buffer.end + length).done(makeImages).fail(function (e) {\n controller.showError(e);\n });\n }\n\n return deferred;\n },\n\n render: function (features, img) {\n var params = img.data();\n\n // positionFeatures alters params.featureHeight, so this must happen before the canvases are created\n features = this.view.positionFeatures(this.view.scaleFeatures(features, params.scale), params);\n\n var featureCanvas = $('<canvas>').attr({ width: params.width, height: params.featureHeight || 1 });\n var labelCanvas = this.prop('labels') === 'separate' && params.labelHeight ? featureCanvas.clone().attr('height', params.labelHeight) : featureCanvas;\n var featureContext = featureCanvas[0].getContext('2d');\n var labelContext = labelCanvas[0].getContext('2d');\n\n featureContext.font = labelContext.font = this.prop('font');\n\n switch (this.prop('labels')) {\n case false : break;\n case 'overlay' : labelContext.textAlign = 'center'; labelContext.textBaseline = 'middle'; break;\n default : labelContext.textAlign = 'left'; labelContext.textBaseline = 'top'; break;\n }\n\n this.view.draw(features, featureContext, labelContext, params.scale);\n\n img.attr('src', featureCanvas[0].toDataURL());\n\n if (labelContext !== featureContext) {\n img.clone(true).attr({ 'class': 'gv-labels', src: labelCanvas[0].toDataURL() }).insertAfter(img);\n }\n\n this.checkHeight();\n\n featureCanvas = labelCanvas = img = null;\n },\n\n renderBackground: function (features, img, height) {\n var canvas = $('<canvas>').attr({ width: this.width, height: height || 1 })[0];\n this.view.drawBackground(features, canvas.getContext('2d'), img.data());\n img.attr('src', canvas.toDataURL());\n canvas = img = null;\n },\n\n populateMenu: function (feature) {\n var f = $.extend(true, {}, feature);\n var menu = {\n title : f.label ? f.label[0] : f.id,\n Location : f.chr + ':' + f.start + '-' + f.end\n };\n\n delete f.chr;\n delete f.start;\n delete f.end;\n delete f.sort;\n\n for (var i in f) {\n if (typeof f[i] === 'object' || menu.title === f[i]) {\n delete f[i];\n }\n }\n\n return $.extend(menu, f);\n },\n\n abort: function () {\n for (var i = 0; i < this.deferreds.length; i++) {\n if (this.deferreds[i].state() === 'pending') {\n this.deferreds[i].reject();\n }\n }\n\n this.deferreds = [];\n },\n\n destroy: function () {\n this.abort();\n this.container.add(this.label).add(this.menus).remove();\n }\n});\n","Genoverse.Track.Controller.Sequence = Genoverse.Track.Controller.extend({\n getClickedFeatures: function (x, y) {\n var feature = this.base(x, y)[0];\n\n return feature ? this.makeSeqFeatureMenu(feature, Math.floor(x / this.scale)) : false;\n },\n\n makeSeqFeatureMenu: function (feature, pos) {\n feature.featureMenus = feature.featureMenus || {};\n feature.featureMenus[pos] = feature.featureMenus[pos] || {\n title : feature.sequence.charAt(pos - feature.start),\n Location : feature.chr + ':' + pos\n };\n\n return feature.featureMenus[pos].title ? feature.featureMenus[pos] : undefined;\n }\n});\n","Genoverse.Track.Controller.Stranded = Genoverse.Track.Controller.extend({\n constructor: function (properties) {\n this.base(properties);\n\n if (typeof this._makeImage === 'function') {\n return;\n }\n\n var strand = this.prop('strand');\n var featureStrand = this.prop('featureStrand');\n\n if (strand === -1) {\n this._makeImage = this.track.makeReverseImage ? $.proxy(this.track.makeReverseImage, this) : this.makeImage;\n this.makeImage = $.noop;\n } else {\n strand = this.prop('strand', 1);\n\n this._makeImage = this.makeImage;\n this.makeImage = this.makeForwardImage;\n\n var track = this.track;\n\n setTimeout(function () {\n track.reverseTrack = track.browser.addTrack(track.constructor.extend({\n id : track.id ? track.id + 'Reverse' : undefined,\n strand : -1,\n url : false,\n order : typeof track.orderReverse === 'number' ? track.orderReverse : track.order,\n forwardTrack : track\n }));\n\n $.each(track.controller._deferredReverseTrackImages, function (i, args) { track.controller._makeReverseTrackImage.apply(track.controller, args); });\n delete track.controller._deferredReverseTrackImages;\n }, 1);\n }\n\n if (!featureStrand) {\n this.prop('featureStrand', strand);\n }\n },\n\n makeForwardImage: function (params) {\n this._makeReverseTrackImage(params, this._makeImage(params));\n },\n\n _makeReverseTrackImage: function (params, deferred) {\n var reverseTrack = this.prop('reverseTrack');\n\n if (!reverseTrack) {\n this._deferredReverseTrackImages = (this._deferredReverseTrackImages || []).concat([[ params, deferred ]]);\n return;\n }\n\n if (deferred && typeof deferred.done === 'function') {\n deferred.done(function () {\n reverseTrack.controller._makeImage(params, deferred);\n });\n } else {\n reverseTrack.controller._makeImage(params, deferred);\n }\n },\n\n destroy: function () {\n if (this.removing) {\n return;\n }\n\n this.removing = true;\n\n this.browser.removeTrack(this.prop('forwardTrack') || this.prop('reverseTrack'));\n this.base();\n }\n});\n","Genoverse.Track.Model = Base.extend({\n dataType : 'json',\n allData : false,\n dataBuffer : undefined, // e.g. { start: 0, end: 0 } - basepairs to extend data region for, when getting data from the origin\n xhrFields : undefined,\n url : undefined,\n urlParams : undefined, // hash of URL params\n urlParamsGenerator : function () { return {}; }, // function to return URL params (only used if urlParams property is falsy)\n data : undefined, // if defined, will be used instead of fetching data from a source\n dataRequestLimit : undefined, // if defined, multiple requests will be made by getData if the region size exceeds its value\n showServerErrors : false, // if true, error messages return from the server by getData requests will be shown on the track\n\n constructor: function (properties) {\n $.extend(this, properties);\n Genoverse.wrapFunctions(this);\n this.init();\n },\n\n init: function (reset) {\n this.setDefaults(reset);\n\n if (reset) {\n for (var i in this.featuresById) {\n delete this.featuresById[i].position;\n }\n }\n\n if (!reset || this.data) {\n delete this.dataRangesByChr;\n delete this.featuresByChr;\n this.featuresById = {};\n this.setChrProps();\n }\n\n this.dataLoading = []; // tracks incomplete requests for data\n },\n\n setDefaults: function (reset) {\n this.dataBuffer = this.dataBuffer || { start: 0, end: 0 }; // basepairs to extend data region for, when getting data from the origin\n this.urlParams = this.urlParams || this.urlParamsGenerator(); // hash of URL params\n this.xhrFields = this.xhrFields || {};\n\n this.dataBufferStart = this.dataBuffer.start; // Remember original dataBuffer.start, since dataBuffer.start is updated based on browser scale, in setLabelBuffer\n\n if (!this._url) {\n this._url = this.url; // Remember original url\n }\n\n if (reset && !this.url && this._url) {\n this.url = this._url;\n }\n },\n\n setChrProps: function () {\n var chr = this.browser.chr;\n\n this.dataRangesByChr = this.dataRangesByChr || {};\n this.featuresByChr = this.featuresByChr || {};\n\n this.dataRangesByChr[chr] = this.dataRangesByChr[chr] || new RTree();\n this.featuresByChr[chr] = this.featuresByChr[chr] || new RTree();\n },\n\n features : function (chr) { return this.featuresByChr[chr]; },\n dataRanges : function (chr) { return this.dataRangesByChr[chr]; },\n\n parseURL: function (chr, start, end, url) {\n if (this.allData) {\n start = 1;\n end = this.browser.getChromosomeSize(chr);\n }\n\n return (url || this.url).replace(/__ASSEMBLY__/, this.browser.assembly).replace(/__CHR__/, chr).replace(/__START__/, start).replace(/__END__/, end);\n },\n\n setLabelBuffer: function (buffer) {\n this.dataBuffer.start = Math.max(this.dataBufferStart, buffer);\n },\n\n getData: function (chr, start, end, done) {\n start = Math.max(1, start);\n end = Math.min(this.browser.getChromosomeSize(chr), end);\n\n var deferred = $.Deferred();\n\n if (typeof this.data !== 'undefined') {\n this.receiveData(typeof this.data.sort === 'function' ? this.data.sort(function (a, b) { return a.start - b.start; }) : this.data, chr, start, end);\n return deferred.resolveWith(this);\n }\n\n var model = this;\n var bins = [];\n var length = end - start + 1;\n\n if (!this.url) {\n return deferred.resolveWith(this);\n }\n\n if (this.dataRequestLimit && length > this.dataRequestLimit) {\n var i = Math.ceil(length / this.dataRequestLimit);\n\n while (i--) {\n bins.push([ start, i ? start += this.dataRequestLimit - 1 : end ]);\n start++;\n }\n } else {\n bins.push([ start, end ]);\n }\n\n $.when.apply($, $.map(bins, function (bin) {\n var request = $.ajax({\n url : model.parseURL(chr, bin[0], bin[1]),\n data : model.urlParams,\n dataType : model.dataType,\n context : model,\n xhrFields : model.xhrFields,\n success : function (data) {\n this.receiveData(data, chr, bin[0], bin[1]);\n },\n error: function (xhr, statusText) {\n this.track.controller.showError(\n this.showServerErrors && (xhr.responseJSON || {}).message\n ? xhr.responseJSON.message\n : statusText + ' while getting the data, see console for more details',\n arguments\n );\n },\n complete: function (xhr) {\n this.dataLoading = $.grep(this.dataLoading, function (t) { return xhr !== t; });\n }\n });\n\n request.coords = [ chr, bin[0], bin[1] ]; // store actual chr, start and end on the request, in case they are needed\n\n if (typeof done === 'function') {\n request.done(done);\n }\n\n model.dataLoading.push(request);\n\n return request;\n })).done(function () { deferred.resolveWith(model); });\n\n return deferred;\n },\n\n receiveData: function (data, chr, start, end) {\n start = Math.max(start, 1);\n end = Math.min(end, this.browser.getChromosomeSize(chr));\n\n this.setDataRange(chr, start, end);\n this.parseData(data, chr, start, end);\n\n if (this.allData) {\n this.url = false;\n }\n },\n\n /**\n * parseData(data, chr, start, end) - parse raw data from the data source (e.g. online web service)\n * extract features and insert it into the internal features storage (RTree)\n *\n * >> data - raw data from the data source (e.g. ajax response)\n * >> chr - chromosome of the data\n * >> start - start location of the data\n * >> end - end location of the data\n * << nothing\n *\n * every feature extracted this routine must construct a hash with at least 3 values:\n * {\n * id : [unique feature id, string],\n * start : [chromosomal start position, integer],\n * end : [chromosomal end position, integer],\n * [other optional key/value pairs]\n * }\n *\n * and call this.insertFeature(feature)\n */\n parseData: function (data, chr, start) { // end is also passed in, but not used in this case\n var feature;\n\n // Example of parseData function when data is an array of hashes like { start: ..., end: ... }\n for (var i = 0; i < data.length; i++) {\n feature = data[i];\n\n feature.chr = feature.chr || chr;\n feature.sort = start + i;\n\n this.insertFeature(feature);\n }\n },\n\n updateData: function (data) {\n this.data = data;\n this.track.reset();\n },\n\n setDataRange: function (chr, start, end) {\n if (this.allData) {\n start = 1;\n end = this.browser.getChromosomeSize(chr);\n }\n\n this.dataRanges(chr).insert({ x: start, w: end - start + 1, y: 0, h: 1 }, [ start, end ]);\n },\n\n checkDataRange: function (chr, start, end) {\n start = Math.max(1, start);\n end = Math.min(this.browser.getChromosomeSize(chr), end);\n\n var ranges = this.dataRanges(chr).search({ x: start, w: end - start + 1, y: 0, h: 1 }).sort(function (a, b) { return a[0] - b[0]; });\n\n if (!ranges.length) {\n return false;\n }\n\n var s = ranges.length === 1 ? ranges[0][0] : 9e99;\n var e = ranges.length === 1 ? ranges[0][1] : -9e99;\n\n for (var i = 0; i < ranges.length - 1; i++) {\n // s0 <= s1 && ((e0 >= e1) || (e0 + 1 >= s1))\n if (ranges[i][0] <= ranges[i + 1][0] && ((ranges[i][1] >= ranges[i + 1][1]) || (ranges[i][1] + 1 >= ranges[i + 1][0]))) {\n s = Math.min(s, ranges[i][0]);\n e = Math.max(e, ranges[i][1], ranges[i + 1][1]);\n } else {\n return false;\n }\n }\n\n return start >= s && end <= e;\n },\n\n insertFeature: function (feature) {\n if (!feature.chr) {\n return;\n }\n\n // Make sure we have a unique ID, this method is not efficient, so better supply your own id\n if (!feature.id) {\n feature.id = feature.ID || this.hashCode(JSON.stringify($.extend({}, feature, { sort: '' }))); // sort is dependant on the browser's region, so will change on zoom\n }\n\n var features = this.features(feature.chr);\n\n if (features && !this.featuresById[feature.id]) {\n if (feature.subFeatures) {\n feature.subFeatures.sort(function (a, b) { return a.start - b.start; });\n\n for (var i = 0; i < feature.subFeatures.length; i++) {\n feature.subFeatures[i].start = Math.min(Math.max(feature.subFeatures[i].start, feature.start), feature.end);\n feature.subFeatures[i].end = Math.max(Math.min(feature.subFeatures[i].end, feature.end), feature.start);\n }\n\n // Add \"fake\" sub-features at the start and end of the feature - this will allow joins to be drawn when there are no sub-features in the current region.\n feature.subFeatures.unshift({ start: feature.start, end: feature.start, fake: true });\n feature.subFeatures.push({ start: feature.end, end: feature.end, fake: true });\n }\n\n features.insert({ x: feature.start, y: 0, w: feature.end - feature.start + 1, h: 1 }, feature);\n this.featuresById[feature.id] = feature;\n }\n },\n\n findFeatures: function (chr, start, end) {\n var features = this.features(chr).search({ x: start - this.dataBuffer.start, y: 0, w: end - start + this.dataBuffer.start + this.dataBuffer.end + 1, h: 1 });\n var filters = this.prop('featureFilters') || [];\n\n for (var i = 0; i < filters.length; i++) {\n features = $.grep(features, $.proxy(filters[i], this));\n }\n\n return this.sortFeatures(features);\n },\n\n sortFeatures: function (features) {\n return features.sort(function (a, b) { return a.sort - b.sort; });\n },\n\n abort: function () {\n for (var i = 0; i < this.dataLoading.length; i++) {\n this.dataLoading[i].abort();\n }\n\n this.dataLoading = [];\n },\n\n hashCode: function (string) {\n var hash = 0;\n var c;\n\n if (!string.length) {\n return hash;\n }\n\n for (var i = 0; i < string.length; i++) {\n c = string.charCodeAt(i);\n hash = ((hash << 5) - hash) + c;\n hash &= hash; // Convert to 32bit integer\n }\n\n return '' + hash;\n }\n});\n","Genoverse.Track.Model.File = Genoverse.Track.Model.extend({\n dataType: 'text',\n\n init: function () {\n if (this.isLocal) {\n this.url = false;\n }\n\n if (!(this.largeFile || this.indexFile)) {\n this.allData = true;\n }\n\n this.base.apply(this, arguments);\n },\n\n getData: function (chr) {\n var model = this;\n\n if (this.isLocal && this.dataFile) {\n var reader = new FileReader();\n var deferred = $.Deferred();\n\n reader.onload = function (e) {\n deferred.done(function () {\n this.receiveData(e.target.result, chr, 1, this.browser.getChromosomeSize(chr));\n }).resolveWith(model);\n };\n\n reader.readAsText(this.dataFile);\n\n return deferred;\n }\n\n return this.base.apply(this, arguments);\n }\n});\n","Genoverse.Track.Model.File.BAM = Genoverse.Track.Model.File.extend({\n getData: function (chr, start, end) {\n var model = this;\n var deferred = $.Deferred();\n\n if (!this.bamFile) {\n if (this.url) {\n this.bamFile = new dallianceLib.URLFetchable(this.url);\n this.baiFile = new dallianceLib.URLFetchable(this.url + this.prop('indexExt'));\n } else if (this.dataFile && this.indexFile) {\n this.bamFile = new dallianceLib.BlobFetchable(this.dataFile);\n this.baiFile = new dallianceLib.BlobFetchable(this.indexFile);\n } else {\n return deferred.rejectWith(model, [ 'BAM files must be accompanied by a .bai index file' ]);\n }\n }\n\n dallianceLib.makeBam(this.bamFile, this.baiFile, null, function (bam, makeBamError) {\n if (makeBamError) {\n console.error(makeBamError); // eslint-disable-line no-console\n } else {\n bam.fetch(chr, start, end, function (features, fetchBamError) {\n if (fetchBamError) {\n console.error(fetchBamError); // eslint-disable-line no-console\n } else {\n model.receiveData(features, chr, start, end);\n deferred.resolveWith(model);\n }\n });\n }\n });\n\n return deferred;\n },\n\n insertFeature: function (feature) {\n feature.id = feature.chr + ':' + feature.readName + ':' + feature.pos;\n feature.start = feature.pos + 1;\n feature.end = feature.start + feature.seq.length;\n feature.sequence = feature.seq;\n\n return this.base(feature);\n }\n});\n","Genoverse.Track.Model.File.BED = Genoverse.Track.Model.File.extend({\n parseData: function (data, chr) {\n var lines = typeof data === 'string' ? data.split('\\n') : data;\n var thinHeight = this.prop('thinHeight');\n var thickHeight = this.prop('thickHeight');\n var fields, len, feature, subfeatures, subfeature, blockSizes, blockStarts, j, thinFeature, thinFeature1, thinFeature2, thickFeature;\n\n function filterNumber(n) {\n return !isNaN(n);\n }\n\n for (var i = 0; i < lines.length; i++) {\n fields = lines[i].split('\\t').filter(function (f) { return f; });\n\n if (fields.length < 3 || fields[0] === 'track' || fields[0] === 'browser') {\n continue;\n }\n\n len = fields.length;\n\n if (fields[0] === String(chr) || fields[0].toLowerCase() === 'chr' + chr || fields[0].match('[^1-9]' + chr + '$')) {\n feature = {\n chr : chr,\n start : parseInt(fields[1], 10) + 1,\n end : parseInt(fields[2], 10),\n name : fields[3],\n color : '#000000',\n originalFeature : fields\n };\n\n if (len > 3) { feature.score = parseFloat(fields[4], 10); }\n if (len > 5) { feature.strand = fields[5]; }\n\n if (len > 7) {\n feature.thickStart = parseInt(fields[6], 10) + 1;\n feature.thickEnd = parseInt(fields[7], 10);\n feature.drawThick = fields[6] !== fields[7];\n }\n\n if (fields[8]) {\n feature.color = 'rgb(' + fields[8] + ')';\n } else {\n feature.color = this.scoreColor(isNaN(feature.score) ? 1000 : feature.score);\n }\n\n if (len === 12) { // subfeatures present\n feature.blockCount = parseInt(fields[9], 10);\n\n subfeatures = [];\n blockSizes = fields[10].split(',').filter(filterNumber);\n blockStarts = fields[11].split(',').filter(filterNumber);\n\n for (j = 0; j < blockSizes.length; j++) {\n subfeature = {\n start : feature.start + parseInt(blockStarts[j], 10),\n height : thinHeight // if subfeature lies entirely left / right to [ thickStart, thickEnd ]\n };\n\n subfeature.end = subfeature.start + parseInt(blockSizes[j], 10) - 1;\n\n if (feature.drawThick && subfeature.start <= feature.thickEnd && subfeature.end >= feature.thickStart) {\n // some kind of an overlap for sure\n if (subfeature.start >= feature.thickStart && subfeature.end <= feature.thickEnd) {\n // subfeature within thickBlock, draw thick\n subfeature.height = thickHeight;\n subfeatures.push(subfeature);\n } else if (subfeature.start < feature.thickStart && subfeature.end <= feature.thickEnd) {\n // left overlap, split subfeature into 2 - thin | thick\n thinFeature = $.extend({}, subfeature, { end: feature.thickStart });\n thickFeature = $.extend({}, subfeature, { start: feature.thickStart, height: thickHeight });\n\n subfeatures = subfeatures.concat([ thinFeature, thickFeature ]);\n } else if (subfeature.start >= feature.thickStart && subfeature.end > feature.thickEnd) {\n // right overlap, split subfeature into 2 - thick | thin\n thinFeature = $.extend({}, subfeature, { start: feature.thickEnd });\n thickFeature = $.extend({}, subfeature, { end: feature.thickEnd, height: thickHeight });\n\n subfeatures = subfeatures.concat([ thickFeature, thinFeature ]);\n } else {\n // thickBlock lies within subfeature, split into 3 - thin | thick | thin\n // the least possible case but lets be prepared for the outliers\n thinFeature1 = $.extend({}, subfeature, { end: feature.thickStart });\n thinFeature2 = $.extend({}, subfeature, { start: feature.thickEnd });\n thickFeature = { start: feature.thickStart, end: feature.thickEnd, height: thickHeight };\n\n subfeatures = subfeatures.concat([ thinFeature1, thickFeature, thinFeature2 ]);\n }\n } else {\n // no thick block\n subfeatures.push(subfeature);\n }\n }\n\n if (subfeatures.length) {\n feature.subFeatures = subfeatures;\n }\n }\n\n this.insertFeature(feature);\n }\n }\n },\n\n // As per https://genome.ucsc.edu/FAQ/FAQformat.html#format1 specification\n scoreColor: function (score) {\n if (score <= 166) { return 'rgb(219,219,219)'; }\n if (score <= 277) { return 'rgb(186,186,186)'; }\n if (score <= 388) { return 'rgb(154,154,154)'; }\n if (score <= 499) { return 'rgb(122,122,122)'; }\n if (score <= 611) { return 'rgb(94,94,94)'; }\n if (score <= 722) { return 'rgb(67,67,67)'; }\n if (score <= 833) { return 'rgb(42,42,42)'; }\n if (score <= 944) { return 'rgb(21,21,21)'; }\n return '#000000';\n }\n});\n","Genoverse.Track.Model.File.GFF = Genoverse.Track.Model.File.extend({\n parseData: function (text, chr) {\n var lines = text.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n if (!lines[i].length || lines[i].indexOf('#') === 0) {\n continue;\n }\n\n var fields = lines[i].split('\\t');\n\n if (fields.length < 5) {\n continue;\n }\n\n var seqId = fields[0].toLowerCase();\n\n if (\n seqId === String(chr) ||\n seqId === 'chr' + chr ||\n seqId.match('[^1-9]' + chr + '$') ||\n seqId.match('^' + chr + '\\\\b')\n ) {\n this.insertFeature({\n id : fields.slice(0, 5).join('|'),\n chr : chr,\n start : parseInt(fields[3], 10),\n end : parseInt(fields[4], 10),\n source : fields[1],\n type : fields[2],\n score : fields[5],\n strand : fields[6] === '-' ? -1 : 1,\n label : fields[1] + ' ' + fields[2] + ' ' + fields[3] + '-' + fields[4]\n });\n }\n }\n }\n});\n\nGenoverse.Track.Model.File.GTF = Genoverse.Track.Model.File.GFF;\n","Genoverse.Track.Model.File.VCF = Genoverse.Track.Model.File.extend({\n getData: function (chr, start, end) {\n var deferred = $.Deferred();\n var model = this;\n\n if (!this.prop('gz')) {\n return this.base.apply(this, arguments);\n }\n\n if (!this.vcfFile) {\n if (this.url) {\n this.vcfFile = new dallianceLib.URLFetchable(this.url);\n this.tbiFile = new dallianceLib.URLFetchable(this.url + this.prop('indexExt'));\n } else if (this.dataFile && this.indexFile) {\n this.vcfFile = new dallianceLib.BlobFetchable(this.dataFile);\n this.tbiFile = new dallianceLib.BlobFetchable(this.indexFile);\n } else {\n return deferred.rejectWith(model, [ 'GZipped VCF files must be accompanied by a .tbi index file' ]);\n }\n }\n\n this.makeVCF(this.vcfFile, this.tbiFile).then(function (vcf) {\n model.cachedVCF = vcf;\n\n vcf.getRecords(chr, start, end, function (records) {\n model.receiveData(records, chr, start, end);\n deferred.resolveWith(model);\n });\n });\n\n return deferred;\n },\n\n makeVCF: function (vcfFile, tbiFile) {\n var deferred = $.Deferred();\n\n if (this.cachedVCF) {\n deferred.resolve(this.cachedVCF);\n } else {\n var vcf = new VCFReader(vcfFile, tbiFile);\n\n vcf.readTabix(function (tabix) {\n vcf.tabix = tabix;\n deferred.resolve(vcf);\n });\n }\n\n return deferred;\n },\n\n parseData: function (text, chr) {\n var lines = text.split('\\n');\n var maxQual = this.allData ? this.prop('maxQual') || 0 : false;\n\n for (var i = 0; i < lines.length; i++) {\n if (!lines[i].length || lines[i].indexOf('#') === 0) {\n continue;\n }\n\n var fields = lines[i].split('\\t');\n\n if (fields.length < 5) {\n continue;\n }\n\n if (fields[0] === String(chr) || fields[0] === 'chr' + chr) {\n var id = fields.slice(0, 3).join('|');\n var start = parseInt(fields[1], 10);\n var alleles = fields[4].split(',');\n\n alleles.unshift(fields[3]);\n\n for (var j = 0; j < alleles.length; j++) {\n var end = start + alleles[j].length - 1;\n\n this.insertFeature({\n id : id + '|' + alleles[j],\n sort : j,\n chr : chr,\n start : start,\n end : end,\n width : end - start,\n allele : j === 0 ? 'REF' : 'ALT',\n sequence : alleles[j],\n label : alleles[j],\n labelColor : '#FFFFFF',\n originalFeature : fields\n });\n }\n\n if (maxQual !== false) {\n maxQual = Math.max(maxQual, fields[5]);\n }\n }\n }\n\n if (maxQual) {\n this.prop('maxQual', maxQual);\n }\n }\n});\n","Genoverse.Track.Model.File.WIG = Genoverse.Track.Model.Graph.Bar.extend({\n dataType: 'text',\n\n getData: function () {\n if (!this.url) {\n this.isLocal = true;\n this.dataFile = this.track.dataFile;\n\n return Genoverse.Track.Model.File.prototype.getData.apply(this, arguments);\n }\n\n return this.base.apply(this, arguments);\n },\n\n parseData: function (text, chr, s, e) {\n var lines = text.split('\\n');\n var features = [];\n var fields, chrom, start, step, span, line, feature, i;\n\n while (lines.length && (line = lines.shift())) {\n if (line.indexOf('#') !== -1 || line.indexOf('browser') !== -1 || line.indexOf('track') !== -1) {\n continue;\n } else {\n break;\n }\n }\n\n if (line) {\n fields = line.split(/\\s+/);\n chrom = parseInt(fields[1].split('=')[1].replace('chr', ''), 10);\n\n if (fields[0] === 'fixedStep') {\n start = parseInt(fields[2].split('=')[1], 10);\n step = parseInt(fields[3].split('=')[1], 10);\n span = fields[4] ? parseInt(fields[4].split('=')[1], 10) : 1;\n\n for (i = 0; i < lines.length; i++) {\n features.push({\n chr : chrom,\n start : start,\n end : start + span,\n height : parseFloat(lines[i])\n });\n\n start += step;\n }\n } else if (fields[0] === 'variableStep') {\n span = fields[2] ? parseInt(fields[2].split('=')[1], 10) : 1;\n\n for (i = 0; i < lines.length; i++) {\n fields = lines[i].split(/\\s+/);\n feature = {\n chr : chrom,\n start : parseInt(fields[0], 10),\n height : parseFloat(fields[1])\n };\n\n feature.end = feature.start + span;\n\n features.push(feature);\n }\n }\n }\n\n return this.base.call(this, features, chr, s, e);\n }\n});\n","// Abstract Gene model\n// see sub-models for more specific examples\nGenoverse.Track.Model.Gene = Genoverse.Track.Model.extend({\n\n});\n","// Ensembl REST API Gene model\nGenoverse.Track.Model.Gene.Ensembl = Genoverse.Track.Model.Gene.extend({\n url : '//rest.ensembl.org/overlap/region/human/__CHR__:__START__-__END__?feature=gene;content-type=application/json',\n dataRequestLimit : 5000000, // As per e! REST API restrictions\n\n // The url above responds in json format, data is an array\n // We assume that parents always preceed children in data array, gene -> transcript -> exon\n // See rest.ensembl.org/documentation/info/feature_region for more details\n parseData: function (data, chr) {\n for (var i = 0; i < data.length; i++) {\n var feature = data[i];\n\n if (feature.feature_type === 'gene' && !this.featuresById[feature.id]) {\n feature.chr = feature.chr || chr;\n feature.label = parseInt(feature.strand, 10) === 1 ? (feature.external_name || feature.id) + ' >' : '< ' + (feature.external_name || feature.id);\n feature.transcripts = [];\n\n this.insertFeature(feature);\n }\n }\n }\n});\n","// Abstract Sequence model\n// assumes that the data source responds with raw sequence text\n// see Fasta model for more specific example\nGenoverse.Track.Model.Sequence = Genoverse.Track.Model.extend({\n threshold : 100000,\n chunkSize : 1000,\n buffer : 0,\n dataType : 'text',\n\n setChrProps: function () {\n var chr = this.browser.chr;\n\n this.base();\n\n this.chunksByChr = this.chunksByChr || {};\n this.chunksByChr[chr] = this.chunksByChr[chr] || {};\n },\n\n getData: function (chr, start, end) {\n start = start - (start % this.chunkSize) + 1;\n end = end + this.chunkSize - (end % this.chunkSize);\n return this.base(chr, start, end);\n },\n\n parseData: function (data, chr, start) {\n data = data.replace(/\\n/g, '');\n\n if (this.prop('lowerCase')) {\n data = data.toLowerCase();\n }\n\n for (var i = 0; i < data.length; i += this.chunkSize) {\n if (this.chunksByChr[chr][start + i]) {\n continue;\n }\n\n var feature = {\n id : chr + ':' + start + ':' + i,\n chr : chr,\n start : start + i,\n end : start + i + this.chunkSize - 1,\n sequence : data.substr(i, this.chunkSize),\n sort : start + i\n };\n\n this.chunksByChr[chr][feature.start] = feature;\n this.insertFeature(feature);\n }\n }\n});\n","Genoverse.Track.Model.Sequence.Ensembl = Genoverse.Track.Model.Sequence.extend({\n url : '//rest.ensembl.org/sequence/region/human/__CHR__:__START__-__END__?content-type=text/plain', // Example url\n dataRequestLimit : 10000000 // As per e! REST API restrictions\n});\n","Genoverse.Track.Model.Sequence.Fasta = Genoverse.Track.Model.Sequence.extend({\n url: 'https://wtsi-web.github.io/Genoverse/data/Homo_sapiens.GRCh37.72.dna.chromosome.1.fa', // Example url\n\n // Following settings could be left undefined and will be detected automatically via .getStartByte()\n startByte : undefined, // Byte in the file where the sequence actually starts\n lineLength : undefined, // Length of the sequence line in the file\n\n // TODO: Check if URL provided\n\n getData: function (chr, start, end) {\n var deferred = $.Deferred();\n\n $.when(this.getStartByte()).done(function () {\n start = start - (start % this.chunkSize) + 1;\n end = end + this.chunkSize - (end % this.chunkSize);\n\n var startByte = start - 1 + Math.floor((start - 1) / this.lineLength) + this.startByte;\n var endByte = end - 1 + Math.floor((end - 1) / this.lineLength) + this.startByte;\n\n $.ajax({\n url : this.parseURL(),\n dataType : this.dataType,\n context : this,\n headers : { Range: 'bytes=' + startByte + '-' + endByte },\n xhrFields : this.xhrFields,\n success : function (data) { this.receiveData(data, chr, start, end); },\n error : this.track.controller.showError\n }).done(function () { deferred.resolveWith(this); }).fail(function () { deferred.rejectWith(this); });\n }).fail(function () { deferred.rejectWith(this); });\n\n return deferred;\n },\n\n getStartByte: function () {\n if (this.startByteRequest) {\n return this.startByteRequest;\n }\n\n if (this.startByte === undefined || this.lineLength === undefined) {\n this.startByteRequest = $.ajax({\n url : this.parseURL(),\n dataType : 'text',\n context : this,\n headers : { 'Range': 'bytes=0-300' },\n xhrFields : this.xhrFields,\n success : function (data) {\n if (data.indexOf('>') === 0) {\n this.startByte = data.indexOf('\\n') + 1;\n } else {\n this.startByte = 0;\n }\n\n this.lineLength = data.indexOf('\\n', this.startByte) - this.startByte;\n }\n });\n\n return this.startByteRequest;\n }\n }\n});\n","Genoverse.Track.Model.SequenceVariation = Genoverse.Track.Model.extend({\n seqModel: Genoverse.Track.Model.Sequence.Ensembl,\n\n getSeqModel: function () {\n var models = this.prop('models');\n models.seq = models.seq || this.track.newMVC(this.seqModel);\n return models.seq;\n },\n\n getData: function (chr, start, end) {\n var model = this;\n var deferred = $.Deferred();\n var seqData = this.getSeqModel().checkDataRange(chr, start, end);\n\n this.base(chr, start, end).done(function () {\n if (seqData) {\n deferred.resolve();\n } else {\n model.getSeqModel().getData(chr, start, end).done(deferred.resolve);\n }\n });\n\n return deferred;\n },\n\n insertFeature: function (feature) {\n return this.base($.extend(feature, {\n end : feature.start + feature.alt_allele.length - 1,\n length : feature.alt_allele.length,\n sequence : feature.alt_allele\n }));\n },\n\n checkDataRange: function (chr, start, end) {\n return this.base(chr, start, end) && this.getSeqModel().checkDataRange(chr, start, end);\n },\n\n findFeatures: function (chr, start, end) {\n return this.getSeqModel().findFeatures(chr, start, end).concat(this.base(chr, start, end));\n }\n});\n","Genoverse.Track.Model.Stranded = Genoverse.Track.Model.extend({\n init: function (reset) {\n this.base(reset);\n\n if (!reset) {\n var otherTrack = this.prop('forwardTrack');\n\n if (otherTrack) {\n this.featuresByChr = otherTrack.prop('featuresByChr');\n this.features = otherTrack.prop('features');\n this.featuresById = otherTrack.prop('featuresById');\n }\n }\n },\n\n parseURL: function () {\n if (!this.urlParams.strand) {\n this.urlParams.strand = this.prop('featureStrand');\n }\n\n return this.base.apply(this, arguments);\n },\n\n findFeatures: function () {\n var strand = this.track.featureStrand;\n return $.grep(this.base.apply(this, arguments), function (feature) { return feature.strand === strand; });\n }\n});\n","// Abstract Transcript model\n// see sub-models for more specific examples\nGenoverse.Track.Model.Transcript = Genoverse.Track.Model.extend({\n\n});\n","// Ensembl REST API Transcript model\nGenoverse.Track.Model.Transcript.Ensembl = Genoverse.Track.Model.Transcript.extend({\n url : '//rest.ensembl.org/overlap/region/human/__CHR__:__START__-__END__?feature=transcript;feature=exon;feature=cds;content-type=application/json',\n dataRequestLimit : 5000000, // As per e! REST API restrictions\n\n setDefaults: function () {\n this.geneIds = {};\n this.seenGenes = 0;\n\n this.base.apply(this, arguments);\n },\n\n // The url above responds in json format, data is an array\n // See rest.ensembl.org/documentation/info/overlap_region for more details\n parseData: function (data, chr) {\n var model = this;\n var featuresById = this.featuresById;\n var ids = [];\n\n data.filter(function (d) { return d.feature_type === 'transcript'; }).forEach(function (feature, i) {\n if (!featuresById[feature.id]) {\n model.geneIds[feature.Parent] = model.geneIds[feature.Parent] || ++model.seenGenes;\n\n feature.chr = feature.chr || chr;\n feature.label = parseInt(feature.strand, 10) === 1 ? (feature.external_name || feature.id) + ' >' : '< ' + (feature.external_name || feature.id);\n feature.sort = (model.geneIds[feature.Parent] * 1e10) + (feature.logic_name.indexOf('ensembl_havana') === 0 ? 0 : 2e9) + (feature.biotype === 'protein_coding' ? 0 : 1e9) + feature.start + i;\n feature.cdsStart = Infinity;\n feature.cdsEnd = -Infinity;\n feature.exons = {};\n feature.subFeatures = [];\n\n model.insertFeature(feature);\n }\n\n ids.push(feature.id);\n });\n\n data.filter(function (d) { return d.feature_type === 'cds' && featuresById[d.Parent]; }).forEach(function (cds) {\n featuresById[cds.Parent].cdsStart = Math.min(featuresById[cds.Parent].cdsStart, cds.start);\n featuresById[cds.Parent].cdsEnd = Math.max(featuresById[cds.Parent].cdsEnd, cds.end);\n });\n\n data.filter(function (d) { return d.feature_type === 'exon' && featuresById[d.Parent] && !featuresById[d.Parent].exons[d.id]; }).forEach(function (exon) {\n if (exon.end < featuresById[exon.Parent].cdsStart || exon.start > featuresById[exon.Parent].cdsEnd) {\n featuresById[exon.Parent].subFeatures.push($.extend({ utr: true }, exon));\n } else {\n if (exon.start < featuresById[exon.Parent].cdsStart) {\n featuresById[exon.Parent].subFeatures.push($.extend({ utr: true }, exon, { end: featuresById[exon.Parent].cdsStart }));\n }\n\n featuresById[exon.Parent].subFeatures.push($.extend({}, exon, {\n start : Math.max(exon.start, featuresById[exon.Parent].cdsStart),\n end : Math.min(exon.end, featuresById[exon.Parent].cdsEnd),\n strand : featuresById[exon.Parent].strand\n }));\n\n if (exon.end > featuresById[exon.Parent].cdsEnd) {\n featuresById[exon.Parent].subFeatures.push($.extend({ utr: true }, exon, { start: featuresById[exon.Parent].cdsEnd }));\n }\n }\n });\n\n ids.forEach(function (id) {\n featuresById[id].subFeatures.sort(function (a, b) { return a.start - b.start; });\n });\n }\n});\n","Genoverse.Track.View = Base.extend({\n fontHeight : 10,\n fontFamily : 'sans-serif',\n fontWeight : 'normal',\n fontColor : undefined, // label color defaults to this, or feature color, or track.color (below), in that order of precedence\n color : '#000000',\n minScaledWidth : 0.5,\n precisionFactor : 0, // Rounding factor to be applied to feature start/width when drawing, e.g. 2 = starts and widths will be rounded to the nearest 0.5\n widthCorrection : 1, // Pixels to add to the end of a feature when scale > 1 - ensures that 1bp features are always at least 1px wide\n labels : true,\n repeatLabels : false,\n bump : false,\n alwaysReposition : false,\n depth : undefined,\n featureHeight : undefined, // defaults to track height\n featureMargin : undefined, // e.g. { top: 3, right: 1, bottom: 1, left: 0 }\n\n subFeatureJoinStyle : false, // Can be 'line', 'peak', 'curve'\n subFeatureJoinLineWidth : 0.5,\n\n constructor: function (properties) {\n $.extend(this, properties);\n Genoverse.wrapFunctions(this);\n this.init();\n },\n\n // difference between init and constructor: init gets called on reset, if reset is implemented\n init: function () {\n this.setDefaults();\n this.scaleSettings = {};\n },\n\n setDefaults: function () {\n this.featureMargin = this.featureMargin || { top: 3, right: 1, bottom: 1, left: 0 };\n\n var margin = [ 'top', 'right', 'bottom', 'left' ];\n\n for (var i = 0; i < margin.length; i++) {\n if (typeof this.featureMargin[margin[i]] !== 'number') {\n this.featureMargin[margin[i]] = 0;\n }\n }\n\n this.context = $('<canvas>')[0].getContext('2d');\n this.featureHeight = typeof this.featureHeight !== 'undefined' ? this.featureHeight : this.prop('defaultHeight');\n this.font = this.fontWeight + ' ' + this.fontHeight + 'px ' + this.fontFamily;\n this.labelUnits = [ 'bp', 'kb', 'Mb', 'Gb', 'Tb' ];\n\n this.context.font = this.font;\n\n if (this.labels && this.labels !== 'overlay' && (this.depth || this.bump === 'labels')) {\n this.labels = 'separate';\n }\n },\n\n setScaleSettings: function (scale) {\n var chr = this.browser.chr;\n\n if (!this.scaleSettings[chr]) {\n this.scaleSettings[chr] = {};\n }\n\n if (!this.scaleSettings[chr][scale]) {\n var featurePositions = new RTree();\n\n this.scaleSettings[chr][scale] = {\n imgContainers : $(),\n featurePositions : featurePositions,\n labelPositions : this.labels === 'separate' ? new RTree() : featurePositions\n };\n }\n\n return this.scaleSettings[chr][scale];\n },\n\n roundPixelValue: function (value) {\n if (this.precisionFactor) {\n return Math.round(value * this.precisionFactor) / this.precisionFactor;\n }\n\n return value;\n },\n\n scaleFeatures: function (features, scale) {\n var add = this.roundPixelValue(Math.max(scale, this.widthCorrection));\n var feature, j;\n\n for (var i = 0; i < features.length; i++) {\n feature = features[i];\n\n if (!feature.position) {\n feature.position = {};\n }\n\n if (!feature.position[scale]) {\n feature.position[scale] = {\n start : this.roundPixelValue(feature.start * scale),\n width : Math.max(this.roundPixelValue((feature.end - feature.start) * scale + add), this.minScaledWidth),\n height : feature.height || this.featureHeight\n };\n }\n\n if (feature.subFeatures) {\n for (j = 0; j < feature.subFeatures.length; j++) {\n if (typeof feature.subFeatures[j].height === 'undefined') {\n feature.subFeatures[j].height = feature.position[scale].height;\n }\n }\n\n this.scaleFeatures(feature.subFeatures, scale);\n }\n }\n\n return features;\n },\n\n positionFeatures: function (features, params) {\n params.margin = this.prop('margin');\n\n for (var i = 0; i < features.length; i++) {\n this.positionFeature(features[i], params);\n }\n\n params.width = Math.ceil(params.width);\n params.height = Math.ceil(params.height);\n params.featureHeight = Math.max(Math.ceil(params.featureHeight), this.prop('resizable') ? Math.max(this.prop('height'), this.prop('minLabelHeight')) : 0);\n params.labelHeight = Math.ceil(params.labelHeight);\n\n return features;\n },\n\n positionFeature: function (feature, params) {\n var scale = params.scale;\n var scaleSettings = this.scaleSettings[feature.chr][scale];\n\n if (!scaleSettings) {\n return;\n }\n\n var subFeatures = feature.subFeatures || [];\n var i;\n\n feature.position[scale].X = feature.position[scale].start - params.scaledStart; // FIXME: always have to reposition for X, in case a feature appears in 2 images. Pass scaledStart around instead?\n\n for (i = 0; i < subFeatures.length; i++) {\n subFeatures[i].position[scale].x = subFeatures[i].position[scale].start - params.scaledStart;\n\n if (this.subFeatureJoinStyle) {\n subFeatures[i].position[scale].join = subFeatures[i].position[scale].join || {};\n subFeatures[i].position[scale].join.x = subFeatures[i].position[scale].start + subFeatures[i].position[scale].width - params.scaledStart;\n }\n }\n\n if (this.alwaysReposition || !feature.position[scale].positioned) {\n feature.position[scale].H = feature.position[scale].height + this.featureMargin.bottom;\n feature.position[scale].W = feature.position[scale].width + (feature.marginRight || this.featureMargin.right);\n feature.position[scale].Y = (\n typeof feature.position[scale].y === 'number' ? feature.position[scale].y :\n typeof feature.y === 'number' ? feature.y * feature.position[scale].H : 0\n ) + (feature.marginTop || this.featureMargin.top);\n\n if (feature.label) {\n if (typeof feature.label === 'string') {\n feature.label = feature.label.split('\\n');\n }\n\n var context = this.context;\n\n feature.labelHeight = feature.labelHeight || (this.fontHeight + 2) * feature.label.length;\n feature.labelWidth = feature.labelWidth || Math.max.apply(Math, $.map(feature.label, function (l) { return Math.ceil(context.measureText(l).width); })) + 1;\n\n if (this.labels === true) {\n feature.position[scale].H += feature.labelHeight;\n feature.position[scale].W = Math.max(feature.labelWidth, feature.position[scale].W);\n } else if (this.labels === 'separate' && !feature.position[scale].label) {\n feature.position[scale].label = {\n x : feature.position[scale].start,\n y : feature.position[scale].Y,\n w : feature.labelWidth,\n h : feature.labelHeight\n };\n }\n }\n\n var bounds = {\n x : feature.position[scale].start,\n y : feature.position[scale].Y,\n w : feature.position[scale].W,\n h : feature.position[scale].H + (feature.marginTop || this.featureMargin.top)\n };\n\n feature.position[scale].bounds = bounds;\n\n if (this.bump === true) {\n this.bumpFeature(bounds, feature, scale, scaleSettings.featurePositions);\n }\n\n scaleSettings.featurePositions.insert(bounds, feature);\n\n feature.position[scale].bottom = feature.position[scale].Y + bounds.h + params.margin;\n feature.position[scale].positioned = true;\n }\n\n var join = this.subFeatureJoinStyle && subFeatures.length ? {\n height : (Math.max.apply(Math, subFeatures.map(function (c) { return c.fake ? 0 : c.position[scale].height; })) / 2) * (feature.strand > 0 ? -1 : 1),\n y : feature.position[scale].Y + feature.position[scale].height / 2\n } : false;\n\n for (i = 0; i < subFeatures.length; i++) {\n subFeatures[i].position[scale].y = feature.position[scale].Y + (feature.position[scale].height - subFeatures[i].position[scale].height) / 2;\n\n if (join && subFeatures[i + 1]) {\n $.extend(subFeatures[i].position[scale].join, { width: subFeatures[i + 1].position[scale].x - subFeatures[i].position[scale].join.x }, join);\n }\n }\n\n if (this.labels === 'separate' && feature.position[scale].label) {\n if (this.alwaysReposition || !feature.position[scale].label.positioned) {\n this.bumpFeature(feature.position[scale].label, feature, scale, scaleSettings.labelPositions);\n\n feature.position[scale].label.bottom = feature.position[scale].label.y + feature.position[scale].label.h + params.margin;\n feature.position[scale].label.positioned = true;\n\n scaleSettings.labelPositions.insert(feature.position[scale].label, feature);\n }\n\n params.labelHeight = Math.max(params.labelHeight, feature.position[scale].label.bottom);\n }\n\n params.featureHeight = Math.max(params.featureHeight, feature.position[scale].bottom);\n params.height = Math.max(params.height, params.featureHeight + params.labelHeight);\n },\n\n // FIXME: should label bumping bounds be distinct from feature bumping bounds when label is smaller than feature?\n bumpFeature: function (bounds, feature, scale, tree) {\n var depth = 0;\n var scaleSettings = this.scaleSettings[feature.chr][scale];\n var labels = tree === scaleSettings.labelPositions && tree !== scaleSettings.featurePositions;\n var bump, clash, searchResults, i;\n\n do {\n if (this.depth && ++depth >= this.depth) {\n if (!labels) {\n searchResults = scaleSettings.featurePositions.search(bounds);\n i = searchResults.length;\n\n while (i--) {\n if (searchResults[i].position[scale].visible !== false) {\n feature.position[scale].visible = false;\n break;\n }\n }\n }\n\n break;\n }\n\n bump = false;\n clash = tree.search(bounds)[0];\n\n if (clash && clash.id !== feature.id) {\n bounds.y = clash.position[scale][labels ? 'label' : 'bounds'].y + clash.position[scale][labels ? 'label' : 'bounds'].h;\n bump = true;\n }\n } while (bump);\n\n if (!labels) {\n feature.position[scale].Y = bounds.y;\n }\n },\n\n draw: function (features, featureContext, labelContext, scale) {\n var feature, f;\n\n for (var i = 0; i < features.length; i++) {\n feature = features[i];\n\n if (feature.position[scale].visible !== false) {\n // TODO: extend with feature.position[scale], rationalize keys\n f = $.extend({}, feature, {\n x : feature.position[scale].X,\n y : feature.position[scale].Y,\n width : feature.position[scale].width,\n height : feature.position[scale].height,\n labelPosition : feature.position[scale].label\n });\n\n this.drawFeature(f, featureContext, labelContext, scale);\n\n if (f.legend !== feature.legend) {\n feature.legend = f.legend;\n feature.legendColor = f.color;\n }\n }\n }\n },\n\n drawFeature: function (feature, featureContext, labelContext, scale) {\n if (feature.color !== false && !feature.color) {\n this.setFeatureColor(feature);\n }\n\n if (feature.subFeatures) {\n this.drawSubFeatures(feature, featureContext, labelContext, scale);\n } else {\n if (feature.x < 0 || feature.x + feature.width > this.width) {\n this.truncateForDrawing(feature);\n }\n\n if (feature.color !== false) {\n featureContext.fillStyle = feature.color;\n featureContext.fillRect(feature.x, feature.y, feature.width, feature.height);\n }\n\n if (feature.clear === true) {\n featureContext.clearRect(feature.x, feature.y, feature.width, feature.height);\n }\n\n if (feature.borderColor) {\n featureContext.strokeStyle = feature.borderColor;\n featureContext.strokeRect(feature.x, Math.floor(feature.y) + 0.5, feature.width, feature.height);\n }\n }\n\n if (this.labels && feature.label) {\n this.drawLabel(feature, labelContext, scale);\n }\n\n if (feature.decorations) {\n this.decorateFeature(feature, featureContext, scale);\n }\n },\n\n drawSubFeatures: function (feature, featureContext, labelContext, scale) {\n var clonedFeature = $.extend(true, {}, feature, { subFeatures: false, label: false });\n var subFeatures = $.extend(true, [], feature.subFeatures);\n var joinColor = feature.joinColor || feature.color;\n\n for (var i = 0; i < subFeatures.length; i++) {\n if (!subFeatures[i].fake) {\n this.drawFeature($.extend({}, clonedFeature, subFeatures[i].position[scale], subFeatures[i]), featureContext, labelContext, scale);\n }\n\n if (subFeatures[i].position[scale].join && subFeatures[i].position[scale].join.width > 0) {\n this.drawSubFeatureJoin($.extend({ color: joinColor }, subFeatures[i].position[scale].join), featureContext);\n }\n }\n },\n\n drawLabel: function (feature, context, scale) {\n var original = feature.untruncated;\n var width = (original || feature).width;\n\n if (this.labels === 'overlay' && feature.labelWidth >= Math.floor(width)) {\n return;\n }\n\n if (feature.labelPosition) {\n context.labelPositions = context.labelPositions || new RTree();\n }\n\n if (typeof feature.label === 'string') {\n feature.label = [ feature.label ];\n }\n\n var x = (original || feature).x;\n var n = this.repeatLabels ? Math.ceil((width - Math.max(scale, 1) - (this.labels === 'overlay' ? feature.labelWidth : 0)) / this.width) || 1 : 1;\n var spacing = width / n;\n var label, start, j, y, currentY, h;\n\n if (this.repeatLabels && (scale > 1 || this.labels !== 'overlay')) { // Ensure there's always a label in each image\n spacing = this.browser.length * scale;\n n = Math.ceil(width / spacing);\n }\n\n if (!feature.labelColor) {\n this.setLabelColor(feature);\n }\n\n context.fillStyle = feature.labelColor;\n\n if (this.labels === 'overlay') {\n label = [ feature.label.join(' ') ];\n y = feature.y + (feature.height + 1) / 2;\n h = 0;\n } else {\n label = feature.label;\n y = feature.labelPosition ? feature.labelPosition.y : feature.y + feature.height + this.featureMargin.bottom;\n h = this.fontHeight + 2;\n }\n\n var i = context.textAlign === 'center' ? 0.5 : 0;\n var offset = feature.labelWidth * i;\n\n if (n > 1) {\n i += Math.max(Math.floor(-(feature.labelWidth + x) / spacing), 0);\n }\n\n for (; i < n; i++) {\n start = x + (i * spacing);\n\n if (start + feature.labelWidth >= 0) {\n if ((start - offset > this.width) || (i >= 1 && start + feature.labelWidth > feature.position[scale].X + feature.position[scale].width)) {\n break;\n }\n\n for (j = 0; j < label.length; j++) {\n currentY = y + (j * h);\n\n if (context.labelPositions && context.labelPositions.search({ x: start, y: currentY, w: feature.labelWidth, h: h }).length) {\n feature.position[scale].label.visible = false;\n continue;\n }\n\n context.fillText(label[j], start, currentY);\n\n if (context.labelPositions) {\n context.labelPositions.insert({ x: start, y: currentY, w: feature.labelWidth, h: h }, label[j]);\n }\n }\n }\n }\n },\n\n setFeatureColor: function (feature) {\n feature.color = this.color;\n },\n\n setLabelColor: function (feature) {\n feature.labelColor = this.fontColor || feature.color || this.color;\n },\n\n // Method to lighten a color by an amount, adapted from https://stackoverflow.com/questions/5560248/programmatically-lighten-or-darken-a-hex-color-or-rgb-and-blend-colors\n shadeColor: function (color, percent) {\n var f = parseInt(color.slice(1), 16);\n var R = f >> 16;\n var G = (f >> 8) & 0x00FF;\n var B = f & 0x0000FF;\n\n return '#' + (\n 0x1000000 +\n (Math.round((255 - R) * percent) + R) * 0x10000 +\n (Math.round((255 - G) * percent) + G) * 0x100 +\n (Math.round((255 - B) * percent) + B)\n ).toString(16).slice(1);\n },\n\n // truncate features - make the features start at 1px outside the canvas to ensure no lines are drawn at the borders incorrectly\n truncateForDrawing: function (feature) {\n var start = Math.min(Math.max(feature.x, -1), this.width + 1);\n var width = feature.x - start + feature.width;\n\n if (width + start > this.width) {\n width = this.width - start + 1;\n }\n\n feature.untruncated = { x: feature.x, width: feature.width };\n feature.x = start;\n feature.width = Math.max(width, 0);\n },\n\n drawSubFeatureJoin: function (join, context) {\n var coords = this.truncateSubFeatureJoinForDrawing(join);\n\n if (!coords) {\n return;\n }\n\n var lineWidth = context.lineWidth;\n\n context.strokeStyle = join.color;\n context.lineWidth = this.subFeatureJoinLineWidth;\n\n context.beginPath();\n context.moveTo(coords.x1, coords.y1);\n\n switch (this.subFeatureJoinStyle) {\n case 'line':\n context.lineTo(coords.x3, coords.y1);\n break;\n case 'peak':\n context.lineTo(coords.x2, coords.y2);\n context.lineTo(coords.x3, coords.y3);\n break;\n case 'curve':\n context.quadraticCurveTo(coords.x2, coords.y2, coords.x3, coords.y3);\n break;\n default: break;\n }\n\n context.stroke();\n\n context.lineWidth = lineWidth;\n },\n\n truncateSubFeatureJoinForDrawing: function (coords) {\n var y1 = coords.y; // y coord of the ends of the line (half way down the exon box)\n var y3 = y1;\n\n if (this.subFeatureJoinStyle === 'line') {\n this.truncateForDrawing(coords);\n y1 += 0.5; // Sharpen line\n }\n\n var x1 = coords.x; // x coord of the right edge of the first exon\n var x3 = coords.x + coords.width; // x coord of the left edge of the second exon\n\n // Skip if completely outside the image's region\n if (x3 < 0 || x1 > this.width) {\n return false;\n }\n\n var x2, y2, xMid, yScale;\n\n // Truncate the coordinates of the line being drawn, so it is inside the image's region\n if (this.subFeatureJoinStyle === 'peak') {\n xMid = (x1 + x3) / 2;\n x2 = xMid; // x coord of the peak of the peak/curve\n y2 = coords.y + coords.height; // y coord of the peak of the peak/curve (level with the top (forward strand) or bottom (reverse strand) of the exon box)\n yScale = (y2 - y1) / (xMid - x1); // Scale factor for recalculating coords if points lie outside the image region\n\n if (xMid < 0) {\n y2 = coords.y + (yScale * x3);\n x2 = 0;\n } else if (xMid > this.width) {\n y2 = coords.y + (yScale * (this.width - coords.x));\n x2 = this.width;\n }\n\n if (x1 < 0) {\n y1 = xMid < 0 ? y2 : coords.y - (yScale * coords.x);\n x1 = 0;\n }\n\n if (x3 > this.width) {\n y3 = xMid > this.width ? y2 : y2 - (yScale * (this.width - x2));\n x3 = this.width;\n }\n } else if (this.subFeatureJoinStyle === 'curve') {\n // TODO: try truncating when style is curve\n x2 = coords.x + coords.width / 2;\n y2 = coords.y + coords.height;\n }\n\n return {\n x1 : x1,\n y1 : y1,\n x2 : x2,\n y2 : y2,\n x3 : x3,\n y3 : y3\n };\n },\n\n formatLabel: function (label) {\n var power = Math.floor((label.toString().length - 1) / 3);\n var unit = this.labelUnits[power];\n\n label /= Math.pow(10, power * 3);\n\n return Math.floor(label) + (unit === 'bp' ? '' : '.' + (label.toString().split('.')[1] || '').concat('00').substring(0, 2)) + ' ' + unit;\n },\n\n drawBackground : $.noop,\n decorateFeature : $.noop // decoration for the features\n});\n","Genoverse.Track.View.Gene = Genoverse.Track.View.extend({\n featureHeight : 5,\n labels : true,\n repeatLabels : true,\n bump : true\n});\n","Genoverse.Track.View.Gene.Ensembl = Genoverse.Track.View.Gene.extend({\n setFeatureColor: function (feature) {\n var processedTranscript = {\n 'sense_intronic' : 1,\n 'sense_overlapping' : 1,\n 'processed_transcript' : 1,\n 'nonsense_mediated_decay' : 1,\n 'non_stop_decay' : 1,\n 'antisense' : 1,\n 'retained_intron' : 1,\n 'tec' : 1,\n 'non_coding' : 1,\n 'ambiguous_orf' : 1,\n 'disrupted_domain' : 1,\n '3prime_overlapping_ncrna' : 1\n };\n\n feature.color = '#000000';\n\n if (feature.logic_name.indexOf('ensembl_havana') === 0) {\n feature.color = '#CD9B1D';\n feature.labelColor = '#B78000';\n feature.legend = 'Merged Ensembl/Havana';\n } else if (processedTranscript[feature.biotype.toLowerCase()]) {\n feature.color = '#0000FF';\n feature.legend = 'Processed transcript';\n } else if (feature.biotype === 'protein_coding') {\n feature.color = '#A00000';\n feature.legend = 'Protein coding';\n } else if (feature.biotype.indexOf('pseudogene') > -1) {\n feature.color = '#666666';\n feature.legend = 'Pseudogene';\n } else if (/rna/i.test(feature.biotype) || feature.biotype === 'ribozyme') {\n feature.color = '#8B668B';\n feature.legend = 'RNA gene';\n } else if (/^tr_.+_gene$/i.test(feature.biotype)) {\n feature.color = '#CD6600';\n feature.legend = 'TR gene';\n } else if (/^ig_.+_gene$/i.test(feature.biotype)) {\n feature.color = '#8B4500';\n feature.legend = 'IG gene';\n }\n\n feature.labelColor = feature.labelColor || feature.color;\n }\n});\n","Genoverse.Track.View.Sequence = Genoverse.Track.View.extend({\n featureMargin : { top: 0, right: 0, bottom: 0, left: 0 },\n colors : { 'default': '#CCCCCC', A: '#73E973', T: '#DE4C61', G: '#FFFF77', C: '#688EC0' },\n labelColors : { 'default': '#000000', T: '#FFFFFF', C: '#FFFFFF' },\n labels : 'overlay',\n\n setDefaults: function () {\n this.base.apply(this, arguments);\n\n var lowerCase = this.prop('lowerCase');\n var key;\n\n this.labelYOffset = typeof this.labelYOffset === 'number' ? this.labelYOffset : (this.featureHeight + 1) / 2;\n this.widestLabel = typeof this.widestLabel === 'string' ? this.widestLabel : lowerCase ? 'g' : 'G';\n this.labelWidth = {};\n\n this.labelWidth[this.widestLabel] = Math.ceil(this.context.measureText(this.widestLabel).width) + 1;\n\n if (lowerCase) {\n for (key in this.colors) {\n this.colors[key.toLowerCase()] = this.colors[key];\n }\n\n for (key in this.labelColors) {\n this.labelColors[key.toLowerCase()] = this.labelColors[key];\n }\n }\n },\n\n draw: function (features, featureContext, labelContext, scale) {\n featureContext.textBaseline = 'middle';\n featureContext.textAlign = 'center';\n\n var width = Math.max(scale, this.minScaledWidth);\n\n for (var i = 0; i < features.length; i++) {\n this.drawSequence(features[i], featureContext, scale, width);\n }\n },\n\n drawSequence: function (feature, context, scale, width) {\n var drawLabels = this.labelWidth[this.widestLabel] < width - 1;\n var start, bp;\n\n for (var i = 0; i < feature.sequence.length; i++) {\n start = feature.position[scale].X + i * scale;\n\n if (start < -scale || start > context.canvas.width) {\n continue;\n }\n\n bp = feature.sequence.charAt(i);\n\n context.fillStyle = this.colors[bp] || this.colors.default;\n context.fillRect(start, feature.position[scale].Y, width, this.featureHeight);\n\n if (drawLabels) {\n context.fillStyle = this.labelColors[bp] || this.labelColors.default;\n context.fillText(bp, start + (width / 2), feature.position[scale].Y + this.labelYOffset);\n }\n }\n }\n});\n","Genoverse.Track.View.SequenceVariation = Genoverse.Track.View.Sequence.extend({\n featureHeight : 15,\n featureMargin : { top: 0, right: 0, bottom: 4, left: 0 },\n bump : true,\n showLegend : false,\n\n positionFeature: function (feature, params) {\n var position = feature.position[params.scale];\n\n if (feature.alt_allele) {\n if (!position.positioned) {\n position.reference = { end: position.start + feature.ref_allele.length * params.scale };\n }\n\n position.reference.x = position.reference.end - params.scaledStart;\n }\n\n this.base(feature, params);\n },\n\n bumpFeature: function (bounds, feature) {\n if (feature.alt_allele) {\n this.base.apply(this, arguments);\n }\n },\n\n draw: function (features, featureContext, labelContext, scale) {\n var drawing = { seq: [], snv: [] };\n\n for (var i = 0; i < features.length; i++) {\n drawing[features[i].alt_allele ? 'snv' : 'seq'].push(features[i]);\n }\n\n this.base(drawing.seq, featureContext, labelContext, scale);\n this.highlightSNVs(drawing.snv, featureContext, scale);\n this.base(drawing.snv, featureContext, labelContext, scale);\n this.outlineSNVs(drawing.snv, featureContext, scale); // Redraw the outline for SNVs, since the feature will have been drawn on top of some of the outline created by highlightSNVs\n },\n\n highlightSNVs: function (features, context, scale) {\n var position, positionX, positionY;\n\n for (var i = 0; i < features.length; i++) {\n position = features[i].position[scale];\n positionX = [ position.X, position.reference.x, position.X + position.width ];\n\n if (positionX[2] < 0 || positionX[0] > this.width) {\n continue;\n }\n\n if (positionX[0] < 0 || positionX[2] > this.width) {\n this.truncateForDrawing(positionX);\n }\n\n positionY = [ 0, position.Y - this.featureMargin.bottom / 2, position.Y, position.Y + this.featureHeight ];\n\n if (!features[i].highlightColor) {\n this.setHighlightColor(features[i]);\n }\n\n context.strokeStyle = context.fillStyle = features[i].highlightColor;\n context.lineWidth = 2;\n\n context.beginPath();\n context.moveTo(positionX[0], positionY[0]);\n context.lineTo(positionX[1], positionY[0]);\n context.lineTo(positionX[1], positionY[1]);\n context.lineTo(positionX[2], positionY[2]);\n context.lineTo(positionX[2], positionY[3]);\n context.lineTo(positionX[0], positionY[3]);\n context.closePath();\n context.stroke();\n\n context.lineWidth = 1;\n context.globalAlpha = 0.5;\n\n context.fill();\n\n context.globalAlpha = 1;\n }\n },\n\n outlineSNVs: function (features, context, scale) {\n var position, positionX, positionY;\n\n for (var i = 0; i < features.length; i++) {\n position = features[i].position[scale];\n positionX = [ position.X, position.X + position.width ];\n positionY = [ position.Y, position.Y + this.featureHeight ];\n\n context.strokeStyle = features[i].highlightColor;\n\n context.lineWidth = 2;\n\n context.beginPath();\n context.moveTo(positionX[1], positionY[0]);\n context.lineTo(positionX[1], positionY[1]);\n context.lineTo(positionX[0], positionY[1]);\n context.lineTo(positionX[0], positionY[0]);\n context.stroke();\n\n context.lineWidth = 1;\n }\n },\n\n truncateForDrawing: function (positionX) {\n for (var i in positionX) {\n positionX[i] = Math.min(Math.max(positionX[i], -1), this.width + 1);\n }\n },\n\n setHighlightColor: function (feature) {\n feature.highlightColor = feature.alt_allele === '-' || feature.alt_allele.length < feature.ref_allele.length ? '#D31D00' : '#1DD300';\n }\n});\n","Genoverse.Track.View.Transcript = Genoverse.Track.View.extend({\n featureHeight : 12,\n utrHeight : 7,\n labels : true,\n repeatLabels : true,\n bump : true,\n subFeatureJoinStyle : 'curve',\n\n scaleFeatures: function (features, scale) {\n var subFeatures, j;\n\n for (var i = 0; i < features.length; i++) {\n subFeatures = features[i].subFeatures || [];\n\n if (subFeatures.length) {\n for (j = 0; j < subFeatures.length; j++) {\n if (subFeatures[j].utr) {\n subFeatures[j].height = this.utrHeight;\n }\n }\n\n features[i].height = Math.max.apply(Math, subFeatures.map(function (c) { return c.fake ? 0 : c.height || 0; }).concat(this.featureHeight));\n }\n }\n\n return this.base(features, scale);\n }\n});\n","Genoverse.Track.View.Transcript.Ensembl = Genoverse.Track.View.Transcript.extend({\n setFeatureColor: function (feature) {\n Genoverse.Track.View.Gene.Ensembl.prototype.setFeatureColor(feature);\n\n for (var i = 0; i < (feature.subFeatures || []).length; i++) {\n if (feature.subFeatures[i].utr) {\n feature.subFeatures[i].color = false;\n feature.subFeatures[i].borderColor = feature.color;\n }\n }\n }\n});\n","Genoverse.Track.Chromosome = Genoverse.Track.extend({\n id : 'chromosome',\n margin : 1,\n featureMargin : { top: 0, right: 0, bottom: 0, left: 0 },\n labels : 'overlay',\n url : false,\n allData : true,\n colors : {\n acen : '#708090',\n gneg : '#FFFFFF',\n gpos : '#000000',\n gpos100 : '#000000',\n gpos25 : '#D9D9D9',\n gpos33 : '#BFBFBF',\n gpos50 : '#999999',\n gpos66 : '#7F7F7F',\n gpos75 : '#666666',\n gvar : '#E0E0E0',\n stalk : '#708090'\n },\n labelColors: {\n gneg : '#000000',\n gvar : '#000000',\n gpos25 : '#000000',\n gpos33 : '#000000'\n },\n\n getData: function (chr, start, end) {\n this.receiveData($.extend(true, [], this.browser.genome[chr].bands), chr, start, end);\n return $.Deferred().resolveWith(this);\n },\n\n insertFeature: function (feature) {\n feature.label = feature.type === 'acen' || feature.type === 'stalk' ? false : feature.id;\n feature.menuTitle = feature.id ? feature.chr + feature.id : feature.chr + ':' + feature.start + '-' + feature.end;\n feature.color = this.prop('colors')[feature.type] || '#FFFFFF';\n feature.labelColor = this.prop('labelColors')[feature.type] || '#FFFFFF';\n\n if (feature.id) {\n feature.id = feature.chr + feature.id;\n }\n\n this.base(feature);\n },\n\n drawFeature: function (feature, featureContext, labelContext, scale) {\n featureContext.fillStyle = feature.color;\n featureContext.strokeStyle = '#000000';\n\n if (feature.type === 'acen') {\n featureContext.beginPath();\n\n if (this.drawnAcen) {\n featureContext.moveTo(feature.x + feature.width, 0.5);\n featureContext.lineTo(feature.x, (feature.height + 0.5) / 2);\n featureContext.lineTo(feature.x + feature.width, feature.height + 0.5);\n } else {\n featureContext.moveTo(feature.x, 0.5);\n featureContext.lineTo(feature.x + feature.width, (feature.height + 0.5) / 2);\n featureContext.lineTo(feature.x, feature.height + 0.5);\n this.drawnAcen = true;\n }\n\n featureContext.fill();\n featureContext.stroke();\n } else if (feature.type === 'stalk') {\n for (var i = 0; i < 2; i++) {\n featureContext.beginPath();\n\n featureContext.moveTo(feature.x, 0.5);\n featureContext.lineTo(feature.x + feature.width * 0.25, feature.height * 0.25 + 0.5);\n featureContext.lineTo(feature.x + feature.width * 0.75, feature.height * 0.25 + 0.5);\n featureContext.lineTo(feature.x + feature.width, 0.5);\n\n featureContext[i ? 'moveTo' : 'lineTo'](feature.x + feature.width, feature.height + 0.5);\n featureContext.lineTo(feature.x + feature.width * 0.75, feature.height * 0.75 - 0.5);\n featureContext.lineTo(feature.x + feature.width * 0.25, feature.height * 0.75 - 0.5);\n featureContext.lineTo(feature.x, feature.height + 0.5);\n\n featureContext[i ? 'stroke' : 'fill']();\n }\n } else {\n this.base(feature, featureContext, labelContext, scale);\n\n featureContext.beginPath();\n\n var chrSize = this.browser.getChromosomeSize(feature.chr);\n\n if (feature.start === 1 || feature.end === chrSize) {\n if (feature.start === 1) {\n var end = feature.x + feature.width - (feature.end === chrSize ? 5 : 0);\n\n featureContext.clearRect(0, 0, 5, feature.height + 0.5);\n\n featureContext.fillStyle = feature.color;\n featureContext.moveTo(5, 0.5);\n featureContext.lineTo(end, 0.5);\n featureContext.moveTo(5, feature.height + 0.5);\n featureContext.lineTo(end, feature.height + 0.5);\n featureContext.moveTo(5, 0.5);\n featureContext.bezierCurveTo(-1, 0.5, -1, feature.height + 0.5, 5, feature.height + 0.5);\n featureContext.fill();\n }\n\n if (feature.end === chrSize) {\n featureContext.clearRect(feature.x + feature.width - 5, 0, 5, feature.height + 0.5);\n\n if (feature.start !== 1) {\n featureContext.fillStyle = feature.color;\n featureContext.moveTo(feature.x, 0.5);\n featureContext.lineTo(feature.x + feature.width - 5, 0.5);\n featureContext.moveTo(feature.x, feature.height + 0.5);\n featureContext.lineTo(feature.x + feature.width - 5, feature.height + 0.5);\n }\n\n featureContext.moveTo(feature.x + feature.width - 5, 0.5);\n featureContext.bezierCurveTo(this.width + 1, 0.5, this.width + 1, feature.height + 0.5, feature.x + feature.width - 5, feature.height + 0.5);\n featureContext.fill();\n }\n } else {\n featureContext.moveTo(feature.x, 0.5);\n featureContext.lineTo(feature.x + feature.width, 0.5);\n featureContext.moveTo(feature.x, feature.height + 0.5);\n featureContext.lineTo(feature.x + feature.width, feature.height + 0.5);\n }\n\n featureContext.stroke();\n }\n },\n\n drawLabel: function (feature) {\n if ((feature.start === 1 || feature.end === this.browser.getChromosomeSize(feature.chr)) && feature.labelWidth >= Math.floor(feature.width - 5)) {\n return;\n }\n\n this.base.apply(this, arguments);\n },\n\n populateMenu: function (feature) {\n return {\n title : feature.menuTitle,\n Position : feature.chr + ':' + feature.start + '-' + feature.end\n };\n }\n});\n","Genoverse.Track.File = Genoverse.Track.extend({\n setInterface: function () {\n this.base();\n\n this._interface.isLocal = 'model';\n this._interface.dataFile = 'model';\n this._interface.indexFile = 'model';\n this._interface.largeFile = 'model';\n }\n});\n","Genoverse.Track.File.BAM = Genoverse.Track.File.extend({\n name : 'BAM',\n indexExt : '.bai',\n threshold : 100000,\n largeFile : true,\n model : Genoverse.Track.Model.File.BAM,\n view : Genoverse.Track.View.Sequence.extend({\n bump : true,\n autoHeight : true\n }),\n\n click: function () {\n var menu = this.base.apply(this, arguments);\n\n if (menu) {\n menu.addClass('gv-wrap-values');\n }\n\n return menu;\n },\n\n populateMenu: function (feature) {\n var f = $.extend({ title: feature.readName }, feature);\n\n delete f.sequence;\n delete f.id;\n\n return this.base(f);\n }\n});\n","Genoverse.Track.File.BED = Genoverse.Track.File.extend({\n name : 'BED',\n model : Genoverse.Track.Model.File.BED,\n bump : true,\n featureHeight : 10,\n thickHeight : 10,\n thinHeight : 7,\n subFeatureJoinStyle : 'curve',\n\n populateMenu: function (feature) {\n var fields = [ false, false, false, 'name', 'score', 'strand', 'thickStart', 'thickEnd', 'itemRgb', 'blockCount', 'blockSizes', 'blockStarts' ]; // First three fields are chr, start, end which are covered by Location\n\n return feature.originalFeature.reduce(function (menu, val, i) {\n if (fields[i]) {\n menu[fields[i]] = val;\n }\n\n return menu;\n }, {\n title : '<a target=\"_blank\" href=\"https://genome.ucsc.edu/FAQ/FAQformat.html#format1\">BED feature details</a>',\n Location : feature.chr + ':' + feature.start + '-' + feature.end\n });\n }\n});\n","Genoverse.Track.File.BIGBED = Genoverse.Track.File.BED.extend({\n name : 'bigbed',\n model : Genoverse.Track.Model.File.BED.extend({\n getData: function (chr, start, end) {\n var model = this;\n var deferred = $.Deferred();\n\n if (!this.bigbedFile) {\n this.bigbedFile = this.bigbedFile || (this.url ? new dallianceLib.URLFetchable(this.url) : new dallianceLib.BlobFetchable(this.track.dataFile));\n }\n\n var d = $.Deferred().done(function () {\n model.bwReader.getValues(chr, start, end, function (features, error) {\n if (!error) {\n features.sort(function (a, b) { return a.start - b.start; });\n\n if (features.length) {\n model.receiveData(features, chr, features[0].start, features[features.length - 1].end);\n } else {\n model.receiveData(features, chr, start, end);\n }\n }\n\n deferred.resolveWith(model);\n });\n });\n\n if (this.bwReader) {\n d.resolve();\n } else {\n new BWReader(this.bigbedFile, function (bwReader) {\n if (bwReader) {\n model.bwReader = bwReader;\n d.resolve();\n } else {\n model.receiveData([], chr, start, end);\n return deferred.resolveWith(model);\n }\n });\n }\n\n return deferred;\n }\n })\n});\n\nGenoverse.Track.File.BB = Genoverse.Track.File.BIGBED;\n","Genoverse.Track.File.BIGWIG = Genoverse.Track.Graph.Bar.extend({\n name : 'bigwig',\n height : 100,\n\n setDefaults: function () {\n this.bwReader = null; // Not part of model since it needs to be shared between bar and line graphs\n this.base.apply(this, arguments);\n },\n\n getData: function (chr, start, end) {\n var model = this;\n var deferred = $.Deferred();\n\n if (!this.bigwigFile) {\n this.bigwigFile = this.bigwigFile || (this.url ? new dallianceLib.URLFetchable(this.url) : new dallianceLib.BlobFetchable(this.track.dataFile));\n }\n\n var d = $.Deferred().done(function () {\n model.prop('bwReader').getValues(chr, start, end, function (features, error) {\n if (!error) {\n features.sort(function (a, b) { return a.start - b.start; });\n\n if (features.length) {\n model.receiveData(features, chr, features[0].start, features[features.length - 1].end);\n } else {\n model.receiveData(features, chr, start, end);\n }\n }\n\n deferred.resolveWith(model);\n });\n });\n\n if (this.prop('bwReader')) {\n d.resolve();\n } else {\n new BWReader(this.bigwigFile, function (bwReader) {\n if (bwReader) {\n model.prop('bwReader', bwReader);\n d.resolve();\n } else {\n model.receiveData([], chr, start, end);\n return deferred.resolveWith(model);\n }\n });\n }\n\n return deferred;\n }\n});\n\nGenoverse.Track.File.BW = Genoverse.Track.File.BIGWIG;\n","Genoverse.Track.File.GFF = Genoverse.Track.File.extend({\n name : 'GFF',\n model : Genoverse.Track.Model.File.GFF,\n bump : true,\n height : 100,\n featureHeight : 5\n});\n\nGenoverse.Track.File.GTF = Genoverse.Track.File.GFF;\n","Genoverse.Track.File.VCF = Genoverse.Track.File.extend({\n name : 'VCF',\n indexExt : '.tbi',\n model : Genoverse.Track.Model.File.VCF,\n autoHeight : false,\n maxQual : undefined, // Set this to the maximum value of the QUAL field in the file in order to color features by QUAL. Only required for large (tabix indexed) files - small ones can calculate this value automatically\n\n afterSetMVC: function () {\n if (this.prop('gz')) {\n this.prop('threshold', 1e5);\n }\n },\n\n populateMenu: function (feature) {\n return {\n title : '<a target=\"_blank\" href=\"https://www.internationalgenome.org/wiki/Analysis/vcf4.0\">VCF feature details</a>',\n CHROM : feature.originalFeature[0],\n POS : feature.originalFeature[1],\n ID : feature.originalFeature[2],\n REF : feature.originalFeature[3],\n ALT : feature.originalFeature[4],\n QUAL : feature.originalFeature[5],\n FILTER : feature.originalFeature[6],\n INFO : feature.originalFeature[7].split(';').join('<br />')\n };\n },\n\n 1: {\n view: Genoverse.Track.View.Sequence.extend({\n bump : true,\n labels : false,\n featureMargin : { top: 0, right: 0, bottom: 0, left: 0 },\n\n draw: function (features, featureContext, labelContext, scale) {\n this.base.apply(this, arguments);\n this.highlightRef(features, featureContext, scale);\n },\n\n highlightRef: function (features, context, scale) {\n context.strokeStyle = 'black';\n\n for (var i = 0; i < features.length; i++) {\n if (features[i].allele === 'REF') {\n context.strokeRect(features[i].position[scale].X, features[i].position[scale].Y, features[i].position[scale].width, features[i].position[scale].height);\n }\n }\n }\n })\n },\n\n 1000: {\n view: Genoverse.Track.View.extend({\n bump : false,\n labels : false,\n\n drawFeature: function (feature) {\n var maxQual = this.prop('maxQual');\n\n if (maxQual && !feature.color) {\n var heat = Math.min(255, Math.floor((255 * (feature.originalFeature[5] || 0)) / maxQual)) - 127;\n var red = heat > 0 ? 255 : 127 + heat;\n var green = heat < 0 ? 255 : 127 - heat;\n\n feature.color = 'rgb(' + red + ',' + green + ',0)';\n }\n\n this.base.apply(this, arguments);\n }\n })\n }\n});\n","Genoverse.Track.File.WIG = Genoverse.Track.Graph.Bar.extend({\n model : Genoverse.Track.Model.File.WIG,\n name : 'wig',\n height : 100\n});\n","Genoverse.Track.Gene = Genoverse.Track.extend({\n id : 'genes',\n name : 'Genes',\n height : 200,\n legend : true,\n\n populateMenu: function (feature) {\n var url = 'https://www.ensembl.org/Homo_sapiens/' + (feature.feature_type === 'transcript' ? 'Transcript' : 'Gene') + '/Summary?' + (feature.feature_type === 'transcript' ? 't' : 'g') + '=' + feature.id;\n var menu = {\n title : '<a target=\"_blank\" href=\"' + url + '\">' + (feature.external_name ? feature.external_name + ' (' + feature.id + ')' : feature.id) + '</a>',\n Location : feature.chr + ':' + feature.start + '-' + feature.end,\n Source : feature.source,\n Biotype : feature.biotype\n };\n\n if (feature.feature_type === 'transcript') {\n menu.Gene = '<a target=\"_blank\" href=\"https://www.ensembl.org/Homo_sapiens/Gene/Summary?g=' + feature.Parent + '\">' + feature.Parent + '</a>';\n }\n\n return menu;\n },\n\n // Different settings for different zoom level\n 2000000: { // This one applies when > 2M base-pairs per screen\n labels: false\n },\n 100000: { // more than 100K but less then 2M\n labels : true,\n model : Genoverse.Track.Model.Gene.Ensembl,\n view : Genoverse.Track.View.Gene.Ensembl\n },\n 1: { // > 1 base-pair, but less then 100K\n labels : true,\n model : Genoverse.Track.Model.Transcript.Ensembl,\n view : Genoverse.Track.View.Transcript.Ensembl\n }\n});\n","// These are abstract classes, implemented by Graph.Bar and Graph.Line. They will not work properly on their own.\n\nGenoverse.Track.Controller.Graph = Genoverse.Track.Controller.extend({\n setYRange: function (min, max) {\n if (this.browser.dragging) {\n return;\n }\n\n if (this.prop('showZeroY')) {\n this.prop('range', [ Math.min(min, 0), Math.max(max, 0) ]);\n } else {\n this.prop('range', [ min, max ]);\n }\n\n this.track.reset();\n },\n\n yMinMaxFromFeatures: function (features) {\n var min = Infinity;\n var max = -Infinity;\n var i, j;\n\n if (this.prop('type') === 'Line') {\n for (i = 0; i < features.length; i++) {\n for (j = 0; j < features[i].coords.length; j++) {\n if (!isNaN(features[i].coords[j][1])) {\n min = Math.min(min, features[i].coords[j][1]);\n max = Math.max(max, features[i].coords[j][1]);\n }\n }\n }\n } else {\n for (i = 0; i < features.length; i++) {\n if (!isNaN(features[i].height)) {\n min = Math.min(min, features[i].height);\n max = Math.max(max, features[i].height);\n }\n }\n }\n\n min = min === Infinity ? 0 : min;\n max = max === -Infinity ? 0 : max;\n\n return { min: min, max: max };\n },\n\n afterSetName: function () {\n this.minLabelHeight = Math.max(this.minLabelHeight, this.prop('fontHeight') * 2 + this.prop('margin') + this.prop('marginTop')); // Minimum height that can contain axis labels for range[0] and range[1]\n },\n\n visibleFeatureHeight: function () {\n if (this.prop('rescaleable') === 'auto') {\n var yScale = this.track.getYScale();\n var y = this.yMinMaxFromFeatures(this.model.findFeatures(this.browser.chr, this.browser.start, this.browser.end));\n\n return Math.ceil(Math.max(yScale * (y.max - y.min), this.prop('hideEmpty') ? 0 : this.minLabelHeight));\n }\n\n return this.prop('height');\n },\n\n resize: function () {\n var prevHeight = this.prop('height');\n var rtn = this.base.apply(this, arguments);\n var height = this.prop('height');\n\n if (prevHeight !== height) {\n if (this.prop('rescaleable') === true) {\n var prevRange = this.prop('range');\n var maxDP = Math.max.apply(null, prevRange.map(function (r) { return (r.toString().split('.')[1] || '').length; }));\n var prevRangeSize = prevRange[1] - prevRange[0];\n var rangeChange = Math.ceil((prevRangeSize * (height / prevHeight) - prevRangeSize) / 2);\n\n this.setYRange(\n parseFloat((prevRange[0] - rangeChange).toFixed(maxDP), 10),\n parseFloat((prevRange[1] + rangeChange).toFixed(maxDP), 10)\n );\n } else {\n this.track.reset();\n }\n }\n\n (this.prop('expander') || $()).hide();\n (this.prop('resizer') || $()).removeClass('gv-resizer-expander');\n\n return rtn;\n },\n\n autoResize: function () {\n if (this.prop('rescaleable') === 'auto') {\n var visibleFeatures = this.model.findFeatures(this.browser.chr, this.browser.start, this.browser.end);\n\n if (visibleFeatures.length) {\n var range = this.prop('range');\n var y = this.yMinMaxFromFeatures(visibleFeatures);\n\n if (y.min || y.max) {\n var maxDP = Math.max.apply(null, range.map(function (r) { return (r.toString().split('.')[1] || '').length; }));\n var round = Math.pow(10, maxDP);\n var minY = parseFloat((Math.floor(y.min * round) / round).toFixed(maxDP), 10);\n var maxY = parseFloat((Math.ceil(y.max * round) / round).toFixed(maxDP), 10);\n\n if (this.prop('showZeroY')) {\n minY = Math.min(minY, 0);\n maxY = Math.max(maxY, 0);\n }\n\n if (minY === maxY) {\n maxY++;\n }\n\n if (minY !== range[0] || maxY !== range[1]) {\n return this.setYRange(minY, maxY);\n }\n }\n }\n } else {\n return this.base.apply(this, arguments);\n }\n },\n\n makeFirstImage: function () {\n var controller = this;\n\n return this.base.apply(this, arguments).done(function () {\n controller.prop('yAxisPlaceholder').hide();\n controller.prop('offsetContainer')\n .prepend(controller.prop('guidelinesCanvas'))\n .before(controller.prop('yAxisCanvas').removeClass('gv-loading'));\n });\n },\n\n typeWrapper : function (func, args) { return (Genoverse.Track.Controller.Graph[this.prop('type')][func] || Genoverse.Track.Controller.prototype[func]).apply(this, args); },\n click : function () { return this.typeWrapper('click', arguments); },\n getClickedFeatures : function () { return this.typeWrapper('getClickedFeatures', arguments); },\n populateMenu : function () { return this.typeWrapper('populateMenu', arguments); }\n});\n\nGenoverse.Track.Model.Graph = Genoverse.Track.Model.extend({\n dataBuffer : { start: 1, end: 1 },\n setLabelBuffer : $.noop,\n sortFeatures : function (features) { return features.sort(function (a, b) { return a.start - b.start; }); }\n});\n\nGenoverse.Track.View.Graph = Genoverse.Track.View.extend({\n featureMargin: {},\n\n featureDataSets: function (features) {\n var datasets = this.prop('datasets').concat({ name: '_default' });\n var setNames = {};\n var sets = {};\n var i, set;\n\n for (i = 0; i < datasets.length; i++) {\n setNames[datasets[i].name] = true;\n }\n\n for (i = 0; i < features.length; i++) {\n set = setNames[features[i].dataset] ? features[i].dataset : '_default';\n\n sets[set] = sets[set] || [];\n sets[set].push(features[i]);\n }\n\n return { list: datasets, features: sets };\n }\n});\n\nGenoverse.Track.Graph = Genoverse.Track.extend({\n controller : Genoverse.Track.Controller.Graph,\n margin : 10, // Same as fontHeight - needed to allow axis labels for range[0] and range[1] to be drawn without being cut off by the edge of the image\n invert : true,\n yAxisLabels : undefined, // An array of numerical labels for the y-axis. Should not be configured manually if the track is resizable.\n yRange : undefined, // An array of [ minY, maxY ] for the graph\n showZeroY : true, // If true, 0 will always be included in auto-generated yRanges. If yRange is defined in configuration, this setting will be ignored.\n globalAlpha : 1,\n axesSettings : { axisColor: 'black', axisLabelColor: 'black', scaleLineColor: '#E5E5E5' },\n datasets : [],\n legend : true,\n labels : false,\n\n /*\n * resizable and rescaleableY combine to define what happens when the track \"resizes\", as follows:\n * resizable | rescaleableY | Effect\n * --------- | ------------ | ------\n * true | true | Users can change the track height, and doing so changes the y-axis range (y-axis range will change proportionally to track height change)\n * true | 'auto' | Users can change the track height, and doing so does not change the y-axis range. However, the y-axis range will automatically change so that no peaks are cut off.\n * true | false | Users can change the track height, and doing so does not change the y-axis range (peak heights will change proportionally to track height change)\n * false | true | Like true/true\n * false | 'auto' | Track height cannot be changed, but the y-axis range will automatically change so that no peaks are cut off\n * false | false | Neither track height nor y-axis range can be changed, either by users or automatically\n * 'auto' | true | Like false/'auto'\n * 'auto' | 'auto' | Like false/'auto'\n * 'auto' | false | Like false/'auto' (it is not possible to change a track's height such that no peaks are cut off without being able to change the y-axis range)\n */\n resizable : true,\n rescaleableY : 'auto',\n\n setDefaults: function () {\n this.range = this.yRange || [ 0, this.height ];\n this.rescaleable = this.rescaleableY;\n\n if ($.isPlainObject(this.margin)) {\n if (this.invert) {\n this.marginTop = this.margin.bottom;\n this.margin = this.margin.top;\n } else {\n this.marginTop = this.margin.top;\n this.margin = this.margin.bottom;\n }\n }\n\n this.marginTop = typeof this.marginTop === 'number' ? this.marginTop : this.margin;\n\n if (this.resizable === false) {\n this.resizable = this.rescaleable;\n } else if (this.resizable === 'auto') {\n this.rescaleable = 'auto';\n }\n\n this.base.apply(this, arguments);\n\n if (this.legend && !this.datasets.length) {\n this.legend = false;\n }\n\n this.height += this.marginTop;\n this.initialHeight += this.marginTop;\n },\n\n setHeight: function (height) {\n return this.base(height, true); // always force show\n },\n\n setMVC: function () {\n var hadController = this.controller instanceof Genoverse.Track.Controller;\n var rtn = this.base.apply(this, arguments);\n\n if (!hadController) {\n var scrollContainer = this.prop('scrollContainer');\n\n this.yAxisPlaceholder = $('<div class=\"gv-image-container gv-loading\">');\n this.yAxisCanvas = $('<canvas class=\"gv-image-container gv-barchart-axis\">').attr('width', this.width);\n this.guidelinesCanvas = $('<canvas class=\"gv-image-container gv-barchart-guide\">').attr('width', this.width);\n\n if (this.disabled) {\n this.yAxisCanvas.add(this.guidelinesCanvas).attr('height', 0);\n }\n\n this.offsetContainer = $('<div class=\"gv-scroll-container-offset\">')\n .width(this.width)\n .insertAfter(scrollContainer)\n .append(scrollContainer)\n .before(this.yAxisPlaceholder);\n\n this.drawAxes();\n }\n\n return rtn;\n },\n\n afterSetMVC: function () {\n // Never show the control to switch between auto-height and manual resizing, since its behaviour is not the same here as for standard tracks, due to interactions between resizable and rescaleableY.\n (this.prop('heightToggler') || $()).addClass('gv-hidden');\n (this.prop('resizer') || $()).off('click');\n },\n\n reset: function () {\n this.drawAxes();\n return this.base.apply(this, arguments);\n },\n\n enable: function () {\n var wasDisabled = this.disabled;\n var rtn = this.base.apply(this, arguments);\n\n if (wasDisabled) {\n this.drawAxes();\n }\n\n return rtn;\n },\n\n getYScale: function () {\n var range = this.prop('range');\n var yScale = (this.prop('height') - this.prop('margin') - this.prop('marginTop')) / (range[1] - range[0]);\n\n return yScale;\n },\n\n drawAxes: function () {\n if (this.prop('disabled')) {\n return;\n }\n\n var width = this.width;\n var height = this.prop('height');\n var invert = this.prop('invert');\n var margin = this.prop('margin');\n var marginTop = this.prop('marginTop');\n var fontHeight = this.prop('fontHeight');\n var range = this.prop('range');\n var axesSettings = this.prop('axesSettings');\n var yAxisLabels = this.prop('yAxisLabels');\n var yScale = this.getYScale();\n var axisContext = this.prop('yAxisCanvas').attr('height', height)[0].getContext('2d');\n var linesContext = this.prop('guidelinesCanvas').attr('height', height)[0].getContext('2d');\n var y, n, i, interval, maxDP;\n\n if (!yAxisLabels) {\n n = Math.floor((height - margin - marginTop) / (fontHeight * 2)); // number of labels that can be shown\n interval = (range[1] - range[0]) / n; // label incrementor\n yAxisLabels = [];\n\n if (interval !== Math.round(interval)) { // floats\n // Strenuously ensure that interval does not contain a floating point error.\n // Assumes that values in range do not contain floating point errors.\n maxDP = Math.max.apply(null, range.map(function (r) { return (r.toString().split('.')[1] || '').length; })) + 1;\n }\n\n for (i = 0; i <= n; i++) {\n yAxisLabels.push((range[0] + interval * i)[maxDP ? 'toFixed' : 'toString'](maxDP));\n }\n }\n\n var axisWidth = Math.max.apply(null, yAxisLabels.map(function (label) { return axisContext.measureText(label).width; })) + 10;\n\n this.prop('offsetContainer').css('marginLeft', axisWidth).width(width - axisWidth);\n this.prop('scrollContainer').css('marginLeft', -axisWidth);\n\n this.prop('yAxisPlaceholder').width(axisWidth).show();\n\n axisContext.fillStyle = axesSettings.axisColor;\n axisContext.fillRect(axisWidth - 1, invert ? margin : marginTop, 1, height - margin - marginTop); // Vertical line\n\n linesContext.fillStyle = axesSettings.scaleLineColor;\n axisContext.fillStyle = axesSettings.axisLabelColor;\n axisContext.textBaseline = 'middle';\n axisContext.textAlign = 'right';\n\n for (i = 0; i < yAxisLabels.length; i++) {\n y = marginTop + (parseFloat(yAxisLabels[i], 10) - range[0]) * yScale;\n y = invert ? height - y : y;\n\n linesContext.fillRect(0, y, width, 1); // Horizontal line, indicating the y-position of a numerical value\n axisContext.fillRect(axisWidth - 4, y, 4, 1); // Horizontal line, indicating the y-position of a numerical value\n axisContext.fillText(yAxisLabels[i], axisWidth - 6, y); // The numerical value for the horizontal line\n }\n\n // Draw a horizontal line at y = 0\n y = (-range[0] * yScale) + marginTop;\n linesContext.fillStyle = axesSettings.axisColor;\n linesContext.fillRect(0, invert ? height - y : y, width, 1);\n }\n});\n","Genoverse.Track.Controller.Graph.Bar = {\n getClickedFeatures: function (x, y) {\n var yZero = this.prop('marginTop') - (this.prop('range')[0] * this.track.getYScale());\n var scale = this.scale;\n var tolerance = scale > 1 ? 0 : 1;\n\n // Bars with negative values are stored in featurePositions with h < 0.\n // While this works to a certain degree (fillRect allows negative height, drawing upwards from y), it makes them hard to search for in the RTree - to find such a feature you need to search with y = -h and h = y - h + 1\n // It is therefore easier to search featuresByChr (i.e. the genomic positions) for a feature overlapping the x of the click, and then filter those results for y position manually.\n var features = this.prop('featuresByChr')[this.browser.chr].search({\n x : (x - (tolerance / 2)) / scale,\n y : 0,\n w : (1 + tolerance) / scale,\n h : 1\n });\n\n if (features.length) {\n if (\n (y < yZero && features.filter(function (f) { return f.position[scale].bounds.y + f.position[scale].bounds.h <= y && f.position[scale].bounds.y >= y; }).length === 0) ||\n (y >= yZero && this.featurePositions.search({ x: x, y: y, w: 1, h: 1 }).length === 0)\n ) {\n features = [];\n }\n }\n\n return features.length ? [ this.model.sortFeatures(features) ] : [];\n },\n\n populateMenu: function (features) {\n if (!features.length) {\n return [];\n }\n\n var start = features[0].start;\n var end = features[features.length - 1].end;\n var avg = features[0].start !== features[features.length - 1].start;\n var menu = { title: features[0].chr + ':' + (start === end ? start : start + '-' + end) };\n var values, i;\n\n function getValues(_features) {\n var vals = _features.map(function (f) { return f.height; }).sort(function (a, b) { return a - b; });\n\n return {\n avg : vals.reduce(function (n, v) { return n + v; }, 0) / vals.length,\n min : vals[0],\n max : vals[vals.length - 1]\n };\n }\n\n if (avg) {\n if (features.length === 1) {\n values = getValues(features);\n\n menu['Average value'] = values.avg;\n menu['Min value'] = values.min;\n menu['Max value'] = values.max;\n } else {\n menu = [ menu ];\n\n var datasets = this.prop('datasets');\n var featuresByDataset;\n\n if (datasets.length) {\n featuresByDataset = datasets.reduce(function (hash, d) { hash[d.name] = []; return hash; }, {});\n\n for (i = 0; i < features.length; i++) {\n featuresByDataset[features[i].dataset].push(features[i]);\n }\n } else {\n datasets = [{ name: '' }];\n featuresByDataset = { '': features };\n }\n\n for (i = 0; i < datasets.length; i++) {\n values = getValues(featuresByDataset[datasets[i].name]);\n\n menu.push($.extend({\n Average : values.avg,\n Min : values.min,\n Max : values.max\n }, datasets[i].name ? { title: datasets[i].name } : {}));\n }\n }\n } else if (features.length === 1) {\n menu.Value = features[0].height;\n } else {\n for (i = 0; i < features.length; i++) {\n menu[features[i].dataset] = features[i].height;\n }\n }\n\n return menu;\n }\n};\n\nGenoverse.Track.Model.Graph.Bar = Genoverse.Track.Model.Graph.extend({\n insertFeature: function (feature) {\n var datasets = this.prop('datasets');\n\n if (datasets.length) {\n feature.legend = feature.dataset;\n feature.color = (datasets.filter(function (s) { return s.name === feature.dataset; })[0] || { color: this.color }).color;\n }\n\n feature.id = feature.id || [ feature.chr, feature.start, feature.end, feature.dataset || '' ].join(':');\n\n return this.base.apply(this, arguments);\n }\n});\n\nGenoverse.Track.View.Graph.Bar = Genoverse.Track.View.Graph.extend({\n scaleFeatures: function (features, scale) {\n var yScale = this.track.getYScale();\n var zeroY = this.prop('marginTop') - this.prop('range')[0] * yScale;\n\n features = this.base(features, scale);\n\n for (var i = 0; i < features.length; i++) {\n features[i].position[scale].height = features[i].height * yScale;\n features[i].position[scale].y = zeroY;\n }\n\n return features;\n },\n\n draw: function (features, featureContext, labelContext, scale) {\n var datasets = this.featureDataSets(features);\n var marginBottom = this.prop('margin');\n var binSize = scale < 1 ? Math.ceil(1 / scale) : 0;\n var conf, set, setFeatures, j, binnedFeatures, binStart, bin, f;\n\n var defaults = {\n color : this.color,\n globalAlpha : this.prop('globalAlpha')\n };\n\n for (var i = 0; i < datasets.list.length; i++) {\n conf = $.extend({}, defaults, datasets.list[i]);\n set = datasets.list[i].name;\n setFeatures = $.extend(true, [], datasets.features[set] || []);\n\n if (!setFeatures.length) {\n continue;\n }\n\n if (binSize) {\n binnedFeatures = [];\n j = 0;\n\n while (j < setFeatures.length) {\n binStart = setFeatures[j].start;\n bin = [];\n\n while (setFeatures[j] && setFeatures[j].start - binStart < binSize) {\n bin.push(setFeatures[j++]);\n }\n\n f = $.extend(true, {}, bin[0], {\n height : bin.reduce(function (a, b) { return a + b.height; }, 0) / bin.length,\n end : bin[bin.length - 1].end\n });\n\n [ 'H', 'W', 'height', 'width' ].forEach(function (attr) { // eslint-disable-line no-loop-func\n f.position[scale][attr] = bin.reduce(function (a, b) { return a + b.position[scale][attr]; }, 0) / bin.length;\n });\n\n binnedFeatures.push(f);\n }\n\n setFeatures = binnedFeatures;\n }\n\n for (j = 0; j < setFeatures.length; j++) {\n setFeatures[j].color = conf.color;\n }\n\n featureContext.globalAlpha = conf.globalAlpha;\n\n this.base(setFeatures, featureContext, labelContext, scale);\n }\n\n // Don't allow features to be drawn in the margins\n featureContext.clearRect(0, 0, this.width, this.prop('marginTop') - 1);\n featureContext.clearRect(0, this.prop('height') - marginBottom, this.width, marginBottom);\n }\n});\n\nGenoverse.Track.Graph.Bar = Genoverse.Track.Graph.extend({\n type : 'Bar',\n model : Genoverse.Track.Model.Graph.Bar,\n view : Genoverse.Track.View.Graph.Bar,\n threshold : 500000,\n\n 10000: $.extend( // Switch to line graph at 10000bp region\n Object.keys(Genoverse.Track.Graph.Line.prototype).reduce(function (hash, key) {\n if (Genoverse.Track.Graph.Line.prototype.hasOwnProperty(key) && !Base.prototype[key]) {\n hash[key] = Genoverse.Track.Graph.Line.prototype[key];\n }\n\n return hash;\n }, {}), {\n fill : true,\n model : Genoverse.Track.Model.Graph.Line.extend({\n parseData: function (data, chr, start, end) {\n var coords = [];\n var j;\n\n for (var i = 0; i < data.length; i++) {\n for (j = data[i].start; j < data[i].end; j++) {\n coords.push([ j, data[i].height ]);\n }\n }\n\n return this.base([{ chr: chr, start: start, end: end, coords: coords }], chr, start, end);\n }\n })\n }\n ),\n 50000: $.extend( // Switch to sparser line graph at 50000bp region\n Object.keys(Genoverse.Track.Graph.Line.prototype).reduce(function (hash, key) {\n if (Genoverse.Track.Graph.Line.prototype.hasOwnProperty(key) && !Base.prototype[key]) {\n hash[key] = Genoverse.Track.Graph.Line.prototype[key];\n }\n\n return hash;\n }, {}), {\n fill : true,\n model : Genoverse.Track.Model.Graph.Line.extend({\n parseData: function (data, chr, start, end) {\n return this.base([{ chr: chr, start: start, end: end, coords: data.map(function (d) { return [ d.start, d.height ]; }) }], chr, start, end);\n }\n })\n }\n )\n});\n","Genoverse.Track.Controller.Graph.Line = {\n click: function () {\n if (this.prop('showPopups')) {\n this.prop('menus').hide(); // Hide first, because closeMenus causes fadeOut to happen, which doens't look great in this scenario\n this.browser.closeMenus(this);\n return Genoverse.Track.Controller.prototype.click.apply(this, arguments);\n }\n },\n\n getClickedFeatures: function (x) {\n var bounds = { x: x, y: 0, w: 1, h: 9e99 };\n var tolerance = this.scale > 1 ? 0 : 1 / this.scale;\n var xMid = bounds.x / this.scale;\n var xRange = tolerance ? [ Math.floor(xMid - tolerance), Math.ceil(xMid + tolerance) ] : [ Math.floor(xMid), Math.floor(xMid) ];\n var features = {};\n\n this.featurePositions.search(bounds).forEach(function (f) {\n if (!features[f.dataset]) {\n features[f.dataset] = f;\n }\n });\n\n return [\n this.model.sortFeatures(Object.keys(features).map(function (k) {\n return $.extend(true, {}, features[k], { clickedCoords: features[k].coords.filter(function (c) { return c[0] >= xRange[0] && c[0] <= xRange[1]; }) });\n }))\n ];\n },\n\n populateMenu: function (features) {\n if (!features.length || !features[0].clickedCoords.length) {\n return [];\n }\n\n var start = features[0].clickedCoords[0][0];\n var end = features[0].clickedCoords[features[0].clickedCoords.length - 1][0];\n var avg = start !== end;\n var menu = { title: features[0].chr + ':' + (start === end ? start : start + '-' + end) };\n var m, values, i;\n\n function getValues(coords) {\n var vals = coords.map(function (c) { return c[1]; }).sort(function (a, b) { return a - b; });\n\n return {\n avg : vals.reduce(function (n, v) { return n + v; }, 0) / vals.length,\n min : vals[0],\n max : vals[vals.length - 1]\n };\n }\n\n if (avg) {\n if (features.length === 1) {\n values = getValues(features[0].clickedCoords);\n\n menu['Average value'] = values.avg;\n menu['Min value'] = values.min;\n menu['Max value'] = values.max;\n } else {\n menu = [ menu ];\n\n for (i = 0; i < features.length; i++) {\n values = getValues(features[i].clickedCoords);\n m = { title: features[i].dataset };\n m.Average = values.avg;\n m.Min = values.min;\n m.Max = values.max;\n\n menu.push(m);\n }\n }\n } else if (features.length === 1) {\n menu.Value = features[0].clickedCoords[0][1];\n } else {\n for (i = 0; i < features.length; i++) {\n menu[features[i].dataset] = features[i].clickedCoords[0][1];\n }\n }\n\n return menu;\n }\n};\n\nGenoverse.Track.Model.Graph.Line = Genoverse.Track.Model.Graph.extend({\n parseData: function (data, chr, start, end) {\n var features = [];\n var feature, x;\n\n function getX(f) {\n return typeof f.x !== 'undefined' ? f.x : f.start + (f.start === f.end ? 0 : (f.end - f.start + 1) / 2);\n }\n\n data.sort(function (a, b) { return (a.start - b.start) || (a.x - b.x); });\n\n for (var i = 0; i < data.length; i++) {\n if (typeof data[i].y !== 'undefined' && !data[i].coords) {\n x = getX(data[i]);\n\n if (feature && feature.coords[feature.coords.length - 1][0] === x - 1) {\n feature.coords.push([ x, data[i].y ]);\n feature.end = x;\n } else {\n if (feature) {\n features.push(feature);\n }\n\n feature = $.extend({ coords: [[ x, data[i].y ]], start: x, end: x }, data[i]);\n }\n } else {\n if (feature) {\n features.push(feature);\n feature = undefined;\n }\n\n features.push(data[i]);\n }\n }\n\n if (feature) {\n features.push(feature);\n }\n\n return this.base(features, chr, start, end);\n },\n\n insertFeature: function (feature) {\n var datasets = this.prop('datasets');\n\n if (feature.coords) {\n feature.coords = feature.coords.map(function (c, i) { return c.length > 1 ? c : [ feature.start + i, c ]; }).filter(function (c) { return c[0] >= feature.start && c[0] <= feature.end; });\n } else if (feature.y) {\n feature.coords = [[ feature.start + (feature.start === feature.end ? 0 : (feature.end - feature.start + 1) / 2), feature.y ]];\n } else {\n feature.coords = [];\n }\n\n if (datasets.length) {\n feature.legend = feature.dataset;\n feature.color = (datasets.filter(function (s) { return s.name === feature.dataset; })[0] || { color: this.color }).color;\n }\n\n feature.id = feature.id || [ feature.chr, feature.start, feature.end, feature.dataset || '' ].join(':');\n\n return this.base.apply(this, arguments);\n }\n});\n\nGenoverse.Track.View.Graph.Line = Genoverse.Track.View.Graph.extend({\n featureHeight: 1,\n\n positionFeatures: function (features, params) {\n var scale = params.scale;\n var yScale = this.track.getYScale();\n var margin = this.prop('marginTop');\n var zeroY = margin - this.prop('range')[0] * yScale;\n var add = (scale > 1 ? scale / 2 : 0) - params.scaledStart;\n\n function setCoords(c) {\n return [ c[0] * scale + add, c[1] * yScale + zeroY ];\n }\n\n for (var i = 0; i < features.length; i++) {\n features[i].coordPositions = features[i].coords.map(setCoords);\n }\n\n params.featureHeight = this.prop('height');\n\n return this.base(features, params);\n },\n\n draw: function (features, featureContext, labelContext, scale) {\n if (!features.length) {\n return;\n }\n\n var datasets = this.featureDataSets(features);\n var height = this.prop('height');\n var marginTop = this.prop('marginTop');\n var marginBottom = this.prop('margin');\n var baseline = Math.min(Math.max(marginTop, marginTop - this.prop('range')[0] * this.track.getYScale()), height - marginTop);\n var binSize = scale < 1 ? Math.floor(1 / scale) : 0;\n var set, conf, feature, coords, binnedFeatures, lastBinSize, j, k, binStart, bin, l, prevFeature, prevCoords;\n\n var defaults = {\n color : this.color,\n fill : this.prop('fill'),\n lineWidth : this.prop('lineWidth'),\n globalAlpha : this.prop('globalAlpha')\n };\n\n for (var i = 0; i < datasets.list.length; i++) {\n set = datasets.list[i].name;\n conf = $.extend({}, defaults, datasets.list[i]);\n\n for (j = 0; j < (datasets.features[set] || []).length; j++) {\n feature = datasets.features[set][j];\n coords = feature.coordPositions;\n\n if (coords.length) {\n if (binSize) {\n binnedFeatures = [];\n k = 0;\n\n while (k < coords.length) {\n binStart = feature.coords[k][0];\n bin = [];\n\n while (coords[k] && feature.coords[k][0] - binStart < binSize) {\n bin.push(coords[k++]);\n }\n\n l = bin.length;\n bin = bin.reduce(function (arr, b) { arr[0] += b[0]; arr[1] += b[1]; return arr; }, [ 0, 0 ]);\n bin[0] = Math.round(bin[0] / l);\n\n if (binnedFeatures.length && bin[0] === binnedFeatures[binnedFeatures.length - 1][0]) {\n binnedFeatures[binnedFeatures.length - 1][1] = (binnedFeatures[binnedFeatures.length - 1][1] * lastBinSize + bin[1]) / (lastBinSize + l);\n } else {\n binnedFeatures.push([ bin[0], bin[1] / l ]);\n }\n\n lastBinSize = l;\n }\n\n coords = binnedFeatures;\n feature.binnedCoords = coords;\n }\n\n featureContext.fillStyle = featureContext.strokeStyle = conf.color;\n featureContext.lineWidth = conf.lineWidth;\n\n if (conf.fill) {\n featureContext.globalAlpha = conf.globalAlpha;\n }\n\n featureContext.beginPath();\n\n if (conf.fill) {\n featureContext.moveTo(coords[0][0], baseline);\n featureContext.lineTo.apply(featureContext, coords[0]);\n } else {\n featureContext.moveTo.apply(featureContext, coords[0]);\n }\n\n for (k = 1; k < coords.length; k++) {\n featureContext.lineTo.apply(featureContext, coords[k]);\n }\n\n featureContext.stroke();\n\n if (conf.fill) {\n featureContext.lineTo(coords[coords.length - 1][0], baseline);\n featureContext.closePath();\n featureContext.fill();\n }\n\n prevFeature = j ? datasets.features[set][j - i] : undefined;\n\n if (prevFeature && prevFeature.end === feature.start - 1) {\n featureContext.beginPath();\n\n prevCoords = (binSize ? prevFeature.binnedCoords : prevFeature.coordPositions).slice(-1);\n\n featureContext.moveTo.apply(featureContext, prevCoords[0]);\n featureContext.lineTo.apply(featureContext, coords[0]);\n featureContext.stroke();\n\n if (conf.fill) {\n featureContext.lineTo(coords[0][0], baseline);\n featureContext.lineTo(prevCoords[0][0], baseline);\n\n featureContext.closePath();\n featureContext.fill();\n }\n }\n\n if (conf.fill) {\n featureContext.globalAlpha = 1;\n }\n }\n }\n }\n\n // Don't allow features to be drawn in the margins\n featureContext.clearRect(0, 0, this.width, marginTop - 1);\n featureContext.clearRect(0, height - marginBottom, this.width, marginBottom);\n }\n});\n\nGenoverse.Track.Graph.Line = Genoverse.Track.Graph.extend({\n type : 'Line',\n showPopups : true, // If true, clicking on the track will show popups. If false, popups will not appear.\n fill : false,\n lineWidth : 1,\n model : Genoverse.Track.Model.Graph.Line,\n view : Genoverse.Track.View.Graph.Line\n});\n","Genoverse.Track.HighlightRegion = Genoverse.Track.extend({\n id : 'highlights',\n unsortable : true,\n fixedOrder : true,\n repeatLabels : true,\n resizable : false,\n border : false,\n alwaysReposition : true,\n height : 15,\n featureHeight : 2,\n order : -1,\n orderReverse : 9e99,\n controls : 'off',\n colors : [ '#777777', '#F08080', '#3CB371', '#6495ED', '#FFA500', '#9370DB' ],\n labels : 'separate',\n depth : 1,\n featureMargin : { top: 13, right: 0, bottom: 0, left: 0 },\n margin : 0,\n\n constructor: function () {\n this.colorIndex = 0;\n return this.base.apply(this, arguments);\n },\n\n addHighlights: function (highlights) {\n for (var i = 0; i < highlights.length; i++) {\n this.model.insertFeature($.extend({ label: (highlights[i].start + '-' + highlights[i].end) }, highlights[i]));\n }\n\n this.reset();\n },\n\n removeHighlights: function (highlights) {\n var featuresByChr = this.prop('featuresByChr');\n var featuresById = this.prop('featuresById');\n var features, bounds, h;\n\n highlights = highlights || $.map(featuresById, function (f) { return f; });\n\n for (var i = 0; i < highlights.length; i++) {\n if (highlights[i].removable === false) {\n continue;\n }\n\n features = featuresByChr[highlights[i].chr];\n bounds = { x: highlights[i].start, y: 0, w: highlights[i].end - highlights[i].start + 1, h: 1 };\n\n // RTree.remove only works if the second argument (the object to be removed) === the object found in the tree.\n // Here, while highlight is effectively the same object as the one in the tree, it has been cloned, so the === check fails.\n // To fix this, search for the feature to remove in the location of highlight.\n h = $.grep(features.search(bounds), function (item) { return item.id === highlights[i].id; }); // eslint-disable-line no-loop-func\n\n if (h.length) {\n features.remove(bounds, h[0]);\n }\n\n delete featuresById[highlights[i].id];\n }\n\n if (this.prop('strand') === 1) {\n this.prop('reverseTrack').removeHighlights(highlights);\n }\n\n this.reset();\n },\n\n controller: Genoverse.Track.Controller.Stranded.extend({\n setDefaults: function () {\n if (this.prop('strand') === -1) {\n this.prop('labels', false);\n this.prop('border', false);\n this.prop('height', 2);\n this.prop('featureMargin').top = 0;\n }\n\n this.base();\n },\n\n setName: function (name) {\n if (this.prop('strand') === -1) {\n this.base('');\n this.minLabelHeight = 0;\n this.label.height(0);\n } else {\n this.base(name);\n }\n },\n\n makeImage: function (params) {\n if (this.prop('strand') === 1) {\n params.background = 'gv-full-height';\n }\n\n var rtn = this.base(params);\n params.container.addClass(params.background);\n return rtn;\n },\n\n render: function (features, img) {\n this.base(features, img);\n img.siblings('.gv-labels').css('top', this.prop('featureHeight') - this.prop('featureMargin').top);\n },\n\n renderBackground: function (f, img) {\n this.base(f, img);\n img.height(this.browser.wrapper.outerHeight(true));\n },\n\n populateMenu: function (features) {\n var menu = [];\n var location, m;\n\n if (features.length > 1) {\n menu.push({ title: 'Highlights' });\n }\n\n for (var i = 0; i < features.length; i++) {\n location = features[i].start + '-' + features[i].end;\n m = {\n title : features[i].label ? features[i].label[0] : location,\n start : false\n };\n\n m[m.title === location ? 'title' : 'Location'] = features[i].chr + ':' + location;\n m['<a class=\"gv-focus-highlight\" href=\"#\" data-chr=\"' + features[i].chr + '\" data-start=\"' + features[i].start + '\" data-end=\"' + features[i].end + '\">Focus here</a>'] = '';\n\n if (features[i].removable !== false) {\n m['<a class=\"gv-remove-highlight\" href=\"#\" data-id=\"' + features[i].id + '\">Remove this highlight</a>'] = '';\n m['<a class=\"gv-remove-highlights\" href=\"#\">Remove all highlights</a>'] = '';\n }\n\n menu.push(m);\n }\n\n return menu;\n },\n\n click: function () {\n if (this.prop('strand') !== 1) {\n return;\n }\n\n var menuEl = this.base.apply(this, arguments);\n\n if (menuEl && !menuEl.data('highlightEvents')) {\n var track = this.track;\n\n menuEl.find('.gv-remove-highlight').on('click', function () {\n var id = $(this).data('id');\n track.removeHighlights($.grep(menuEl.data('feature'), function (f) { return f.id === id; }));\n return false;\n });\n\n menuEl.find('.gv-remove-highlights').on('click', function () {\n track.removeHighlights();\n return false;\n });\n\n menuEl.find('.gv-focus-highlight').on('click', function () {\n var data = $(this).data();\n var length = data.end - data.start + 1;\n var context = Math.max(Math.round(length / 4), 25);\n\n track.browser.moveTo(data.chr, data.start - context, data.end + context, true);\n\n return false;\n });\n\n menuEl.data('highlightEvents', true);\n }\n },\n\n getClickedFeatures: function (x, y) {\n var seen = {};\n var scale = this.scale;\n var features = $.grep(\n // feature positions\n this.featurePositions.search({ x: x, y: y, w: 1, h: 1 }).concat(\n // plus label positions where the labels are visible\n $.grep(this.labelPositions.search({ x: x, y: y, w: 1, h: 1 }), function (f) {\n return f.position[scale].label.visible !== false;\n })\n ),\n function (f) {\n // with duplicates removed\n var rtn = !seen[f.id];\n seen[f.id] = true;\n return rtn;\n }\n );\n\n return features.length ? [ this.model.sortFeatures(features) ] : false;\n }\n }),\n\n model: Genoverse.Track.Model.Stranded.extend({\n url: false,\n\n insertFeature: function (feature) {\n feature.id = feature.chr + ':' + feature.start + '-' + feature.end;\n feature.sort = feature.start;\n\n if (!feature.color) {\n var colors = this.prop('colors');\n var i = this.prop('colorIndex');\n\n feature.color = colors[i++];\n\n this.prop('colorIndex', colors[i] ? i : 0);\n }\n\n if (!this.featuresById[feature.id]) {\n this.base(feature);\n }\n },\n\n findFeatures: function () {\n return Genoverse.Track.Model.prototype.findFeatures.apply(this, arguments);\n }\n }),\n\n view: Genoverse.Track.View.extend({\n positionFeatures: function (features, params) {\n var rtn = this.base.apply(this, arguments);\n\n // featureMargin.top gets used to define params.featureHeight, which is used to determine canvas height.\n // Since featureMargin.top = 13 on forward strand, the canvas has a 13px space at the bottom, meaning there is a gap before the background starts.\n // Reducing params.featureHeight here fixes that.\n params.featureHeight = Math.max(params.featureHeight - this.featureMargin.top, 0);\n\n return rtn;\n },\n\n draw: function (features, featureContext, labelContext, scale) {\n if (this.prop('strand') === 1) {\n featureContext.fillStyle = '#FFF';\n featureContext.fillRect(0, 0, featureContext.canvas.width, featureContext.canvas.height);\n }\n\n this.base(features, featureContext, labelContext, scale);\n },\n\n drawBackground: function (features, context, params) {\n if (this.prop('strand') === -1) {\n return;\n }\n\n for (var i = 0; i < features.length; i++) {\n context.fillStyle = features[i].color;\n\n this.drawFeature($.extend(true, {}, features[i], {\n x : features[i].position[params.scale].X,\n y : 0,\n width : features[i].position[params.scale].width,\n height : context.canvas.height,\n color : this.shadeColor(context.fillStyle, 0.8),\n border : features[i].color,\n label : false,\n decorations : true\n }), context, false, params.scale);\n }\n },\n\n decorateFeature: function (feature, context) {\n var x1 = feature.x + 0.5;\n var x2 = x1 + feature.width;\n var draw = false;\n\n context.strokeStyle = feature.border;\n context.lineWidth = 2;\n context.beginPath();\n\n if (x1 >= 0 && x1 <= this.width) {\n context.moveTo(x1, feature.y);\n context.lineTo(x1, feature.y + feature.height);\n draw = true;\n }\n\n if (x2 >= 0 && x2 <= this.width) {\n context.moveTo(x2, feature.y);\n context.lineTo(x2, feature.y + feature.height);\n draw = true;\n }\n\n if (draw) {\n context.stroke();\n }\n\n context.lineWidth = 1;\n }\n })\n});\n","Genoverse.Track.Controller.Legend = Genoverse.Track.Controller.Static.extend({\n init: function () {\n this.base();\n\n this.container.addClass('gv-track-container-legend');\n\n this.browser.legends[this.track.id] = this.track;\n\n this.track.setTracks();\n },\n\n destroy: function () {\n delete this.browser.legends[this.prop('id')];\n this.base();\n }\n});\n\nGenoverse.Track.Model.Legend = Genoverse.Track.Model.Static.extend({\n findFeatures: function () {\n var bounds = { x: this.browser.scaledStart, y: 0, w: this.width };\n var features = {};\n\n $.each($.map(this.track.tracks, function (track) {\n var featurePositions = track.prop('featurePositions');\n bounds.h = track.prop('height');\n return featurePositions ? featurePositions.search(bounds).concat(track.prop('labelPositions').search(bounds)) : [];\n }), function () {\n if (Array.isArray(this.legend)) {\n this.legend.forEach(function (legend) { features[legend.label] = legend.color; });\n } else if (this.legend) {\n features[this.legend] = this.legendColor || this.color;\n }\n });\n\n return this.sortFeatures($.map(features, function (color, text) { return [[ text, color ]]; }));\n },\n\n sortFeatures: function (features) {\n // sort legend alphabetically\n return features.sort(function (a, b) { return a[0].localeCompare(b[0]); });\n }\n});\n\nGenoverse.Track.View.Legend = Genoverse.Track.View.Static.extend({\n textColor : '#000000',\n labels : 'overlay',\n featureHeight : 12,\n\n positionFeatures: function (f, params) {\n if (params.positioned) {\n return f;\n }\n\n var cols = 2;\n var pad = 5;\n var w = 20;\n var x = 0;\n var y = 0;\n var xScale = this.width / cols;\n var yScale = this.fontHeight + pad;\n var features = [];\n var xOffest = params.xOffset || 0;\n var xPos, yPos, labelWidth;\n\n for (var i = 0; i < f.length; i++) {\n xPos = (x * xScale) + pad;\n yPos = (y * yScale) + pad;\n labelWidth = this.context.measureText(f[i][0]).width;\n\n features.push(\n { x: xPos + xOffest, y: yPos, width: w, height: this.featureHeight, color: f[i][1] },\n { x: xPos + xOffest + pad + w, y: yPos, width: labelWidth + 1, height: this.featureHeight, color: false, labelColor: this.textColor, labelWidth: labelWidth, label: f[i][0] }\n );\n\n if (++x === cols) {\n x = 0;\n y++;\n }\n }\n\n params.height = this.prop('height', f.length ? ((y + (x ? 1 : 0)) * yScale) + pad : 0);\n params.width = this.width;\n params.positioned = true;\n\n return this.base(features, params);\n }\n});\n\nGenoverse.Track.Legend = Genoverse.Track.Static.extend({\n unsortable : true,\n lockToTrack : true, // Always put the legend just below the last track that the legend is for\n removable : false,\n\n controller : Genoverse.Track.Controller.Legend,\n model : Genoverse.Track.Model.Legend,\n view : Genoverse.Track.View.Legend,\n\n setDefaults: function () {\n this.order = typeof this.order !== 'undefined' ? this.order : 9e99;\n this.id = this.id || 'legend';\n this.type = this.type || 'legend';\n this.base();\n },\n\n setEvents: function () {\n this.browser.on({\n 'afterAddTracks afterRemoveTracks': function () {\n for (var i in this.legends) {\n this.legends[i].setTracks();\n }\n\n this.sortTracks();\n },\n afterRemoveTracks: function (tracks) {\n var i;\n\n for (i in tracks) {\n if (tracks[i].legendTrack && tracks[i].legendTrack.tracks.length === 0) {\n tracks[i].legendTrack.remove();\n }\n }\n\n for (i in this.legends) {\n this.legends[i].controller.makeImage({});\n }\n },\n afterUpdateTrackOrder: function (e, ui) {\n var track = ui.item.data('track');\n var legendTrack = this.legends[track.id] || track.legendTrack;\n\n // If a legend track, or a track with a sortable legend has been reordered, its lockToTrack status is ignored from now on.\n // This allows a legend to initially be locked to a track, but then to be reordered once the browser has been initialized\n if (legendTrack && legendTrack.lockToTrack && legendTrack.unsortable === false) {\n legendTrack.lockToTrack = false;\n }\n\n for (var i in this.legends) {\n this.legends[i].updateOrder();\n }\n\n this.sortTracks();\n }\n });\n\n this.browser.on({\n afterPositionFeatures: function (features, params) {\n var legend = this.prop('legendTrack');\n\n if (legend) {\n setTimeout(function () { legend.controller.makeImage(params); }, 1);\n }\n },\n afterResize: function (height, userResize) {\n var legend = this.prop('legendTrack');\n\n if (legend && userResize === true) {\n legend.controller.makeImage({});\n }\n },\n afterCheckHeight: function () {\n var legend = this.prop('legendTrack');\n\n if (legend) {\n legend.controller.makeImage({});\n }\n },\n afterSetMVC: function () {\n var legend = this.prop('legendTrack');\n\n if (legend && legend.tracks.length) {\n legend.disable();\n\n if (this.legend !== false) {\n legend.enable();\n }\n }\n }\n }, this);\n },\n\n setTracks: function () {\n var legend = this;\n var type = this.type;\n\n this.tracks = $.map(this.browser.tracks.filter(function (t) {\n if (t.legendType === type) {\n t.legendTrack = t.legendTrack || legend;\n return true;\n }\n\n return false;\n }), function (track) {\n return [ track ].concat(track.prop('childTracks'), track.prop('parentTrack')).filter(function (t) { return t && t !== legend && !t.prop('disabled'); });\n });\n\n this.updateOrder();\n\n if (typeof this.controller === 'object') {\n this[this.tracks.length ? 'enable' : 'disable']();\n } else {\n this.disabled = !this.tracks.length;\n }\n },\n\n updateOrder: function () {\n if (this.lockToTrack) {\n var tracks = this.tracks.filter(function (t) { return !t.prop('parentTrack'); });\n\n if (tracks.length) {\n this.order = tracks[tracks.length - 1].order + 0.1;\n }\n }\n },\n\n enable: function () {\n this.base();\n this.controller.makeImage({});\n },\n\n disable: function () {\n delete this.controller.stringified;\n this.base();\n }\n});\n","Genoverse.Track.Scalebar = Genoverse.Track.extend({\n unsortable : true,\n fixedOrder : true,\n order : 0,\n orderReverse : 1e5,\n featureStrand : 1,\n controls : 'off',\n height : 20,\n featureHeight : 3,\n featureMargin : { top: 0, right: 0, bottom: 2, left: 0 },\n margin : 0,\n minPixPerMajor : 100, // Least number of pixels per written number\n color : '#000000',\n autoHeight : false,\n labels : true,\n bump : false,\n resizable : false,\n click : $.noop,\n colors : {\n majorGuideLine : '#CCCCCC',\n minorGuideLine : '#E5E5E5'\n },\n\n setEvents: function () {\n var browser = this.browser;\n\n function resize() {\n $('.gv-bg.gv-full-height', browser.container).height(function () {\n return browser.wrapper.outerHeight(true) - $(this).parents('.gv-track-container').position().top;\n });\n }\n\n browser.on('afterAddTracks', resize);\n browser.on('afterResize', this, resize);\n },\n\n setScale: function () {\n var max = this.prop('width') / this.prop('minPixPerMajor');\n var divisor = 5;\n var majorUnit = -1;\n var fromDigit = ('' + this.browser.start).split(''); // Split into array of digits\n var toDigit = ('' + this.browser.end).split('');\n var features = {};\n var divisions, i;\n\n for (i = fromDigit.length; i < toDigit.length; i++) {\n fromDigit.unshift('0');\n }\n\n for (i = toDigit.length; i < fromDigit.length; i++) {\n toDigit.unshift('0');\n }\n\n // How many divisions would there be if we only kept i digits?\n for (i = 0; i < fromDigit.length; i++) {\n divisions = parseInt(toDigit.slice(0, fromDigit.length - i).join(''), 10) - parseInt(fromDigit.slice(0, fromDigit.length - i).join(''), 10);\n\n if (divisions && divisions <= max) {\n majorUnit = parseInt('1' + $.map(new Array(i), function () { return '0'; }).join(''), 10);\n break;\n }\n }\n\n if (majorUnit === -1) {\n majorUnit = this.browser.length === 1 ? 1 : parseInt('1' + $.map(new Array(fromDigit.length), function () { return '0'; }).join(''), 10);\n divisor = 1;\n } else if (divisions * 5 <= max) { // Improve things by trying simple multiples of 1<n zeroes>. (eg if 100 will fit will 200, 400, 500).\n majorUnit /= 5;\n divisor = 2;\n } else if (divisions * 4 <= max) {\n majorUnit /= 4;\n divisor = 1;\n } else if (divisions * 2 <= max) {\n majorUnit /= 2;\n }\n\n majorUnit = Math.max(majorUnit, 1);\n\n features[this.browser.chr] = new RTree();\n\n this.prop('minorUnit', Math.max(majorUnit / divisor, 1));\n this.prop('majorUnit', majorUnit);\n this.prop('featuresByChr', features);\n this.prop('featuresById', {});\n this.prop('seen', {});\n\n this.base();\n },\n\n setFeatures: function (chr, start, end) {\n var minorUnit = this.prop('minorUnit');\n var majorUnit = this.prop('majorUnit');\n var seen = this.prop('seen');\n\n start = Math.max(start - (start % minorUnit) - majorUnit, 0);\n\n var flip = (start / minorUnit) % 2 ? 1 : -1;\n var feature, major, label;\n\n for (var x = start; x < end + minorUnit; x += minorUnit) {\n flip *= -1;\n\n if (seen[x]) {\n continue;\n }\n\n seen[x] = 1;\n\n feature = { id: chr + ':' + x, chr: chr, strand: 1, sort: x };\n major = x && x % majorUnit === 0;\n\n if (flip === 1) {\n feature.start = x;\n feature.end = x + minorUnit - 1;\n }\n\n if (major) {\n label = this.view.formatLabel(x);\n\n if (label !== this.lastLabel) {\n feature.label = label;\n\n if (!feature.end) {\n feature.start = x;\n feature.end = x - 1;\n }\n }\n\n this.lastLabel = label;\n }\n\n if (feature.end) {\n this.model.insertFeature(feature);\n }\n }\n },\n\n makeFirstImage: function (moveTo) {\n if (this.prop('strand') === -1) {\n moveTo = this.track.forwardTrack.prop('scrollStart');\n }\n\n return this.base(moveTo);\n },\n\n makeImage: function (params) {\n params.background = 'gv-guidelines gv-full-height';\n params.featureHeight = this.prop('height');\n\n this.track.setFeatures(params.chr, params.start, params.end);\n\n var rtn = this.base(params);\n\n params.container.addClass('gv-full-height');\n\n return rtn;\n },\n\n makeReverseImage: function (params) {\n this.imgContainers.push(params.container.clone().html(params.container.children('.gv-data').clone(true).css({ opacity: 1, background: this.browser.wrapper.css('backgroundColor') }))[0]);\n this.scrollContainer.append(this.imgContainers);\n },\n\n renderBackground: function (f, bgImage) {\n this.base(f, bgImage);\n bgImage.height(this.browser.wrapper.outerHeight(true));\n },\n\n draw: function (features, featureContext, labelContext, scale) {\n var i = features.length;\n var minorUnit = this.prop('minorUnit');\n var width = Math.ceil(minorUnit * scale);\n var feature, start, end;\n\n featureContext.textBaseline = 'top';\n featureContext.fillStyle = this.color;\n\n this.guideLines = { major: {} }; // FIXME: pass params to draw, rather than scale. set guideLines on params\n\n while (i--) {\n feature = features[i];\n start = Math.round(feature.position[scale].X);\n end = start + width - 1;\n\n this.drawFeature($.extend({}, feature, {\n x : start,\n y : 0,\n width : Math.ceil(feature.position[scale].width),\n height : this.featureHeight\n }), featureContext, labelContext, scale);\n\n if (feature.label) {\n if (start > -1) {\n featureContext.fillRect(start, this.featureHeight, 1, this.featureHeight);\n }\n\n this.guideLines.major[feature.start] = true;\n }\n\n // Fiddle the location so that these [additional major] lines overlap with normal lines\n if (feature.end < feature.start) {\n start--;\n end++;\n }\n\n this.guideLines[feature.start] = start;\n this.guideLines[feature.start + minorUnit] = end;\n }\n\n featureContext.fillRect(0, 0, featureContext.canvas.width, 1);\n featureContext.fillRect(0, this.featureHeight, featureContext.canvas.width, 1);\n },\n\n // Draw guidelines\n drawBackground: function (f, context) {\n for (var i in this.guideLines) {\n if (this.guideLines[i] >= 0 && this.guideLines[i] <= this.width) {\n context.fillStyle = this.track.colors[this.guideLines.major[i] ? 'majorGuideLine' : 'minorGuideLine'];\n context.fillRect(this.guideLines[i], 0, 1, context.canvas.height);\n }\n }\n },\n\n formatLabel: function (label) {\n return this.prop('minorUnit') < 1000 ? label.toString().replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, '$1,') : this.base(label);\n }\n});\n","Genoverse.Track.Scaleline = Genoverse.Track.Static.extend({\n strand : 1,\n color : '#000000',\n height : 12,\n labels : 'overlay',\n unsortable : true,\n fixedOrder : true,\n arrowWidth : 7,\n\n resize: $.noop,\n\n makeFirstImage: function () {\n this.prop('scaleline', false);\n this.base.apply(this, arguments);\n },\n\n render: function (f, img) {\n this.base(f, img);\n this.prop('drawnScale', img.data('scale'));\n },\n\n positionFeatures: function (features, params) {\n var scaleline = this.prop('scaleline');\n\n if (params.scale === this.drawnScale) {\n return false;\n }\n\n if (scaleline) {\n return scaleline;\n }\n\n var strand = this.prop('strand');\n var height = this.prop('height');\n var text = this.formatLabel(this.browser.length);\n var width = this.context.measureText(text).width;\n var textMargin = 10; // 5px each side\n var y = height / 2;\n var x1 = 0;\n var x2 = (this.width - width - textMargin) / 2;\n\n if (strand) {\n var strandText = strand === 1 ? 'Forward strand' : 'Reverse strand';\n var strandWidth = this.context.measureText(strandText).width;\n var x3 = (\n strand === 1\n ? this.width - this.prop('arrowWidth') - strandWidth - (1.5 * textMargin)\n : this.prop('arrowWidth') + (0.5 * textMargin)\n );\n\n scaleline = [\n { x: x1, y: y, width: this.width, height: 1, decorations: true },\n { x: x2, y: 0, width: width + textMargin, height: height, clear: true, color: false, labelColor: this.color, labelWidth: width, label: text },\n { x: x3, y: 0, width: strandWidth + textMargin, height: height, clear: true, color: false, labelColor: this.color, labelWidth: strandWidth, label: strandText }\n ];\n } else {\n scaleline = [\n { x: x1, y: y, width: this.width, height: 1, decorations: true },\n { x: x2, y: 0, width: width + textMargin, height: height, clear: true, color: false, labelColor: this.color, labelWidth: width, label: text }\n ];\n }\n\n return this.base(this.prop('scaleline', scaleline), params);\n },\n\n decorateFeature: function (feature, context) {\n var strand = this.prop('strand');\n var height = this.prop('height');\n var arrowWidth = this.prop('arrowWidth');\n var width = this.width;\n\n context.strokeStyle = this.color;\n\n [ -1, 1 ].filter(\n function (dir) { return strand ? dir === strand : true; }\n ).forEach(\n function (dir) {\n var x1 = dir === 1 ? width - arrowWidth : arrowWidth;\n var x2 = x1 + (dir * arrowWidth);\n\n context.beginPath();\n context.moveTo(x1, height * 0.25);\n context.lineTo(x2, height * 0.5);\n context.lineTo(x1, height * 0.75);\n context.closePath();\n context.stroke();\n context.fill();\n }\n );\n }\n});\n","Genoverse.Track.Controller.Static = Genoverse.Track.Controller.extend({\n addDomElements: function () {\n this.base();\n\n this.image = $('<img>').appendTo(this.imgContainer);\n\n this.container.toggleClass('gv-track-container gv-track-container-static').prepend(this.imgContainer);\n this.scrollContainer.add(this.messageContainer).remove();\n },\n\n reset: function () {\n delete this.stringified;\n this.base.apply(this, arguments);\n },\n\n setWidth: function (width) {\n this.base(width);\n this.image.width = this.width;\n },\n\n makeFirstImage: function () {\n this.base.apply(this, arguments);\n this.container.css('left', 0);\n this.imgContainer.show();\n },\n\n makeImage: function (params) {\n if (this.prop('disabled')) {\n return $.Deferred().resolve();\n }\n\n var features = this.view.positionFeatures(this.model.findFeatures(params.chr, params.start, params.end), params);\n\n if (features) {\n var string = JSON.stringify(features);\n\n if (this.stringified !== string) {\n var height = this.prop('height');\n\n params.width = this.width;\n params.featureHeight = height;\n\n this.render(features, this.image.data(params));\n this.imgContainer.children(':last').show();\n this.resize(height, undefined, false);\n\n this.stringified = string;\n }\n }\n\n return $.Deferred().resolve();\n }\n});\n\nGenoverse.Track.Model.Static = Genoverse.Track.Model.extend({\n url : false,\n checkDataRange : function () { return true; }\n});\n\nGenoverse.Track.View.Static = Genoverse.Track.View.extend({\n featureMargin : { top: 0, right: 1, bottom: 0, left: 1 },\n positionFeature : $.noop,\n scaleFeatures : function (features) { return features; },\n\n draw: function (features, featureContext, labelContext, scale) {\n for (var i = 0; i < features.length; i++) {\n this.drawFeature(features[i], featureContext, labelContext, scale);\n }\n }\n});\n\nGenoverse.Track.Static = Genoverse.Track.extend({\n controls : 'off',\n resizable : false,\n controller : Genoverse.Track.Controller.Static,\n model : Genoverse.Track.Model.Static,\n view : Genoverse.Track.View.Static\n});\n","Genoverse.Track.dbSNP = Genoverse.Track.extend({\n id : 'dbSNP',\n name : 'dbSNP',\n info : 'All sequence variants from the database of Single Nucleotide Polymorphisms (dbSNP)',\n url : '//rest.ensembl.org/overlap/region/human/__CHR__:__START__-__END__?feature=variation;content-type=application/json',\n dataRequestLimit : 5000000, // As per e! REST API restrictions\n threshold : 1e5,\n labels : false,\n legend : true,\n autoHeight : true,\n colorMap : {\n transcript_ablation : '#ff0000',\n splice_acceptor_variant : '#FF581A',\n splice_donor_variant : '#FF581A',\n stop_gained : '#ff0000',\n frameshift_variant : '#9400D3',\n stop_lost : '#ff0000',\n start_lost : '#ffd700',\n transcript_amplification : '#ff69b4',\n inframe_insertion : '#ff69b4',\n inframe_deletion : '#ff69b4',\n missense_variant : '#ffd700',\n protein_altering_variant : '#FF0080',\n splice_region_variant : '#ff7f50',\n incomplete_terminal_codon_variant : '#ff00ff',\n stop_retained_variant : '#76ee00',\n synonymous_variant : '#76ee00',\n coding_sequence_variant : '#458b00',\n mature_miRNA_variant : '#458b00',\n '5_prime_UTR_variant' : '#7ac5cd',\n '3_prime_UTR_variant' : '#7ac5cd',\n non_coding_transcript_exon_variant : '#32cd32',\n intron_variant : '#02599c',\n NMD_transcript_variant : '#ff4500',\n non_coding_transcript_variant : '#32cd32',\n upstream_gene_variant : '#a2b5cd',\n downstream_gene_variant : '#a2b5cd',\n TFBS_ablation : '#a52a2a',\n TFBS_amplification : '#a52a2a',\n TF_binding_site_variant : '#a52a2a',\n regulatory_region_ablation : '#a52a2a',\n regulatory_region_amplification : '#a52a2a',\n feature_elongation : '#7f7f7f',\n regulatory_region_variant : '#a52a2a',\n feature_truncation : '#7f7f7f',\n intergenic_variant : '#636363'\n },\n\n insertFeature: function (feature) {\n feature.color = this.prop('colorMap')[feature.consequence_type];\n feature.legend = feature.consequence_type;\n\n if (feature.start > feature.end) {\n feature.decorations = true;\n }\n\n this.base(feature);\n },\n\n decorateFeature: function (feature, context, scale) {\n context.fillStyle = feature.color;\n context.beginPath();\n context.moveTo(feature.position[scale].X - 3, feature.position[scale].Y + this.featureHeight);\n context.lineTo(feature.position[scale].X, feature.position[scale].Y + this.featureHeight - 4);\n context.lineTo(feature.position[scale].X + 3, feature.position[scale].Y + this.featureHeight);\n context.fill();\n\n if (scale > 1) {\n context.fillRect(feature.position[scale].X - 0.5, feature.position[scale].Y, 1.5, feature.position[scale].height);\n }\n },\n\n populateMenu: function (feature) {\n var deferred = $.Deferred();\n var menu = [{\n title : '<a href=\"https://www.ensembl.org/Homo_sapiens/Variation/Summary?v=' + feature.id + '\" target=\"_blank\">' + feature.id + '</a>',\n Location : feature.chr + ':' + feature.start + '-' + feature.end,\n Consequence : feature.consequence_type,\n Alleles : feature.alleles.join(', ')\n }];\n\n $.ajax({\n url : '//rest.ensembl.org/variation/human/' + feature.id + '?population_genotypes=1;content-type=application/json',\n dataType : 'json',\n success : function (data) {\n var populationGenotypes = $.grep(data.population_genotypes, function (pop) { return /1000GENOMES.+ALL/.test(pop.population); }); // Only considering 1000 Genomes: ALL population\n var frequencies = {};\n var pop, i, j;\n\n if (populationGenotypes.length) {\n for (i = 0; i < populationGenotypes.length; i++) {\n pop = populationGenotypes[i];\n pop.frequency = parseFloat(pop.frequency, 10);\n pop.count = parseInt(pop.count, 10);\n\n frequencies[pop.population] = frequencies[pop.population] || [];\n frequencies[pop.population].push(pop);\n }\n\n for (i in frequencies) {\n frequencies[i].sort(function (a, b) { return a.count < b.count; });\n\n pop = {\n title : i + ' population genotypes',\n Genotype : [ 'Frequency', 'Count' ],\n start : false,\n end : false\n };\n\n for (j in frequencies[i]) {\n pop[frequencies[i][j].genotype] = [ (frequencies[i][j].frequency * 100).toFixed(2) + '%', frequencies[i][j].count ];\n }\n\n menu.push(pop);\n }\n\n pop = {\n start : false,\n end : false\n };\n\n pop['<a href=\"https://www.ensembl.org/Homo_sapiens/Variation/Population?v=' + feature.id + '\" target=\"_blank\">See all population genotypes</a>'] = '';\n\n menu.push(pop);\n }\n\n deferred.resolve(menu);\n }\n });\n\n return deferred;\n },\n\n // Different settings for different zoom level\n 5000: { // more than 5k\n bump: false\n },\n 1: { // > 1 base-pair, but less then 5k\n bump: true\n }\n\n});\n","(function () {\n var BWReader = function (data, callback) {\n // constants: bigwig/bigbed file header signatures (magic numbers) (32 bit) , can be swapped ( big-endian | BE )\n var BIG_WIG_MAGIC = 0x888FFC26;\n var BIG_WIG_MAGIC_BE = 0x26FC8F88;\n\n var BIG_BED_MAGIC = 0x8789F2EB;\n var BIG_BED_MAGIC_BE = 0xEBF28987;\n\n var CIRTREE_MAGIC = 0x78ca8c91;\n var IDXTREE_MAGIC = 0x2468ace0;\n\n // type of file converted to bigwig bedgraph |variable step wiggle | fixed step wiggle\n var BIG_WIG_TYPE_GRAPH = 1;\n var BIG_WIG_TYPE_VSTEP = 2;\n var BIG_WIG_TYPE_FSTEP = 3;\n\n // bigbed data color regex\n var BED_COLOR_REGEXP = new RegExp(\"^[0-9]+,[0-9]+,[0-9]+\");\n\n var M1 = 256;\n var M2 = 256*256;\n var M3 = 256*256*256;\n var M4 = 256*256*256*256;\n\n var bbi = {\n fetchedData: new RTree()\n };\n\n function init() {\n checkSignature();\n }\n\n function getData(start, length, cb) {\n var end = start + length;\n var fetched = bbi.fetchedData.search({ x: start, w: length, y: 0, h: 1 }).filter(function (d) { return d[0] <= start && d[1] >= end; });\n\n if (fetched.length == 1) {\n cb(fetched[0][2].slice(start - fetched[0][0], start + length));\n } else {\n data.slice(start, length).fetch(function (d) {\n bbi.fetchedData.insert({ x: start, w: length, y: 0, h: 1 }, [ start, start + length, d ]);\n cb(d);\n });\n }\n }\n\n function checkSignature() {\n getData(0, 512, function (header) {\n var ba = new Uint8Array(header);\n var sa = new Uint16Array(header);\n var la = new Uint32Array(header);\n var magic = la[0];\n var error, reduction, dataOffset, indexOffset;\n\n if (magic === BIG_WIG_MAGIC) {\n bbi.type = 'bigwig';\n } else if (magic === BIG_BED_MAGIC) {\n bbi.type = 'bigbed';\n } else if (magic === BIG_WIG_MAGIC_BE || magic === BIG_BED_MAGIC_BE) {\n error = 'big-endian files not supported yet!';\n } else{\n error = 'unsupported file format';\n }\n\n if (error) {\n callback(null, error);\n }\n\n bbi.version = sa[2];\n bbi.numZoomLevels = sa[3];\n bbi.chromTreeOffset = read64Bit(ba, 8);\n bbi.unzoomedDataOffset = read64Bit(ba, 16);\n bbi.unzoomedIndexOffset = read64Bit(ba, 24);\n bbi.fieldCount = sa[16];\n bbi.definedFieldCount = sa[17];\n bbi.asOffset = read64Bit(ba, 36);\n bbi.totalSummaryOffset = read64Bit(ba, 44);\n bbi.uncompressBufSize = la[13];\n bbi.extHeaderOffset = read64Bit(ba, 56);\n bbi.compressed = bbi.uncompressBufSize > 0;\n bbi.summary = bbi.totalSummaryOffset > 0;\n bbi.extHeader = bbi.extHeaderOffset > 0;\n bbi.zoomHeaders = [];\n\n for (var i = 0; i < bbi.numZoomLevels; i++) {\n reduction = la[16 + 6*i];\n dataOffset = read64Bit(ba, 72 + 24*i);\n indexOffset = read64Bit(ba, 80 + 24*i);\n\n bbi.zoomHeaders.push({\n reductionLevel : reduction,\n dataOffset : dataOffset,\n indexOffset : indexOffset\n });\n }\n\n readAutoSQL(readChromTree); // reading autoSQL passing next task as callback\n });\n }\n\n // autoSQL could be present in some bigbed files\n function readAutoSQL(cb) {\n if (bbi.asOffset === 0) {\n cb(); // no autoSQL present\n } else {\n // autoSQL present, need to parse\n getData(bbi.asOffset, 2048, function (d) {\n var ba = new Uint8Array(d);\n var s = '';\n\n for (var i = 0; i < ba.length; i++) {\n if (ba[i] === 0) {\n break;\n }\n\n s += String.fromCharCode(ba[i]);\n }\n\n var header_re = /(\\w+)\\s+(\\w+)\\s+(\"([^\"]+)\")?\\s*\\(\\s*/;\n var field_re = /([\\w\\[\\]]+)\\s+(\\w+)\\s*;\\s*(\"([^\"]+)\")?\\s*/g;\n var headerMatch = header_re.exec(s);\n\n if (headerMatch) {\n var as = {\n declType : headerMatch[1],\n name : headerMatch[2],\n comment : headerMatch[4],\n fields : []\n };\n\n s = s.substring(headerMatch[0]);\n\n for (var m = field_re.exec(s); m !== null; m = field_re.exec(s)) {\n as.fields.push({\n type : m[1],\n name : m[2],\n comment : m[4]\n });\n }\n\n bbi.schema = as;\n }\n\n cb();\n });\n }\n }\n\n // reading B+ tree which maps chrom names to ids used in R-tree\n function readChromTree() {\n var len = bbi.unzoomedDataOffset - bbi.chromTreeOffset;\n len = len + (4 - len%4);\n\n getData(bbi.chromTreeOffset, len, function (d) {\n var ba = new Uint8Array(d);\n var sa = new Uint16Array(d);\n var la = new Uint32Array(d);\n var magic = la[0];\n var error;\n\n function readChromTreeLeaf(nodeOffset) {\n // padding 8 byte\n var children = sa[(nodeOffset/2) + 1];\n var offset = nodeOffset + 4;\n var chrom, i, c, idx, len;\n\n while (children > 0) {\n children--;\n chrom = '';\n\n for (i = 0; i < bbi.bpTree.keySize; i++) {\n c = ba[offset + i];\n\n if (c !== 0) {\n chrom += String.fromCharCode(c);\n }\n }\n\n offset += bbi.bpTree.keySize;\n\n idx = (ba[offset + 3] << 24) | (ba[offset + 2] << 16) | (ba[offset + 1] << 8) | (ba[offset + 0]);\n len = (ba[offset + 7] << 24) | (ba[offset + 6] << 16) | (ba[offset + 5] << 8) | (ba[offset + 4]);\n\n offset += 8;\n\n bbi.chroms[idx] = chrom;\n bbi.lengths[idx] = len;\n }\n }\n\n if (magic === CIRTREE_MAGIC) {\n bbi.bpTree = {\n itemsPerBlock : la[1],\n keySize : la[2],\n valueSize : la[3],\n itemCount : read64Bit(ba, 16)\n };\n\n bbi.chroms = new Array(bbi.bpTree.itemCount);\n bbi.lengths = new Array(bbi.bpTree.itemCount);\n } else {\n error = 'chromosome id B+ tree not found!';\n }\n\n if (error) {\n callback(null, error);\n } else {\n readChromTreeLeaf(32);\n }\n\n readRTreeIndex();\n });\n }\n\n function readRTreeIndex() {\n getData(bbi.unzoomedIndexOffset, 48, function (d) {\n var ba = new Uint8Array(d);\n var la = new Uint32Array(d);\n var magic = la[0];\n\n if (magic === IDXTREE_MAGIC) {\n bbi.Rheader = {\n blockSize : la[1],\n nItems : read64Bit(ba, 8),\n chrIdxStart : la[4],\n baseStart : la[5],\n chrIdxEnd : la[6],\n baseEnd : la[7],\n endFileOffset : read64Bit(ba, 32),\n nItemsPerSlot : la[10]\n };\n\n bbi.rootOffset = bbi.unzoomedIndexOffset + 48;\n bbi.getValues = getValues;\n\n callback(bbi);\n } else {\n callback(null, 'R-tree not found!');\n }\n });\n }\n\n function getRTreeNode(treedata, offset) {\n var ba = new Uint8Array(treedata);\n var sa = new Uint16Array(treedata);\n var la = new Uint32Array(treedata);\n var children = sa[offset/2 + 1];\n var lo, i;\n\n var node = {\n isLeaf : ba[offset],\n children : children,\n chrIdxStart : new Array(children),\n baseStart : new Array(children),\n chrIdxEnd : new Array(children),\n baseEnd : new Array(children),\n dataOffset : new Array(children),\n x : {}\n };\n\n if (node.isLeaf) {\n node.x.size = new Array(children);\n } else {\n node.x.child = new Array(children);\n\n for (i = 0; i < children; i++) {\n node.x.child[i] = -1;\n }\n }\n\n offset += 4;\n\n for (i = 0; i < children; i++) {\n lo = offset / 4;\n\n node.chrIdxStart[i] = la[lo];\n node.baseStart[i] = la[lo + 1];\n node.chrIdxEnd[i] = la[lo + 2];\n node.baseEnd[i] = la[lo + 3];\n node.dataOffset[i] = read64Bit(ba, offset + 16);\n\n offset += 24;\n\n if (node.isLeaf) {\n node.x.size[i] = read64Bit(ba, offset);\n offset += 8;\n }\n }\n\n return node;\n }\n\n function getValues(chrom, start, end, cb) {\n var vals = [];\n var chromid = bbi.chroms.indexOf(chrom);\n\n if (chromid == -1) {\n chromid = bbi.chroms.indexOf('chr' + chrom);\n\n if (chromid == -1) {\n return cb([], 'chrom not found');\n }\n }\n\n var query = {\n chrom : chromid,\n start : start,\n end : end\n };\n\n function traverseRTree() {\n var outstanding = 0;\n\n function fetchRTreeKids(offset, level) {\n outstanding += offset.length;\n\n var min = offset[0];\n var maxNodeSize = 4 + bbi.Rheader.blockSize*32;\n var max = offset[offset.length - 1] + maxNodeSize;\n\n getData(min, max - min, function (treedata) {\n // traverse kids\n for (var i = 0; i < offset.length; i++) {\n traverseRTreeKids(treedata, offset[i] - min, level);\n\n if (--outstanding === 0) {\n fetchBlocks();\n }\n }\n });\n }\n\n function traverseRTreeKids(treedata, offset, level) {\n var node = getRTreeNode(treedata, offset);\n var overlaps = findOverlaps(node);\n var i;\n\n if (node.isLeaf) {\n for (i = 0; i < overlaps.length; i++){\n vals.push({\n offset : node.dataOffset[overlaps[i]],\n size : node.x.size[overlaps[i]]\n });\n }\n\n return [];\n } else {\n fetchRTreeKids(overlaps.map(function (o) { return node.dataOffset[o]; }), level + 1);\n }\n }\n\n function findOverlaps(node) {\n var children = node.children;\n var overlaps = [];\n\n for (var i = 0; i < children; i++) {\n var startChrom = node.chrIdxStart[i];\n var startBase = node.baseStart[i];\n var endChrom = node.chrIdxEnd[i];\n var endBase = node.baseEnd[i];\n\n if (\n ((startChrom < query.chrom) || (startChrom == query.chrom && startBase <= query.end)) &&\n ((endChrom > query.chrom) || (endChrom == query.chrom && endBase >= query.start))\n ) {\n overlaps.push(i);\n }\n }\n\n return overlaps;\n }\n\n fetchRTreeKids([bbi.rootOffset], 1);\n }\n\n function fetchBlocks() {\n vals.sort(function (b0, b1) {\n return (b0.offset | 0) - (b1.offset | 0);\n });\n\n if (vals.length === 0) {\n return getBlocks();\n }\n\n var totalSize = 0;\n var base = vals[0].offset;\n\n for (var i = 0; i < vals.length; i++) {\n totalSize += vals[i].size;\n }\n\n getData(base, totalSize, function (buffer) {\n var ioffset = 0;\n var bi = 0;\n var fb, blockData;\n\n while (ioffset < totalSize) {\n fb = vals[bi];\n\n if (bbi.uncompressBufSize > 0) {\n blockData = dallianceLib.inflateBuffer(buffer, ioffset + 2, fb.size - 2);\n } else {\n blockData = buffer.slice(ioffset, ioffset + fb.size);\n }\n\n vals[bi].data = blockData;\n ioffset += fb.size;\n bi++;\n }\n\n getBlocks();\n });\n }\n\n function getBlocks() {\n var parser = bbi.type == 'bigwig' ? WiggleParser : bbi.type == 'bigbed' ? BEDParser : false;\n var result = [];\n\n if (parser && vals.length) {\n for (var i = 0; i < vals.length; i++) {\n result = result.concat(parser(vals[i].data, query));\n }\n }\n\n cb(result);\n }\n\n traverseRTree();\n }\n\n function WiggleParser(data, query) {\n var arr = [];\n var ba = new Uint8Array(data);\n var sa = new Int16Array(data);\n var la = new Int32Array(data);\n var fa = new Float32Array(data);\n var chromId = la[0];\n var chr = parseInt(bbi.chroms[chromId].replace('chr', ''), 10);\n var blockStart = la[1] + 1;\n var itemStep = la[3];\n var itemSpan = la[4];\n var blockType = ba[20];\n var itemCount = sa[11];\n var i, start, end, score;\n\n if (blockType === BIG_WIG_TYPE_FSTEP) { // fixedStep wiggle\n for (i = 0; i < itemCount; i++) {\n start = blockStart + i*itemStep;\n end = start + itemSpan - 1;\n score = fa[i + 6];\n\n if (chromId == query.chrom) {\n arr.push({\n chr : chr,\n start : start,\n end : end,\n height : score\n });\n }\n }\n } else if (blockType === BIG_WIG_TYPE_VSTEP) { // variable step wiggle\n for (i = 0; i < itemCount; i++) {\n start = la[i*2 + 6] + 1;\n end = start + itemSpan - 1;\n score = fa[i*2 + 7];\n\n if (chromId == query.chrom) {\n arr.push({\n chr : chr,\n start : start,\n end : end,\n height : score\n });\n }\n }\n } else if (blockType === BIG_WIG_TYPE_GRAPH) { // bedGraph\n for (i = 0; i < itemCount; i++) {\n start = la[i*3 + 6] + 1;\n end = la[i*3 + 7];\n score = fa[i*3 + 8];\n\n if (start > end) {\n start = end;\n }\n\n if (chromId == query.chrom) {\n arr.push({\n chr : chr,\n start : start,\n end : end,\n height : score\n });\n }\n }\n }\n\n return arr;\n }\n\n function BEDParser(data, query) {\n var arr = [];\n var ba = new Uint8Array(data);\n var la = new Int32Array(data);\n var offset = 0;\n var bbRecord, ch, rest;\n\n while (offset < la.length) {\n bbRecord = {\n chromid : la[offset],\n chr : bbi.chroms[la[offset]],\n start : la[offset + 1],\n end : la[offset + 2]\n };\n\n offset += 12;\n\n while (true) {\n ch = ba[offset++];\n\n if (ch !== 0) {\n rest += String.fromCharCode(ch);\n } else {\n break;\n }\n }\n\n if (bbRecord.chromid === query.chrom) {\n arr.push([ bbRecord.chr, bbRecord.start, bbRecord.end, rest ].join('\\t'));\n }\n }\n\n return arr;\n }\n\n // reads 8 bytes from data\n function read64Bit(ba, o) {\n var val = ba[o] + ba[o+1]*M1 + ba[o+2]*M2 + ba[o+3]*M3 + ba[o+4]*M4;\n return val;\n }\n\n function readFloat(ba, o) {\n var a = new Uint8Array([ ba[o], ba[o+1], ba[o+2], ba[o+3] ]);\n var b = a.buffer;\n var c = new Float32Array(b);\n return c[0];\n }\n\n // reads 4 bytes from data\n function read32Bit(ba, o) {\n var a = ba[o];\n var b = ba[o+1];\n var c = ba[o+2];\n var d = ba[o+3];\n var r = (a | ((b << 8) >>> 0) | ((c << 16) >>> 0) | ((d << 24) >>> 0)) >>> 0;\n return r;\n }\n\n // reads 2 bytes from data\n function read16Bit(ba, o) {\n var r = ba[o] | (ba[o+1] << 8);\n return r;\n }\n\n // reads 1 byte from data\n function read8Bit(ba, o) {\n return ba[o];\n }\n\n init();\n };\n\n window.BWReader = BWReader;\n\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = BWReader;\n }\n})();\n","/*\n Based on Base.js 1.1a (c) 2006-2010, Dean Edwards\n Updated to pass JSHint and converted into a module by Kenneth Powers\n License: http://www.opensource.org/licenses/mit-license.php\n*/\n/*global define:true module:true*/\n/*jshint eqeqeq:true*/\n(function (name, global, definition) {\n if (typeof module !== 'undefined') {\n module.exports = definition();\n } else if (typeof define !== 'undefined' && typeof define.amd === 'object') {\n define(definition);\n } else {\n global[name] = definition();\n }\n})('Base', this, function () {\n // Base Object\n var Base = function () {};\n\n // Implementation\n Base.extend = function (_instance, _static) { // subclass\n var extend = Base.prototype.extend;\n // build the prototype\n Base._prototyping = true;\n var proto = new this();\n extend.call(proto, _instance);\n proto.base = function () {\n // call this method from any other method to invoke that method's ancestor\n };\n delete Base._prototyping;\n // create the wrapper for the constructor function\n //var constructor = proto.constructor.valueOf(); //-dean\n var constructor = proto.constructor;\n var klass = proto.constructor = function () {\n if (!Base._prototyping) {\n if (this._constructing || this.constructor === klass) { // instantiation\n this._constructing = true;\n constructor.apply(this, arguments);\n delete this._constructing;\n } else if (arguments[0] !== null) { // casting\n return (arguments[0].extend || extend).call(arguments[0], proto);\n }\n }\n };\n // build the class interface\n klass.ancestor = this;\n klass.extend = this.extend;\n klass.forEach = this.forEach;\n klass.implement = this.implement;\n klass.prototype = proto;\n klass.toString = this.toString;\n klass.valueOf = function (type) {\n return (type === 'object') ? klass : constructor.valueOf();\n };\n extend.call(klass, _static);\n // class initialization\n if (typeof klass.init === 'function') klass.init();\n return klass;\n };\n\n Base.prototype = {\n extend: function (source, value) {\n if (arguments.length > 1) { // extending with a name/value pair\n var ancestor = this[source];\n if (ancestor && (typeof value === 'function') && // overriding a method?\n // the valueOf() comparison is to avoid circular references\n (!ancestor.valueOf || ancestor.valueOf() !== value.valueOf()) && /\\bbase\\b/.test(value)) {\n // get the underlying method\n var method = value.valueOf();\n // override\n value = function () {\n var previous = this.base || Base.prototype.base;\n this.base = ancestor;\n var returnValue = method.apply(this, arguments);\n this.base = previous;\n return returnValue;\n };\n // point to the underlying method\n value.valueOf = function (type) {\n return (type === 'object') ? value : method;\n };\n value.toString = Base.toString;\n }\n this[source] = value;\n } else if (source) { // extending with an object literal\n var extend = Base.prototype.extend;\n // if this object has a customized extend method then use it\n if (!Base._prototyping && typeof this !== 'function') {\n extend = this.extend || extend;\n }\n var proto = {\n toSource: null\n };\n // do the \"toString\" and other methods manually\n var hidden = ['constructor', 'toString', 'valueOf'];\n // if we are prototyping then include the constructor\n for (var i = Base._prototyping ? 0 : 1; i < hidden.length; i++) {\n var h = hidden[i];\n if (source[h] !== proto[h])\n extend.call(this, h, source[h]);\n }\n // copy each of the source object's properties to this object\n for (var key in source) {\n if (!proto[key]) extend.call(this, key, source[key]);\n }\n }\n return this;\n }\n };\n\n // initialize\n Base = Base.extend({\n constructor: function () {\n this.extend(arguments[0]);\n }\n }, {\n ancestor: Object,\n version: '1.1',\n forEach: function (object, block, context) {\n for (var key in object) {\n if (this.prototype[key] === undefined) {\n block.call(context, object[key], key, object);\n }\n }\n },\n implement: function () {\n for (var i = 0; i < arguments.length; i++) {\n if (typeof arguments[i] === 'function') {\n // if it's a function, call it\n arguments[i](this.prototype);\n } else {\n // add the interface using the extend method\n this.prototype.extend(arguments[i]);\n }\n }\n return this;\n },\n toString: function () {\n return String(this.valueOf());\n }\n });\n\n // Return Base implementation\n return Base;\n});\n","(function () {\n var tabi_fmt = {\n string0: function (size) {\n return this.parse(['string', size]).replace(/\\0+$/, '');\n },\n header: {\n magic : ['string', 4],\n n_ref : 'int32',\n format : 'int32',\n col_seq : 'int32',\n col_beg : 'int32',\n col_end : 'int32',\n meta : 'int32',\n skip : 'int32',\n l_nm : 'int32',\n names : ['string0', function () { return this.current.l_nm; }]\n },\n chunk: {\n cnk_beg: 'uint64',\n cnk_end: 'uint64'\n },\n bin: {\n bin : 'uint32',\n n_chunk : 'int32',\n chunkseq : ['array', 'chunk', function () { return this.current.n_chunk; }]\n },\n index: {\n n_bin : 'int32',\n binseq : ['array', 'bin', function () { return this.current.n_bin; }],\n n_intv : 'int32',\n intervseq : ['array', 'uint64', function () { return this.current.n_intv; }]\n },\n tabix: {\n head : 'header',\n indexseq : ['array', 'index', function () { return this.current.head.n_ref; }]\n }\n };\n\n var bgzf_hd_fmt = {\n header: {\n id1 : 'uint8',\n id2 : 'uint8',\n cm : 'uint8',\n flg : 'uint8',\n mtime : 'uint32',\n xfl : 'uint8',\n os : 'uint8',\n xlen : 'uint16'\n },\n subheader: {\n si1 : 'uint8',\n si2 : 'uint8',\n slen : 'uint16',\n bsize : 'uint16'\n },\n bgzfHd: { head: 'header', subhead: 'subheader' }\n };\n\n var hdSize = 18;\n var inflate = dallianceLib.inflateBuffer;\n var _2p16 = 1 << 16;\n\n var VCFReader = function (vcf, tbi) {\n this.vcf_data = vcf;\n this.tbi_data = tbi;\n };\n\n VCFReader.prototype.readTabix = function (cb) {\n var bins2hash = function (binseq) {\n var hash = {};\n var i = 0;\n var b;\n\n for (var x in binseq) {\n b = binseq[x].bin;\n hash[b] = i;\n i++;\n }\n\n return hash;\n };\n\n var parse_tabix = function (tabix_buffer) {\n var tabix = new jParser(tabix_buffer, tabi_fmt).parse('tabix');\n\n tabix.head.names = tabix.head.names.split('\\0');\n tabix.bhash = {};\n\n for (var i = 0; i < tabix.head.n_ref; i++){\n tabix.bhash[i] = bins2hash(tabix.indexseq[i].binseq);\n }\n\n cb(tabix);\n };\n\n this.inflateRegion(this.tbi_data, 0, 100000000, parse_tabix);\n };\n\n VCFReader.prototype.getRecords = function (ref, beg, end, callback) {\n var records = [];\n var chunks = this.getChunks(ref, beg, end);\n var vcfThis = this;\n\n if (chunks == -1) {\n return callback([]);\n }\n\n (function loop(x) {\n if (x < chunks.length) {\n vcfThis.inflateRegion(vcfThis.vcf_data, chunks[x].start, chunks[x].end, function (record, ebsz) {\n var last = record.byteLength - ebsz + chunks[x].inner_end;\n record = vcfThis.buffer2String(record).slice(chunks[x].inner_start, last);\n\n if (record.length > 0) {\n record = record.split('\\n').filter(function (rec) {\n if (rec.length > 0) {\n var n = parseInt(rec.split('\\t')[1]);\n return ((beg <= n) && (n <= end));\n }\n }).join('\\n');\n\n records.push(record);\n }\n\n loop(++x);\n });\n } else {\n callback(records.join('\\n'));\n }\n })(0);\n };\n\n VCFReader.prototype.getChunks = function (ref, beg, end) {\n var tbi = this.tabix;\n var vcfThis = this;\n\n ref = tbi.head.names.indexOf(ref.toString());\n\n if (ref == -1) {\n return -1;\n }\n\n var bids = this.reg2bins(beg, end + 1).filter(function (x) { return typeof tbi.bhash[ref][x] != 'undefined'; });\n var bcnks = bids.map(function (x) { return vcfThis.bin2Ranges(tbi, ref, x); });\n var cnks = bcnks.reduce(function (V, ranges) {\n ranges.forEach(function (item) { V.push(item); });\n return V;\n }, []);\n\n cnks = this.remove_duplicates(cnks);\n\n return cnks;\n };\n\n VCFReader.prototype.inflateRegion = function (d, beg, end, cbfn) {\n var blocks = [];\n var vcfThis = this;\n\n var cb = function (block, nextBlockOffset) {\n blocks.push(block);\n\n if (nextBlockOffset == -1) {\n cbfn(vcfThis.appendBuffers(blocks), blocks[blocks.length - 1].byteLength);\n } else if (nextBlockOffset <= end) {\n vcfThis.inflateBlock(d, nextBlockOffset, cb);\n } else {\n cbfn(vcfThis.appendBuffers(blocks), blocks[blocks.length - 1].byteLength);\n }\n };\n\n this.inflateBlock(d, beg, cb);\n };\n\n VCFReader.prototype.inflateBlock = function (d, blockOffset, cbfn) {\n var cb2 = function (hdobj) {\n d.slice(blockOffset, hdobj.subhead.bsize + 1).fetch(function (block) {\n var inflated_block = inflate(block, hdSize, block.byteLength - hdSize);\n var nextBlockOffset = blockOffset + hdobj.subhead.bsize + 1;\n\n if (hdobj.subhead.bsize == 27) {\n nextBlockOffset = -1; // last bgzf block\n }\n\n cbfn(inflated_block, nextBlockOffset);\n });\n };\n\n this.getBGZFHD(d, blockOffset, cb2);\n };\n\n VCFReader.prototype.getBGZFHD = function (d, offset, cbfn) {\n d.slice(offset, hdSize + 1).fetch(function (buf) {\n var parser = new jParser(buf, bgzf_hd_fmt);\n var hdobj = parser.parse('bgzfHd');\n cbfn(hdobj);\n });\n };\n\n VCFReader.prototype.appendBuffers = function (bufferVec) {\n var totalSize = 0;\n\n for (var i = 0; i < bufferVec.length; i++) {\n totalSize = totalSize + bufferVec[i].byteLength;\n }\n\n var tmp = new Uint8Array(totalSize);\n var offset = 0;\n\n for (i = 0; i < bufferVec.length; i++) {\n tmp.set(new Uint8Array(bufferVec[i]), offset);\n offset = offset + bufferVec[i].byteLength;\n }\n\n return tmp.buffer;\n };\n\n VCFReader.prototype.buffer2String = function (resultBuffer) {\n var s = '';\n var resultBB = new Uint8Array(resultBuffer);\n\n for (var i = 0; i < resultBB.length; ++i) {\n s += String.fromCharCode(resultBB[i]);\n }\n\n return s;\n };\n\n VCFReader.prototype.remove_duplicates = function (objectsArray) {\n var usedObjects = {};\n\n for (var i = objectsArray.length - 1; i >= 0; i--) {\n var so = JSON.stringify(objectsArray[i]);\n\n if (usedObjects[so]) {\n objectsArray.splice(i, 1);\n } else {\n usedObjects[so] = true;\n }\n }\n\n return objectsArray;\n };\n\n VCFReader.prototype.bin2Ranges = function (tbi, ref, binid) {\n var ranges = [];\n var bs = tbi.indexseq[ref].binseq;\n var cnkseq = bs[tbi.bhash[ref][binid]].chunkseq;\n var cnk;\n\n for (var i = 0; i < cnkseq.length; i++) {\n cnk = cnkseq[i];\n\n ranges.push({\n start : Math.floor(cnk.cnk_beg / _2p16),\n inner_start : cnk.cnk_beg % _2p16,\n end : Math.floor(cnk.cnk_end / _2p16),\n inner_end : cnk.cnk_end % _2p16\n });\n }\n\n return ranges;\n };\n\n VCFReader.prototype.reg2bins = function (beg, end) {\n var list = [];\n var i;\n\n --end;\n\n list.push(0);\n\n for (i = 1 + (beg >> 26); i <= 1 + (end >> 26); ++i) { list.push(i); }\n for (i = 9 + (beg >> 23); i <= 9 + (end >> 23); ++i) { list.push(i); }\n for (i = 73 + (beg >> 20); i <= 73 + (end >> 20); ++i) { list.push(i); }\n for (i = 585 + (beg >> 17); i <= 585 + (end >> 17); ++i) { list.push(i); }\n for (i = 4681 + (beg >> 14); i <= 4681 + (end >> 14); ++i) { list.push(i); }\n\n return list;\n };\n\n window.VCFReader = VCFReader;\n\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = VCFReader;\n }\n})();\n","(function(){function C(){}function A(){this.was=[0]}function B(a,b,c){this.hufts=new Int32Array(4320);this.window=new Uint8Array(c);this.end=c;this.checkfn=b;this.mode=0;this.reset(a,null);this.index=this.table=this.left=0;this.blens=null;this.bb=new Int32Array(1);this.tb=new Int32Array(1);this.codes=new D;this.check=this.write=this.read=this.bitb=this.bitk=this.last=0;this.inftree=new E}function D(){}function E(){}function y(a,b,c,d,h){if(0!=h){if(!a)throw\"Undef src\";if(!c)throw\"Undef dest\";if(0==\nb&&h==a.length)c.set(a,d);else if(T)a=a.subarray(b,b+h),c.set(a,d);else if(1==a.BYTES_PER_ELEMENT&&100<h)a=new Uint8Array(a.buffer,a.byteOffset+b,h),c.set(a,d);else for(var f=0;f<h;++f)c[d+f]=a[b+f]}}function J(a,b,c,d){a=b?c?new Uint8Array(a,b,c):new Uint8Array(a,b,a.byteLength-b):new Uint8Array(a);c=new C;c.inflateInit(15,!0);c.next_in=a;c.next_in_index=0;c.avail_in=a.length;a=[];for(var h=0;;){var f=new Uint8Array(32E3);c.next_out=f;c.next_out_index=0;c.avail_out=f.length;var g=c.inflate(0);if(0!=\ng&&1!=g&&-5!=g)throw c.msg;if(0!=c.avail_out){var e=new Uint8Array(f.length-c.avail_out);y(f,0,e,0,f.length-c.avail_out);f=e}a.push(f);h+=f.length;if(1==g||-5==g)break}d&&(d[0]=(b||0)+c.next_in_index);if(1==a.length)return a[0].buffer;b=new Uint8Array(h);for(c=d=0;c<a.length;++c)h=a[c],y(h,0,b,d,h.length),d+=h.length;return b.buffer}function K(a,b){this.block=a;this.offset=b}function G(a,b,c){var d=4294967296*(a[b+6]&255)+16777216*(a[b+5]&255)+65536*(a[b+4]&255)+256*(a[b+3]&255)+(a[b+2]&255);a=a[b+\n1]<<8|a[b];return 0!=d||0!=a||c?new K(d,a):null}function L(a,b){b=Math.min(b||1,a.byteLength-50);for(var c=[],d=[0],h=0;d[0]<b;){var f=new Uint8Array(a,d[0],12),f=f[11]<<8|f[10],f=J(a,12+f+d[0],Math.min(65536,a.byteLength-12-f-d[0]),d);d[0]+=8;h+=f.byteLength;c.push(f)}if(1==c.length)return c[0];d=new Uint8Array(h);for(f=h=0;f<c.length;++f){var g=new Uint8Array(c[f]);y(g,0,d,h,g.length);h+=g.length}return d.buffer}function M(a,b){this.minv=a;this.maxv=b}function U(a,b){var c,d=[];--b;d.push(0);for(c=\n1+(a>>26);c<=1+(b>>26);++c)d.push(c);for(c=9+(a>>23);c<=9+(b>>23);++c)d.push(c);for(c=73+(a>>20);c<=73+(b>>20);++c)d.push(c);for(c=585+(a>>17);c<=585+(b>>17);++c)d.push(c);for(c=4681+(a>>14);c<=4681+(b>>14);++c)d.push(c);return d}function F(a){this.blob=a}function z(a,b,c,d){d||(\"object\"===typeof b?(d=b,b=void 0):d={});this.url=a;this.start=b||0;c&&(this.end=c);this.opts=d}function N(a){if(!a)return null;for(var b=new Uint8Array(a.length),c=0;c<b.length;++c)b[c]=a.charCodeAt(c);return b.buffer}function O(a,\nb){var c=new ArrayBuffer(8),d=new Uint8Array(c),c=new Float32Array(c);d[0]=a[b];d[1]=a[b+1];d[2]=a[b+2];d[3]=a[b+3];return c[0]}function t(a,b){return a[b+3]<<24|a[b+2]<<16|a[b+1]<<8|a[b]}function P(a,b){return a[b+1]<<8|a[b]}function V(a,b){return a[b]}function H(){}function Q(a,b,c,d,h){function f(a){if(!a)return d(null,\"Couldn't access BAM\");a=L(a,a.byteLength);a=new Uint8Array(a);var b=t(a,0);if(21840194!=b)return d(null,\"Not a BAM file, magic=0x\"+b.toString(16));for(var c=t(a,4),e=\"\",b=0;b<c;++b)e+=\nString.fromCharCode(a[b+8]);e=t(a,c+8);c+=12;g.chrToIndex={};g.indexToChr=[];for(b=0;b<e;++b){for(var f=t(a,c),h=\"\",k=0;k<f-1;++k)h+=String.fromCharCode(a[c+4+k]);t(a,c+f+4);g.chrToIndex[h]=b;0==h.indexOf(\"chr\")?g.chrToIndex[h.substring(3)]=b:g.chrToIndex[\"chr\"+h]=b;g.indexToChr.push(h);c=c+8+f}if(g.indices)return d(g)}var g=new H;g.data=a;g.bai=b;g.indexChunks=c;var e=g.indexChunks?g.indexChunks.minBlockIndex:1E9;if(g.indexChunks){b=g.indexChunks.chunks;g.indices=[];for(var k=0;k<b.length;k++)g.indices[k]=\nnull;g.data.slice(0,e).fetch(f)}else g.bai.fetch(function(b){var k,q,n;if(b){var l=new Uint8Array(b),u=t(l,0);if(21578050!=u)b=d(null,\"Not a BAI file, magic=0x\"+u.toString(16));else{u=t(l,4);g.indices=[];for(var s=8,w=0;w<u;++w){var I=s;k=l;var r=n=I;q=t(k,r);for(var r=r+4,v=0;v<q;++v){t(k,r);var x=t(k,r+4),r=r+(8+16*x)}for(var v=t(k,r),r=r+4,x=1E9,y=r,A=0;A<v;++A){var z=G(k,y),y=y+8;if(z){k=z.block;0<z.offset&&(k+=65536);k<x&&(x=k);break}}r+=8*v;k=x;n=r-n;s+=n;e=Math.min(k,e);0<q&&(g.indices[w]=\nnew Uint8Array(b,I,s-I))}b=!0}}else b=\"Couldn't access BAI\";!0!==b?g.bai.url&&\"undefined\"===typeof h?(g.bai.url=g.data.url.replace(/.bam$/,\".bai\"),Q(a,g.bai,c,d,!0)):d(null,b):g.data.slice(0,e).fetch(f)})}function W(){}var x=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],X=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,\n0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,\n138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,\n80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,\n23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,\n0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,\n205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,\n0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,\n7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],Y=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],Z=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,\n115,131,163,195,227,258,0,0],aa=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],ba=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],ca=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];C.prototype.inflateInit=function(a,b){a||(a=15);b&&(b=!1);this.istate=new A;return this.istate.inflateInit(this,b?-a:a)};C.prototype.inflate=function(a){return null==this.istate?-2:this.istate.inflate(this,a)};C.prototype.inflateEnd=\nfunction(){if(null==this.istate)return-2;var a=istate.inflateEnd(this);this.istate=null;return a};C.prototype.inflateSync=function(){return istate.inflateSync(this)};C.prototype.inflateSetDictionary=function(a,b){return istate.inflateSetDictionary(this,a,b)};A.prototype.inflateReset=function(a){if(null==a||null==a.istate)return-2;a.total_in=a.total_out=0;a.msg=null;a.istate.mode=0!=a.istate.nowrap?7:0;a.istate.blocks.reset(a,null);return 0};A.prototype.inflateEnd=function(a){null!=this.blocks&&this.blocks.free(a);\nthis.blocks=null;return 0};A.prototype.inflateInit=function(a,b){this.blocks=a.msg=null;nowrap=0;0>b&&(b=-b,nowrap=1);if(8>b||15<b)return this.inflateEnd(a),-2;this.wbits=b;a.istate.blocks=new B(a,0!=a.istate.nowrap?null:this,1<<b);this.inflateReset(a);return 0};A.prototype.inflate=function(a,b){var c,d;if(null==a||null==a.istate||null==a.next_in)return-2;b=4==b?-5:0;for(c=-5;;)switch(a.istate.mode){case 0:if(0==a.avail_in)return c;c=b;a.avail_in--;a.total_in++;if(8!=((a.istate.method=a.next_in[a.next_in_index++])&\n15)){a.istate.mode=13;a.msg=\"unknown compression method\";a.istate.marker=5;break}if((a.istate.method>>4)+8>a.istate.wbits){a.istate.mode=13;a.msg=\"invalid window size\";a.istate.marker=5;break}a.istate.mode=1;case 1:if(0==a.avail_in)return c;c=b;a.avail_in--;a.total_in++;d=a.next_in[a.next_in_index++]&255;if(0!=((a.istate.method<<8)+d)%31){a.istate.mode=13;a.msg=\"incorrect header check\";a.istate.marker=5;break}if(0==(d&32)){a.istate.mode=7;break}a.istate.mode=2;case 2:if(0==a.avail_in)return c;c=b;\na.avail_in--;a.total_in++;a.istate.need=(a.next_in[a.next_in_index++]&255)<<24&4278190080;a.istate.mode=3;case 3:if(0==a.avail_in)return c;c=b;a.avail_in--;a.total_in++;a.istate.need+=(a.next_in[a.next_in_index++]&255)<<16&16711680;a.istate.mode=4;case 4:if(0==a.avail_in)return c;c=b;a.avail_in--;a.total_in++;a.istate.need+=(a.next_in[a.next_in_index++]&255)<<8&65280;a.istate.mode=5;case 5:if(0==a.avail_in)return c;a.avail_in--;a.total_in++;a.istate.need+=a.next_in[a.next_in_index++]&255;a.adler=\na.istate.need;a.istate.mode=6;return 2;case 6:return a.istate.mode=13,a.msg=\"need dictionary\",a.istate.marker=0,-2;case 7:c=a.istate.blocks.proc(a,c);if(-3==c){a.istate.mode=13;a.istate.marker=0;break}0==c&&(c=b);if(1!=c)return c;c=b;a.istate.blocks.reset(a,a.istate.was);if(0!=a.istate.nowrap){a.istate.mode=12;break}a.istate.mode=8;case 8:if(0==a.avail_in)return c;c=b;a.avail_in--;a.total_in++;a.istate.need=(a.next_in[a.next_in_index++]&255)<<24&4278190080;a.istate.mode=9;case 9:if(0==a.avail_in)return c;\nc=b;a.avail_in--;a.total_in++;a.istate.need+=(a.next_in[a.next_in_index++]&255)<<16&16711680;a.istate.mode=10;case 10:if(0==a.avail_in)return c;c=b;a.avail_in--;a.total_in++;a.istate.need+=(a.next_in[a.next_in_index++]&255)<<8&65280;a.istate.mode=11;case 11:if(0==a.avail_in)return c;c=b;a.avail_in--;a.total_in++;a.istate.need+=a.next_in[a.next_in_index++]&255;if(a.istate.was[0]!=a.istate.need){a.istate.mode=13;a.msg=\"incorrect data check\";a.istate.marker=5;break}a.istate.mode=12;case 12:return 1;\ncase 13:return-3;default:return-2}};A.prototype.inflateSetDictionary=function(a,b,c){var d=0,h=c;if(null==a||null==a.istate||6!=a.istate.mode)return-2;if(a._adler.adler32(1,b,0,c)!=a.adler)return-3;a.adler=a._adler.adler32(0,null,0,0);h>=1<<a.istate.wbits&&(h=(1<<a.istate.wbits)-1,d=c-h);a.istate.blocks.set_dictionary(b,d,h);a.istate.mode=7;return 0};var da=[0,0,255,255];A.prototype.inflateSync=function(a){var b,c,d;if(null==a||null==a.istate)return-2;13!=a.istate.mode&&(a.istate.mode=13,a.istate.marker=\n0);if(0==(b=a.avail_in))return-5;c=a.next_in_index;for(d=a.istate.marker;0!=b&&4>d;)a.next_in[c]==da[d]?d++:d=0!=a.next_in[c]?0:4-d,c++,b--;a.total_in+=c-a.next_in_index;a.next_in_index=c;a.avail_in=b;a.istate.marker=d;if(4!=d)return-3;b=a.total_in;c=a.total_out;this.inflateReset(a);a.total_in=b;a.total_out=c;a.istate.mode=7;return 0};A.prototype.inflateSyncPoint=function(a){return null==a||null==a.istate||null==a.istate.blocks?-2:a.istate.blocks.sync_point()};var R=[16,17,18,0,8,7,9,6,10,5,11,4,\n12,3,13,2,14,1,15];B.prototype.reset=function(a,b){b&&(b[0]=this.check);6==this.mode&&this.codes.free(a);this.read=this.write=this.bitb=this.bitk=this.mode=0;this.checkfn&&(a.adler=this.check=a._adler.adler32(0,null,0,0))};B.prototype.proc=function(a,b){var c,d,h,f,g,e,k;f=a.next_in_index;g=a.avail_in;d=this.bitb;h=this.bitk;e=this.write;for(k=e<this.read?this.read-e-1:this.end-e;;)switch(this.mode){case 0:for(;3>h;){if(0!=g)b=0;else return this.bitb=d,this.bitk=h,a.avail_in=g,a.total_in+=f-a.next_in_index,\na.next_in_index=f,this.write=e,this.inflate_flush(a,b);g--;d|=(a.next_in[f++]&255)<<h;h+=8}c=d&7;this.last=c&1;switch(c>>>1){case 0:d>>>=3;h-=3;c=h&7;d>>>=c;h-=c;this.mode=1;break;case 1:var m=new Int32Array(1),p=new Int32Array(1),q=[],n=[];c=p;var l=q,u=n;m[0]=9;c[0]=5;l[0]=X;u[0]=Y;this.codes.init(m[0],p[0],q[0],0,n[0],0,a);d>>>=3;h-=3;this.mode=6;break;case 2:d>>>=3;h-=3;this.mode=3;break;case 3:return d>>>=3,h-=3,this.mode=13,a.msg=\"invalid block type\",b=-3,this.bitb=d,this.bitk=h,a.avail_in=\ng,a.total_in+=f-a.next_in_index,a.next_in_index=f,this.write=e,this.inflate_flush(a,b)}break;case 1:for(;32>h;){if(0!=g)b=0;else return this.bitb=d,this.bitk=h,a.avail_in=g,a.total_in+=f-a.next_in_index,a.next_in_index=f,this.write=e,this.inflate_flush(a,b);g--;d|=(a.next_in[f++]&255)<<h;h+=8}if((~d>>>16&65535)!=(d&65535))return this.mode=13,a.msg=\"invalid stored block lengths\",b=-3,this.bitb=d,this.bitk=h,a.avail_in=g,a.total_in+=f-a.next_in_index,a.next_in_index=f,this.write=e,this.inflate_flush(a,\nb);this.left=d&65535;d=h=0;this.mode=0!=this.left?2:0!=this.last?7:0;break;case 2:if(0==g)return this.bitb=d,this.bitk=h,a.avail_in=g,a.total_in+=f-a.next_in_index,a.next_in_index=f,write=e,this.inflate_flush(a,b);if(0==k&&(e==end&&0!=read&&(e=0,k=e<this.read?this.read-e-1:this.end-e),0==k&&(this.write=e,b=this.inflate_flush(a,b),e=this.write,k=e<this.read?this.read-e-1:this.end-e,e==this.end&&0!=this.read&&(e=0,k=e<this.read?this.read-e-1:this.end-e),0==k)))return this.bitb=d,this.bitk=h,a.avail_in=\ng,a.total_in+=f-a.next_in_index,a.next_in_index=f,this.write=e,this.inflate_flush(a,b);b=0;c=this.left;c>g&&(c=g);c>k&&(c=k);y(a.next_in,f,this.window,e,c);f+=c;g-=c;e+=c;k-=c;if(0!=(this.left-=c))break;this.mode=0!=this.last?7:0;break;case 3:for(;14>h;){if(0!=g)b=0;else return this.bitb=d,this.bitk=h,a.avail_in=g,a.total_in+=f-a.next_in_index,a.next_in_index=f,this.write=e,this.inflate_flush(a,b);g--;d|=(a.next_in[f++]&255)<<h;h+=8}this.table=c=d&16383;if(29<(c&31)||29<(c>>5&31))return this.mode=\n9,a.msg=\"too many length or distance symbols\",b=-3,this.bitb=d,this.bitk=h,a.avail_in=g,a.total_in+=f-a.next_in_index,a.next_in_index=f,this.write=e,this.inflate_flush(a,b);c=258+(c&31)+(c>>5&31);if(null==this.blens||this.blens.length<c)this.blens=new Int32Array(c);else for(k=0;k<c;k++)this.blens[k]=0;d>>>=14;h-=14;this.index=0;mode=4;case 4:for(;this.index<4+(this.table>>>10);){for(;3>h;){if(0!=g)b=0;else return this.bitb=d,this.bitk=h,a.avail_in=g,a.total_in+=f-a.next_in_index,a.next_in_index=f,\nthis.write=e,this.inflate_flush(a,b);g--;d|=(a.next_in[f++]&255)<<h;h+=8}this.blens[R[this.index++]]=d&7;d>>>=3;h-=3}for(;19>this.index;)this.blens[R[this.index++]]=0;this.bb[0]=7;c=this.inftree.inflate_trees_bits(this.blens,this.bb,this.tb,this.hufts,a);if(0!=c)return b=c,-3==b&&(this.blens=null,this.mode=9),this.bitb=d,this.bitk=h,a.avail_in=g,a.total_in+=f-a.next_in_index,a.next_in_index=f,write=e,this.inflate_flush(a,b);this.index=0;this.mode=5;case 5:for(;;){c=this.table;if(!(this.index<258+\n(c&31)+(c>>5&31)))break;for(c=this.bb[0];h<c;){if(0!=g)b=0;else return this.bitb=d,this.bitk=h,a.avail_in=g,a.total_in+=f-a.next_in_index,a.next_in_index=f,this.write=e,this.inflate_flush(a,b);g--;d|=(a.next_in[f++]&255)<<h;h+=8}c=this.hufts[3*(this.tb[0]+(d&x[c]))+1];p=this.hufts[3*(this.tb[0]+(d&x[c]))+2];if(16>p)d>>>=c,h-=c,this.blens[this.index++]=p;else{k=18==p?7:p-14;for(m=18==p?11:3;h<c+k;){if(0!=g)b=0;else return this.bitb=d,this.bitk=h,a.avail_in=g,a.total_in+=f-a.next_in_index,a.next_in_index=\nf,this.write=e,this.inflate_flush(a,b);g--;d|=(a.next_in[f++]&255)<<h;h+=8}d>>>=c;h-=c;m+=d&x[k];d>>>=k;h-=k;k=this.index;c=this.table;if(k+m>258+(c&31)+(c>>5&31)||16==p&&1>k)return this.blens=null,this.mode=9,a.msg=\"invalid bit length repeat\",b=-3,this.bitb=d,this.bitk=h,a.avail_in=g,a.total_in+=f-a.next_in_index,a.next_in_index=f,this.write=e,this.inflate_flush(a,b);p=16==p?this.blens[k-1]:0;do this.blens[k++]=p;while(0!=--m);this.index=k}}this.tb[0]=-1;m=new Int32Array(1);p=new Int32Array(1);q=\nnew Int32Array(1);n=new Int32Array(1);m[0]=9;p[0]=6;c=this.table;c=this.inftree.inflate_trees_dynamic(257+(c&31),1+(c>>5&31),this.blens,m,p,q,n,this.hufts,a);if(0!=c)return-3==c&&(this.blens=null,this.mode=13),b=c,this.bitb=d,this.bitk=h,a.avail_in=g,a.total_in+=f-a.next_in_index,a.next_in_index=f,this.write=e,this.inflate_flush(a,b);this.codes.init(m[0],p[0],this.hufts,q[0],this.hufts,n[0],a);this.mode=6;case 6:this.bitb=d;this.bitk=h;a.avail_in=g;a.total_in+=f-a.next_in_index;a.next_in_index=f;\nthis.write=e;if(1!=(b=this.codes.proc(this,a,b)))return this.inflate_flush(a,b);b=0;this.codes.free(a);f=a.next_in_index;g=a.avail_in;d=this.bitb;h=this.bitk;e=this.write;k=e<this.read?this.read-e-1:this.end-e;if(0==this.last){this.mode=0;break}this.mode=7;case 7:this.write=e;b=this.inflate_flush(a,b);e=this.write;if(this.read!=this.write)return this.bitb=d,this.bitk=h,a.avail_in=g,a.total_in+=f-a.next_in_index,a.next_in_index=f,this.write=e,this.inflate_flush(a,b);mode=12;case 8:return b=1,this.bitb=\nd,this.bitk=h,a.avail_in=g,a.total_in+=f-a.next_in_index,a.next_in_index=f,this.write=e,this.inflate_flush(a,b);case 9:return b=-3,this.bitb=d,this.bitk=h,a.avail_in=g,a.total_in+=f-a.next_in_index,a.next_in_index=f,this.write=e,this.inflate_flush(a,b);default:return b=-2,this.bitb=d,this.bitk=h,a.avail_in=g,a.total_in+=f-a.next_in_index,a.next_in_index=f,this.write=e,this.inflate_flush(a,b)}};B.prototype.free=function(a){this.reset(a,null);this.hufts=this.window=null};B.prototype.set_dictionary=\nfunction(a,b,c){y(a,b,window,0,c);this.read=this.write=c};B.prototype.sync_point=function(){return 1==this.mode};B.prototype.inflate_flush=function(a,b){var c,d,h;d=a.next_out_index;h=this.read;c=(h<=this.write?this.write:this.end)-h;c>a.avail_out&&(c=a.avail_out);0!=c&&-5==b&&(b=0);a.avail_out-=c;a.total_out+=c;null!=this.checkfn&&(a.adler=this.check=a._adler.adler32(this.check,this.window,h,c));y(this.window,h,a.next_out,d,c);d+=c;h+=c;h==this.end&&(h=0,this.write==this.end&&(this.write=0),c=this.write-\nh,c>a.avail_out&&(c=a.avail_out),0!=c&&-5==b&&(b=0),a.avail_out-=c,a.total_out+=c,null!=this.checkfn&&(a.adler=this.check=a._adler.adler32(this.check,this.window,h,c)),y(this.window,h,a.next_out,d,c),d+=c,h+=c);a.next_out_index=d;this.read=h;return b};D.prototype.init=function(a,b,c,d,h,f,g){this.mode=0;this.lbits=a;this.dbits=b;this.ltree=c;this.ltree_index=d;this.dtree=h;this.dtree_index=f;this.tree=null};D.prototype.proc=function(a,b,c){var d,h,f=0,g=0,e=0,k,m,p,e=b.next_in_index;k=b.avail_in;\nf=a.bitb;g=a.bitk;m=a.write;for(p=m<a.read?a.read-m-1:a.end-m;;)switch(this.mode){case 0:if(258<=p&&10<=k&&(a.bitb=f,a.bitk=g,b.avail_in=k,b.total_in+=e-b.next_in_index,b.next_in_index=e,a.write=m,c=this.inflate_fast(this.lbits,this.dbits,this.ltree,this.ltree_index,this.dtree,this.dtree_index,a,b),e=b.next_in_index,k=b.avail_in,f=a.bitb,g=a.bitk,m=a.write,p=m<a.read?a.read-m-1:a.end-m,0!=c)){this.mode=1==c?7:9;break}this.need=this.lbits;this.tree=this.ltree;this.tree_index=this.ltree_index;this.mode=\n1;case 1:for(d=this.need;g<d;){if(0!=k)c=0;else return a.bitb=f,a.bitk=g,b.avail_in=k,b.total_in+=e-b.next_in_index,b.next_in_index=e,a.write=m,a.inflate_flush(b,c);k--;f|=(b.next_in[e++]&255)<<g;g+=8}d=3*(this.tree_index+(f&x[d]));f>>>=this.tree[d+1];g-=this.tree[d+1];h=this.tree[d];if(0==h){this.lit=this.tree[d+2];this.mode=6;break}if(0!=(h&16)){this.get=h&15;this.len=this.tree[d+2];this.mode=2;break}if(0==(h&64)){this.need=h;this.tree_index=d/3+this.tree[d+2];break}if(0!=(h&32)){this.mode=7;break}this.mode=\n9;b.msg=\"invalid literal/length code\";c=-3;a.bitb=f;a.bitk=g;b.avail_in=k;b.total_in+=e-b.next_in_index;b.next_in_index=e;a.write=m;return a.inflate_flush(b,c);case 2:for(d=this.get;g<d;){if(0!=k)c=0;else return a.bitb=f,a.bitk=g,b.avail_in=k,b.total_in+=e-b.next_in_index,b.next_in_index=e,a.write=m,a.inflate_flush(b,c);k--;f|=(b.next_in[e++]&255)<<g;g+=8}this.len+=f&x[d];f>>=d;g-=d;this.need=this.dbits;this.tree=this.dtree;this.tree_index=this.dtree_index;this.mode=3;case 3:for(d=this.need;g<d;){if(0!=\nk)c=0;else return a.bitb=f,a.bitk=g,b.avail_in=k,b.total_in+=e-b.next_in_index,b.next_in_index=e,a.write=m,a.inflate_flush(b,c);k--;f|=(b.next_in[e++]&255)<<g;g+=8}d=3*(this.tree_index+(f&x[d]));f>>=this.tree[d+1];g-=this.tree[d+1];h=this.tree[d];if(0!=(h&16)){this.get=h&15;this.dist=this.tree[d+2];this.mode=4;break}if(0==(h&64)){this.need=h;this.tree_index=d/3+this.tree[d+2];break}this.mode=9;b.msg=\"invalid distance code\";c=-3;a.bitb=f;a.bitk=g;b.avail_in=k;b.total_in+=e-b.next_in_index;b.next_in_index=\ne;a.write=m;return a.inflate_flush(b,c);case 4:for(d=this.get;g<d;){if(0!=k)c=0;else return a.bitb=f,a.bitk=g,b.avail_in=k,b.total_in+=e-b.next_in_index,b.next_in_index=e,a.write=m,a.inflate_flush(b,c);k--;f|=(b.next_in[e++]&255)<<g;g+=8}this.dist+=f&x[d];f>>=d;g-=d;this.mode=5;case 5:for(d=m-this.dist;0>d;)d+=a.end;for(;0!=this.len;){if(0==p&&(m==a.end&&0!=a.read&&(m=0,p=m<a.read?a.read-m-1:a.end-m),0==p&&(a.write=m,c=a.inflate_flush(b,c),m=a.write,p=m<a.read?a.read-m-1:a.end-m,m==a.end&&0!=a.read&&\n(m=0,p=m<a.read?a.read-m-1:a.end-m),0==p)))return a.bitb=f,a.bitk=g,b.avail_in=k,b.total_in+=e-b.next_in_index,b.next_in_index=e,a.write=m,a.inflate_flush(b,c);a.window[m++]=a.window[d++];p--;d==a.end&&(d=0);this.len--}this.mode=0;break;case 6:if(0==p&&(m==a.end&&0!=a.read&&(m=0,p=m<a.read?a.read-m-1:a.end-m),0==p&&(a.write=m,c=a.inflate_flush(b,c),m=a.write,p=m<a.read?a.read-m-1:a.end-m,m==a.end&&0!=a.read&&(m=0,p=m<a.read?a.read-m-1:a.end-m),0==p)))return a.bitb=f,a.bitk=g,b.avail_in=k,b.total_in+=\ne-b.next_in_index,b.next_in_index=e,a.write=m,a.inflate_flush(b,c);c=0;a.window[m++]=this.lit;p--;this.mode=0;break;case 7:7<g&&(g-=8,k++,e--);a.write=m;c=a.inflate_flush(b,c);m=a.write;if(a.read!=a.write)return a.bitb=f,a.bitk=g,b.avail_in=k,b.total_in+=e-b.next_in_index,b.next_in_index=e,a.write=m,a.inflate_flush(b,c);this.mode=8;case 8:return c=1,a.bitb=f,a.bitk=g,b.avail_in=k,b.total_in+=e-b.next_in_index,b.next_in_index=e,a.write=m,a.inflate_flush(b,c);case 9:return c=-3,a.bitb=f,a.bitk=g,b.avail_in=\nk,b.total_in+=e-b.next_in_index,b.next_in_index=e,a.write=m,a.inflate_flush(b,c);default:return c=-2,a.bitb=f,a.bitk=g,b.avail_in=k,b.total_in+=e-b.next_in_index,b.next_in_index=e,a.write=m,a.inflate_flush(b,c)}};D.prototype.free=function(a){};D.prototype.inflate_fast=function(a,b,c,d,h,f,g,e){var k,m,p,q,n,l,u,s,w,t,r,v;l=e.next_in_index;u=e.avail_in;q=g.bitb;n=g.bitk;s=g.write;w=s<g.read?g.read-s-1:g.end-s;a=x[a];t=x[b];do{for(;20>n;)u--,q|=(e.next_in[l++]&255)<<n,n+=8;k=q&a;m=c;p=d;v=3*(p+k);if(0==\n(b=m[v]))q>>=m[v+1],n-=m[v+1],g.window[s++]=m[v+2],w--;else{do{q>>=m[v+1];n-=m[v+1];if(0!=(b&16)){b&=15;r=m[v+2]+(q&x[b]);q>>=b;for(n-=b;15>n;)u--,q|=(e.next_in[l++]&255)<<n,n+=8;k=q&t;m=h;p=f;v=3*(p+k);b=m[v];do if(q>>=m[v+1],n-=m[v+1],0!=(b&16)){for(b&=15;n<b;)u--,q|=(e.next_in[l++]&255)<<n,n+=8;k=m[v+2]+(q&x[b]);q>>=b;n-=b;w-=r;if(s>=k)k=s-k,g.window[s++]=g.window[k++],g.window[s++]=g.window[k++],r-=2;else{k=s-k;do k+=g.end;while(0>k);b=g.end-k;if(r>b){r-=b;if(0<s-k&&b>s-k){do g.window[s++]=g.window[k++];\nwhile(0!=--b)}else y(g.window,k,g.window,s,b),s+=b;k=0}}do g.window[s++]=g.window[k++];while(0!=--r);break}else if(0==(b&64))k+=m[v+2],k+=q&x[b],v=3*(p+k),b=m[v];else return e.msg=\"invalid distance code\",r=e.avail_in-u,r=n>>3<r?n>>3:r,u+=r,l-=r,n-=r<<3,g.bitb=q,g.bitk=n,e.avail_in=u,e.total_in+=l-e.next_in_index,e.next_in_index=l,g.write=s,-3;while(1);break}if(0==(b&64)){if(k+=m[v+2],k+=q&x[b],v=3*(p+k),0==(b=m[v])){q>>=m[v+1];n-=m[v+1];g.window[s++]=m[v+2];w--;break}}else{if(0!=(b&32))return r=e.avail_in-\nu,r=n>>3<r?n>>3:r,u+=r,l-=r,n-=r<<3,g.bitb=q,g.bitk=n,e.avail_in=u,e.total_in+=l-e.next_in_index,e.next_in_index=l,g.write=s,1;e.msg=\"invalid literal/length code\";r=e.avail_in-u;r=n>>3<r?n>>3:r;u+=r;l-=r;n-=r<<3;g.bitb=q;g.bitk=n;e.avail_in=u;e.total_in+=l-e.next_in_index;e.next_in_index=l;g.write=s;return-3}}while(1)}}while(258<=w&&10<=u);r=e.avail_in-u;r=n>>3<r?n>>3:r;l-=r;g.bitb=q;g.bitk=n-(r<<3);e.avail_in=u+r;e.total_in+=l-e.next_in_index;e.next_in_index=l;g.write=s;return 0};E.prototype.huft_build=\nfunction(a,b,c,d,h,f,g,e,k,m,p){var q,n,l,u,s,w,t,r,v;w=0;n=c;do this.c[a[b+w]]++,w++,n--;while(0!=n);if(this.c[0]==c)return g[0]=-1,e[0]=0;s=e[0];for(l=1;15>=l&&0==this.c[l];l++);u=l;s<l&&(s=l);for(n=15;0!=n&&0==this.c[n];n--);m=n;s>n&&(s=n);e[0]=s;for(e=1<<l;l<n;l++,e<<=1)if(0>(e-=this.c[l]))return-3;if(0>(e-=this.c[n]))return-3;this.c[n]+=e;this.x[1]=l=0;w=1;for(t=2;0!=--n;)this.x[t]=l+=this.c[w],t++,w++;w=n=0;do 0!=(l=a[b+w])&&(this.v[this.x[l]++]=n),w++;while(++n<c);c=this.x[m];w=this.x[0]=n=\n0;b=-1;r=-s;for(v=t=this.u[0]=0;u<=m;u++)for(a=this.c[u];0!=a--;){for(;u>r+s;){b++;r+=s;v=m-r;v=v>s?s:v;if((q=1<<(l=u-r))>a+1&&(q-=a+1,t=u,l<v))for(;++l<v&&!((q<<=1)<=this.c[++t]);)q-=this.c[t];v=1<<l;if(1440<this.hn[0]+v)return-3;this.u[b]=t=this.hn[0];this.hn[0]+=v;0!=b?(this.x[b]=n,this.r[0]=l,this.r[1]=s,l=n>>>r-s,this.r[2]=t-this.u[b-1]-l,y(this.r,0,k,3*(this.u[b-1]+l),3)):g[0]=t}this.r[1]=u-r;w>=c?this.r[0]=192:p[w]<d?(this.r[0]=256>this.v[w]?0:96,this.r[2]=this.v[w++]):(this.r[0]=f[this.v[w]-\nd]+16+64,this.r[2]=h[this.v[w++]-d]);q=1<<u-r;for(l=n>>>r;l<v;l+=q)y(this.r,0,k,3*(t+l),3);for(l=1<<u-1;0!=(n&l);l>>>=1)n^=l;n^=l;for(l=(1<<r)-1;(n&l)!=this.x[b];)b--,r-=s,l=(1<<r)-1}return 0!=e&&1!=m?-5:0};E.prototype.inflate_trees_bits=function(a,b,c,d,h){this.initWorkArea(19);this.hn[0]=0;a=this.huft_build(a,0,19,19,null,null,c,b,d,this.hn,this.v);if(-3==a)h.msg=\"oversubscribed dynamic bit lengths tree\";else if(-5==a||0==b[0])h.msg=\"incomplete dynamic bit lengths tree\",a=-3;return a};E.prototype.inflate_trees_dynamic=\nfunction(a,b,c,d,h,f,g,e,k){this.initWorkArea(288);this.hn[0]=0;f=this.huft_build(c,0,a,257,Z,aa,f,d,e,this.hn,this.v);if(0!=f||0==d[0])return-3==f?k.msg=\"oversubscribed literal/length tree\":-4!=f&&(k.msg=\"incomplete literal/length tree\",f=-3),f;this.initWorkArea(288);f=this.huft_build(c,a,b,0,ba,ca,g,h,e,this.hn,this.v);return 0!=f||0==h[0]&&257<a?(-3==f?k.msg=\"oversubscribed distance tree\":-5==f?(k.msg=\"incomplete distance tree\",f=-3):-4!=f&&(k.msg=\"empty distance tree with lengths\",f=-3),f):0};\nE.prototype.initWorkArea=function(a){null==this.hn&&(this.hn=new Int32Array(1),this.v=new Int32Array(a),this.c=new Int32Array(16),this.r=new Int32Array(3),this.u=new Int32Array(15),this.x=new Int32Array(16));this.v.length<a&&(this.v=new Int32Array(a));for(var b=0;b<a;b++)this.v[b]=0;for(b=0;16>b;b++)this.c[b]=0;for(b=0;3>b;b++)this.r[b]=0;y(this.c,0,this.u,0,15);y(this.c,0,this.x,0,16)};var T=\"function\"===typeof(new Uint8Array(1)).subarray;K.prototype.toString=function(){return\"\"+this.block+\":\"+this.offset};\nF.prototype.slice=function(a,b){var c;c=this.blob.slice?b?this.blob.slice(a,a+b):this.blob.slice(a):b?this.blob.webkitSlice(a,a+b):this.blob.webkitSlice(a);return new F(c)};F.prototype.salted=function(){return this};F.prototype.fetch=\"undefined\"!==typeof FileReader?function(a){var b=new FileReader;b.onloadend=function(c){a(N(b.result))};b.readAsBinaryString(this.blob)}:function(a){var b=new FileReaderSync;try{var c=b.readAsArrayBuffer(this.blob);a(c)}catch(d){a(null,d)}};z.prototype.slice=function(a,\nb){if(0>a)throw\"Bad slice \"+a;var c=this.start,d=this.end,c=c&&a?c+a:a||c;return new z(this.url,c,b&&c?c+b-1:d||b-1,this.opts)};0<=navigator.userAgent.indexOf(\"Safari\")&&navigator.userAgent.indexOf(\"Chrome\");z.prototype.fetchAsText=function(a){var b=this;this.getURL().then(function(c){try{var d=new XMLHttpRequest;d.open(\"GET\",c,!0);if(b.end){if(1E8<b.end-b.start)throw\"Monster fetch!\";d.setRequestHeader(\"Range\",\"bytes=\"+b.start+\"-\"+b.end)}d.onreadystatechange=function(){if(4==d.readyState)return 200==\nd.status||206==d.status?a(d.responseText):a(null)};b.opts.credentials&&(d.withCredentials=!0);d.send(\"\")}catch(h){return a(null)}}).fail(function(b){console.log(b);return a(null,b)})};z.prototype.salted=function(){var a=this.opts,b={},c;for(c in a)b[c]=a[c];b.salt=!0;return new z(this.url,this.start,this.end,b)};z.prototype.getURL=function(){return this.opts.resolver?this.opts.resolver(this.url).then(function(a){return\"string\"===typeof a?a:a.url}):$.Deferred().resolve(this.url)};z.prototype.fetch=\nfunction(a,b){var c=this;b=b||{};var d=b.attempt||1,h=b.truncatedLength;if(3<d)return a(null);this.getURL().then(function(f){try{var g;b.timeout&&!c.opts.credentials&&(g=setTimeout(function(){console.log(\"timing out \"+f);e.abort();return a(null,\"Timeout\")},b.timeout));var e=new XMLHttpRequest,k;e.open(\"GET\",f,!0);e.overrideMimeType(\"text/plain; charset=x-user-defined\");if(c.end){if(1E8<c.end-c.start)throw\"Monster fetch!\";e.setRequestHeader(\"Range\",\"bytes=\"+c.start+\"-\"+c.end);k=c.end-c.start+1}e.responseType=\n\"arraybuffer\";e.onreadystatechange=function(){if(4==e.readyState){g&&clearTimeout(g);if(200==e.status||206==e.status){if(e.response){var b=e.response.byteLength;return!k||k==b||h&&b==h?a(e.response):c.fetch(a,{attempt:d+1,truncatedLength:b})}if(e.mozResponseArrayBuffer)return a(e.mozResponseArrayBuffer);b=e.responseText;return!k||k==b.length||h&&b.length==h?a(N(e.responseText)):c.fetch(a,{attempt:d+1,truncatedLength:b.length})}return c.fetch(a,{attempt:d+1})}};c.opts.credentials&&(e.withCredentials=\n!0);e.send(\"\")}catch(m){return a(null)}}).fail(function(b){console.log(b);return a(null,b)})};H.prototype.blocksForRange=function(a,b,c){var d=this.indices[a];if(!d)return[];a=U(b,c);for(var h=[],f=0;f<a.length;++f)h[a[f]]=!0;a=[];for(var g=[],f=t(d,0),e=4,k=0;k<f;++k){var m=t(d,e),p=t(d,e+4),e=e+8;if(h[m])for(var q=0;q<p;++q){var n=G(d,e),l=G(d,e+8);(4681>m?g:a).push(new M(n,l));e+=16}else e+=16*p}f=t(d,e);h=null;b=Math.min(b>>14,f-1);c=Math.min(c>>14,f-1);for(f=b;f<=c;++f)(b=G(d,e+4+8*f))&&(!h||\nb.block<h.block||b.offset<h.offset)&&(h=b);d=[];if(null!=h)for(f=0;f<g.length;++f)c=g[f],c.maxv.block>=h.block&&c.maxv.offset>=h.offset&&d.push(c);g=d;d=[];for(f=0;f<g.length;++f)d.push(g[f]);for(f=0;f<a.length;++f)d.push(a[f]);d.sort(function(a,b){var c=a.minv.block-b.minv.block;return 0!=c?c:a.minv.offset-b.minv.offset});a=[];if(0<d.length){g=d[0];for(f=1;f<d.length;++f)c=d[f],c.minv.block==g.maxv.block?g=new M(g.minv,c.maxv):(a.push(g),g=c);a.push(g)}return a};H.prototype.fetch=function(a,b,c,\nd,h){function f(){if(q>=k.length)return d(p);if(n){var a=new Uint8Array(n),a=g.readBamRecords(a,k[q].minv.offset,p,b,c,e,h);n=null;++q;return a?d(p):f()}var m=k[q],a=m.minv.block;g.data.slice(a,m.maxv.block+65536-a).fetch(function(a){n=L(a,m.maxv.block-m.minv.block+1);return f()})}var g=this;h=h||{};var e=this.chrToIndex[a],k;if(void 0===e)k=[];else{if(null===this.indices[e]&&this.indexChunks.chunks[e]){var m=this.indexChunks.chunks[e];return this.bai.slice(m[0],m[1]).fetch(function(f){f=new Uint8Array(f);\nthis.indices[e]=f;return this.fetch(a,b,c,d,h)}.bind(this))}(k=this.blocksForRange(e,b,c))||d(null,\"Error in index fetch\")}var p=[],q=0,n;f()};var S=\"=ACxGxxxTxxxxxxN\".split(\"\"),ea=\"MIDNSHP=X???????\".split(\"\");H.prototype.readBamRecords=function(a,b,c,d,h,f,g){for(;;){var e=t(a,b),e=b+e+4;if(e>=a.length)return!1;var k=new W,m=t(a,b+4),p=t(a,b+8),q=t(a,b+12),n=(q&65280)>>8,l=q&255,q=t(a,b+16),u=(q&4294901760)>>16,s=q&65535,q=t(a,b+20),w=t(a,b+24),x=t(a,b+28);t(a,b+32);k.segment=this.indexToChr[m];\nk.flag=u;k.pos=p;k.mq=n;g.light&&(k.seqLength=q);if(!g.light){0<=w&&(k.nextSegment=this.indexToChr[w],k.nextPos=x);n=\"\";for(p=0;p<l-1;++p)n+=String.fromCharCode(a[b+36+p]);k.readName=n;b=b+36+l;l=\"\";for(p=0;p<s;++p)n=t(a,b),l=l+(n>>4)+ea[n&15],b+=4;k.cigar=l;s=\"\";l=q+1>>1;for(p=0;p<l;++p)n=a[b+p],s+=S[(n&240)>>4],s.length<q&&(s+=S[n&15]);b+=l;k.seq=s;s=\"\";for(p=0;p<q;++p)s+=String.fromCharCode(a[b+p]+33);b+=q;for(k.quals=s;b<e;){s=String.fromCharCode(a[b],a[b+1]);l=String.fromCharCode(a[b+2]);if(\"A\"==\nl)l=String.fromCharCode(a[b+3]),b+=4;else if(\"i\"==l||\"I\"==l)l=t(a,b+3),b+=7;else if(\"c\"==l||\"C\"==l)l=a[b+3],b+=4;else if(\"s\"==l||\"S\"==l)l=P(a,b+3),b+=5;else if(\"f\"==l)l=O(a,b+3),b+=7;else if(\"Z\"==l||\"H\"==l)for(b+=3,l=\"\";p=a[b++],0!=p;)l+=String.fromCharCode(p);else if(\"B\"==l){l=String.fromCharCode(a[b+3]);p=t(a,b+4);if(\"i\"==l||\"I\"==l||\"f\"==l)n=4,u=\"f\"==l?O:t;else if(\"s\"==l||\"S\"==l)n=2,u=P;else if(\"c\"==l||\"C\"==l)n=1,u=V;else throw\"Unknown array type \"+l;b+=8;l=[];for(w=0;w<p;++w)l.push(u(a,b)),b+=\nn}else throw\"Unknown type \"+l;k[s]=l}}if(!d||k.pos<=h&&k.pos+q>=d)void 0!==f&&m!=f||c.push(k);if(k.pos>h)return!0;b=e}};window.dallianceLib={URLFetchable:z,BlobFetchable:F,makeBam:function(a,b,c,d,h){a.slice(0,10).fetch(function(f){return f?Q(a,b,c,d,h):d(null,\"Couldn't access BAM.\")},{timeout:5E3})},inflateBuffer:J};\"object\"===typeof module&&\"object\"===typeof module.exports&&(module.exports=window.dallianceLib)})();\n","!function(a){var b=this;\"object\"==typeof exports?module.exports=a(b):\"function\"==typeof define&&define.amd?define([],function(){return a(b)}):b.jDataView=a(b)}(function(a){\"use strict\";function b(a,b){return\"object\"!=typeof a||null===a?!1:a.constructor===b||Object.prototype.toString.call(a)===\"[object \"+b.name+\"]\"}function c(a,c){return!c&&b(a,Array)?a:Array.prototype.slice.call(a)}function d(a,b){return void 0!==a?a:b}function e(a,c,f,g){if(e.is(a)){var h=a.slice(c,c+f);return h._littleEndian=d(g,h._littleEndian),h}if(!e.is(this))return new e(a,c,f,g);if(this.buffer=a=e.wrapBuffer(a),this._isArrayBuffer=j.ArrayBuffer&&b(a,ArrayBuffer),this._isPixelData=!0&&j.PixelData&&b(a,CanvasPixelArray),this._isDataView=j.DataView&&this._isArrayBuffer,this._isNodeBuffer=!1,!this._isArrayBuffer&&!this._isPixelData&&!b(a,Array))throw new TypeError(\"jDataView buffer has an incompatible type\");this._littleEndian=!!g;var i=\"byteLength\"in a?a.byteLength:a.length;this.byteOffset=c=d(c,0),this.byteLength=f=d(f,i-c),this._offset=this._bitOffset=0,this._isDataView?this._view=new DataView(a,c,f):this._checkBounds(c,f,i),this._engineAction=this._isDataView?this._dataViewAction:this._isArrayBuffer?this._arrayBufferAction:this._arrayAction}function f(a){for(var b=j.ArrayBuffer?Uint8Array:Array,c=new b(a.length),d=0,e=a.length;e>d;d++)c[d]=255&a.charCodeAt(d);return c}function g(a){return a>=0&&31>a?1<<a:g[a]||(g[a]=Math.pow(2,a))}function h(a,b){this.lo=a,this.hi=b}function i(){h.apply(this,arguments)}var j={NodeBuffer:!1,DataView:\"DataView\"in a,ArrayBuffer:\"ArrayBuffer\"in a,PixelData:!0&&\"CanvasPixelArray\"in a&&!(\"Uint8ClampedArray\"in a)&&\"document\"in a},k=a.TextEncoder,l=a.TextDecoder;if(j.PixelData)var m=document.createElement(\"canvas\").getContext(\"2d\"),n=function(a,b){var c=m.createImageData((a+3)/4,1).data;if(c.byteLength=a,void 0!==b)for(var d=0;a>d;d++)c[d]=b[d];return c};var o={Int8:1,Int16:2,Int32:4,Uint8:1,Uint16:2,Uint32:4,Float32:4,Float64:8};e.wrapBuffer=function(a){switch(typeof a){case\"number\":if(j.ArrayBuffer)a=new Uint8Array(a).buffer;else if(j.PixelData)a=n(a);else{a=new Array(a);for(var d=0;d<a.length;d++)a[d]=0}return a;case\"string\":a=f(a);default:return\"length\"in a&&!(j.ArrayBuffer&&b(a,ArrayBuffer)||j.PixelData&&b(a,CanvasPixelArray))&&(j.ArrayBuffer?b(a,ArrayBuffer)||(a=new Uint8Array(a).buffer,b(a,ArrayBuffer)||(a=new Uint8Array(c(a,!0)).buffer)):a=j.PixelData?n(a.length,a):c(a)),a}},e.is=function(a){return a&&a.jDataView},e.from=function(){return new e(arguments)},e.Uint64=h,h.prototype={valueOf:function(){return this.lo+g(32)*this.hi},toString:function(){return Number.prototype.toString.apply(this.valueOf(),arguments)}},h.fromNumber=function(a){var b=Math.floor(a/g(32)),c=a-b*g(32);return new h(c,b)},e.Int64=i,i.prototype=\"create\"in Object?Object.create(h.prototype):new h,i.prototype.valueOf=function(){return this.hi<g(31)?h.prototype.valueOf.apply(this,arguments):-(g(32)-this.lo+g(32)*(g(32)-1-this.hi))},i.fromNumber=function(a){var b,c;if(a>=0){var d=h.fromNumber(a);b=d.lo,c=d.hi}else c=Math.floor(a/g(32)),b=a-c*g(32),c+=g(32);return new i(b,c)};var p=e.prototype={compatibility:j,jDataView:!0,_checkBounds:function(a,b,c){if(\"number\"!=typeof a)throw new TypeError(\"Offset is not a number.\");if(\"number\"!=typeof b)throw new TypeError(\"Size is not a number.\");if(0>b)throw new RangeError(\"Length is negative.\");if(0>a||a+b>d(c,this.byteLength))throw new RangeError(\"Offsets are out of bounds.\")},_action:function(a,b,c,e,f){return this._engineAction(a,b,d(c,this._offset),d(e,this._littleEndian),f)},_dataViewAction:function(a,b,c,d,e){return this._offset=c+o[a],b?this._view[\"get\"+a](c,d):this._view[\"set\"+a](c,e,d)},_arrayBufferAction:function(b,c,e,f,g){var h,i=o[b],j=a[b+\"Array\"];if(f=d(f,this._littleEndian),1===i||(this.byteOffset+e)%i===0&&f)return h=new j(this.buffer,this.byteOffset+e,1),this._offset=e+i,c?h[0]:h[0]=g;var k=new Uint8Array(c?this.getBytes(i,e,f,!0):i);return h=new j(k.buffer,0,1),c?h[0]:(h[0]=g,void this._setBytes(e,k,f))},_arrayAction:function(a,b,c,d,e){return b?this[\"_get\"+a](c,d):this[\"_set\"+a](c,e,d)},_getBytes:function(a,b,e){e=d(e,this._littleEndian),b=d(b,this._offset),a=d(a,this.byteLength-b),this._checkBounds(b,a),b+=this.byteOffset,this._offset=b-this.byteOffset+a;var f=this._isArrayBuffer?new Uint8Array(this.buffer,b,a):(this.buffer.slice||Array.prototype.slice).call(this.buffer,b,b+a);return e||1>=a?f:c(f).reverse()},getBytes:function(a,b,e,f){var g=this._getBytes(a,b,d(e,!0));return f?c(g):g},_setBytes:function(a,b,e){var f=b.length;if(0!==f){if(e=d(e,this._littleEndian),a=d(a,this._offset),this._checkBounds(a,f),!e&&f>1&&(b=c(b,!0).reverse()),a+=this.byteOffset,this._isArrayBuffer)new Uint8Array(this.buffer,a,f).set(b);else for(var g=0;f>g;g++)this.buffer[a+g]=b[g];this._offset=a-this.byteOffset+f}},setBytes:function(a,b,c){this._setBytes(a,b,d(c,!0))},getString:function(a,b,c){var d=this._getBytes(a,b,!0);if(c=\"utf8\"===c?\"utf-8\":c||\"binary\",l&&\"binary\"!==c)return new l(c).decode(this._isArrayBuffer?d:new Uint8Array(d));var e=\"\";a=d.length;for(var f=0;a>f;f++)e+=String.fromCharCode(d[f]);return\"utf-8\"===c&&(e=decodeURIComponent(escape(e))),e},setString:function(a,b,c){c=\"utf8\"===c?\"utf-8\":c||\"binary\";var d;k&&\"binary\"!==c?d=new k(c).encode(b):(\"utf-8\"===c&&(b=unescape(encodeURIComponent(b))),d=f(b)),this._setBytes(a,d,!0)},getChar:function(a){return this.getString(1,a)},setChar:function(a,b){this.setString(a,b)},tell:function(){return this._offset},seek:function(a){return this._checkBounds(a,0),this._offset=a},skip:function(a){return this.seek(this._offset+a)},slice:function(a,b,c){function f(a,b){return 0>a?a+b:a}return a=f(a,this.byteLength),b=f(d(b,this.byteLength),this.byteLength),c?new e(this.getBytes(b-a,a,!0,!0),void 0,void 0,this._littleEndian):new e(this.buffer,this.byteOffset+a,b-a,this._littleEndian)},alignBy:function(a){return this._bitOffset=0,1!==d(a,1)?this.skip(a-(this._offset%a||a)):this._offset},_getFloat64:function(a,b){var c=this._getBytes(8,a,b),d=1-2*(c[7]>>7),e=((c[7]<<1&255)<<3|c[6]>>4)-1023,f=(15&c[6])*g(48)+c[5]*g(40)+c[4]*g(32)+c[3]*g(24)+c[2]*g(16)+c[1]*g(8)+c[0];return 1024===e?0!==f?0/0:1/0*d:-1023===e?d*f*g(-1074):d*(1+f*g(-52))*g(e)},_getFloat32:function(a,b){var c=this._getBytes(4,a,b),d=1-2*(c[3]>>7),e=(c[3]<<1&255|c[2]>>7)-127,f=(127&c[2])<<16|c[1]<<8|c[0];return 128===e?0!==f?0/0:1/0*d:-127===e?d*f*g(-149):d*(1+f*g(-23))*g(e)},_get64:function(a,b,c){c=d(c,this._littleEndian),b=d(b,this._offset);for(var e=c?[0,4]:[4,0],f=0;2>f;f++)e[f]=this.getUint32(b+e[f],c);return this._offset=b+8,new a(e[0],e[1])},getInt64:function(a,b){return this._get64(i,a,b)},getUint64:function(a,b){return this._get64(h,a,b)},_getInt32:function(a,b){var c=this._getBytes(4,a,b);return c[3]<<24|c[2]<<16|c[1]<<8|c[0]},_getUint32:function(a,b){return this._getInt32(a,b)>>>0},_getInt16:function(a,b){return this._getUint16(a,b)<<16>>16},_getUint16:function(a,b){var c=this._getBytes(2,a,b);return c[1]<<8|c[0]},_getInt8:function(a){return this._getUint8(a)<<24>>24},_getUint8:function(a){return this._getBytes(1,a)[0]},_getBitRangeData:function(a,b){var c=(d(b,this._offset)<<3)+this._bitOffset,e=c+a,f=c>>>3,g=e+7>>>3,h=this._getBytes(g-f,f,!0),i=0;(this._bitOffset=7&e)&&(this._bitOffset-=8);for(var j=0,k=h.length;k>j;j++)i=i<<8|h[j];return{start:f,bytes:h,wideValue:i}},getSigned:function(a,b){var c=32-a;return this.getUnsigned(a,b)<<c>>c},getUnsigned:function(a,b){var c=this._getBitRangeData(a,b).wideValue>>>-this._bitOffset;return 32>a?c&~(-1<<a):c},_setBinaryFloat:function(a,b,c,d,e){var f,h,i=0>b?1:0,j=~(-1<<d-1),k=1-j;0>b&&(b=-b),0===b?(f=0,h=0):isNaN(b)?(f=2*j+1,h=1):1/0===b?(f=2*j+1,h=0):(f=Math.floor(Math.log(b)/Math.LN2),f>=k&&j>=f?(h=Math.floor((b*g(-f)-1)*g(c)),f+=j):(h=Math.floor(b/g(k-c)),f=0));for(var l=[];c>=8;)l.push(h%256),h=Math.floor(h/256),c-=8;for(f=f<<c|h,d+=c;d>=8;)l.push(255&f),f>>>=8,d-=8;l.push(i<<d|f),this._setBytes(a,l,e)},_setFloat32:function(a,b,c){this._setBinaryFloat(a,b,23,8,c)},_setFloat64:function(a,b,c){this._setBinaryFloat(a,b,52,11,c)},_set64:function(a,b,c,e){\"object\"!=typeof c&&(c=a.fromNumber(c)),e=d(e,this._littleEndian),b=d(b,this._offset);var f=e?{lo:0,hi:4}:{lo:4,hi:0};for(var g in f)this.setUint32(b+f[g],c[g],e);this._offset=b+8},setInt64:function(a,b,c){this._set64(i,a,b,c)},setUint64:function(a,b,c){this._set64(h,a,b,c)},_setUint32:function(a,b,c){this._setBytes(a,[255&b,b>>>8&255,b>>>16&255,b>>>24],c)},_setUint16:function(a,b,c){this._setBytes(a,[255&b,b>>>8&255],c)},_setUint8:function(a,b){this._setBytes(a,[255&b])},setUnsigned:function(a,b,c){var d=this._getBitRangeData(c,a),e=d.wideValue,f=d.bytes;e&=~(~(-1<<c)<<-this._bitOffset),e|=(32>c?b&~(-1<<c):b)<<-this._bitOffset;for(var g=f.length-1;g>=0;g--)f[g]=255&e,e>>>=8;this._setBytes(d.start,f,!0)}};for(var q in o)!function(a){p[\"get\"+a]=function(b,c){return this._action(a,!0,b,c)},p[\"set\"+a]=function(b,c,d){this._action(a,!1,b,d,c)}}(q);p._setInt32=p._setUint32,p._setInt16=p._setUint16,p._setInt8=p._setUint8,p.setSigned=p.setUnsigned;for(var r in p)\"set\"===r.slice(0,3)&&!function(a){p[\"write\"+a]=function(){Array.prototype.unshift.call(arguments,void 0),this[\"set\"+a].apply(this,arguments)}}(r.slice(3));return e});\n//# sourceMappingURL=jdataview.js.map\n","(function () {\n\nif (typeof jDataView === 'undefined' && typeof require !== 'undefined') {\n\tjDataView = require('./jDataView.js');\n}\n\n// Extend code from underscorejs (modified for fast inheritance using prototypes)\nfunction inherit(obj) {\n if ('create' in Object) {\n obj = Object.create(obj);\n } else {\n function ClonedObject() {}\n ClonedObject.prototype = obj;\n obj = new ClonedObject();\n }\n for (var i = 1; i < arguments.length; ++i) {\n var source = arguments[i];\n for (var prop in source) {\n if (source[prop] !== undefined) {\n obj[prop] = source[prop];\n }\n }\n }\n return obj;\n}\n\nfunction jParser(view, structure) {\n if (!(this instanceof arguments.callee)) {\n throw new Error(\"Constructor may not be called as a function\");\n }\n if (!(view instanceof jDataView)) {\n view = new jDataView(view, undefined, undefined, true);\n }\n this.view = view;\n this.view.seek(0);\n this._bitShift = 0;\n this.structure = inherit(jParser.prototype.structure, structure);\n}\n\nfunction toInt(val) {\n return val instanceof Function ? val.call(this) : val;\n}\n\njParser.prototype.structure = {\n uint8: function () { return this.view.getUint8(); },\n uint16: function () { return this.view.getUint16(); },\n uint32: function () { return this.view.getUint32(); },\n uint64 : function () { return parseInt(this.view.getUint64(),10); },\n int8: function () { return this.view.getInt8(); },\n int16: function () { return this.view.getInt16(); },\n int32: function () { return this.view.getInt32(); },\n float32: function () { return this.view.getFloat32(); },\n float64: function () { return this.view.getFloat64(); },\n char: function () { return this.view.getChar(); },\n string: function (length) {\n return this.view.getString(toInt.call(this, length));\n },\n array: function (type, length) {\n length = toInt.call(this, length);\n var results = [];\n for (var i = 0; i < length; ++i) {\n results.push(this.parse(type));\n }\n return results;\n },\n seek: function (position, block) {\n position = toInt.call(this, position);\n if (block instanceof Function) {\n var old_position = this.view.tell();\n this.view.seek(position);\n var result = block.call(this);\n this.view.seek(old_position);\n return result;\n } else {\n return this.view.seek(position);\n }\n },\n tell: function () {\n return this.view.tell();\n },\n skip: function (offset) {\n offset = toInt.call(this, offset);\n this.view.seek(this.view.tell() + offset);\n return offset;\n },\n err : function(e){\n this.current = { error : e };\n return;\n },\n if: function (predicate) {\n if (predicate instanceof Function ? predicate.call(this) : predicate) {\n return this.parse.apply(this, Array.prototype.slice.call(arguments, 1));\n }\n }\n};\n\njParser.prototype.seek = jParser.prototype.structure.seek;\njParser.prototype.tell = jParser.prototype.structure.tell;\njParser.prototype.skip = jParser.prototype.structure.skip;\njParser.prototype.err = jParser.prototype.structure.err;\n\njParser.prototype.parse = function (structure) {\n if (typeof structure === 'number') {\n var fieldValue = 0,\n bitSize = structure;\n\n if (this._bitShift < 0) {\n var byteShift = this._bitShift >> 3; // Math.floor(_bitShift / 8)\n this.skip(byteShift);\n this._bitShift &= 7; // _bitShift + 8 * Math.floor(_bitShift / 8)\n }\n if (this._bitShift > 0 && bitSize >= 8 - this._bitShift) {\n fieldValue = this.view.getUint8() & ~(-1 << (8 - this._bitShift));\n bitSize -= 8 - this._bitShift;\n this._bitShift = 0;\n }\n while (bitSize >= 8) {\n fieldValue = this.view.getUint8() | (fieldValue << 8);\n bitSize -= 8;\n }\n if (bitSize > 0) {\n fieldValue = ((this.view.getUint8() >>> (8 - (this._bitShift + bitSize))) & ~(-1 << bitSize)) | (fieldValue << bitSize);\n this._bitShift += bitSize - 8; // passing negative value for next pass\n }\n\n return fieldValue;\n }\n\n // f, 1, 2 means f(1, 2)\n if (structure instanceof Function) {\n return structure.apply(this, Array.prototype.slice.call(arguments, 1));\n }\n\n // 'int32', ... is a shortcut for ['int32', ...]\n if (typeof structure === 'string') {\n structure = Array.prototype.slice.call(arguments);\n }\n\n // ['string', 256] means structure['string'](256)\n if (structure instanceof Array) {\n var key = structure[0];\n if (!(key in this.structure)) {\n throw new Error(\"Missing structure for `\" + key + \"`\");\n }\n return this.parse.apply(this, [this.structure[key]].concat(structure.slice(1)));\n }\n\n // {key: val} means {key: parse(val)}\n if (typeof structure === 'object') {\n var output = {},\n current = this.current;\n\n this.current = output;\n\n for (var key in structure) {\n if(this.current.error){\n output = this.current;\n return output;\n }\n var value = this.parse(structure[key]);\n\n // skipping undefined call results (useful for 'if' statement)\n if (value !== undefined) {\n output[key] = value;\n }\n }\n\n this.current = current;\n\n return output;\n }\n\n throw new Error(\"Unknown structure type `\" + structure + \"`\");\n};\n\n\nvar all;\nif (typeof self !== 'undefined') {\n all = self;\n} else if (typeof window !== 'undefined') {\n all = window;\n} else if (typeof global !== 'undefined') {\n all = global;\n}\n// Browser + Web Worker\nall.jParser = jParser;\n\nif (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = jParser;\n}\n\n})();\n","/*! jQuery UI - v1.12.1 - 2017-08-01\n* http://jqueryui.com\n* Includes: widget.js, position.js, data.js, disable-selection.js, scroll-parent.js, widgets/draggable.js, widgets/resizable.js, widgets/sortable.js, widgets/mouse.js\n* Copyright jQuery Foundation and other contributors; Licensed MIT */\n\n(function(t){\"function\"==typeof define&&define.amd?define([\"jquery\"],t):t(jQuery)})(function(t){t.ui=t.ui||{},t.ui.version=\"1.12.1\";var e=0,i=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,\"events\"),s&&s.remove&&t(n).triggerHandler(\"remove\")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},l=e.split(\".\")[0];e=e.split(\".\")[1];var h=l+\"-\"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[\":\"][h.toLowerCase()]=function(e){return!!t.data(e,h)},t[l]=t[l]||{},n=t[l][e],o=t[l][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:l,widgetName:e,widgetFullName:h}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+\".\"+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var s,n,o=i.call(arguments,1),a=0,r=o.length;r>a;a++)for(s in o[a])n=o[a][s],o[a].hasOwnProperty(s)&&void 0!==n&&(e[s]=t.isPlainObject(n)?t.isPlainObject(e[s])?t.widget.extend({},e[s],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,s){var n=s.prototype.widgetFullName||e;t.fn[e]=function(o){var a=\"string\"==typeof o,r=i.call(arguments,1),l=this;return a?this.length||\"instance\"!==o?this.each(function(){var i,s=t.data(this,n);return\"instance\"===o?(l=s,!1):s?t.isFunction(s[o])&&\"_\"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(l=i&&i.jquery?l.pushStack(i.get()):i,!1):void 0):t.error(\"no such method '\"+o+\"' for \"+e+\" widget instance\"):t.error(\"cannot call methods on \"+e+\" prior to initialization; \"+\"attempted to call method '\"+o+\"'\")}):l=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new s(o,this))})),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:\"widget\",widgetEventPrefix:\"\",defaultElement:\"<div>\",options:{classes:{},disabled:!1,create:null},_createWidget:function(i,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=e++,this.eventNamespace=\".\"+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),i),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger(\"create\",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr(\"aria-disabled\"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if(\"string\"==typeof e)if(a={},s=e.split(\".\"),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return\"classes\"===t&&this._setOptionClasses(e),this.options[t]=e,\"disabled\"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+\"-disabled\",null,!!t),t&&(this._removeClass(this.hoverable,null,\"ui-state-hover\"),this._removeClass(this.focusable,null,\"ui-state-focus\"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:\"_untrackClassesElement\"}),e.keys&&i(e.keys.match(/\\S+/g)||[],!0),e.extra&&i(e.extra.match(/\\S+/g)||[]),s.join(\" \")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s=\"boolean\"==typeof s?s:i;var n=\"string\"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;\"boolean\"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass(\"ui-state-disabled\")?(\"string\"==typeof a?o[a]:a).apply(o,arguments):void 0}\"string\"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var l=s.match(/^([\\w:-]*)\\s*(.*)$/),h=l[1]+o.eventNamespace,c=l[2];c?n.on(h,c,r):i.on(h,r)})},_off:function(e,i){i=(i||\"\").split(\" \").join(this.eventNamespace+\" \")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return(\"string\"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,\"ui-state-hover\")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,\"ui-state-hover\")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,\"ui-state-focus\")},focusout:function(e){this._removeClass(t(e.currentTarget),null,\"ui-state-focus\")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:\"fadeIn\",hide:\"fadeOut\"},function(e,i){t.Widget.prototype[\"_\"+e]=function(s,n,o){\"string\"==typeof n&&(n={effect:n});var a,r=n?n===!0||\"number\"==typeof n?i:n.effect||i:e;n=n||{},\"number\"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,l=/top|center|bottom/,h=/[\\+\\-]\\d+(\\.[\\d]+)?%?/,c=/^\\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t(\"<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>\"),o=s.children()[0];return t(\"body\").append(s),e=o.offsetWidth,s.css(\"overflow\",\"scroll\"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?\"\":e.element.css(\"overflow-x\"),s=e.isWindow||e.isDocument?\"\":e.element.css(\"overflow-y\"),n=\"scroll\"===i||\"auto\"===i&&e.width<e.element[0].scrollWidth,o=\"scroll\"===s||\"auto\"===s&&e.height<e.element[0].scrollHeight;return{width:o?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType,o=!s&&!n;return{element:i,isWindow:s,isDocument:n,offset:o?t(e).offset():{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(n){if(!n||!n.of)return d.apply(this,arguments);n=t.extend({},n);var u,p,f,g,m,_,v=t(n.of),b=t.position.getWithinInfo(n.within),y=t.position.getScrollInfo(b),w=(n.collision||\"flip\").split(\" \"),k={};return _=s(v),v[0].preventDefault&&(n.at=\"left top\"),p=_.width,f=_.height,g=_.offset,m=t.extend({},g),t.each([\"my\",\"at\"],function(){var t,e,i=(n[this]||\"\").split(\" \");1===i.length&&(i=r.test(i[0])?i.concat([\"center\"]):l.test(i[0])?[\"center\"].concat(i):[\"center\",\"center\"]),i[0]=r.test(i[0])?i[0]:\"center\",i[1]=l.test(i[1])?i[1]:\"center\",t=h.exec(i[0]),e=h.exec(i[1]),k[this]=[t?t[0]:0,e?e[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===w.length&&(w[1]=w[0]),\"right\"===n.at[0]?m.left+=p:\"center\"===n.at[0]&&(m.left+=p/2),\"bottom\"===n.at[1]?m.top+=f:\"center\"===n.at[1]&&(m.top+=f/2),u=e(k.at,p,f),m.left+=u[0],m.top+=u[1],this.each(function(){var s,r,l=t(this),h=l.outerWidth(),c=l.outerHeight(),d=i(this,\"marginLeft\"),_=i(this,\"marginTop\"),x=h+d+i(this,\"marginRight\")+y.width,C=c+_+i(this,\"marginBottom\")+y.height,D=t.extend({},m),T=e(k.my,l.outerWidth(),l.outerHeight());\"right\"===n.my[0]?D.left-=h:\"center\"===n.my[0]&&(D.left-=h/2),\"bottom\"===n.my[1]?D.top-=c:\"center\"===n.my[1]&&(D.top-=c/2),D.left+=T[0],D.top+=T[1],s={marginLeft:d,marginTop:_},t.each([\"left\",\"top\"],function(e,i){t.ui.position[w[e]]&&t.ui.position[w[e]][i](D,{targetWidth:p,targetHeight:f,elemWidth:h,elemHeight:c,collisionPosition:s,collisionWidth:x,collisionHeight:C,offset:[u[0]+T[0],u[1]+T[1]],my:n.my,at:n.at,within:b,elem:l})}),n.using&&(r=function(t){var e=g.left-D.left,i=e+p-h,s=g.top-D.top,r=s+f-c,u={target:{element:v,left:g.left,top:g.top,width:p,height:f},element:{element:l,left:D.left,top:D.top,width:h,height:c},horizontal:0>i?\"left\":e>0?\"right\":\"center\",vertical:0>r?\"top\":s>0?\"bottom\":\"middle\"};h>p&&p>a(e+i)&&(u.horizontal=\"center\"),c>f&&f>a(s+r)&&(u.vertical=\"middle\"),u.important=o(a(e),a(i))>o(a(s),a(r))?\"horizontal\":\"vertical\",n.using.call(this,t,u)}),l.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,l=n-r,h=r+e.collisionWidth-a-n;e.collisionWidth>a?l>0&&0>=h?(i=t.left+l+e.collisionWidth-a-n,t.left+=l-i):t.left=h>0&&0>=l?n:l>h?n+a-e.collisionWidth:n:l>0?t.left+=l:h>0?t.left-=h:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,l=n-r,h=r+e.collisionHeight-a-n;e.collisionHeight>a?l>0&&0>=h?(i=t.top+l+e.collisionHeight-a-n,t.top+=l-i):t.top=h>0&&0>=l?n:l>h?n+a-e.collisionHeight:n:l>0?t.top+=l:h>0?t.top-=h:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,l=n.isWindow?n.scrollLeft:n.offset.left,h=t.left-e.collisionPosition.marginLeft,c=h-l,u=h+e.collisionWidth-r-l,d=\"left\"===e.my[0]?-e.elemWidth:\"right\"===e.my[0]?e.elemWidth:0,p=\"left\"===e.at[0]?e.targetWidth:\"right\"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-l,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,l=n.isWindow?n.scrollTop:n.offset.top,h=t.top-e.collisionPosition.marginTop,c=h-l,u=h+e.collisionHeight-r-l,d=\"top\"===e.my[1],p=d?-e.elemHeight:\"bottom\"===e.my[1]?e.elemHeight:0,f=\"top\"===e.at[1]?e.targetHeight:\"bottom\"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-l,(i>0||u>a(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[\":\"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t=\"onselectstart\"in document.createElement(\"div\")?\"selectstart\":\"mousedown\";return function(){return this.on(t+\".ui-disableSelection\",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(\".ui-disableSelection\")}}),t.fn.scrollParent=function(e){var i=this.css(\"position\"),s=\"absolute\"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&\"static\"===e.css(\"position\")?!1:n.test(e.css(\"overflow\")+e.css(\"overflow-y\")+e.css(\"overflow-x\"))}).eq(0);return\"fixed\"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.ui.ie=!!/msie [\\w.]+/.exec(navigator.userAgent.toLowerCase());var s=!1;t(document).on(\"mouseup\",function(){s=!1}),t.widget(\"ui.mouse\",{version:\"1.12.1\",options:{cancel:\"input, textarea, button, select, option\",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on(\"mousedown.\"+this.widgetName,function(t){return e._mouseDown(t)}).on(\"click.\"+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+\".preventClickEvent\")?(t.removeData(i.target,e.widgetName+\".preventClickEvent\"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off(\".\"+this.widgetName),this._mouseMoveDelegate&&this.document.off(\"mousemove.\"+this.widgetName,this._mouseMoveDelegate).off(\"mouseup.\"+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!s){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,n=1===e.which,o=\"string\"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return n&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+\".preventClickEvent\")&&t.removeData(e.target,this.widgetName+\".preventClickEvent\"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on(\"mousemove.\"+this.widgetName,this._mouseMoveDelegate).on(\"mouseup.\"+this.widgetName,this._mouseUpDelegate),e.preventDefault(),s=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off(\"mousemove.\"+this.widgetName,this._mouseMoveDelegate).off(\"mouseup.\"+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+\".preventClickEvent\",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,s=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.ui.safeBlur=function(e){e&&\"body\"!==e.nodeName.toLowerCase()&&t(e).trigger(\"blur\")},t.widget(\"ui.draggable\",t.ui.mouse,{version:\"1.12.1\",widgetEventPrefix:\"drag\",options:{addClasses:!0,appendTo:\"parent\",axis:!1,connectToSortable:!1,containment:!1,cursor:\"auto\",cursorAt:!1,grid:!1,handle:!1,helper:\"original\",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:\"default\",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:\"both\",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){\"original\"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this._addClass(\"ui-draggable\"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),\"handle\"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(\".ui-draggable-dragging\")?(this.destroyOnClear=!0,void 0):(this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(e){var i=this.options;return this.helper||i.disabled||t(e.target).closest(\".ui-resizable-handle\").length>0?!1:(this.handle=this._getHandle(e),this.handle?(this._blurActiveElement(e),this._blockFrames(i.iframeFix===!0?\"iframe\":i.iframeFix),!0):!1)},_blockFrames:function(e){this.iframeBlocks=this.document.find(e).map(function(){var e=t(this);return t(\"<div>\").css(\"position\",\"absolute\").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var i=t.ui.safeActiveElement(this.document[0]),s=t(e.target);s.closest(i).length||t.ui.safeBlur(i)},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this._addClass(this.helper,\"ui-draggable-dragging\"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css(\"position\"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return\"fixed\"===t(this).css(\"position\")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(e),this.originalPosition=this.position=this._generatePosition(e,!1),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger(\"start\",e)===!1?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(e,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e,!0),this.positionAbs=this._convertPositionTo(\"absolute\"),!i){var s=this._uiHash();if(this._trigger(\"drag\",e,s)===!1)return this._mouseUp(new t.Event(\"mouseup\",e)),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+\"px\",this.helper[0].style.top=this.position.top+\"px\",t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i=this,s=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(s=t.ui.ddmanager.drop(this,e)),this.dropped&&(s=this.dropped,this.dropped=!1),\"invalid\"===this.options.revert&&!s||\"valid\"===this.options.revert&&s||this.options.revert===!0||t.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger(\"stop\",e)!==!1&&i._clear()}):this._trigger(\"stop\",e)!==!1&&this._clear(),!1},_mouseUp:function(e){return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),this.handleElement.is(e.target)&&this.element.trigger(\"focus\"),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(\".ui-draggable-dragging\")?this._mouseUp(new t.Event(\"mouseup\",{target:this.element[0]})):this._clear(),this},_getHandle:function(e){return this.options.handle?!!t(e.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,\"ui-draggable-handle\")},_removeHandleClassName:function(){this._removeClass(this.handleElement,\"ui-draggable-handle\")},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper),n=s?t(i.helper.apply(this.element[0],[e])):\"clone\"===i.helper?this.element.clone().removeAttr(\"id\"):this.element;return n.parents(\"body\").length||n.appendTo(\"parent\"===i.appendTo?this.element[0].parentNode:i.appendTo),s&&n[0]===this.element[0]&&this._setPositionRelative(),n[0]===this.element[0]||/(fixed|absolute)/.test(n.css(\"position\"))||n.css(\"position\",\"absolute\"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css(\"position\"))||(this.element[0].style.position=\"relative\")},_adjustOffsetFromHelper:function(e){\"string\"==typeof e&&(e=e.split(\" \")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),\"left\"in e&&(this.offset.click.left=e.left+this.margins.left),\"right\"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),\"top\"in e&&(this.offset.click.top=e.top+this.margins.top),\"bottom\"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var e=this.offsetParent.offset(),i=this.document[0];return\"absolute\"===this.cssPosition&&this.scrollParent[0]!==i&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css(\"borderTopWidth\"),10)||0),left:e.left+(parseInt(this.offsetParent.css(\"borderLeftWidth\"),10)||0)}},_getRelativeOffset:function(){if(\"relative\"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css(\"top\"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css(\"left\"),10)||0)+(e?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css(\"marginLeft\"),10)||0,top:parseInt(this.element.css(\"marginTop\"),10)||0,right:parseInt(this.element.css(\"marginRight\"),10)||0,bottom:parseInt(this.element.css(\"marginBottom\"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options,o=this.document[0];return this.relativeContainer=null,n.containment?\"window\"===n.containment?(this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):\"document\"===n.containment?(this.containment=[0,0,t(o).width()-this.helperProportions.width-this.margins.left,(t(o).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):n.containment.constructor===Array?(this.containment=n.containment,void 0):(\"parent\"===n.containment&&(n.containment=this.helper[0].parentNode),i=t(n.containment),s=i[0],s&&(e=/(scroll|auto)/.test(i.css(\"overflow\")),this.containment=[(parseInt(i.css(\"borderLeftWidth\"),10)||0)+(parseInt(i.css(\"paddingLeft\"),10)||0),(parseInt(i.css(\"borderTopWidth\"),10)||0)+(parseInt(i.css(\"paddingTop\"),10)||0),(e?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css(\"borderRightWidth\"),10)||0)-(parseInt(i.css(\"paddingRight\"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css(\"borderBottomWidth\"),10)||0)-(parseInt(i.css(\"paddingBottom\"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i),void 0):(this.containment=null,void 0)},_convertPositionTo:function(t,e){e||(e=this.position);var i=\"absolute\"===t?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-(\"fixed\"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-(\"fixed\"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(t,e){var i,s,n,o,a=this.options,r=this._isRootNode(this.scrollParent[0]),l=t.pageX,h=t.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(this.relativeContainer?(s=this.relativeContainer.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,t.pageX-this.offset.click.left<i[0]&&(l=i[0]+this.offset.click.left),t.pageY-this.offset.click.top<i[1]&&(h=i[1]+this.offset.click.top),t.pageX-this.offset.click.left>i[2]&&(l=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(h=i[3]+this.offset.click.top)),a.grid&&(n=a.grid[1]?this.originalPageY+Math.round((h-this.originalPageY)/a.grid[1])*a.grid[1]:this.originalPageY,h=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-a.grid[1]:n+a.grid[1]:n,o=a.grid[0]?this.originalPageX+Math.round((l-this.originalPageX)/a.grid[0])*a.grid[0]:this.originalPageX,l=i?o-this.offset.click.left>=i[0]||o-this.offset.click.left>i[2]?o:o-this.offset.click.left>=i[0]?o-a.grid[0]:o+a.grid[0]:o),\"y\"===a.axis&&(l=this.originalPageX),\"x\"===a.axis&&(h=this.originalPageY)),{top:h-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(\"fixed\"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:l-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(\"fixed\"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,\"ui-draggable-dragging\"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(e,i,s){return s=s||this._uiHash(),t.ui.plugin.call(this,e,[i,s,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo(\"absolute\"),s.offset=this.positionAbs),t.Widget.prototype._trigger.call(this,e,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add(\"draggable\",\"connectToSortable\",{start:function(e,i,s){var n=t.extend({},i,{item:s.element});s.sortables=[],t(s.options.connectToSortable).each(function(){var i=t(this).sortable(\"instance\");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger(\"activate\",e,n))})},stop:function(e,i,s){var n=t.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,t.each(s.sortables,function(){var t=this;t.isOver?(t.isOver=0,s.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css(\"position\"),top:t.placeholder.css(\"top\"),left:t.placeholder.css(\"left\")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger(\"deactivate\",e,n))})},drag:function(e,i,s){t.each(s.sortables,function(){var n=!1,o=this;o.positionAbs=s.positionAbs,o.helperProportions=s.helperProportions,o.offset.click=s.offset.click,o._intersectsWith(o.containerCache)&&(n=!0,t.each(s.sortables,function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==o&&this._intersectsWith(this.containerCache)&&t.contains(o.element[0],this.element[0])&&(n=!1),n})),n?(o.isOver||(o.isOver=1,s._parent=i.helper.parent(),o.currentItem=i.helper.appendTo(o.element).data(\"ui-sortable-item\",!0),o.options._helper=o.options.helper,o.options.helper=function(){return i.helper[0]},e.target=o.currentItem[0],o._mouseCapture(e,!0),o._mouseStart(e,!0,!0),o.offset.click.top=s.offset.click.top,o.offset.click.left=s.offset.click.left,o.offset.parent.left-=s.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=s.offset.parent.top-o.offset.parent.top,s._trigger(\"toSortable\",e),s.dropped=o.element,t.each(s.sortables,function(){this.refreshPositions()}),s.currentItem=s.element,o.fromOutside=s),o.currentItem&&(o._mouseDrag(e),i.position=o.position)):o.isOver&&(o.isOver=0,o.cancelHelperRemoval=!0,o.options._revert=o.options.revert,o.options.revert=!1,o._trigger(\"out\",e,o._uiHash(o)),o._mouseStop(e,!0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(e),i.position=s._generatePosition(e,!0),s._trigger(\"fromSortable\",e),s.dropped=!1,t.each(s.sortables,function(){this.refreshPositions()}))})}}),t.ui.plugin.add(\"draggable\",\"cursor\",{start:function(e,i,s){var n=t(\"body\"),o=s.options;n.css(\"cursor\")&&(o._cursor=n.css(\"cursor\")),n.css(\"cursor\",o.cursor)},stop:function(e,i,s){var n=s.options;n._cursor&&t(\"body\").css(\"cursor\",n._cursor)\n}}),t.ui.plugin.add(\"draggable\",\"opacity\",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css(\"opacity\")&&(o._opacity=n.css(\"opacity\")),n.css(\"opacity\",o.opacity)},stop:function(e,i,s){var n=s.options;n._opacity&&t(i.helper).css(\"opacity\",n._opacity)}}),t.ui.plugin.add(\"draggable\",\"scroll\",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&\"HTML\"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(e,i,s){var n=s.options,o=!1,a=s.scrollParentNotHidden[0],r=s.document[0];a!==r&&\"HTML\"!==a.tagName?(n.axis&&\"x\"===n.axis||(s.overflowOffset.top+a.offsetHeight-e.pageY<n.scrollSensitivity?a.scrollTop=o=a.scrollTop+n.scrollSpeed:e.pageY-s.overflowOffset.top<n.scrollSensitivity&&(a.scrollTop=o=a.scrollTop-n.scrollSpeed)),n.axis&&\"y\"===n.axis||(s.overflowOffset.left+a.offsetWidth-e.pageX<n.scrollSensitivity?a.scrollLeft=o=a.scrollLeft+n.scrollSpeed:e.pageX-s.overflowOffset.left<n.scrollSensitivity&&(a.scrollLeft=o=a.scrollLeft-n.scrollSpeed))):(n.axis&&\"x\"===n.axis||(e.pageY-t(r).scrollTop()<n.scrollSensitivity?o=t(r).scrollTop(t(r).scrollTop()-n.scrollSpeed):t(window).height()-(e.pageY-t(r).scrollTop())<n.scrollSensitivity&&(o=t(r).scrollTop(t(r).scrollTop()+n.scrollSpeed))),n.axis&&\"y\"===n.axis||(e.pageX-t(r).scrollLeft()<n.scrollSensitivity?o=t(r).scrollLeft(t(r).scrollLeft()-n.scrollSpeed):t(window).width()-(e.pageX-t(r).scrollLeft())<n.scrollSensitivity&&(o=t(r).scrollLeft(t(r).scrollLeft()+n.scrollSpeed)))),o!==!1&&t.ui.ddmanager&&!n.dropBehaviour&&t.ui.ddmanager.prepareOffsets(s,e)}}),t.ui.plugin.add(\"draggable\",\"snap\",{start:function(e,i,s){var n=s.options;s.snapElements=[],t(n.snap.constructor!==String?n.snap.items||\":data(ui-draggable)\":n.snap).each(function(){var e=t(this),i=e.offset();this!==s.element[0]&&s.snapElements.push({item:this,width:e.outerWidth(),height:e.outerHeight(),top:i.top,left:i.left})})},drag:function(e,i,s){var n,o,a,r,l,h,c,u,d,p,f=s.options,g=f.snapTolerance,m=i.offset.left,_=m+s.helperProportions.width,v=i.offset.top,b=v+s.helperProportions.height;for(d=s.snapElements.length-1;d>=0;d--)l=s.snapElements[d].left-s.margins.left,h=l+s.snapElements[d].width,c=s.snapElements[d].top-s.margins.top,u=c+s.snapElements[d].height,l-g>_||m>h+g||c-g>b||v>u+g||!t.contains(s.snapElements[d].item.ownerDocument,s.snapElements[d].item)?(s.snapElements[d].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=!1):(\"inner\"!==f.snapMode&&(n=g>=Math.abs(c-b),o=g>=Math.abs(u-v),a=g>=Math.abs(l-_),r=g>=Math.abs(h-m),n&&(i.position.top=s._convertPositionTo(\"relative\",{top:c-s.helperProportions.height,left:0}).top),o&&(i.position.top=s._convertPositionTo(\"relative\",{top:u,left:0}).top),a&&(i.position.left=s._convertPositionTo(\"relative\",{top:0,left:l-s.helperProportions.width}).left),r&&(i.position.left=s._convertPositionTo(\"relative\",{top:0,left:h}).left)),p=n||o||a||r,\"outer\"!==f.snapMode&&(n=g>=Math.abs(c-v),o=g>=Math.abs(u-b),a=g>=Math.abs(l-m),r=g>=Math.abs(h-_),n&&(i.position.top=s._convertPositionTo(\"relative\",{top:c,left:0}).top),o&&(i.position.top=s._convertPositionTo(\"relative\",{top:u-s.helperProportions.height,left:0}).top),a&&(i.position.left=s._convertPositionTo(\"relative\",{top:0,left:l}).left),r&&(i.position.left=s._convertPositionTo(\"relative\",{top:0,left:h-s.helperProportions.width}).left)),!s.snapElements[d].snapping&&(n||o||a||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=n||o||a||r||p)}}),t.ui.plugin.add(\"draggable\",\"stack\",{start:function(e,i,s){var n,o=s.options,a=t.makeArray(t(o.stack)).sort(function(e,i){return(parseInt(t(e).css(\"zIndex\"),10)||0)-(parseInt(t(i).css(\"zIndex\"),10)||0)});a.length&&(n=parseInt(t(a[0]).css(\"zIndex\"),10)||0,t(a).each(function(e){t(this).css(\"zIndex\",n+e)}),this.css(\"zIndex\",n+a.length))}}),t.ui.plugin.add(\"draggable\",\"zIndex\",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css(\"zIndex\")&&(o._zIndex=n.css(\"zIndex\")),n.css(\"zIndex\",o.zIndex)},stop:function(e,i,s){var n=s.options;n._zIndex&&t(i.helper).css(\"zIndex\",n._zIndex)}}),t.ui.draggable,t.widget(\"ui.resizable\",t.ui.mouse,{version:\"1.12.1\",widgetEventPrefix:\"resize\",options:{alsoResize:!1,animate:!1,animateDuration:\"slow\",animateEasing:\"swing\",aspectRatio:!1,autoHide:!1,classes:{\"ui-resizable-se\":\"ui-icon ui-icon-gripsmall-diagonal-se\"},containment:!1,ghost:!1,grid:!1,handles:\"e,s,se\",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if(\"hidden\"===t(e).css(\"overflow\"))return!1;var s=i&&\"left\"===i?\"scrollLeft\":\"scrollTop\",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass(\"ui-resizable\"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||\"ui-resizable-helper\":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t(\"<div class='ui-wrapper' style='overflow: hidden;'></div>\").css({position:this.element.css(\"position\"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css(\"top\"),left:this.element.css(\"left\")})),this.element=this.element.parent().data(\"ui-resizable\",this.element.resizable(\"instance\")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css(\"marginTop\"),marginRight:this.originalElement.css(\"marginRight\"),marginBottom:this.originalElement.css(\"marginBottom\"),marginLeft:this.originalElement.css(\"marginLeft\")},this.element.css(e),this.originalElement.css(\"margin\",0),this.originalResizeStyle=this.originalElement.css(\"resize\"),this.originalElement.css(\"resize\",\"none\"),this._proportionallyResizeElements.push(this.originalElement.css({position:\"static\",zoom:1,display:\"block\"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on(\"mouseenter\",function(){i.disabled||(s._removeClass(\"ui-resizable-autohide\"),s._handles.show())}).on(\"mouseleave\",function(){i.disabled||s.resizing||(s._addClass(\"ui-resizable-autohide\"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData(\"resizable\").removeData(\"ui-resizable\").off(\".resizable\").find(\".ui-resizable-handle\").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css(\"position\"),width:e.outerWidth(),height:e.outerHeight(),top:e.css(\"top\"),left:e.css(\"left\")}).insertAfter(e),e.remove()),this.originalElement.css(\"resize\",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case\"handles\":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(\".ui-resizable-handle\",this.element).length?{n:\".ui-resizable-n\",e:\".ui-resizable-e\",s:\".ui-resizable-s\",w:\".ui-resizable-w\",se:\".ui-resizable-se\",sw:\".ui-resizable-sw\",ne:\".ui-resizable-ne\",nw:\".ui-resizable-nw\"}:\"e,s,se\"),this._handles=t(),this.handles.constructor===String)for(\"all\"===this.handles&&(this.handles=\"n,e,s,w,se,sw,ne,nw\"),s=this.handles.split(\",\"),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n=\"ui-resizable-\"+e,o=t(\"<div>\"),this._addClass(o,\"ui-resizable-handle \"+n),o.css({zIndex:a.zIndex}),this.handles[e]=\".ui-resizable-\"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=[\"padding\",/ne|nw|n/.test(i)?\"Top\":/se|sw|s/.test(i)?\"Bottom\":/^e$/.test(i)?\"Right\":\"Left\"].join(\"\"),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(\".ui-resizable-handle\")),this._handles.disableSelection(),this._handles.on(\"mouseover\",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:\"se\")}),a.autoHide&&(this._handles.hide(),this._addClass(\"ui-resizable-autohide\"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css(\"left\")),s=this._num(this.helper.css(\"top\")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio=\"number\"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(\".ui-resizable-\"+this.axis).css(\"cursor\"),t(\"body\").css(\"cursor\",\"auto\"===n?this.axis+\"-resize\":n),this._addClass(\"ui-resizable-resizing\"),this._propagate(\"start\",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,l=this._change[o];return this._updatePrevProperties(),l?(i=l.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate(\"resize\",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger(\"resize\",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,l,h=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],\"left\")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css(\"left\"))+(c.position.left-c.originalPosition.left)||null,l=parseFloat(c.element.css(\"top\"))+(c.position.top-c.originalPosition.top)||null,h.animate||this.element.css(t.extend(a,{top:l,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!h.animate&&this._proportionallyResize()),t(\"body\").css(\"cursor\",\"auto\"),this._removeClass(\"ui-resizable-resizing\"),this._propagate(\"stop\",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+\"px\"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+\"px\"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+\"px\"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+\"px\"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),\"sw\"===s&&(t.left=e.left+(i.width-t.width),t.top=null),\"nw\"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,l=this.originalPosition.top+this.originalSize.height,h=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&h&&(t.left=r-e.minWidth),s&&h&&(t.left=r-e.maxWidth),a&&c&&(t.top=l-e.minHeight),n&&c&&(t.top=l-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css(\"borderTopWidth\"),t.css(\"borderRightWidth\"),t.css(\"borderBottomWidth\"),t.css(\"borderLeftWidth\")],n=[t.css(\"paddingTop\"),t.css(\"paddingRight\"),t.css(\"paddingBottom\"),t.css(\"paddingLeft\")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t(\"<div style='overflow:hidden;'></div>\"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:\"absolute\",left:this.elementOffset.left+\"px\",top:this.elementOffset.top+\"px\",zIndex:++i.zIndex}),this.helper.appendTo(\"body\").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),\"resize\"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add(\"resizable\",\"animate\",{stop:function(e){var i=t(this).resizable(\"instance\"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],\"left\")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,l={width:i.size.width-r,height:i.size.height-a},h=parseFloat(i.element.css(\"left\"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css(\"top\"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(l,c&&h?{top:c,left:h}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css(\"width\")),height:parseFloat(i.element.css(\"height\")),top:parseFloat(i.element.css(\"top\")),left:parseFloat(i.element.css(\"left\"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate(\"resize\",e)}})}}),t.ui.plugin.add(\"resizable\",\"containment\",{start:function(){var e,i,s,n,o,a,r,l=t(this).resizable(\"instance\"),h=l.options,c=l.element,u=h.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(l.containerElement=t(d),/document/.test(u)||u===document?(l.containerOffset={left:0,top:0},l.containerPosition={left:0,top:0},l.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t([\"Top\",\"Right\",\"Left\",\"Bottom\"]).each(function(t,s){i[t]=l._num(e.css(\"padding\"+s))}),l.containerOffset=e.offset(),l.containerPosition=e.position(),l.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=l.containerOffset,n=l.containerSize.height,o=l.containerSize.width,a=l._hasScroll(d,\"left\")?d.scrollWidth:o,r=l._hasScroll(d)?d.scrollHeight:n,l.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable(\"instance\"),r=a.options,l=a.containerOffset,h=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css(\"position\"))&&(u=l),h.left<(a._helper?l.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-l.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?l.left:0),h.top<(a._helper?l.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-l.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?l.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css(\"position\")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-l.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-l.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable(\"instance\"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),l=a.outerWidth()-e.sizeDiff.width,h=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css(\"position\"))&&t(this).css({left:r.left-n.left-s.left,width:l,height:h}),e._helper&&!i.animate&&/static/.test(o.css(\"position\"))&&t(this).css({left:r.left-n.left-s.left,width:l,height:h})}}),t.ui.plugin.add(\"resizable\",\"alsoResize\",{start:function(){var e=t(this).resizable(\"instance\"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data(\"ui-resizable-alsoresize\",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css(\"left\")),top:parseFloat(e.css(\"top\"))})})},resize:function(e,i){var s=t(this).resizable(\"instance\"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data(\"ui-resizable-alsoresize\"),n={},o=e.parents(i.originalElement[0]).length?[\"width\",\"height\"]:[\"width\",\"height\",\"top\",\"left\"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData(\"ui-resizable-alsoresize\")}}),t.ui.plugin.add(\"resizable\",\"ghost\",{start:function(){var e=t(this).resizable(\"instance\"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:\"block\",position:\"relative\",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,\"ui-resizable-ghost\"),t.uiBackCompat!==!1&&\"string\"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable(\"instance\");e.ghost&&e.ghost.css({position:\"relative\",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable(\"instance\");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add(\"resizable\",\"grid\",{resize:function(){var e,i=t(this).resizable(\"instance\"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,l=\"number\"==typeof s.grid?[s.grid,s.grid]:s.grid,h=l[0]||1,c=l[1]||1,u=Math.round((n.width-o.width)/h)*h,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,g=s.maxWidth&&p>s.maxWidth,m=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=l,_&&(p+=h),v&&(f+=c),g&&(p-=h),m&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-h)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-h>0?(i.size.width=p,i.position.left=a.left-u):(p=h-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable,t.widget(\"ui.sortable\",t.ui.mouse,{version:\"1.12.1\",widgetEventPrefix:\"sort\",ready:!1,options:{appendTo:\"parent\",axis:!1,connectWith:!1,containment:!1,cursor:\"auto\",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:\"original\",items:\"> *\",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:\"default\",tolerance:\"intersect\",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(t,e,i){return t>=e&&e+i>t},_isFloating:function(t){return/left|right/.test(t.css(\"float\"))||/inline|table-cell/.test(t.css(\"display\"))},_create:function(){this.containerCache={},this._addClass(\"ui-sortable\"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(t,e){this._super(t,e),\"handle\"===t&&this._setHandleClassName()},_setHandleClassName:function(){var e=this;this._removeClass(this.element.find(\".ui-sortable-handle\"),\"ui-sortable-handle\"),t.each(this.items,function(){e._addClass(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item,\"ui-sortable-handle\")})},_destroy:function(){this._mouseDestroy();for(var t=this.items.length-1;t>=0;t--)this.items[t].item.removeData(this.widgetName+\"-item\");return this},_mouseCapture:function(e,i){var s=null,n=!1,o=this;return this.reverting?!1:this.options.disabled||\"static\"===this.options.type?!1:(this._refreshItems(e),t(e.target).parents().each(function(){return t.data(this,o.widgetName+\"-item\")===o?(s=t(this),!1):void 0}),t.data(e.target,o.widgetName+\"-item\")===o&&(s=t(e.target)),s?!this.options.handle||i||(t(this.options.handle,s).find(\"*\").addBack().each(function(){this===e.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(e,i,s){var n,o,a=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(e),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css(\"position\",\"absolute\"),this.cssPosition=this.helper.css(\"position\"),this.originalPosition=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,a.cursorAt&&this._adjustOffsetFromHelper(a.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),a.containment&&this._setContainment(),a.cursor&&\"auto\"!==a.cursor&&(o=this.document.find(\"body\"),this.storedCursor=o.css(\"cursor\"),o.css(\"cursor\",a.cursor),this.storedStylesheet=t(\"<style>*{ cursor: \"+a.cursor+\" !important; }</style>\").appendTo(o)),a.opacity&&(this.helper.css(\"opacity\")&&(this._storedOpacity=this.helper.css(\"opacity\")),this.helper.css(\"opacity\",a.opacity)),a.zIndex&&(this.helper.css(\"zIndex\")&&(this._storedZIndex=this.helper.css(\"zIndex\")),this.helper.css(\"zIndex\",a.zIndex)),this.scrollParent[0]!==this.document[0]&&\"HTML\"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger(\"start\",e,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger(\"activate\",e,this._uiHash(this));return t.ui.ddmanager&&(t.ui.ddmanager.current=this),t.ui.ddmanager&&!a.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this.dragging=!0,this._addClass(this.helper,\"ui-sortable-helper\"),this._mouseDrag(e),!0},_mouseDrag:function(e){var i,s,n,o,a=this.options,r=!1;for(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo(\"absolute\"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&\"HTML\"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageY<a.scrollSensitivity?this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop+a.scrollSpeed:e.pageY-this.overflowOffset.top<a.scrollSensitivity&&(this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop-a.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-e.pageX<a.scrollSensitivity?this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft+a.scrollSpeed:e.pageX-this.overflowOffset.left<a.scrollSensitivity&&(this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft-a.scrollSpeed)):(e.pageY-this.document.scrollTop()<a.scrollSensitivity?r=this.document.scrollTop(this.document.scrollTop()-a.scrollSpeed):this.window.height()-(e.pageY-this.document.scrollTop())<a.scrollSensitivity&&(r=this.document.scrollTop(this.document.scrollTop()+a.scrollSpeed)),e.pageX-this.document.scrollLeft()<a.scrollSensitivity?r=this.document.scrollLeft(this.document.scrollLeft()-a.scrollSpeed):this.window.width()-(e.pageX-this.document.scrollLeft())<a.scrollSensitivity&&(r=this.document.scrollLeft(this.document.scrollLeft()+a.scrollSpeed))),r!==!1&&t.ui.ddmanager&&!a.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e)),this.positionAbs=this._convertPositionTo(\"absolute\"),this.options.axis&&\"y\"===this.options.axis||(this.helper[0].style.left=this.position.left+\"px\"),this.options.axis&&\"x\"===this.options.axis||(this.helper[0].style.top=this.position.top+\"px\"),i=this.items.length-1;i>=0;i--)if(s=this.items[i],n=s.item[0],o=this._intersectsWithPointer(s),o&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===o?\"next\":\"prev\"]()[0]!==n&&!t.contains(this.placeholder[0],n)&&(\"semi-dynamic\"===this.options.type?!t.contains(this.element[0],n):!0)){if(this.direction=1===o?\"down\":\"up\",\"pointer\"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(e,s),this._trigger(\"change\",e,this._uiHash());break}return this._contactContainers(e),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),this._trigger(\"sort\",e,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(e,i){if(e){if(t.ui.ddmanager&&!this.options.dropBehaviour&&t.ui.ddmanager.drop(this,e),this.options.revert){var s=this,n=this.placeholder.offset(),o=this.options.axis,a={};o&&\"x\"!==o||(a.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),o&&\"y\"!==o||(a.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,t(this.helper).animate(a,parseInt(this.options.revert,10)||500,function(){s._clear(e)})}else this._clear(e,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp(new t.Event(\"mouseup\",{target:null})),\"original\"===this.options.helper?(this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,\"ui-sortable-helper\")):this.currentItem.show();for(var e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger(\"deactivate\",null,this._uiHash(this)),this.containers[e].containerCache.over&&(this.containers[e]._trigger(\"out\",null,this._uiHash(this)),this.containers[e].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),\"original\"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),t.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?t(this.domPosition.prev).after(this.currentItem):t(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},t(i).each(function(){var i=(t(e.item||this).attr(e.attribute||\"id\")||\"\").match(e.expression||/(.+)[\\-=_](.+)/);i&&s.push((e.key||i[1]+\"[]\")+\"=\"+(e.key&&e.expression?i[1]:i[2]))}),!s.length&&e.key&&s.push(e.key+\"=\"),s.join(\"&\")},toArray:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},i.each(function(){s.push(t(e.item||this).attr(e.attribute||\"id\")||\"\")}),s},_intersectsWith:function(t){var e=this.positionAbs.left,i=e+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,o=t.left,a=o+t.width,r=t.top,l=r+t.height,h=this.offset.click.top,c=this.offset.click.left,u=\"x\"===this.options.axis||s+h>r&&l>s+h,d=\"y\"===this.options.axis||e+c>o&&a>e+c,p=u&&d;return\"pointer\"===this.options.tolerance||this.options.forcePointerForContainers||\"pointer\"!==this.options.tolerance&&this.helperProportions[this.floating?\"width\":\"height\"]>t[this.floating?\"width\":\"height\"]?p:e+this.helperProportions.width/2>o&&a>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&l>n-this.helperProportions.height/2},_intersectsWithPointer:function(t){var e,i,s=\"x\"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top,t.height),n=\"y\"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left,t.width),o=s&&n;return o?(e=this._getDragVerticalDirection(),i=this._getDragHorizontalDirection(),this.floating?\"right\"===i||\"down\"===e?2:1:e&&(\"down\"===e?2:1)):!1},_intersectsWithSides:function(t){var e=this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),s=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();\nreturn this.floating&&n?\"right\"===n&&i||\"left\"===n&&!i:s&&(\"down\"===s&&e||\"up\"===s&&!e)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!==t&&(t>0?\"down\":\"up\")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!==t&&(t>0?\"right\":\"left\")},refresh:function(t){return this._refreshItems(t),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(e){function i(){r.push(this)}var s,n,o,a,r=[],l=[],h=this._connectWith();if(h&&e)for(s=h.length-1;s>=0;s--)for(o=t(h[s],this.document[0]),n=o.length-1;n>=0;n--)a=t.data(o[n],this.widgetFullName),a&&a!==this&&!a.options.disabled&&l.push([t.isFunction(a.options.items)?a.options.items.call(a.element):t(a.options.items,a.element).not(\".ui-sortable-helper\").not(\".ui-sortable-placeholder\"),a]);for(l.push([t.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):t(this.options.items,this.element).not(\".ui-sortable-helper\").not(\".ui-sortable-placeholder\"),this]),s=l.length-1;s>=0;s--)l[s][0].each(i);return t(r)},_removeCurrentsFromItems:function(){var e=this.currentItem.find(\":data(\"+this.widgetName+\"-item)\");this.items=t.grep(this.items,function(t){for(var i=0;e.length>i;i++)if(e[i]===t.item[0])return!1;return!0})},_refreshItems:function(e){this.items=[],this.containers=[this];var i,s,n,o,a,r,l,h,c=this.items,u=[[t.isFunction(this.options.items)?this.options.items.call(this.element[0],e,{item:this.currentItem}):t(this.options.items,this.element),this]],d=this._connectWith();if(d&&this.ready)for(i=d.length-1;i>=0;i--)for(n=t(d[i],this.document[0]),s=n.length-1;s>=0;s--)o=t.data(n[s],this.widgetFullName),o&&o!==this&&!o.options.disabled&&(u.push([t.isFunction(o.options.items)?o.options.items.call(o.element[0],e,{item:this.currentItem}):t(o.options.items,o.element),o]),this.containers.push(o));for(i=u.length-1;i>=0;i--)for(a=u[i][1],r=u[i][0],s=0,h=r.length;h>s;s++)l=t(r[s]),l.data(this.widgetName+\"-item\",a),c.push({item:l,instance:a,width:0,height:0,left:0,top:0})},refreshPositions:function(e){this.floating=this.items.length?\"x\"===this.options.axis||this._isFloating(this.items[0].item):!1,this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,o;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?t(this.options.toleranceElement,s.item):s.item,e||(s.width=n.outerWidth(),s.height=n.outerHeight()),o=n.offset(),s.left=o.left,s.top=o.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)o=this.containers[i].element.offset(),this.containers[i].containerCache.left=o.left,this.containers[i].containerCache.top=o.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(e){e=e||this;var i,s=e.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=e.currentItem[0].nodeName.toLowerCase(),n=t(\"<\"+s+\">\",e.document[0]);return e._addClass(n,\"ui-sortable-placeholder\",i||e.currentItem[0].className)._removeClass(n,\"ui-sortable-helper\"),\"tbody\"===s?e._createTrPlaceholder(e.currentItem.find(\"tr\").eq(0),t(\"<tr>\",e.document[0]).appendTo(n)):\"tr\"===s?e._createTrPlaceholder(e.currentItem,n):\"img\"===s&&n.attr(\"src\",e.currentItem.attr(\"src\")),i||n.css(\"visibility\",\"hidden\"),n},update:function(t,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css(\"paddingTop\")||0,10)-parseInt(e.currentItem.css(\"paddingBottom\")||0,10)),n.width()||n.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css(\"paddingLeft\")||0,10)-parseInt(e.currentItem.css(\"paddingRight\")||0,10)))}}),e.placeholder=t(s.placeholder.element.call(e.element,e.currentItem)),e.currentItem.after(e.placeholder),s.placeholder.update(e,e.placeholder)},_createTrPlaceholder:function(e,i){var s=this;e.children().each(function(){t(\"<td> </td>\",s.document[0]).attr(\"colspan\",t(this).attr(\"colspan\")||1).appendTo(i)})},_contactContainers:function(e){var i,s,n,o,a,r,l,h,c,u,d=null,p=null;for(i=this.containers.length-1;i>=0;i--)if(!t.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(d&&t.contains(this.containers[i].element[0],d.element[0]))continue;d=this.containers[i],p=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger(\"out\",e,this._uiHash(this)),this.containers[i].containerCache.over=0);if(d)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger(\"over\",e,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(n=1e4,o=null,c=d.floating||this._isFloating(this.currentItem),a=c?\"left\":\"top\",r=c?\"width\":\"height\",u=c?\"pageX\":\"pageY\",s=this.items.length-1;s>=0;s--)t.contains(this.containers[p].element[0],this.items[s].item[0])&&this.items[s].item[0]!==this.currentItem[0]&&(l=this.items[s].item.offset()[a],h=!1,e[u]-l>this.items[s][r]/2&&(h=!0),n>Math.abs(e[u]-l)&&(n=Math.abs(e[u]-l),o=this.items[s],this.direction=h?\"up\":\"down\"));if(!o&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return this.currentContainer.containerCache.over||(this.containers[p]._trigger(\"over\",e,this._uiHash()),this.currentContainer.containerCache.over=1),void 0;o?this._rearrange(e,o,null,!0):this._rearrange(e,null,this.containers[p].element,!0),this._trigger(\"change\",e,this._uiHash()),this.containers[p]._trigger(\"change\",e,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger(\"over\",e,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper)?t(i.helper.apply(this.element[0],[e,this.currentItem])):\"clone\"===i.helper?this.currentItem.clone():this.currentItem;return s.parents(\"body\").length||t(\"parent\"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css(\"position\"),top:this.currentItem.css(\"top\"),left:this.currentItem.css(\"left\")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(e){\"string\"==typeof e&&(e=e.split(\" \")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),\"left\"in e&&(this.offset.click.left=e.left+this.margins.left),\"right\"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),\"top\"in e&&(this.offset.click.top=e.top+this.margins.top),\"bottom\"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return\"absolute\"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&\"html\"===this.offsetParent[0].tagName.toLowerCase()&&t.ui.ie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css(\"borderTopWidth\"),10)||0),left:e.left+(parseInt(this.offsetParent.css(\"borderLeftWidth\"),10)||0)}},_getRelativeOffset:function(){if(\"relative\"===this.cssPosition){var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css(\"top\"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css(\"left\"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css(\"marginLeft\"),10)||0,top:parseInt(this.currentItem.css(\"marginTop\"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options;\"parent\"===n.containment&&(n.containment=this.helper[0].parentNode),(\"document\"===n.containment||\"window\"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,\"document\"===n.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,(\"document\"===n.containment?this.document.height()||document.body.parentNode.scrollHeight:this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(e=t(n.containment)[0],i=t(n.containment).offset(),s=\"hidden\"!==t(e).css(\"overflow\"),this.containment=[i.left+(parseInt(t(e).css(\"borderLeftWidth\"),10)||0)+(parseInt(t(e).css(\"paddingLeft\"),10)||0)-this.margins.left,i.top+(parseInt(t(e).css(\"borderTopWidth\"),10)||0)+(parseInt(t(e).css(\"paddingTop\"),10)||0)-this.margins.top,i.left+(s?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(t(e).css(\"borderLeftWidth\"),10)||0)-(parseInt(t(e).css(\"paddingRight\"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(t(e).css(\"borderTopWidth\"),10)||0)-(parseInt(t(e).css(\"paddingBottom\"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(e,i){i||(i=this.position);var s=\"absolute\"===e?1:-1,n=\"absolute\"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-(\"fixed\"===this.cssPosition?-this.scrollParent.scrollTop():o?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-(\"fixed\"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:n.scrollLeft())*s}},_generatePosition:function(e){var i,s,n=this.options,o=e.pageX,a=e.pageY,r=\"absolute\"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,l=/(html|body)/i.test(r[0].tagName);return\"relative\"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.left<this.containment[0]&&(o=this.containment[0]+this.offset.click.left),e.pageY-this.offset.click.top<this.containment[1]&&(a=this.containment[1]+this.offset.click.top),e.pageX-this.offset.click.left>this.containment[2]&&(o=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3]&&(a=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((a-this.originalPageY)/n.grid[1])*n.grid[1],a=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((o-this.originalPageX)/n.grid[0])*n.grid[0],o=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:a-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(\"fixed\"===this.cssPosition?-this.scrollParent.scrollTop():l?0:r.scrollTop()),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(\"fixed\"===this.cssPosition?-this.scrollParent.scrollLeft():l?0:r.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],\"down\"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(t,e){function i(t,e,i){return function(s){i._trigger(t,s,e._uiHash(e))}}this.reverting=!1;var s,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(s in this._storedCSS)(\"auto\"===this._storedCSS[s]||\"static\"===this._storedCSS[s])&&(this._storedCSS[s]=\"\");this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,\"ui-sortable-helper\")}else this.currentItem.show();for(this.fromOutside&&!e&&n.push(function(t){this._trigger(\"receive\",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(\".ui-sortable-helper\")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||n.push(function(t){this._trigger(\"update\",t,this._uiHash())}),this!==this.currentContainer&&(e||(n.push(function(t){this._trigger(\"remove\",t,this._uiHash())}),n.push(function(t){return function(e){t._trigger(\"receive\",e,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(t){return function(e){t._trigger(\"update\",e,this._uiHash(this))}}.call(this,this.currentContainer)))),s=this.containers.length-1;s>=0;s--)e||n.push(i(\"deactivate\",this,this.containers[s])),this.containers[s].containerCache.over&&(n.push(i(\"out\",this,this.containers[s])),this.containers[s].containerCache.over=0);if(this.storedCursor&&(this.document.find(\"body\").css(\"cursor\",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css(\"opacity\",this._storedOpacity),this._storedZIndex&&this.helper.css(\"zIndex\",\"auto\"===this._storedZIndex?\"\":this._storedZIndex),this.dragging=!1,e||this._trigger(\"beforeStop\",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!e){for(s=0;n.length>s;s++)n[s].call(this,t);this._trigger(\"stop\",t,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){t.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(e){var i=e||this;return{helper:i.helper,placeholder:i.placeholder||t([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:e?e.element:null}}})});","/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */\n!function(e,t){\"use strict\";\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error(\"jQuery requires a window with a document\");return t(e)}:t(e)}(\"undefined\"!=typeof window?window:this,function(C,e){\"use strict\";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return\"function\"==typeof e&&\"number\"!=typeof e.nodeType&&\"function\"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement(\"script\");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+\"\":\"object\"==typeof e||\"function\"==typeof e?n[o.call(e)]||\"object\":typeof e}var f=\"3.6.0\",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&\"length\"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&(\"array\"===n||0===t||\"number\"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for(\"boolean\"==typeof a&&(l=a,a=arguments[s]||{},s++),\"object\"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],\"__proto__\"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:\"jQuery\"+(f+Math.random()).replace(/\\D/g,\"\"),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||\"[object Object]\"!==o.call(e))&&(!(t=r(e))||\"function\"==typeof(n=v.call(t,\"constructor\")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,\"string\"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),\"function\"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"),function(e,t){n[\"[object \"+t+\"]\"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S=\"sizzle\"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),j=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R=\"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",M=\"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",I=\"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\"+M+\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",W=\"\\\\[\"+M+\"*(\"+I+\")(?:\"+M+\"*([*^$|!~]?=)\"+M+\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\"+I+\"))|)\"+M+\"*\\\\]\",F=\":(\"+I+\")(?:\\\\((('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\"+W+\")*)|.*)\\\\)|)\",B=new RegExp(M+\"+\",\"g\"),$=new RegExp(\"^\"+M+\"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\"+M+\"+$\",\"g\"),_=new RegExp(\"^\"+M+\"*,\"+M+\"*\"),z=new RegExp(\"^\"+M+\"*([>+~]|\"+M+\")\"+M+\"*\"),U=new RegExp(M+\"|>\"),X=new RegExp(F),V=new RegExp(\"^\"+I+\"$\"),G={ID:new RegExp(\"^#(\"+I+\")\"),CLASS:new RegExp(\"^\\\\.(\"+I+\")\"),TAG:new RegExp(\"^(\"+I+\"|[*])\"),ATTR:new RegExp(\"^\"+W),PSEUDO:new RegExp(\"^\"+F),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+M+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+M+\"*(?:([+-]|)\"+M+\"*(\\\\d+)|))\"+M+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+R+\")$\",\"i\"),needsContext:new RegExp(\"^\"+M+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+M+\"*((?:-\\\\d)?\\\\d*)\"+M+\"*\\\\)|)(?=[^-]|$)\",\"i\")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\\d$/i,K=/^[^{]+\\{\\s*\\[native \\w/,Z=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,ee=/[+~]/,te=new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\"+M+\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\",\"g\"),ne=function(e,t){var n=\"0x\"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,ie=function(e,t){return t?\"\\0\"===e?\"\\ufffd\":e.slice(0,-1)+\"\\\\\"+e.charCodeAt(e.length-1).toString(16)+\" \":\"\\\\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&\"fieldset\"===e.nodeName.toLowerCase()},{dir:\"parentNode\",next:\"legend\"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],\"string\"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+\" \"]&&(!v||!v.test(t))&&(1!==p||\"object\"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute(\"id\"))?s=s.replace(re,ie):e.setAttribute(\"id\",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?\"#\"+s:\":scope\")+\" \"+xe(l[o]);c=l.join(\",\")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute(\"id\")}}}return g(t.replace($,\"$1\"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+\" \")>b.cacheLength&&delete e[r.shift()],e[t+\" \"]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement(\"fieldset\");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split(\"|\"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return\"input\"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return(\"input\"===t||\"button\"===t)&&e.type===n}}function ge(t){return function(e){return\"form\"in e?e.parentNode&&!1===e.disabled?\"label\"in e?\"label\"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:\"label\"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&\"undefined\"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||\"HTML\")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener(\"unload\",oe,!1):n.attachEvent&&n.attachEvent(\"onunload\",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement(\"div\")),\"undefined\"!=typeof e.querySelectorAll&&!e.querySelectorAll(\":scope fieldset div\").length}),d.attributes=ce(function(e){return e.className=\"i\",!e.getAttribute(\"className\")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment(\"\")),!e.getElementsByTagName(\"*\").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute(\"id\")===t}},b.find.ID=function(e,t){if(\"undefined\"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t=\"undefined\"!=typeof e.getAttributeNode&&e.getAttributeNode(\"id\");return t&&t.value===n}},b.find.ID=function(e,t){if(\"undefined\"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return\"undefined\"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if(\"*\"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if(\"undefined\"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML=\"<a id='\"+S+\"'></a><select id='\"+S+\"-\\r\\\\' msallowcapture=''><option selected=''></option></select>\",e.querySelectorAll(\"[msallowcapture^='']\").length&&v.push(\"[*^$]=\"+M+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\"[selected]\").length||v.push(\"\\\\[\"+M+\"*(?:value|\"+R+\")\"),e.querySelectorAll(\"[id~=\"+S+\"-]\").length||v.push(\"~=\"),(t=C.createElement(\"input\")).setAttribute(\"name\",\"\"),e.appendChild(t),e.querySelectorAll(\"[name='']\").length||v.push(\"\\\\[\"+M+\"*name\"+M+\"*=\"+M+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\":checked\").length||v.push(\":checked\"),e.querySelectorAll(\"a#\"+S+\"+*\").length||v.push(\".#.+[+~]\"),e.querySelectorAll(\"\\\\\\f\"),v.push(\"[\\\\r\\\\n\\\\f]\")}),ce(function(e){e.innerHTML=\"<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>\";var t=C.createElement(\"input\");t.setAttribute(\"type\",\"hidden\"),e.appendChild(t).setAttribute(\"name\",\"D\"),e.querySelectorAll(\"[name=d]\").length&&v.push(\"name\"+M+\"*[*^$|!~]?=\"),2!==e.querySelectorAll(\":enabled\").length&&v.push(\":enabled\",\":disabled\"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(\":disabled\").length&&v.push(\":enabled\",\":disabled\"),e.querySelectorAll(\"*,:x\"),v.push(\",.*:\")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,\"*\"),c.call(e,\"[s!='']:x\"),s.push(\"!=\",F)}),v=v.length&&new RegExp(v.join(\"|\")),s=s.length&&new RegExp(s.join(\"|\")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+\" \"]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&D.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+\"\").replace(re,ie)},se.error=function(e){throw new Error(\"Syntax error, unrecognized expression: \"+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(j),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n=\"\",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if(\"string\"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{\">\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||\"\").replace(te,ne),\"~=\"===e[2]&&(e[3]=\" \"+e[3]+\" \"),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),\"nth\"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*(\"even\"===e[3]||\"odd\"===e[3])),e[5]=+(e[7]+e[8]||\"odd\"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||\"\":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(\")\",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return\"*\"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+\" \"];return t||(t=new RegExp(\"(^|\"+M+\")\"+e+\"(\"+M+\"|$)\"))&&m(e,function(e){return t.test(\"string\"==typeof e.className&&e.className||\"undefined\"!=typeof e.getAttribute&&e.getAttribute(\"class\")||\"\")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?\"!=\"===r:!r||(t+=\"\",\"=\"===r?t===i:\"!=\"===r?t!==i:\"^=\"===r?i&&0===t.indexOf(i):\"*=\"===r?i&&-1<t.indexOf(i):\"$=\"===r?i&&t.slice(-i.length)===i:\"~=\"===r?-1<(\" \"+t.replace(B,\" \")+\" \").indexOf(i):\"|=\"===r&&(t===i||t.slice(0,i.length+1)===i+\"-\"))}},CHILD:function(h,e,t,g,v){var y=\"nth\"!==h.slice(0,3),m=\"last\"!==h.slice(-4),x=\"of-type\"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?\"nextSibling\":\"previousSibling\",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l=\"only\"===h&&!u&&\"nextSibling\"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error(\"unsupported pseudo: \"+e);return a[S]?a(o):1<a.length?(t=[e,e,\"\",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace($,\"$1\"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||\"\")||se.error(\"unsupported lang: \"+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute(\"xml:lang\")||e.getAttribute(\"lang\"))return(t=t.toLowerCase())===n||0===t.indexOf(n+\"-\")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return\"input\"===t&&!!e.checked||\"option\"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return\"input\"===t&&\"button\"===e.type||\"button\"===t},text:function(e){var t;return\"input\"===e.nodeName.toLowerCase()&&\"text\"===e.type&&(null==(t=e.getAttribute(\"type\"))||\"text\"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r=\"\";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&\"parentNode\"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||\"*\",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[\" \"],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:\" \"===e[s-2].type?\"*\":\"\"})).replace($,\"$1\"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+\" \"];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace($,\" \")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+\" \"];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l=\"0\",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG(\"*\",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l=\"function\"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&\"ID\"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=S.split(\"\").sort(j).join(\"\")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement(\"fieldset\"))}),ce(function(e){return e.innerHTML=\"<a href='#'></a>\",\"#\"===e.firstChild.getAttribute(\"href\")})||fe(\"type|href|height|width\",function(e,t,n){if(!n)return e.getAttribute(t,\"type\"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML=\"<input/>\",e.firstChild.setAttribute(\"value\",\"\"),\"\"===e.firstChild.getAttribute(\"value\")})||fe(\"value\",function(e,t,n){if(!n&&\"input\"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute(\"disabled\")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[\":\"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):\"string\"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=\":not(\"+e+\")\"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if(\"string\"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,\"string\"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var D,q=/^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,\"string\"==typeof e){if(!(r=\"<\"===e[0]&&\">\"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a=\"string\"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?\"string\"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,\"parentNode\")},parentsUntil:function(e,t,n){return h(e,\"parentNode\",n)},next:function(e){return O(e,\"nextSibling\")},prev:function(e){return O(e,\"previousSibling\")},nextAll:function(e){return h(e,\"nextSibling\")},prevAll:function(e){return h(e,\"previousSibling\")},nextUntil:function(e,t,n){return h(e,\"nextSibling\",n)},prevUntil:function(e,t,n){return h(e,\"previousSibling\",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,\"template\")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return\"Until\"!==r.slice(-5)&&(t=e),t&&\"string\"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\\x20\\t\\r\\n\\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r=\"string\"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:\"\")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&\"string\"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t=\"\",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=\"\"),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[[\"notify\",\"progress\",S.Callbacks(\"memory\"),S.Callbacks(\"memory\"),2],[\"resolve\",\"done\",S.Callbacks(\"once memory\"),S.Callbacks(\"once memory\"),0,\"resolved\"],[\"reject\",\"fail\",S.Callbacks(\"once memory\"),S.Callbacks(\"once memory\"),1,\"rejected\"]],i=\"pending\",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},\"catch\":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+\"With\"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError(\"Thenable self-resolution\");t=e&&(\"object\"==typeof e||\"function\"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+\"With\"](this===s?void 0:this,arguments),this},s[t[0]+\"With\"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),\"pending\"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn(\"jQuery.Deferred exception: \"+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function B(){E.removeEventListener(\"DOMContentLoaded\",B),C.removeEventListener(\"load\",B),S.ready()}S.fn.ready=function(e){return F.then(e)[\"catch\"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,\"complete\"===E.readyState||\"loading\"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener(\"DOMContentLoaded\",B),C.addEventListener(\"load\",B));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if(\"object\"===w(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,\"ms-\").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if(\"string\"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&\"string\"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r=\"data-\"+t.replace(K,\"-$&\").toLowerCase(),\"string\"==typeof(n=e.getAttribute(r))){try{n=\"true\"===(i=n)||\"false\"!==i&&(\"null\"===i?null:i===+i+\"\"?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,\"hasDataAttrs\"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf(\"data-\")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,\"hasDataAttrs\",!0)}return i}return\"object\"==typeof n?this.each(function(){Q.set(this,n)}):$(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||\"fx\")+\"queue\",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||\"fx\";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);\"inprogress\"===i&&(i=n.shift(),r--),i&&(\"fx\"===t&&n.unshift(\"inprogress\"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+\"queueHooks\";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks(\"once memory\").add(function(){Y.remove(e,[t+\"queue\",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return\"string\"!=typeof t&&(n=t,t=\"fx\",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),\"fx\"===t&&\"inprogress\"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||\"fx\",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};\"string\"!=typeof e&&(t=e,e=void 0),e=e||\"fx\";while(a--)(n=Y.get(o[a],e+\"queueHooks\"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source,te=new RegExp(\"^(?:([+-])=|)(\"+ee+\")([a-z%]*)$\",\"i\"),ne=[\"Top\",\"Right\",\"Bottom\",\"Left\"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return\"none\"===(e=t||e).style.display||\"\"===e.style.display&&ie(e)&&\"none\"===S.css(e,\"display\")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,\"\")},u=s(),l=n&&n[3]||(S.cssNumber[t]?\"\":\"px\"),c=e.nodeType&&(S.cssNumber[t]||\"px\"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?(\"none\"===n&&(l[c]=Y.get(r,\"display\")||null,l[c]||(r.style.display=\"\")),\"\"===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,\"display\"),o.parentNode.removeChild(o),\"none\"===u&&(u=\"block\"),ue[s]=u)))):\"none\"!==n&&(l[c]=\"none\",Y.set(r,\"display\",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return\"boolean\"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i,he=/^$|^module$|\\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement(\"div\")),(fe=E.createElement(\"input\")).setAttribute(\"type\",\"radio\"),fe.setAttribute(\"checked\",\"checked\"),fe.setAttribute(\"name\",\"t\"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML=\"<textarea>x</textarea>\",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML=\"<option></option>\",y.option=!!ce.lastChild;var ge={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,\"\",\"\"]};function ve(e,t){var n;return n=\"undefined\"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||\"*\"):\"undefined\"!=typeof e.querySelectorAll?e.querySelectorAll(t||\"*\"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],\"globalEval\",!t||Y.get(t[n],\"globalEval\"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,y.option||(ge.optgroup=ge.option=[1,\"<select multiple='multiple'>\",\"</select>\"]);var me=/<|&#?\\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if(\"object\"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement(\"div\")),s=(de.exec(o)||[\"\",\"\"])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=\"\"}else p.push(t.createTextNode(o));f.textContent=\"\",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ve(f.appendChild(o),\"script\"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||\"\")&&n.push(o)}return f}var be=/^([^.]*)(?:\\.(.+)|)/;function we(){return!0}function Te(){return!1}function Ce(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==(\"focus\"===t)}function Ee(e,t,n,r,i,o){var a,s;if(\"object\"==typeof t){for(s in\"string\"!=typeof n&&(r=r||n,n=void 0),t)Ee(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&(\"string\"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Te;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Se(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n&&n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,we)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return\"undefined\"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||\"\").match(P)||[\"\"]).length;while(l--)d=g=(s=be.exec(e[l])||[])[1],h=(s[2]||\"\").split(\".\").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(\".\")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){l=(t=(t||\"\").match(P)||[\"\"]).length;while(l--)if(d=g=(s=be.exec(t[l])||[])[1],h=(s[2]||\"\").split(\".\").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp(\"(^|\\\\.)\"+h.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&(\"**\"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,\"handle events\")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,\"events\")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!(\"click\"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&(\"click\"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+\" \"]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,\"input\")&&Se(t,\"click\",we),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,\"input\")&&Se(t,\"click\"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,\"input\")&&Y.get(t,\"click\")||A(t,\"a\")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?we:Te,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Te,isPropagationStopped:Te,isImmediatePropagationStopped:Te,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=we,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=we,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=we,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,\"char\":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},S.event.addProp),S.each({focus:\"focusin\",blur:\"focusout\"},function(e,t){S.event.special[e]={setup:function(){return Se(this,e,Ce),!1},trigger:function(){return Se(this,e),!0},_default:function(){return!0},delegateType:t}}),S.each({mouseenter:\"mouseover\",mouseleave:\"mouseout\",pointerenter:\"pointerover\",pointerleave:\"pointerout\"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return Ee(this,e,t,n,r)},one:function(e,t,n,r){return Ee(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+\".\"+r.namespace:r.origType,r.selector,r.handler),this;if(\"object\"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&\"function\"!=typeof t||(n=t,t=void 0),!1===n&&(n=Te),this.each(function(){S.event.remove(this,e,n,t)})}});var ke=/<script|<style|<link/i,Ae=/checked\\s*(?:[^=]|=\\s*.checked.)/i,Ne=/^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;function je(e,t){return A(e,\"table\")&&A(11!==t.nodeType?t:t.firstChild,\"tr\")&&S(e).children(\"tbody\")[0]||e}function De(e){return e.type=(null!==e.getAttribute(\"type\"))+\"/\"+e.type,e}function qe(e){return\"true/\"===(e.type||\"\").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute(\"type\"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,\"handle events\"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function He(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&\"string\"==typeof d&&!y.checkClone&&Ae.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),He(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ve(e,\"script\"),De)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ve(u,\"script\"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,qe),c=0;c<s;c++)u=a[c],he.test(u.type||\"\")&&!Y.access(u,\"globalEval\")&&S.contains(l,u)&&(u.src&&\"module\"!==(u.type||\"\").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute(\"nonce\")},l):b(u.textContent.replace(Ne,\"\"),u,l))}return n}function Oe(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ve(r)),r.parentNode&&(n&&ie(r)&&ye(ve(r,\"script\")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,\"input\"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:\"input\"!==l&&\"textarea\"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Le(o[r],a[r]);else Le(e,c);return 0<(a=ve(c,\"script\")).length&&ye(a,!f&&ve(e,\"script\")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Oe(this,e,!0)},remove:function(e){return Oe(this,e)},text:function(e){return $(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return He(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)})},prepend:function(){return He(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ve(e,!1)),e.textContent=\"\");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return $(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if(\"string\"==typeof e&&!ke.test(e)&&!ge[(de.exec(e)||[\"\",\"\"])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return He(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Pe=new RegExp(\"^(\"+ee+\")(?!px)[a-z%]+$\",\"i\"),Re=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Me=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ie=new RegExp(ne.join(\"|\"),\"i\");function We(e,t,n){var r,i,o,a,s=e.style;return(n=n||Re(e))&&(\"\"!==(a=n.getPropertyValue(t)||n[t])||ie(e)||(a=S.style(e,t)),!y.pixelBoxStyles()&&Pe.test(a)&&Ie.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+\"\":a}function Fe(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText=\"position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0\",l.style.cssText=\"position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%\",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n=\"1%\"!==e.top,s=12===t(e.marginLeft),l.style.right=\"60%\",o=36===t(e.right),r=36===t(e.width),l.style.position=\"absolute\",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement(\"div\"),l=E.createElement(\"div\");l.style&&(l.style.backgroundClip=\"content-box\",l.cloneNode(!0).style.backgroundClip=\"\",y.clearCloneStyle=\"content-box\"===l.style.backgroundClip,S.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement(\"table\"),t=E.createElement(\"tr\"),n=E.createElement(\"div\"),e.style.cssText=\"position:absolute;left:-11111px;border-collapse:separate\",t.style.cssText=\"border:1px solid\",t.style.height=\"1px\",n.style.height=\"9px\",n.style.display=\"block\",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,re.removeChild(e)),a}}))}();var Be=[\"Webkit\",\"Moz\",\"ms\"],$e=E.createElement(\"div\").style,_e={};function ze(e){var t=S.cssProps[e]||_e[e];return t||(e in $e?e:_e[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Be.length;while(n--)if((e=Be[n]+t)in $e)return e}(e)||e)}var Ue=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ve={position:\"absolute\",visibility:\"hidden\",display:\"block\"},Ge={letterSpacing:\"0\",fontWeight:\"400\"};function Ye(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||\"px\"):t}function Qe(e,t,n,r,i,o){var a=\"width\"===t?1:0,s=0,u=0;if(n===(r?\"border\":\"content\"))return 0;for(;a<4;a+=2)\"margin\"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?(\"content\"===n&&(u-=S.css(e,\"padding\"+ne[a],!0,i)),\"margin\"!==n&&(u-=S.css(e,\"border\"+ne[a]+\"Width\",!0,i))):(u+=S.css(e,\"padding\"+ne[a],!0,i),\"padding\"!==n?u+=S.css(e,\"border\"+ne[a]+\"Width\",!0,i):s+=S.css(e,\"border\"+ne[a]+\"Width\",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e[\"offset\"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Je(e,t,n){var r=Re(e),i=(!y.boxSizingReliable()||n)&&\"border-box\"===S.css(e,\"boxSizing\",!1,r),o=i,a=We(e,t,r),s=\"offset\"+t[0].toUpperCase()+t.slice(1);if(Pe.test(a)){if(!n)return a;a=\"auto\"}return(!y.boxSizingReliable()&&i||!y.reliableTrDimensions()&&A(e,\"tr\")||\"auto\"===a||!parseFloat(a)&&\"inline\"===S.css(e,\"display\",!1,r))&&e.getClientRects().length&&(i=\"border-box\"===S.css(e,\"boxSizing\",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Qe(e,t,n||(i?\"border\":\"content\"),o,r,a)+\"px\"}function Ke(e,t,n,r,i){return new Ke.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=We(e,\"opacity\");return\"\"===n?\"1\":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Xe.test(t),l=e.style;if(u||(t=ze(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&\"get\"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];\"string\"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o=\"number\"),null!=n&&n==n&&(\"number\"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?\"\":\"px\")),y.clearCloneStyle||\"\"!==n||0!==t.indexOf(\"background\")||(l[t]=\"inherit\"),a&&\"set\"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Xe.test(t)||(t=ze(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&\"get\"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=We(e,t,r)),\"normal\"===i&&t in Ge&&(i=Ge[t]),\"\"===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each([\"height\",\"width\"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ue.test(S.css(e,\"display\"))||e.getClientRects().length&&e.getBoundingClientRect().width?Je(e,u,n):Me(e,Ve,function(){return Je(e,u,n)})},set:function(e,t,n){var r,i=Re(e),o=!y.scrollboxSize()&&\"absolute\"===i.position,a=(o||n)&&\"border-box\"===S.css(e,\"boxSizing\",!1,i),s=n?Qe(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e[\"offset\"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Qe(e,u,\"border\",!1,i)-.5)),s&&(r=te.exec(t))&&\"px\"!==(r[3]||\"px\")&&(e.style[u]=t,t=S.css(e,u)),Ye(0,t,s)}}}),S.cssHooks.marginLeft=Fe(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(We(e,\"marginLeft\"))||e.getBoundingClientRect().left-Me(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+\"px\"}),S.each({margin:\"\",padding:\"\",border:\"Width\"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r=\"string\"==typeof e?e.split(\" \"):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},\"margin\"!==i&&(S.cssHooks[i+o].set=Ye)}),S.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Re(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=Ke).prototype={constructor:Ke,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?\"\":\"px\")},cur:function(){var e=Ke.propHooks[this.prop];return e&&e.get?e.get(this):Ke.propHooks._default.get(this)},run:function(e){var t,n=Ke.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Ke.propHooks._default.set(this),this}}).init.prototype=Ke.prototype,(Ke.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,\"\"))&&\"auto\"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[ze(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=Ke.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:\"swing\"},S.fx=Ke.prototype.init,S.fx.step={};var Ze,et,tt,nt,rt=/^(?:toggle|show|hide)$/,it=/queueHooks$/;function ot(){et&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(ot):C.setTimeout(ot,S.fx.interval),S.fx.tick())}function at(){return C.setTimeout(function(){Ze=void 0}),Ze=Date.now()}function st(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i[\"margin\"+(n=ne[r])]=i[\"padding\"+n]=e;return t&&(i.opacity=i.width=e),i}function ut(e,t,n){for(var r,i=(lt.tweeners[t]||[]).concat(lt.tweeners[\"*\"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function lt(o,e,t){var n,a,r=0,i=lt.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=Ze||at(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:Ze||at(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&\"expand\"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=lt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ut,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(lt,{tweeners:{\"*\":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=[\"*\"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],lt.tweeners[n]=lt.tweeners[n]||[],lt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f=\"width\"in t||\"height\"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),v=Y.get(e,\"fxshow\");for(r in n.queue||(null==(a=S._queueHooks(e,\"fx\")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,\"fx\").length||a.empty.fire()})})),t)if(i=t[r],rt.test(i)){if(delete t[r],o=o||\"toggle\"===i,i===(g?\"hide\":\"show\")){if(\"show\"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Y.get(e,\"display\")),\"none\"===(c=S.css(e,\"display\"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,\"display\"),le([e]))),(\"inline\"===c||\"inline-block\"===c&&null!=l)&&\"none\"===S.css(e,\"float\")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l=\"none\"===c?\"\":c)),h.display=\"inline-block\")),n.overflow&&(h.overflow=\"hidden\",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?\"hidden\"in v&&(g=v.hidden):v=Y.access(e,\"fxshow\",{display:l}),o&&(v.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,\"fxshow\"),d)S.style(e,r,d[r])})),u=ut(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?lt.prefilters.unshift(e):lt.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&\"object\"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:\"number\"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue=\"fx\"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css(\"opacity\",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=lt(this,S.extend({},t),o);(i||Y.get(this,\"finish\"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return\"string\"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||\"fx\",[]),this.each(function(){var e=!0,t=null!=i&&i+\"queueHooks\",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&it.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||\"fx\"),this.each(function(){var e,t=Y.get(this),n=t[a+\"queue\"],r=t[a+\"queueHooks\"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each([\"toggle\",\"show\",\"hide\"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||\"boolean\"==typeof e?i.apply(this,arguments):this.animate(st(r,!0),e,t,n)}}),S.each({slideDown:st(\"show\"),slideUp:st(\"hide\"),slideToggle:st(\"toggle\"),fadeIn:{opacity:\"show\"},fadeOut:{opacity:\"hide\"},fadeToggle:{opacity:\"toggle\"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(Ze=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),Ze=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){et||(et=!0,ot())},S.fx.stop=function(){et=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||\"fx\",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},tt=E.createElement(\"input\"),nt=E.createElement(\"select\").appendChild(E.createElement(\"option\")),tt.type=\"checkbox\",y.checkOn=\"\"!==tt.value,y.optSelected=nt.selected,(tt=E.createElement(\"input\")).value=\"t\",tt.type=\"radio\",y.radioValue=\"t\"===tt.value;var ct,ft=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return $(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return\"undefined\"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?ct:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&\"set\"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+\"\"),n):i&&\"get\"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&\"radio\"===t&&A(e,\"input\")){var n=e.value;return e.setAttribute(\"type\",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ct={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\\w+/g),function(e,t){var a=ft[t]||S.find.attr;ft[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=ft[o],ft[o]=r,r=null!=a(e,t,n)?o:null,ft[o]=i),r}});var pt=/^(?:input|select|textarea|button)$/i,dt=/^(?:a|area)$/i;function ht(e){return(e.match(P)||[]).join(\" \")}function gt(e){return e.getAttribute&&e.getAttribute(\"class\")||\"\"}function vt(e){return Array.isArray(e)?e:\"string\"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return $(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&\"set\"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&\"get\"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,\"tabindex\");return t?parseInt(t,10):pt.test(e.nodeName)||dt.test(e.nodeName)&&e.href?0:-1}}},propFix:{\"for\":\"htmlFor\",\"class\":\"className\"}}),y.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each([\"tabIndex\",\"readOnly\",\"maxLength\",\"cellSpacing\",\"cellPadding\",\"rowSpan\",\"colSpan\",\"useMap\",\"frameBorder\",\"contentEditable\"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).addClass(t.call(this,e,gt(this)))});if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&\" \"+ht(i)+\" \"){a=0;while(o=e[a++])r.indexOf(\" \"+o+\" \")<0&&(r+=o+\" \");i!==(s=ht(r))&&n.setAttribute(\"class\",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).removeClass(t.call(this,e,gt(this)))});if(!arguments.length)return this.attr(\"class\",\"\");if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&\" \"+ht(i)+\" \"){a=0;while(o=e[a++])while(-1<r.indexOf(\" \"+o+\" \"))r=r.replace(\" \"+o+\" \",\" \");i!==(s=ht(r))&&n.setAttribute(\"class\",s)}return this},toggleClass:function(i,t){var o=typeof i,a=\"string\"===o||Array.isArray(i);return\"boolean\"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){S(this).toggleClass(i.call(this,e,gt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=S(this),r=vt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&\"boolean\"!==o||((e=gt(this))&&Y.set(this,\"__className__\",e),this.setAttribute&&this.setAttribute(\"class\",e||!1===i?\"\":Y.get(this,\"__className__\")||\"\"))})},hasClass:function(e){var t,n,r=0;t=\" \"+e+\" \";while(n=this[r++])if(1===n.nodeType&&-1<(\" \"+ht(gt(n))+\" \").indexOf(t))return!0;return!1}});var yt=/\\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t=\"\":\"number\"==typeof t?t+=\"\":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?\"\":e+\"\"})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&\"set\"in r&&void 0!==r.set(this,t,\"value\")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&\"get\"in r&&void 0!==(e=r.get(t,\"value\"))?e:\"string\"==typeof(e=t.value)?e.replace(yt,\"\"):null==e?\"\":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,\"value\");return null!=t?t:ht(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a=\"select-one\"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,\"optgroup\"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each([\"radio\",\"checkbox\"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},y.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute(\"value\")?\"on\":e.value})}),y.focusin=\"onfocusin\"in C;var mt=/^(?:focusinfocus|focusoutblur)$/,xt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,\"type\")?e.type:e,h=v.call(e,\"namespace\")?e.namespace.split(\".\"):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!mt.test(d+S.event.triggered)&&(-1<d.indexOf(\".\")&&(d=(h=d.split(\".\")).shift(),h.sort()),u=d.indexOf(\":\")<0&&\"on\"+d,(e=e[S.expando]?e:new S.Event(d,\"object\"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join(\".\"),e.rnamespace=e.namespace?new RegExp(\"(^|\\\\.)\"+h.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,mt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,\"events\")||Object.create(null))[e.type]&&Y.get(o,\"handle\"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,xt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,xt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),y.focusin||S.each({focus:\"focusin\",blur:\"focusout\"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var bt=C.location,wt={guid:Date.now()},Tt=/\\?/;S.parseXML=function(e){var t,n;if(!e||\"string\"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,\"text/xml\")}catch(e){}return n=t&&t.getElementsByTagName(\"parsererror\")[0],t&&!n||S.error(\"Invalid XML: \"+(n?S.map(n.childNodes,function(e){return e.textContent}).join(\"\\n\"):e)),t};var Ct=/\\[\\]$/,Et=/\\r?\\n/g,St=/^(?:submit|button|image|reset|file)$/i,kt=/^(?:input|select|textarea|keygen)/i;function At(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||Ct.test(n)?i(n,t):At(n+\"[\"+(\"object\"==typeof t&&null!=t?e:\"\")+\"]\",t,r,i)});else if(r||\"object\"!==w(e))i(n,e);else for(t in e)At(n+\"[\"+t+\"]\",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+\"=\"+encodeURIComponent(null==n?\"\":n)};if(null==e)return\"\";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)At(n,e[n],t,i);return r.join(\"&\")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,\"elements\");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(\":disabled\")&&kt.test(this.nodeName)&&!St.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(Et,\"\\r\\n\")}}):{name:t.name,value:n.replace(Et,\"\\r\\n\")}}).get()}});var Nt=/%20/g,jt=/#.*$/,Dt=/([?&])_=[^&]*/,qt=/^(.*?):[ \\t]*([^\\r\\n]*)$/gm,Lt=/^(?:GET|HEAD)$/,Ht=/^\\/\\//,Ot={},Pt={},Rt=\"*/\".concat(\"*\"),Mt=E.createElement(\"a\");function It(o){return function(e,t){\"string\"!=typeof e&&(t=e,e=\"*\");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])\"+\"===n[0]?(n=n.slice(1)||\"*\",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Wt(t,i,o,a){var s={},u=t===Pt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return\"string\"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s[\"*\"]&&l(\"*\")}function Ft(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Mt.href=bt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:bt.href,type:\"GET\",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(bt.protocol),global:!0,processData:!0,async:!0,contentType:\"application/x-www-form-urlencoded; charset=UTF-8\",accepts:{\"*\":Rt,text:\"text/plain\",html:\"text/html\",xml:\"application/xml, text/xml\",json:\"application/json, text/javascript\"},contents:{xml:/\\bxml\\b/,html:/\\bhtml/,json:/\\bjson\\b/},responseFields:{xml:\"responseXML\",text:\"responseText\",json:\"responseJSON\"},converters:{\"* text\":String,\"text html\":!0,\"text json\":JSON.parse,\"text xml\":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ft(Ft(e,S.ajaxSettings),t):Ft(S.ajaxSettings,e)},ajaxPrefilter:It(Ot),ajaxTransport:It(Pt),ajax:function(e,t){\"object\"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=S.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?S(y):S.event,x=S.Deferred(),b=S.Callbacks(\"once memory\"),w=v.statusCode||{},a={},s={},u=\"canceled\",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=qt.exec(p))n[t[1].toLowerCase()+\" \"]=(n[t[1].toLowerCase()+\" \"]||[]).concat(t[2])}t=n[e.toLowerCase()+\" \"]}return null==t?null:t.join(\", \")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||bt.href)+\"\").replace(Ht,bt.protocol+\"//\"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||\"*\").toLowerCase().match(P)||[\"\"],null==v.crossDomain){r=E.createElement(\"a\");try{r.href=v.url,r.href=r.href,v.crossDomain=Mt.protocol+\"//\"+Mt.host!=r.protocol+\"//\"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&\"string\"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Wt(Ot,v,t,T),h)return T;for(i in(g=S.event&&v.global)&&0==S.active++&&S.event.trigger(\"ajaxStart\"),v.type=v.type.toUpperCase(),v.hasContent=!Lt.test(v.type),f=v.url.replace(jt,\"\"),v.hasContent?v.data&&v.processData&&0===(v.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&(v.data=v.data.replace(Nt,\"+\")):(o=v.url.slice(f.length),v.data&&(v.processData||\"string\"==typeof v.data)&&(f+=(Tt.test(f)?\"&\":\"?\")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Dt,\"$1\"),o=(Tt.test(f)?\"&\":\"?\")+\"_=\"+wt.guid+++o),v.url=f+o),v.ifModified&&(S.lastModified[f]&&T.setRequestHeader(\"If-Modified-Since\",S.lastModified[f]),S.etag[f]&&T.setRequestHeader(\"If-None-Match\",S.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader(\"Content-Type\",v.contentType),T.setRequestHeader(\"Accept\",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+(\"*\"!==v.dataTypes[0]?\", \"+Rt+\"; q=0.01\":\"\"):v.accepts[\"*\"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u=\"abort\",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Wt(Pt,v,t,T)){if(T.readyState=1,g&&m.trigger(\"ajaxSend\",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort(\"timeout\")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,\"No Transport\");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||\"\",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while(\"*\"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader(\"Content-Type\"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+\" \"+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<S.inArray(\"script\",v.dataTypes)&&S.inArray(\"json\",v.dataTypes)<0&&(v.converters[\"text script\"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if(\"*\"===o)o=u;else if(\"*\"!==u&&u!==o){if(!(a=l[u+\" \"+o]||l[\"* \"+o]))for(i in l)if((s=i.split(\" \"))[1]===o&&(a=l[u+\" \"+s[0]]||l[\"* \"+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e[\"throws\"])t=a(t);else try{t=a(t)}catch(e){return{state:\"parsererror\",error:a?e:\"No conversion from \"+u+\" to \"+o}}}return{state:\"success\",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader(\"Last-Modified\"))&&(S.lastModified[f]=u),(u=T.getResponseHeader(\"etag\"))&&(S.etag[f]=u)),204===e||\"HEAD\"===v.type?l=\"nocontent\":304===e?l=\"notmodified\":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l=\"error\",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+\"\",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?\"ajaxSuccess\":\"ajaxError\",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger(\"ajaxComplete\",[T,v]),--S.active||S.event.trigger(\"ajaxStop\")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,\"json\")},getScript:function(e,t){return S.get(e,void 0,t,\"script\")}}),S.each([\"get\",\"post\"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)\"content-type\"===t.toLowerCase()&&(e.contentType=e.headers[t]||\"\")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:\"GET\",dataType:\"script\",cache:!0,async:!1,global:!1,converters:{\"text script\":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not(\"body\").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Bt={0:200,1223:204},$t=S.ajaxSettings.xhr();y.cors=!!$t&&\"withCredentials\"in $t,y.ajax=$t=!!$t,S.ajaxTransport(function(i){var o,a;if(y.cors||$t&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e[\"X-Requested-With\"]||(e[\"X-Requested-With\"]=\"XMLHttpRequest\"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,\"abort\"===e?r.abort():\"error\"===e?\"number\"!=typeof r.status?t(0,\"error\"):t(r.status,r.statusText):t(Bt[r.status]||r.status,r.statusText,\"text\"!==(r.responseType||\"text\")||\"string\"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o(\"error\"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o(\"abort\");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:\"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"},contents:{script:/\\b(?:java|ecma)script\\b/},converters:{\"text script\":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter(\"script\",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type=\"GET\")}),S.ajaxTransport(\"script\",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S(\"<script>\").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on(\"load error\",i=function(e){r.remove(),i=null,e&&t(\"error\"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\\?(?=&|$)|\\?\\?/;S.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var e=zt.pop()||S.expando+\"_\"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter(\"json jsonp\",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?\"url\":\"string\"==typeof e.data&&0===(e.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&Ut.test(e.data)&&\"data\");if(a||\"jsonp\"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,\"$1\"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?\"&\":\"?\")+e.jsonp+\"=\"+r),e.converters[\"script json\"]=function(){return o||S.error(r+\" was not called\"),o[0]},e.dataTypes[0]=\"json\",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),\"script\"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument(\"\").body).innerHTML=\"<form></form><form></form>\",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return\"string\"!=typeof e?[]:(\"boolean\"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument(\"\")).createElement(\"base\")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(\" \");return-1<s&&(r=ht(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&\"object\"==typeof t&&(i=\"POST\"),0<a.length&&S.ajax({url:e,type:i||\"GET\",dataType:\"html\",data:t}).done(function(e){o=arguments,a.html(r?S(\"<div>\").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,\"position\"),c=S(e),f={};\"static\"===l&&(e.style.position=\"relative\"),s=c.offset(),o=S.css(e,\"top\"),u=S.css(e,\"left\"),(\"absolute\"===l||\"fixed\"===l)&&-1<(o+u).indexOf(\"auto\")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),\"using\"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if(\"fixed\"===S.css(r,\"position\"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&\"static\"===S.css(e,\"position\"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,\"borderTopWidth\",!0),i.left+=S.css(e,\"borderLeftWidth\",!0))}return{top:t.top-i.top-S.css(r,\"marginTop\",!0),left:t.left-i.left-S.css(r,\"marginLeft\",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&\"static\"===S.css(e,\"position\"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(t,i){var o=\"pageYOffset\"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each([\"top\",\"left\"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+\"px\":t})}),S.each({Height:\"height\",Width:\"width\"},function(a,s){S.each({padding:\"inner\"+a,content:s,\"\":\"outer\"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||\"boolean\"!=typeof e),i=r||(!0===e||!0===t?\"margin\":\"border\");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf(\"outer\")?e[\"inner\"+a]:e.document.documentElement[\"client\"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body[\"scroll\"+a],r[\"scroll\"+a],e.body[\"offset\"+a],r[\"offset\"+a],r[\"client\"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,\"**\"):this.off(t,e||\"**\",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each(\"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu\".split(\" \"),function(e,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Xt=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if(\"string\"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return(\"number\"===t||\"string\"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?\"\":(e+\"\").replace(Xt,\"\")},\"function\"==typeof define&&define.amd&&define(\"jquery\",[],function(){return S});var Vt=C.jQuery,Gt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Gt),e&&C.jQuery===S&&(C.jQuery=Vt),S},\"undefined\"==typeof e&&(C.jQuery=C.$=S),S});\n","/**\n * jQuery mousehold plugin - fires an event while the mouse is clicked down.\n * Additionally, the function, when executed, is passed a single\n * argument representing the count of times the event has been fired during\n * this session of the mouse hold.\n *\n * @author Remy Sharp (leftlogic.com)\n * @date 2006-12-15\n * @example $(\"img\").mousehold(200, function(i){ })\n * @desc Repeats firing the passed function while the mouse is clicked down\n *\n * @name mousehold\n * @type jQuery\n * @param Number timeout The frequency to repeat the event in milliseconds\n * @param Function fn A function to execute\n * @cat Plugin\n */\n\n(function($) {\n\n$.fn.mousehold = function(timeout, f) {\n if (timeout && typeof timeout == 'function') {\n f = timeout;\n timeout = 100;\n }\n if (f && typeof f == 'function') {\n var timer = 0;\n var fireStep = 0;\n return this.each(function() {\n $(this).mousedown(function() {\n fireStep = 1;\n var ctr = 0;\n var t = this;\n timer = setInterval(function() {\n ctr++;\n f.call(t, ctr);\n fireStep = 2;\n }, timeout);\n });\n\n var clearMousehold = function() {\n clearInterval(timer);\n if (fireStep == 1) f.call(this, 1);\n fireStep = 0;\n };\n\n $(this).mouseout(clearMousehold);\n $(this).mouseup(clearMousehold);\n })\n }\n}\n\n})(jQuery);\n","/*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net)\n * Licensed under the MIT License (LICENSE.txt).\n *\n * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.\n * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.\n * Thanks to: Seamus Leahy for adding deltaX and deltaY\n *\n * Version: 3.0.6\n *\n * Requires: 1.2.2+\n */\n\n(function($) {\n\nvar types = ['DOMMouseScroll', 'mousewheel'];\n\nif ($.event.fixHooks) {\n for ( var i=types.length; i; ) {\n $.event.fixHooks[ types[--i] ] = $.event.mouseHooks;\n }\n}\n\n$.event.special.mousewheel = {\n setup: function() {\n if ( this.addEventListener ) {\n for ( var i=types.length; i; ) {\n this.addEventListener( types[--i], handler, false );\n }\n } else {\n this.onmousewheel = handler;\n }\n },\n\n teardown: function() {\n if ( this.removeEventListener ) {\n for ( var i=types.length; i; ) {\n this.removeEventListener( types[--i], handler, false );\n }\n } else {\n this.onmousewheel = null;\n }\n }\n};\n\n$.fn.extend({\n mousewheel: function(fn) {\n return fn ? this.bind(\"mousewheel\", fn) : this.trigger(\"mousewheel\");\n },\n\n unmousewheel: function(fn) {\n return this.unbind(\"mousewheel\", fn);\n }\n});\n\n\nfunction handler(event) {\n var orgEvent = event || window.event, args = [].slice.call( arguments, 1 ), delta = 0, returnValue = true, deltaX = 0, deltaY = 0;\n event = $.event.fix(orgEvent);\n event.type = \"mousewheel\";\n\n // Old school scrollwheel delta\n if ( orgEvent.wheelDelta ) { delta = orgEvent.wheelDelta/120; }\n if ( orgEvent.detail ) { delta = -orgEvent.detail/3; }\n\n // New school multidimensional scroll (touchpads) deltas\n deltaY = delta;\n\n // Gecko\n if ( orgEvent.axis !== undefined && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {\n deltaY = 0;\n deltaX = -1*delta;\n }\n\n // Webkit\n if ( orgEvent.wheelDeltaY !== undefined ) { deltaY = orgEvent.wheelDeltaY/120; }\n if ( orgEvent.wheelDeltaX !== undefined ) { deltaX = -1*orgEvent.wheelDeltaX/120; }\n\n // Add event and delta to the front of the arguments\n args.unshift(event, delta, deltaX, deltaY);\n\n return ($.event.dispatch || $.event.handle).apply(this, args);\n}\n\n})(jQuery);","// tipsy, facebook style tooltips for jquery\n// version 1.0.0a\n// (c) 2008-2010 jason frame [jason@onehackoranother.com]\n// released under the MIT license\n\n(function($) {\n \n function maybeCall(thing, ctx) {\n return (typeof thing == 'function') ? (thing.call(ctx)) : thing;\n };\n \n function isElementInDOM(ele) {\n while (ele = ele.parentNode) {\n if (ele == document) return true;\n }\n return false;\n };\n \n function Tipsy(element, options) {\n this.$element = $(element);\n this.options = options;\n this.enabled = true;\n this.fixTitle();\n };\n \n Tipsy.prototype = {\n show: function() {\n var title = this.getTitle();\n if (title && this.enabled) {\n var $tip = this.tip();\n \n $tip.find('.tipsy-inner')[this.options.html ? 'html' : 'text'](title);\n $tip[0].className = 'tipsy'; // reset classname in case of dynamic gravity\n $tip.remove().css({top: 0, left: 0, visibility: 'hidden', display: 'block'}).prependTo(document.body);\n \n var pos = $.extend({}, this.$element.offset(), {\n width: this.$element[0].offsetWidth,\n height: this.$element[0].offsetHeight\n });\n \n var actualWidth = $tip[0].offsetWidth,\n actualHeight = $tip[0].offsetHeight,\n gravity = maybeCall(this.options.gravity, this.$element[0]);\n \n var tp;\n switch (gravity.charAt(0)) {\n case 'n':\n tp = {top: pos.top + pos.height + this.options.offset, left: pos.left + pos.width / 2 - actualWidth / 2};\n break;\n case 's':\n tp = {top: pos.top - actualHeight - this.options.offset, left: pos.left + pos.width / 2 - actualWidth / 2};\n break;\n case 'e':\n tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth - this.options.offset};\n break;\n case 'w':\n tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width + this.options.offset};\n break;\n }\n \n if (gravity.length == 2) {\n if (gravity.charAt(1) == 'w') {\n tp.left = pos.left + pos.width / 2 - 15;\n } else {\n tp.left = pos.left + pos.width / 2 - actualWidth + 15;\n }\n }\n \n $tip.css(tp).addClass('tipsy-' + gravity);\n $tip.find('.tipsy-arrow')[0].className = 'tipsy-arrow tipsy-arrow-' + gravity.charAt(0);\n if (this.options.className) {\n $tip.addClass(maybeCall(this.options.className, this.$element[0]));\n }\n \n if (this.options.fade) {\n $tip.stop().css({opacity: 0, display: 'block', visibility: 'visible'}).animate({opacity: this.options.opacity});\n } else {\n $tip.css({visibility: 'visible', opacity: this.options.opacity});\n }\n }\n },\n \n hide: function() {\n if (this.options.fade) {\n this.tip().stop().fadeOut(function() { $(this).remove(); });\n } else {\n this.tip().remove();\n }\n },\n \n fixTitle: function() {\n var $e = this.$element;\n if ($e.attr('title') || typeof($e.attr('original-title')) != 'string') {\n $e.attr('original-title', $e.attr('title') || '').removeAttr('title');\n }\n },\n \n getTitle: function() {\n var title, $e = this.$element, o = this.options;\n this.fixTitle();\n var title, o = this.options;\n if (typeof o.title == 'string') {\n title = $e.attr(o.title == 'title' ? 'original-title' : o.title);\n } else if (typeof o.title == 'function') {\n title = o.title.call($e[0]);\n }\n title = ('' + title).replace(/(^\\s*|\\s*$)/, \"\");\n return title || o.fallback;\n },\n \n tip: function() {\n if (!this.$tip) {\n this.$tip = $('<div class=\"tipsy\"></div>').html('<div class=\"tipsy-arrow\"></div><div class=\"tipsy-inner\"></div>');\n this.$tip.data('tipsy-pointee', this.$element[0]);\n }\n return this.$tip;\n },\n \n validate: function() {\n if (!this.$element[0].parentNode) {\n this.hide();\n this.$element = null;\n this.options = null;\n }\n },\n \n enable: function() { this.enabled = true; },\n disable: function() { this.enabled = false; },\n toggleEnabled: function() { this.enabled = !this.enabled; }\n };\n \n $.fn.tipsy = function(options) {\n \n if (options === true) {\n return this.data('tipsy');\n } else if (typeof options == 'string') {\n var tipsy = this.data('tipsy');\n if (tipsy) tipsy[options]();\n return this;\n }\n \n options = $.extend({}, $.fn.tipsy.defaults, options);\n \n function get(ele) {\n var tipsy = $.data(ele, 'tipsy');\n if (!tipsy) {\n tipsy = new Tipsy(ele, $.fn.tipsy.elementOptions(ele, options));\n $.data(ele, 'tipsy', tipsy);\n }\n return tipsy;\n }\n \n function enter() {\n var tipsy = get(this);\n tipsy.hoverState = 'in';\n if (options.delayIn == 0) {\n tipsy.show();\n } else {\n tipsy.fixTitle();\n setTimeout(function() { if (tipsy.hoverState == 'in') tipsy.show(); }, options.delayIn);\n }\n };\n \n function leave() {\n var tipsy = get(this);\n tipsy.hoverState = 'out';\n if (options.delayOut == 0) {\n tipsy.hide();\n } else {\n setTimeout(function() { if (tipsy.hoverState == 'out') tipsy.hide(); }, options.delayOut);\n }\n };\n \n if (!options.live) this.each(function() { get(this); });\n \n if (options.trigger != 'manual') {\n var binder = options.live ? 'live' : 'bind',\n eventIn = options.trigger == 'hover' ? 'mouseenter' : 'focus',\n eventOut = options.trigger == 'hover' ? 'mouseleave' : 'blur';\n this[binder](eventIn, enter)[binder](eventOut, leave);\n }\n \n return this;\n \n };\n \n $.fn.tipsy.defaults = {\n className: null,\n delayIn: 0,\n delayOut: 0,\n fade: false,\n fallback: '',\n gravity: 'n',\n html: false,\n live: false,\n offset: 0,\n opacity: 0.8,\n title: 'title',\n trigger: 'hover'\n };\n \n $.fn.tipsy.revalidate = function() {\n $('.tipsy').each(function() {\n var pointee = $.data(this, 'tipsy-pointee');\n if (!pointee || !isElementInDOM(pointee)) {\n $(this).remove();\n }\n });\n };\n \n // Overwrite this method to provide options on a per-element basis.\n // For example, you could store the gravity in a 'tipsy-gravity' attribute:\n // return $.extend({}, options, {gravity: $(ele).attr('tipsy-gravity') || 'n' });\n // (remember - do not modify 'options' in place!)\n $.fn.tipsy.elementOptions = function(ele, options) {\n return $.metadata ? $.extend({}, options, $(ele).metadata()) : options;\n };\n \n $.fn.tipsy.autoNS = function() {\n return $(this).offset().top > ($(document).scrollTop() + $(window).height() / 2) ? 's' : 'n';\n };\n \n $.fn.tipsy.autoWE = function() {\n return $(this).offset().left > ($(document).scrollLeft() + $(window).width() / 2) ? 'e' : 'w';\n };\n \n /**\n * yields a closure of the supplied parameters, producing a function that takes\n * no arguments and is suitable for use as an autogravity function like so:\n *\n * @param margin (int) - distance from the viewable region edge that an\n * element should be before setting its tooltip's gravity to be away\n * from that edge.\n * @param prefer (string, e.g. 'n', 'sw', 'w') - the direction to prefer\n * if there are no viewable region edges effecting the tooltip's\n * gravity. It will try to vary from this minimally, for example,\n * if 'sw' is preferred and an element is near the right viewable \n * region edge, but not the top edge, it will set the gravity for\n * that element's tooltip to be 'se', preserving the southern\n * component.\n */\n $.fn.tipsy.autoBounds = function(margin, prefer) {\n\t\treturn function() {\n\t\t\tvar dir = {ns: prefer[0], ew: (prefer.length > 1 ? prefer[1] : false)},\n\t\t\t boundTop = $(document).scrollTop() + margin,\n\t\t\t boundLeft = $(document).scrollLeft() + margin,\n\t\t\t $this = $(this);\n\n\t\t\tif ($this.offset().top < boundTop) dir.ns = 'n';\n\t\t\tif ($this.offset().left < boundLeft) dir.ew = 'w';\n\t\t\tif ($(window).width() + $(document).scrollLeft() - $this.offset().left < margin) dir.ew = 'e';\n\t\t\tif ($(window).height() + $(document).scrollTop() - $this.offset().top < margin) dir.ns = 's';\n\n\t\t\treturn dir.ns + (dir.ew ? dir.ew : '');\n\t\t}\n\t};\n \n})(jQuery);","!function(e){if(\"object\"==typeof exports)module.exports=e();else if(\"function\"==typeof define&&define.amd)define(e);else{var f;\"undefined\"!=typeof window?f=window:\"undefined\"!=typeof global?f=global:\"undefined\"!=typeof self&&(f=self),f.RTree=e()}}(function(){var define,module,exports;return 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(_dereq_,module,exports){\"use strict\";var rectangle=_dereq_(\"./rectangle\");var bbox=function(ar,obj){if(obj&&obj.bbox){return{leaf:obj,x:obj.bbox[0],y:obj.bbox[1],w:obj.bbox[2]-obj.bbox[0],h:obj.bbox[3]-obj.bbox[1]}}var len=ar.length;var i=0;var a=new Array(len);while(i<len){a[i]=[ar[i][0],ar[i][1]];i++}var first=a[0];len=a.length;i=1;var temp={min:[].concat(first),max:[].concat(first)};while(i<len){if(a[i][0]<temp.min[0]){temp.min[0]=a[i][0]}else if(a[i][0]>temp.max[0]){temp.max[0]=a[i][0]}if(a[i][1]<temp.min[1]){temp.min[1]=a[i][1]}else if(a[i][1]>temp.max[1]){temp.max[1]=a[i][1]}i++}var out={x:temp.min[0],y:temp.min[1],w:temp.max[0]-temp.min[0],h:temp.max[1]-temp.min[1]};if(obj){out.leaf=obj}return out};var geoJSON={};geoJSON.point=function(obj,self){return self.insertSubtree({x:obj.geometry.coordinates[0],y:obj.geometry.coordinates[1],w:0,h:0,leaf:obj},self.root)};geoJSON.multiPointLineString=function(obj,self){return self.insertSubtree(bbox(obj.geometry.coordinates,obj),self.root)};geoJSON.multiLineStringPolygon=function(obj,self){return self.insertSubtree(bbox(Array.prototype.concat.apply([],obj.geometry.coordinates),obj),self.root)};geoJSON.multiPolygon=function(obj,self){return self.insertSubtree(bbox(Array.prototype.concat.apply([],Array.prototype.concat.apply([],obj.geometry.coordinates)),obj),self.root)};geoJSON.makeRec=function(obj){return rectangle(obj.x,obj.y,obj.w,obj.h)};geoJSON.geometryCollection=function(obj,self){if(obj.bbox){return self.insertSubtree({leaf:obj,x:obj.bbox[0],y:obj.bbox[1],w:obj.bbox[2]-obj.bbox[0],h:obj.bbox[3]-obj.bbox[1]},self.root)}var geos=obj.geometry.geometries;var i=0;var len=geos.length;var temp=[];var g;while(i<len){g=geos[i];switch(g.type){case\"Point\":temp.push(geoJSON.makeRec({x:g.coordinates[0],y:g.coordinates[1],w:0,h:0}));break;case\"MultiPoint\":temp.push(geoJSON.makeRec(bbox(g.coordinates)));break;case\"LineString\":temp.push(geoJSON.makeRec(bbox(g.coordinates)));break;case\"MultiLineString\":temp.push(geoJSON.makeRec(bbox(Array.prototype.concat.apply([],g.coordinates))));break;case\"Polygon\":temp.push(geoJSON.makeRec(bbox(Array.prototype.concat.apply([],g.coordinates))));break;case\"MultiPolygon\":temp.push(geoJSON.makeRec(bbox(Array.prototype.concat.apply([],Array.prototype.concat.apply([],g.coordinates)))));break;case\"GeometryCollection\":geos=geos.concat(g.geometries);len=geos.length;break}i++}var first=temp[0];i=1;len=temp.length;while(i<len){first.expand(temp[i]);i++}return self.insertSubtree({leaf:obj,x:first.x(),y:first.y(),h:first.h(),w:first.w()},self.root)};exports.geoJSON=function(prelim){var that=this;var features,feature;if(Array.isArray(prelim)){features=prelim.slice()}else if(prelim.features&&Array.isArray(prelim.features)){features=prelim.features.slice()}else if(prelim instanceof Object){features=[prelim]}else{throw\"this isn't what we're looking for\"}var len=features.length;var i=0;while(i<len){feature=features[i];if(feature.type===\"Feature\"){switch(feature.geometry.type){case\"Point\":geoJSON.point(feature,that);break;case\"MultiPoint\":geoJSON.multiPointLineString(feature,that);break;case\"LineString\":geoJSON.multiPointLineString(feature,that);break;case\"MultiLineString\":geoJSON.multiLineStringPolygon(feature,that);break;case\"Polygon\":geoJSON.multiLineStringPolygon(feature,that);break;case\"MultiPolygon\":geoJSON.multiPolygon(feature,that);break;case\"GeometryCollection\":geoJSON.geometryCollection(feature,that);break}}i++}};exports.bbox=function(){var x1,y1,x2,y2;switch(arguments.length){case 1:x1=arguments[0][0][0];y1=arguments[0][0][1];x2=arguments[0][1][0];y2=arguments[0][1][1];break;case 2:x1=arguments[0][0];y1=arguments[0][1];x2=arguments[1][0];y2=arguments[1][1];break;case 4:x1=arguments[0];y1=arguments[1];x2=arguments[2];y2=arguments[3];break}return this.search({x:x1,y:y1,w:x2-x1,h:y2-y1})}},{\"./rectangle\":3}],2:[function(_dereq_,module,exports){\"use strict\";var RTree=_dereq_(\"./rtree\");var geojson=_dereq_(\"./geojson\");RTree.prototype.bbox=geojson.bbox;RTree.prototype.geoJSON=geojson.geoJSON;RTree.Rectangle=_dereq_(\"./rectangle\");module.exports=RTree},{\"./geojson\":1,\"./rectangle\":3,\"./rtree\":4}],3:[function(_dereq_,module,exports){\"use strict\";function Rectangle(x,y,w,h){if(!(this instanceof Rectangle)){return new Rectangle(x,y,w,h)}var x2,y2,p;if(x.x){w=x.w;h=x.h;y=x.y;if(x.w!==0&&!x.w&&x.x2){w=x.x2-x.x;h=x.y2-x.y}else{w=x.w;h=x.h}x=x.x;x2=x+w;y2=y+h;p=h+w?false:true}else{x2=x+w;y2=y+h;p=h+w?false:true}this.x1=this.x=function(){return x};this.y1=this.y=function(){return y};this.x2=function(){return x2};this.y2=function(){return y2};this.w=function(){return w};this.h=function(){return h};this.p=function(){return p};this.overlap=function(a){if(p||a.p()){return x<=a.x2()&&x2>=a.x()&&y<=a.y2()&&y2>=a.y()}return x<a.x2()&&x2>a.x()&&y<a.y2()&&y2>a.y()};this.expand=function(a){var nx,ny;var ax=a.x();var ay=a.y();var ax2=a.x2();var ay2=a.y2();if(x>ax){nx=ax}else{nx=x}if(y>ay){ny=ay}else{ny=y}if(x2>ax2){w=x2-nx}else{w=ax2-nx}if(y2>ay2){h=y2-ny}else{h=ay2-ny}x=nx;y=ny;return this}}Rectangle.overlapRectangle=function(a,b){if(a.h===0&&a.w===0||b.h===0&&b.w===0){return a.x<=b.x+b.w&&a.x+a.w>=b.x&&a.y<=b.y+b.h&&a.y+a.h>=b.y}else{return a.x<b.x+b.w&&a.x+a.w>b.x&&a.y<b.y+b.h&&a.y+a.h>b.y}};Rectangle.containsRectangle=function(a,b){return a.x+a.w<=b.x+b.w&&a.x>=b.x&&a.y+a.h<=b.y+b.h&&a.y>=b.y};Rectangle.expandRectangle=function(a,b){var nx,ny;var axw=a.x+a.w;var bxw=b.x+b.w;var ayh=a.y+a.h;var byh=b.y+b.h;if(a.x>b.x){nx=b.x}else{nx=a.x}if(a.y>b.y){ny=b.y}else{ny=a.y}if(axw>bxw){a.w=axw-nx}else{a.w=bxw-nx}if(ayh>byh){a.h=ayh-ny}else{a.h=byh-ny}a.x=nx;a.y=ny;return a};Rectangle.makeMBR=function(nodes,rect){if(!nodes.length){return{x:0,y:0,w:0,h:0}}rect=rect||{};rect.x=nodes[0].x;rect.y=nodes[0].y;rect.w=nodes[0].w;rect.h=nodes[0].h;for(var i=1,len=nodes.length;i<len;i++){Rectangle.expandRectangle(rect,nodes[i])}return rect};Rectangle.squarifiedRatio=function(l,w,fill){var lperi=(l+w)/2;var larea=l*w;var lgeo=larea/(lperi*lperi);return larea*fill/lgeo};module.exports=Rectangle},{}],4:[function(_dereq_,module,exports){\"use strict\";var rectangle=_dereq_(\"./rectangle\");function RTree(width){if(!(this instanceof RTree)){return new RTree(width)}var minWidth=3;var maxWidth=6;if(!isNaN(width)){minWidth=Math.floor(width/2);maxWidth=width}var rootTree={x:0,y:0,w:0,h:0,id:\"root\",nodes:[]};this.root=rootTree;var flatten=function(tree){var todo=tree.slice();var done=[];var current;while(todo.length){current=todo.pop();if(current.nodes){todo=todo.concat(current.nodes)}else if(current.leaf){done.push(current)}}return done};var removeSubtree=function(rect,obj,root){var hitStack=[];var countStack=[];var retArray=[];var currentDepth=1;var tree,i,ltree;if(!rect||!rectangle.overlapRectangle(rect,root)){return retArray}var retObj={x:rect.x,y:rect.y,w:rect.w,h:rect.h,target:obj};countStack.push(root.nodes.length);hitStack.push(root);while(hitStack.length>0){tree=hitStack.pop();i=countStack.pop()-1;if(\"target\"in retObj){while(i>=0){ltree=tree.nodes[i];if(rectangle.overlapRectangle(retObj,ltree)){if(retObj.target&&\"leaf\"in ltree&<ree.leaf===retObj.target||!retObj.target&&(\"leaf\"in ltree||rectangle.containsRectangle(ltree,retObj))){if(\"nodes\"in ltree){retArray=flatten(tree.nodes.splice(i,1))}else{retArray=tree.nodes.splice(i,1)}rectangle.makeMBR(tree.nodes,tree);delete retObj.target;break}else if(\"nodes\"in ltree){currentDepth++;countStack.push(i);hitStack.push(tree);tree=ltree;i=ltree.nodes.length}}i--}}else if(\"nodes\"in retObj){tree.nodes.splice(i+1,1);if(tree.nodes.length>0){rectangle.makeMBR(tree.nodes,tree)}for(var t=0;t<retObj.nodes.length;t++){insertSubtree(retObj.nodes[t],tree)}retObj.nodes=[];if(hitStack.length===0&&tree.nodes.length<=1){retObj.nodes=searchSubtree(tree,true,retObj.nodes,tree);tree.nodes=[];hitStack.push(tree);countStack.push(1)}else if(hitStack.length>0&&tree.nodes.length<minWidth){retObj.nodes=searchSubtree(tree,true,retObj.nodes,tree);tree.nodes=[]}else{delete retObj.nodes}}else{rectangle.makeMBR(tree.nodes,tree)}currentDepth-=1}return retArray};var chooseLeafSubtree=function(rect,root){var bestChoiceIndex=-1;var bestChoiceStack=[];var bestChoiceArea;var first=true;bestChoiceStack.push(root);var nodes=root.nodes;while(first||bestChoiceIndex!==-1){if(first){first=false}else{bestChoiceStack.push(nodes[bestChoiceIndex]);nodes=nodes[bestChoiceIndex].nodes;bestChoiceIndex=-1}for(var i=nodes.length-1;i>=0;i--){var ltree=nodes[i];if(\"leaf\"in ltree){bestChoiceIndex=-1;break}var oldLRatio=rectangle.squarifiedRatio(ltree.w,ltree.h,ltree.nodes.length+1);var nw=Math.max(ltree.x+ltree.w,rect.x+rect.w)-Math.min(ltree.x,rect.x);var nh=Math.max(ltree.y+ltree.h,rect.y+rect.h)-Math.min(ltree.y,rect.y);var lratio=rectangle.squarifiedRatio(nw,nh,ltree.nodes.length+2);if(bestChoiceIndex<0||Math.abs(lratio-oldLRatio)<bestChoiceArea){bestChoiceArea=Math.abs(lratio-oldLRatio);bestChoiceIndex=i}}}return bestChoiceStack};var linearSplit=function(nodes){var n=pickLinear(nodes);while(nodes.length>0){pickNext(nodes,n[0],n[1])}return n};var pickNext=function(nodes,a,b){var areaA=rectangle.squarifiedRatio(a.w,a.h,a.nodes.length+1);var areaB=rectangle.squarifiedRatio(b.w,b.h,b.nodes.length+1);var highAreaDelta;var highAreaNode;var lowestGrowthGroup;for(var i=nodes.length-1;i>=0;i--){var l=nodes[i];var newAreaA={};newAreaA.x=Math.min(a.x,l.x);newAreaA.y=Math.min(a.y,l.y);newAreaA.w=Math.max(a.x+a.w,l.x+l.w)-newAreaA.x;newAreaA.h=Math.max(a.y+a.h,l.y+l.h)-newAreaA.y;var changeNewAreaA=Math.abs(rectangle.squarifiedRatio(newAreaA.w,newAreaA.h,a.nodes.length+2)-areaA);var newAreaB={};newAreaB.x=Math.min(b.x,l.x);newAreaB.y=Math.min(b.y,l.y);newAreaB.w=Math.max(b.x+b.w,l.x+l.w)-newAreaB.x;newAreaB.h=Math.max(b.y+b.h,l.y+l.h)-newAreaB.y;var changeNewAreaB=Math.abs(rectangle.squarifiedRatio(newAreaB.w,newAreaB.h,b.nodes.length+2)-areaB);if(!highAreaNode||!highAreaDelta||Math.abs(changeNewAreaB-changeNewAreaA)<highAreaDelta){highAreaNode=i;highAreaDelta=Math.abs(changeNewAreaB-changeNewAreaA);lowestGrowthGroup=changeNewAreaB<changeNewAreaA?b:a}}var tempNode=nodes.splice(highAreaNode,1)[0];if(a.nodes.length+nodes.length+1<=minWidth){a.nodes.push(tempNode);rectangle.expandRectangle(a,tempNode)}else if(b.nodes.length+nodes.length+1<=minWidth){b.nodes.push(tempNode);rectangle.expandRectangle(b,tempNode)}else{lowestGrowthGroup.nodes.push(tempNode);rectangle.expandRectangle(lowestGrowthGroup,tempNode)}};var pickLinear=function(nodes){var lowestHighX=nodes.length-1;var highestLowX=0;var lowestHighY=nodes.length-1;var highestLowY=0;var t1,t2;for(var i=nodes.length-2;i>=0;i--){var l=nodes[i];if(l.x>nodes[highestLowX].x){highestLowX=i}else if(l.x+l.w<nodes[lowestHighX].x+nodes[lowestHighX].w){lowestHighX=i}if(l.y>nodes[highestLowY].y){highestLowY=i}else if(l.y+l.h<nodes[lowestHighY].y+nodes[lowestHighY].h){lowestHighY=i}}var dx=Math.abs(nodes[lowestHighX].x+nodes[lowestHighX].w-nodes[highestLowX].x);var dy=Math.abs(nodes[lowestHighY].y+nodes[lowestHighY].h-nodes[highestLowY].y);if(dx>dy){if(lowestHighX>highestLowX){t1=nodes.splice(lowestHighX,1)[0];t2=nodes.splice(highestLowX,1)[0]}else{t2=nodes.splice(highestLowX,1)[0];t1=nodes.splice(lowestHighX,1)[0]}}else{if(lowestHighY>highestLowY){t1=nodes.splice(lowestHighY,1)[0];t2=nodes.splice(highestLowY,1)[0]}else{t2=nodes.splice(highestLowY,1)[0];t1=nodes.splice(lowestHighY,1)[0]}}return[{x:t1.x,y:t1.y,w:t1.w,h:t1.h,nodes:[t1]},{x:t2.x,y:t2.y,w:t2.w,h:t2.h,nodes:[t2]}]};var attachData=function(node,moreTree){node.nodes=moreTree.nodes;node.x=moreTree.x;node.y=moreTree.y;node.w=moreTree.w;node.h=moreTree.h;return node};var searchSubtree=function(rect,returnNode,returnArray,root){var hitStack=[];if(!rectangle.overlapRectangle(rect,root)){return returnArray}hitStack.push(root.nodes);while(hitStack.length>0){var nodes=hitStack.pop();for(var i=nodes.length-1;i>=0;i--){var ltree=nodes[i];if(rectangle.overlapRectangle(rect,ltree)){if(\"nodes\"in ltree){hitStack.push(ltree.nodes)}else if(\"leaf\"in ltree){if(!returnNode){returnArray.push(ltree.leaf)}else{returnArray.push(ltree)}}}}}return returnArray};var insertSubtree=function(node,root){var bc;if(root.nodes.length===0){root.x=node.x;root.y=node.y;root.w=node.w;root.h=node.h;root.nodes.push(node);return}var treeStack=chooseLeafSubtree(node,root);var retObj=node;var pbc;while(treeStack.length>0){if(bc&&\"nodes\"in bc&&bc.nodes.length===0){pbc=bc;bc=treeStack.pop();for(var t=0;t<bc.nodes.length;t++){if(bc.nodes[t]===pbc||bc.nodes[t].nodes.length===0){bc.nodes.splice(t,1);break}}}else{bc=treeStack.pop()}if(\"leaf\"in retObj||\"nodes\"in retObj||Array.isArray(retObj)){if(Array.isArray(retObj)){for(var ai=0;ai<retObj.length;ai++){rectangle.expandRectangle(bc,retObj[ai])}bc.nodes=bc.nodes.concat(retObj)}else{rectangle.expandRectangle(bc,retObj);bc.nodes.push(retObj)}if(bc.nodes.length<=maxWidth){retObj={x:bc.x,y:bc.y,w:bc.w,h:bc.h}}else{var a=linearSplit(bc.nodes);retObj=a;if(treeStack.length<1){bc.nodes.push(a[0]);treeStack.push(bc);retObj=a[1]}}}else{rectangle.expandRectangle(bc,retObj);retObj={x:bc.x,y:bc.y,w:bc.w,h:bc.h}}}};this.insertSubtree=insertSubtree;this.getTree=function(){return rootTree};this.setTree=function(newTree,where){if(!where){where=rootTree}return attachData(where,newTree)};this.search=function(rect,returnNode,returnArray){returnArray=returnArray||[];return searchSubtree(rect,returnNode,returnArray,rootTree)};var removeArea=function(rect){var numberDeleted=1,retArray=[],deleted;while(numberDeleted>0){deleted=removeSubtree(rect,false,rootTree);numberDeleted=deleted.length;retArray=retArray.concat(deleted)}return retArray};var removeObj=function(rect,obj){var retArray=removeSubtree(rect,obj,rootTree);return retArray};this.remove=function(rect,obj){if(!obj||typeof obj===\"function\"){return removeArea(rect,obj)}else{return removeObj(rect,obj)}};this.insert=function(rect,obj){var retArray=insertSubtree({x:rect.x,y:rect.y,w:rect.w,h:rect.h,leaf:obj},rootTree);return retArray}}RTree.prototype.toJSON=function(printing){return JSON.stringify(this.root,false,printing)};RTree.fromJSON=function(json){var rt=new RTree;rt.setTree(JSON.parse(json));return rt};module.exports=RTree;if(typeof Array.isArray!==\"function\"){Array.isArray=function(a){return typeof a===\"object\"&&{}.toString.call(a)===\"[object Array]\"}}},{\"./rectangle\":3}]},{},[2])(2)});","Genoverse.Plugins.controlPanel = function (pluginConf) {\n this.controls = [\n // Scroll left/right\n {\n name : 'Scroll left and right by pressing and holding these buttons',\n buttons : [{\n name : 'Scroll left',\n icon : '<i class=\"fas fa-chevron-left\"></i>',\n 'class' : 'gv-scroll-left'\n }, {\n name : 'Scroll right',\n icon : '<i class=\"fas fa-chevron-right\"></i>',\n 'class' : 'gv-scroll-right'\n }],\n init: function (browser) {\n var el = $(this);\n\n el.find('.gv-scroll-left, .gv-scroll-right').on({\n mousedown : function () { browser.startDragScroll(); },\n mouseup : function () { browser.stopDragScroll(); }\n });\n\n el.find('.gv-scroll-left').mousehold(50, function () {\n browser.move(browser.scrollDelta);\n });\n\n el.find('.gv-scroll-right').mousehold(50, function () {\n browser.move(-browser.scrollDelta);\n });\n }\n },\n\n // Zoom in/out\n {\n name : 'Zoom-in and zoom-out',\n buttons : [{\n name : 'Zoom in',\n icon : '<i class=\"fas fa-search-plus\"></i>',\n 'class' : 'gv-zoom-in',\n action : function (browser) { browser.zoomIn(); }\n }, {\n name : 'Zoom out',\n icon : '<i class=\"fas fa-search-minus\"></i>',\n 'class' : 'gv-zoom-out',\n action : function (browser) { browser.zoomOut(); }\n }]\n },\n\n // Toogle drag action\n {\n name : 'Toggle your mouse drag action between scroll left/right and select region',\n buttons : [{\n name : 'Mouse drag action to scroll the browser left or right',\n icon : '<i class=\"fas fa-arrows-alt-h\"></i>',\n 'class' : 'gv-drag-scroll',\n action : function (browser) {\n browser.setDragAction('scroll');\n $(this).addClass('gv-active').siblings().removeClass('gv-active');\n }\n }, {\n name : 'Mouse drag action to select a region',\n icon : '<i></i>',\n 'class' : 'gv-drag-select',\n action : function (browser) {\n browser.setDragAction('select');\n $(this).addClass('gv-active').siblings().removeClass('gv-active');\n }\n }],\n init: function (browser) {\n $(this).find('.gv-drag-' + browser.dragAction).addClass('gv-active').siblings().removeClass('gv-active');\n }\n },\n\n // Toogle wheel action\n {\n name : 'Toggle your mouse wheel action between zoom in/out and default page scroll',\n buttons : [{\n name : 'Mouse wheel action to scroll the page up and down',\n icon : '<i class=\"fas fa-arrows-alt-v\"></i>',\n 'class' : 'gv-wheel-off',\n action : function (browser) {\n browser.setWheelAction('off');\n $(this).addClass('gv-active').siblings().removeClass('gv-active');\n }\n }, {\n name : 'Mouse wheel to zoom in and out',\n icon : '±',\n 'class' : 'gv-wheel-zoom',\n action : function (browser) {\n browser.setWheelAction('zoom');\n $(this).addClass('gv-active').siblings().removeClass('gv-active');\n }\n }],\n init: function (browser) {\n $(this).find('.gv-wheel-' + browser.wheelAction).addClass('gv-active').siblings().removeClass('gv-active');\n }\n }\n ];\n\n if (this.saveable) {\n this.controls.push({\n icon : '<i class=\"fas fa-undo\"></i>',\n name : 'Reset tracks and configuration',\n action : function (browser) { browser.resetConfig(); }\n });\n }\n\n this.on({\n beforeInit: function () {\n var browser = this;\n\n if (!this.tracksLibrary) {\n this.tracksLibrary = $.grep(this.tracks, function (track) { return track.prototype.name; });\n }\n\n var panel = $(\n '<table cellspacing=0 cellpadding=0 class=\"gv\">' +\n ' <tr>' +\n ' <td class=\"gv-panel gv-panel-left\"></td>' +\n ' <td class=\"gv-canvas-container\"></td>' +\n ' <td class=\"gv-panel gv-panel-right\"></td>' +\n ' </tr>' +\n '</table>'\n ).appendTo(this.container).find('.gv-panel-right');\n\n this.controlPanel = panel;\n this.superContainer = this.container;\n this.container = $('.gv-canvas-container', this.container);\n\n for (var i = 0; i < browser.controls.length; i++) {\n (function (control) {\n var buttonSet = $('<div class=\"gv-button-set\">').attr('title', control.name).appendTo(browser.superContainer.find('.gv-panel-right'));\n var buttons = control.buttons || [ control ];\n\n $.each(buttons, function (j, button) {\n var el = $('<button>' + button.icon + '</button>').addClass(button.class).attr('title', button.name).appendTo(buttonSet);\n\n if (button.action) {\n el.on('click', function () {\n button.action.call(this, browser);\n });\n }\n\n if (button.init && button !== control) {\n button.init.call(el[0], browser);\n }\n });\n\n if (control.init) {\n control.init.call(buttonSet, browser);\n }\n }(browser.controls[i]));\n }\n\n this.superContainer.width(this.width);\n\n // ESC key to toggle crosshair select to drag mode and close menus\n $(document).on('keydown', function (e) {\n if (e.keyCode === 27) {\n if (panel.find('button.gv-drag-select').hasClass('gv-active')) {\n panel.find('button.gv-drag-scroll').trigger('click');\n }\n\n $('.gv-menu .gv-close').trigger('click');\n }\n });\n },\n\n afterInit: function () {\n var browser = this;\n var tracksButton = $('<button class=\"gv-tracks-library-button\" title=\"Tracks menu\"><i class=\"fas fa-bars\"></i> Tracks</button>').on('click', function () {\n var button = this;\n\n function getTrackTags(track, tags) {\n if (track.constructor && track.constructor.ancestor && track.constructor.ancestor.prototype) {\n tags = getTrackTags(track.constructor.ancestor.prototype, tags.concat(track.constructor.ancestor.prototype.tags || []));\n }\n\n return tags;\n }\n\n if ($(this).hasClass('gv-active')) {\n $('.gv-menu.gv-tracks-menu .gv-close').trigger('click');\n $(this).removeClass('gv-active');\n } else {\n var menu = $(this).data('menu');\n\n if (menu) {\n menu.show();\n } else {\n menu = browser.makeMenu({\n 'Currently enabled tracks:' : 'Available tracks:',\n '<div class=\"gv-current-tracks\"></div>' : '<input placeholder=\"Search\"><div class=\"gv-available-tracks\"></div>'\n }).addClass('gv-tracks-menu');\n\n $('input[placeholder=Search]', menu).on('keyup', function () {\n var str = this.value.toLowerCase();\n\n $('.gv-tracks-library-item', menu).each(function () {\n var track = $(this).data('track');\n var match = false;\n\n if (track.name && track.name.toLowerCase().indexOf(str) >= 0) {\n match = true;\n } else {\n var tags = getTrackTags(track, []).concat(track.tags || []);\n\n for (var i = 0; i < tags.length; i++) {\n if (tags[i].toLowerCase().indexOf(str) >= 0) {\n match = true;\n break;\n }\n }\n }\n\n $(this)[match ? 'removeClass' : 'addClass']('gv-hide');\n });\n\n $('.gv-tracks-library-category', menu).each(function () {\n var visibleTracks = $(this).children('.gv-tracks-library-item:not(.gv-hide)');\n\n $(this)[visibleTracks.length ? 'removeClass' : 'addClass']('gv-hide');\n });\n });\n\n $('.gv-close', menu).on('click', function () {\n $(button).removeClass('gv-active');\n });\n\n var availableTracks = $('.gv-available-tracks', menu);\n var currentTracks = $('.gv-current-tracks', menu).before('<div class=\"gv-current-tracks-instructions\">Drag and drop to reorder</div>').data({\n reload : function () { $(this).empty().data('listTracks')(); },\n listTracks : function () {\n for (var i = 0; i < browser.tracks.length; i++) {\n if (browser.tracks[i].name && !(browser.tracks[i].removable === false && browser.tracks[i].unsortable) && !browser.tracks[i].parentTrack && !browser.tracks[i].lockToTrack) {\n (function (track) {\n var el = $('<div class=\"gv-tracks-menu-track\">')\n .append('<span class=\"gv-tracks-menu-track-name\" title=\"' + track.name + '\">' + track.defaultName + '</span>')\n .appendTo(currentTracks)\n .data('track', track)\n .addClass(track.unsortable ? 'gv-unsortable' : '');\n\n if (track.removable === false) {\n el.prepend('<i class=\"gv-remove-track gv-menu-button fas fa-circle\">');\n } else {\n el.prepend($('<i class=\"gv-remove-track gv-menu-button fas fa-times-circle\">').on('click', function () { track.remove(); }));\n }\n\n var trackNameEl = el.find('.gv-tracks-menu-track-name').tipsy({ gravity: 'w', trigger: 'manual' }).on('mouseenter', function () {\n var tip = $(this).tipsy('show').data('tipsy').$tip;\n\n if (tip) {\n tip.css('zIndex', 1002);\n }\n }).on('mouseleave', function () {\n $(this).tipsy('hide');\n });\n\n if (track.name === track.defaultName) {\n trackNameEl.tipsy('disable');\n }\n }(browser.tracks[i]));\n }\n }\n }\n }).sortable({\n items : 'div:not(.gv-unsortable)',\n cursor : 'move',\n axis : 'y',\n handle : 'span',\n update : $.proxy(browser.updateTrackOrder, browser),\n start : function () {\n currentTracks.find('.gv-tracks-menu-track-name').each(function () { $(this).tipsy('hide').tipsy('disable'); });\n },\n stop: function () {\n currentTracks.find('.gv-tracks-menu-track-name').each(function () { $(this).tipsy('enable'); });\n }\n });\n\n currentTracks.data('listTracks')();\n\n if (browser.saveable) {\n $('<div class=\"gv-tracks-menu-reset gv-menu-button\"><i class=\"fas fa-undo\"></i> Reset tracks and configuration</div>').insertAfter(currentTracks).on('click', function (e) {\n e.preventDefault();\n browser.resetConfig();\n });\n }\n\n if (browser.tracksLibrary && browser.tracksLibrary.length) {\n var tracksLibraryCategories = browser.tracksLibrary.filter(function (track) {\n return track.prototype.name && track.prototype.removable !== false;\n }).reduce(\n function (acc, track) {\n var categoryName = track.prototype.category || '';\n\n acc[categoryName] = acc[categoryName] || [];\n acc[categoryName].push([ track.prototype.name.toLowerCase(), track ]);\n\n return acc;\n },\n {}\n );\n\n var tracksLibraryCategoryOrder = ((pluginConf && pluginConf.tracksLibraryCategoryOrder) || []).reduce(\n function (acc, categoryName, i) {\n acc[categoryName] = i + 1;\n return acc;\n },\n {}\n );\n\n Object.keys(tracksLibraryCategories).sort(function (a, b) {\n return (Boolean(b) - Boolean(a)) || (tracksLibraryCategoryOrder[a] - tracksLibraryCategoryOrder[b]) || a.localeCompare(b);\n }).forEach(function (categoryName, i, allCategoryNames) {\n var parentEl = (\n allCategoryNames.length > 1\n ? $('<div class=\"gv-tracks-library-category\">').append(\n $('<div class=\"gv-tracks-library-category-header\">').html(categoryName || 'Other')\n ).appendTo(availableTracks)\n : availableTracks\n );\n\n tracksLibraryCategories[categoryName].sort(function (a, b) {\n return a[0].localeCompare(b[0]);\n }).forEach(\n function (row) {\n var track = row[1];\n\n $('<div class=\"gv-tracks-library-item\">').append(\n $('<i class=\"gv-add-track gv-menu-button fas fa-plus-circle\">').on('click', function () {\n browser.trackIds = browser.trackIds || {};\n browser.trackIds[track.prototype.id] = browser.trackIds[track.prototype.id] || 1;\n\n browser.addTrack(track.extend({ id: track.prototype.id + (browser.tracksById[track.prototype.id] ? browser.trackIds[track.prototype.id]++ : '') }));\n })\n ).append('<span>' + track.prototype.name + '</span>').appendTo(parentEl).data('track', track.prototype);\n }\n );\n });\n }\n\n menu.css({ left: '50%', marginLeft: menu.width() / -2 });\n\n $(this).data('menu', menu);\n }\n\n $(this).addClass('gv-active');\n }\n });\n\n this.labelContainer.prepend(\n $('<li class=\"gv-unsortable\">').append(\n $('<div class=\"gv-button-set\" title=\"Tracks menu\">').append(tracksButton)\n )\n );\n },\n\n afterAddDomElements: function () {\n this.wrapper.after('<div class=\"gv-powered-by\">Powered by <a target=\"_blank\" href=\"https://wtsi-web.github.io/Genoverse/\">Genoverse</a></div>');\n this.superContainer.find('.gv-panel-left').append(this.labelContainer);\n },\n\n 'afterAddTracks afterRemoveTracks': function () {\n var currentTracks = this.superContainer.find('.gv-tracks-menu .gv-current-tracks');\n\n if (currentTracks.length) {\n currentTracks.data('reload').call(currentTracks);\n }\n }\n });\n\n this.on({\n afterSetName: function (name) {\n var track = this.track;\n\n if (track && track.browser) {\n var menu = track.browser.superContainer.find('.gv-tracks-library-button').data('menu');\n\n if (menu) {\n menu.find('.gv-tracks-menu-track').filter(function () {\n return $(this).data('track') === track;\n }).children('.gv-tracks-menu-track-name').attr('title', name).each(function () {\n if (name === track.defaultName) {\n $(this).tipsy('hide').tipsy('disable');\n } else {\n $(this).tipsy('enable');\n }\n });\n }\n }\n }\n }, 'tracks');\n};\n\nGenoverse.Plugins.controlPanel.requires = 'karyotype';\n","Genoverse.Plugins.fileDrop = function () {\n this.on('afterInit', function () {\n var browser = this;\n var wrapper = this.wrapper;\n\n $(window).on('dragenter', function (e) {\n var dataTransfer = e.originalEvent.dataTransfer;\n\n if (dataTransfer && dataTransfer.types && (dataTransfer.types[0] === 'Files' || dataTransfer.types[1] === 'Files' || dataTransfer.types[2] === 'Files') && !$('.gv-file-drop-total-overlay').length) {\n var fileDropDiv = $('<div class=\"gv-file-drop\">').appendTo(wrapper);\n var totalDropOverlay = $('<div class=\"gv-file-drop-total-overlay\">').prependTo('body');\n\n var dragleave = function () {\n fileDropDiv.remove();\n totalDropOverlay.remove();\n };\n\n totalDropOverlay.on('dragenter', function (ev) { ev.preventDefault(); ev.stopPropagation(); });\n totalDropOverlay.on('dragover', function (ev) { ev.preventDefault(); ev.stopPropagation(); });\n totalDropOverlay.on('dragleave', dragleave);\n totalDropOverlay.on('drop', function (ev) {\n dragleave();\n ev.preventDefault();\n ev.stopPropagation();\n\n // Sort in order to ensure that .bam files are before their .bam.bai files\n var files = $.map(ev.originalEvent.dataTransfer.files, function (f) { return f; }).sort(function (a, b) { return a.name.localeCompare(b.name); });\n\n for (var i = 0; i < files.length; i++) {\n var file = files[i];\n var parts = file.name.split('.').reverse();\n var gz = parts[0] === 'gz';\n var ext = parts[gz ? 1 : 0];\n var track = Genoverse.Track.File[ext.toUpperCase()];\n var indexFile;\n\n if (typeof track === 'undefined') {\n return;\n }\n\n if (track.prototype.indexExt && (files[i + 1] || {}).name === file.name + track.prototype.indexExt) {\n indexFile = files[++i];\n }\n\n track = track.extend({\n name : file.name,\n info : 'Local file `' + file.name + '`, size: ' + file.size + ' bytes',\n isLocal : true,\n dataFile : file,\n indexFile : indexFile,\n gz : gz\n });\n\n browser.addTrack(track, browser.tracks.length - 1);\n }\n\n return false;\n });\n }\n });\n });\n};\n","Genoverse.Plugins.focusRegion = function () {\n this.controls.push({\n icon : '<i class=\"fas fa-map-marker-alt\"></i>',\n 'class' : 'gv-button-large',\n name : 'Reset focus to ' + (this.focusRegion && this.focusRegion.name ? this.focusRegion.name : this.chr + ':' + this.start + '-' + this.end),\n action : function (browser) { browser.moveTo(browser.focusRegion.chr, browser.focusRegion.start, browser.focusRegion.end, true); },\n init : function (browser) { browser.focusRegion = browser.focusRegion || { chr: browser.chr, start: browser.start, end: browser.end }; }\n });\n};\n\nGenoverse.Plugins.focusRegion.requires = 'controlPanel';\nGenoverse.Plugins.focusRegion.noCSS = true;\n","Genoverse.Plugins.fullscreen = function () {\n var genoverse = this;\n var supported = true;\n var eventName = 'fullscreenchange'; // All the browsers have different names\n var elemName = 'fullscreenElement'; // ... even the capitalisation varies!\n var requestName = 'requestFullscreen';\n var cancelName = 'exitFullscreen';\n\n if (document.onmsfullscreenchange || document.onmsfullscreenchange === null) {\n // We need the IE11 version of this to work; IE9-10 have the actions but not the events.\n // The key must be present, i.e. value may be null but it must not return undefined\n eventName = 'MSFullscreenChange';\n elemName = 'msFullscreenElement';\n cancelName = 'msExitFullscreen';\n requestName = 'msRequestFullscreen';\n } else if (document.body.mozRequestFullScreen) {\n eventName = 'mozfullscreenchange';\n elemName = 'mozFullScreenElement';\n cancelName = 'mozCancelFullScreen';\n requestName = 'mozRequestFullScreen';\n } else if (document.body.webkitRequestFullscreen) {\n eventName = 'webkitfullscreenchange';\n elemName = 'webkitFullscreenElement';\n cancelName = 'webkitCancelFullScreen';\n requestName = 'webkitRequestFullscreen';\n } else if (!document.onfullscreenchange) {\n supported = false;\n }\n\n genoverse.fullscreenVars = {\n eventName : eventName,\n elemName : elemName,\n cancelName : cancelName,\n requestName : requestName,\n\n enterEvent: function (browser) {\n browser.preFullscreenWidth = browser.superContainer.width();\n browser.superContainer.addClass('gv-fullscreen');\n browser.setWidth(window.innerWidth);\n browser.controlPanel.find('.gv-fullscreen-button .fas').removeClass('fa-expand-arrows-alt').addClass('fa-compress-arrows-alt');\n },\n\n exitEvent: function (browser) {\n if (browser.superContainer.hasClass('gv-fullscreen')) {\n browser.superContainer.removeClass('gv-fullscreen');\n browser.setWidth(browser.preFullscreenWidth);\n browser.controlPanel.find('.gv-fullscreen-button .fas').removeClass('fa-compress-arrows-alt').addClass('fa-expand-arrows-alt');\n }\n },\n\n eventListener: function () {\n if (!genoverse.superContainer.is(document[genoverse.fullscreenVars.elemName])) {\n genoverse.fullscreenVars.exitEvent(genoverse);\n document.removeEventListener(genoverse.fullscreenVars.eventName, genoverse.fullscreenVars.eventListener);\n }\n }\n };\n\n if (supported) {\n genoverse.controls.push({\n icon : '<i class=\"fas fa-expand-arrows-alt\"></i>',\n class : 'gv-fullscreen-button',\n name : 'Toggle fullscreen view',\n action : function (browser) {\n if (browser.superContainer.hasClass('gv-fullscreen')) {\n document[browser.fullscreenVars.cancelName]();\n } else {\n document.addEventListener(browser.fullscreenVars.eventName, browser.fullscreenVars.eventListener);\n browser.superContainer[0][browser.fullscreenVars.requestName]();\n browser.fullscreenVars.enterEvent(browser);\n }\n }\n });\n }\n};\n\nGenoverse.Plugins.fullscreen.requires = 'controlPanel';\n","Genoverse.Plugins.karyotype = function (pluginConf) {\n function createKaryotype() {\n var chromosome = $('<div class=\"gv-chromosome\">');\n var container = $('<div class=\"gv-karyotype-container\">').html(chromosome).insertBefore(this.wrapper);\n var assemblyName = this.assembly || this.genomeName;\n var name = (pluginConf.showAssembly && assemblyName ? assemblyName + ': ' : '') + 'Chr ' + this.chr;\n\n if (pluginConf.showAssembly && assemblyName) {\n container.addClass('gv-show-assembly');\n }\n\n var measureWidth = $('<div class=\"gv-chromosome\"><ul class=\"gv-label-container\"><li><span class=\"gv-name\">' + name + '</span></li></ul></div>').appendTo(container);\n var labelWidth = pluginConf.karyotypeLabel === false ? 0 : measureWidth.find('.gv-name').outerWidth(true) + 10;\n\n measureWidth.remove();\n\n this.karyotype = new Genoverse({\n parent : this,\n container : chromosome,\n width : chromosome.width(),\n genome : this.genome,\n chr : this.chr,\n start : 1,\n end : this.chromosomeSize,\n isStatic : true,\n tracks : [\n Genoverse.Track.Chromosome.extend({\n name : name,\n height : 20,\n featureHeight : 20,\n border : false,\n legend : false,\n unsortable : true,\n\n click: function (e) {\n var offset = this.container.parent().offset().left;\n var x = e.pageX - offset;\n var f = this.featurePositions.search({ x: x, y: 1, w: 1, h: 1 })[0];\n\n if (f) {\n if (e.type === 'mouseup') {\n if (!this.browser.parent.isStatic) {\n this.browser.parent.moveTo(f.chr, f.start, f.end, true);\n }\n } else if (this.hoverFeature !== f && !this.browser.hideTooltip) {\n this.container.tipsy('hide');\n\n if (f.label) {\n var left = offset + f.position[this.scale].start + f.position[this.scale].width / 2;\n this.container.attr('title', f.label[0]).tipsy({ trigger: 'manual', container: 'body' }).tipsy('show').data('tipsy').$tip.css('left', function () { return left - $(this).width() / 2; });\n }\n\n this.hoverFeature = f;\n }\n }\n },\n\n addUserEventHandlers: function () {\n var track = this;\n\n this.base();\n\n this.container.on({\n mousemove : function (e) { track.click(e); },\n mouseout : function (e) {\n if (track.browser.viewPoint.is(e.relatedTarget) || track.browser.viewPoint.find(e.relatedTarget).length) {\n return true;\n }\n\n track.container.tipsy('hide');\n track.hoverFeature = false;\n }\n }, '.gv-image-container');\n\n // Don't allow zooming in and out on the karyotype image\n this.container.on('mousewheel', '.gv-image-container, .gv-selector', function (e) {\n e.stopPropagation();\n });\n },\n\n afterSetName: function () {\n this.label.css('lineHeight', this.label.height() + 'px');\n }\n })\n ],\n\n addUserEventHandlers: $.noop,\n\n afterInit: function () {\n this.updatePosition();\n this.viewPoint.fadeIn();\n },\n\n afterAddTracks: function () {\n this.track = this.tracks[0];\n },\n\n afterAddDomElements: function () {\n var karyotype = this;\n var parent = this.parent;\n\n function hideTooltip() {\n karyotype.hideTooltip = true;\n karyotype.track.prop('container').tipsy('hide');\n }\n\n function updateLocation(e, ui) {\n karyotype.hideTooltip = false;\n\n var scale = karyotype.chromosomeSize / karyotype.width;\n var axis = e.type === 'resizestop' ? $(this).data('ui-resizable').axis : undefined;\n var start = axis === 'e' ? parent.start : Math.max(Math.floor(ui.position.left * scale), 1);\n var end = axis === 'w' ? parent.end : e.type === 'dragstop' ? start + parent.length - 1 : Math.floor(ui.helper.outerWidth(true) * scale) + start;\n\n if (start !== parent.start || end !== parent.end) {\n parent.moveTo(karyotype.chr, start, end, true, e.type === 'dragstop');\n }\n }\n\n if (pluginConf.karyotypeLabel === false) {\n this.labelContainer.remove();\n this.labelContainer = $();\n container.addClass('gv-no-label');\n } else {\n this.labelContainer.width(labelWidth);\n }\n\n this.viewPoint = $('<div class=\"gv-karyotype-viewpoint-wrapper\"><div class=\"gv-karyotype-viewpoint\"></div></div>').appendTo(container).css({\n left : labelWidth,\n width : this.width - labelWidth\n }).children().on({\n mousemove : function (e) { karyotype.track.controller.click(e); },\n mouseout : function (e) {\n var el = $(e.relatedTarget);\n\n if (karyotype.viewPoint.is(el) || karyotype.viewPoint.find(el).length || (el.prop('nodeName') === 'IMG' && el.parent().is(karyotype.track.prop('imgContainers')[0]))) {\n return true;\n }\n\n karyotype.track.prop('container').tipsy('hide');\n karyotype.track.prop('hoverFeature', false);\n }\n });\n\n if (!parent.isStatic) {\n this.viewPoint.draggable({\n axis : 'x',\n containment : this.wrapper,\n start : hideTooltip,\n stop : updateLocation\n }).resizable({\n handles : 'e, w',\n containment : 'parent',\n start : hideTooltip,\n stop : updateLocation,\n resize : function (e, ui) {\n ui.element.css('left', Math.max(0, ui.position.left));\n\n if (ui.position.left > 0) {\n ui.element.width(Math.min(ui.size.width, ui.element.parent().width() - ui.position.left));\n } else {\n ui.element.width(ui.size.width + ui.position.left);\n }\n }\n });\n }\n },\n\n updatePosition: function () {\n var left = this.parent.start * this.scale;\n var width = (this.parent.end * this.scale) - left;\n\n this.viewPoint.css({ left: left, width: width });\n }\n });\n\n if (this.loadedPlugins.controlPanel !== true) {\n $('<li class=\"gv-unsortable\">').height(function (i, h) {\n return h + container.height();\n }).prependTo(this.labelContainer);\n }\n }\n\n function recreateKaryotype() {\n var container = this.karyotype.container.parent();\n\n this.karyotype.destroy();\n container.remove();\n\n createKaryotype.call(this);\n }\n\n this.on({\n afterInit: createKaryotype,\n\n afterSetRange: function () {\n if (this.karyotype) {\n this.karyotype.updatePosition();\n }\n },\n\n afterSetWidth: recreateKaryotype,\n\n afterMoveTo: function (chr) {\n if (this.karyotype && this.karyotype.chr !== chr) {\n recreateKaryotype.call(this);\n }\n }\n });\n};\n","Genoverse.Plugins.resizer = function () {\n this.on('afterSetMVC', 'tracks', function () {\n if (this.prop('resizable') !== true) {\n return;\n }\n\n var track = this;\n var controller = this.controller;\n var resizer = this.prop('resizer');\n var height = this.prop('height');\n\n if (!resizer) {\n resizer = this.prop('resizer', $('<div class=\"gv-resizer gv-static\"><div class=\"gv-handle\"></div></div>').appendTo(track.prop('container')).draggable({\n axis : 'y',\n start : function () { $('body').addClass('gv-dragging'); },\n stop : function (e, ui) {\n $('body').removeClass('gv-dragging');\n controller.resize(track.prop('height') + ui.position.top - ui.originalPosition.top, true);\n $(this).css({ top: 'auto', bottom: 0 }); // returns the resizer to the bottom of the container - needed when the track is resized to 0\n }\n }).on('click', function () {\n var h = track.prop('fullVisibleHeight');\n\n if (h) {\n controller.resize(h, true);\n }\n }));\n }\n\n resizer.css({ width: this.width, left: 0 })[this.prop('autoHeight') ? 'hide' : 'show']();\n\n if (!this.prop('autoHeight') && height - this.prop('margin') === this.prop('featureHeight')) {\n controller.resize(height + resizer.height());\n this.prop('initialHeight', this.prop('height'));\n }\n });\n\n this.on('afterToggleExpander', 'tracks', function () {\n var resizer = this.prop('resizer');\n\n if (resizer) {\n resizer[this.expander && this.expander.is(':visible') ? 'addClass' : 'removeClass']('gv-resizer-expander');\n }\n });\n};\n","// tipsy, facebook style tooltips for jquery\n// version 1.0.0a\n// (c) 2008-2010 jason frame [jason@onehackoranother.com]\n// released under the MIT license\n\nGenoverse.Plugins.tooltips = function () {\n var genoverse = this;\n\n function toggleTooltips(browser, tooltips, action) {\n var offset = browser.superContainer.offset();\n\n tooltips = tooltips || browser.superContainer.find('.gv-tooltip');\n action = action || $(this).toggleClass('gv-active').hasClass('gv-active') ? 'show' : 'hide';\n\n tooltips.each(function () {\n var el = $(this);\n\n if (el.is(':visible')) {\n el.tipsy(action).data('tipsy').$tip.data({ parent: el }).appendTo(browser.superContainer).css({\n marginTop : -offset.top,\n marginLeft : -offset.left\n });\n } else if (el.data('tipsy').$tip) {\n el.tipsy('hide');\n }\n });\n }\n\n function updateTooltips() {\n var tooltips = $();\n\n $.each([\n [ genoverse.labelContainer.find('.gv-handle'), { gravity: 'w', fade: true, trigger: 'manual', fallback: 'Reorder tracks by dragging this handle' }],\n [ genoverse.container.find('.gv-resizer'), { gravity: 'n', fade: true, trigger: 'manual', fallback: 'Resize track by dragging this handle' }]\n ], function () {\n var el = this[0].filter(':visible').first();\n\n if (!el.hasClass('gv-tooltip')) {\n this[0].filter('.gv-tooltip').removeClass('gv-tooltip').tipsy('hide').removeData('tipsy');\n el.tipsy(this[1]).addClass('gv-tooltip');\n }\n\n tooltips = tooltips.add(el);\n });\n\n // Remove any tooltips orphaned by the removal of a track\n genoverse.superContainer.find('.tipsy').not(function () {\n var parent = $(this).data('parent');\n return parent && genoverse.superContainer.find(parent).length;\n }).remove();\n\n if (genoverse.controlPanel.find('.gv-tooltips').hasClass('gv-active')) {\n toggleTooltips(genoverse, tooltips, 'show');\n }\n\n return tooltips;\n }\n\n this.controls.push({\n icon : '<i class=\"fas fa-question-circle\"></i>',\n class : 'gv-tooltips',\n name : 'Tooltips',\n action : toggleTooltips\n });\n\n this.on('afterInit', function () {\n this.superContainer.find('.gv-panel-left .gv-button-set[title]').tipsy({ gravity: 'w', fade: true, trigger: 'manual' }).addClass('gv-tooltip');\n this.superContainer.find('.gv-panel-right .gv-button-set[title]').tipsy({ gravity: 'e', fade: true, trigger: 'manual' }).addClass('gv-tooltip');\n\n // In order to force placement of this tooltip to be inside the superContainer boundaries, and just below the karyotype, create a hidden element, positioned where we want the tooltip to appear\n $('<i class=\"gv-wrapper-tooltip\">').prependTo(this.wrapper).tipsy({\n gravity : 's',\n fade : true,\n trigger : 'manual',\n fallback : 'Scroll left and right by dragging with your mouse, click on any feature in any track for more info'\n }).addClass('gv-tooltip');\n\n updateTooltips();\n });\n\n this.on('beforeSetWidth', function () {\n this.controlPanel.find('.gv-tooltips.gv-active').trigger('click');\n });\n\n this.on('afterSortTracks', function () {\n updateTooltips();\n });\n\n this.on('afterResize', 'tracks', function () {\n updateTooltips();\n });\n};\n\nGenoverse.Plugins.tooltips.requires = 'controlPanel';\n","Genoverse.Plugins.trackControls = function () {\n var defaultControls = [\n $('<a title=\"More info\" class=\"fas fa-question-circle\">').on('click', function () {\n var track = $(this).data('track');\n var menu = track.prop('menus').filter('.gv-track-info');\n\n if (!menu.length) {\n var info = track.prop('info');\n\n menu = { title: track.name };\n menu[typeof info === 'function' ? info.call(track) : info || ''] = '';\n\n menu = track.prop('menus', track.prop('menus').add(track.browser.makeMenu(menu).addClass('gv-track-info')));\n }\n\n menu.show().position({ of: track.prop('container'), at: 'center top', my: 'center top', collision: 'none' });\n }),\n\n $(\n '<a class=\"gv-height-toggle\">' +\n '<i class=\"fas fa-sort\"></i>' +\n '<i class=\"fas fa-sort-down\"></i>' +\n '<i class=\"fas fa-sort-up\"></i>' +\n '</a>'\n ).on({\n click: function () {\n var track = $(this).data('track');\n var height;\n\n if (track.prop('autoHeight', !track.prop('autoHeight'))) {\n track.prop('heightBeforeToggle', track.prop('height'));\n height = track.prop('fullVisibleHeight');\n } else {\n height = track.prop('heightBeforeToggle') || track.prop('initialHeight');\n }\n\n $(this).trigger('toggleState');\n\n track.controller.resize(height, true);\n },\n toggleState: function () { // custom event to set title and change the icon\n var track = $(this).data('track');\n var autoHeight = track.prop('autoHeight');\n var resizer = track.prop('resizer');\n\n this.title = autoHeight ? 'Set track to fixed height' : 'Set track to auto-adjust height';\n $(this)[autoHeight ? 'addClass' : 'removeClass']('gv-auto-height');\n\n if (resizer) {\n resizer[autoHeight ? 'hide' : 'show']();\n }\n }\n })\n ];\n\n var remove = $('<a title=\"Remove track\" class=\"far fa-trash-alt\">').on('click', function () {\n $(this).data('track').remove();\n });\n\n var toggle = $(\n '<a class=\"gv-track-controls-toggle\">' +\n '<span><i class=\"fas fa-angle-double-left\"></i><i class=\"fas fa-cog\"></i></span>' +\n '<span><i class=\"fas fa-angle-double-right\"></i></span>' +\n '</a>'\n ).on('click', function () {\n $(this).parent().toggleClass('gv-maximized');\n });\n\n this.on({\n afterAddDomElements: function () {\n var controls = this.prop('controls');\n\n if (controls === 'off') {\n return;\n }\n\n var defaultConfig = this.prop('defaultConfig');\n var savedConfig = this.browser.savedConfig ? this.browser.savedConfig[this.prop('id')] || {} : {};\n var prop, el, j;\n\n controls = (controls || []).concat(defaultControls, this.prop('removable') === false ? [] : remove);\n\n this.trackControls = $('<div class=\"gv-track-controls\">').prependTo(this.container);\n\n var controlsContainer = $('<div class=\"gv-track-controls-container\">').appendTo(this.trackControls);\n\n for (var i = 0; i < controls.length; i++) {\n if ($.isPlainObject(controls[i]) && controls[i].type) {\n el = $('<' + controls[i].type + '>').data('control', controls[i].name);\n\n if (controls[i].options) {\n for (j = 0; j < controls[i].options.length; j++) {\n el.append('<option value=\"' + controls[i].options[j].value + '\">' + controls[i].options[j].text + '</option>');\n }\n }\n } else if (typeof controls[i] === 'string') {\n el = $(controls[i]);\n } else if (typeof controls[i] === 'object' && controls[i].constructor && controls[i] instanceof $) {\n el = controls[i].clone(true);\n }\n\n el.data('track', this.track).appendTo(controlsContainer);\n\n // TODO: other control types\n if (el.is('select')) {\n prop = el.data('control');\n\n el.find('option[value=' + (savedConfig[prop] || defaultConfig[prop] || 'all') + ']').attr('selected', true).end().change(function () {\n $(this).data('track').setConfig($(this).data('control'), this.value);\n });\n }\n }\n\n this.prop('heightToggler', controlsContainer.children('.gv-height-toggle').trigger('toggleState'));\n\n var toggler = toggle.clone(true).data('track', this.track).appendTo(this.trackControls);\n\n toggler.trigger('click');\n this.minLabelHeight = Math.max(this.minLabelHeight, this.trackControls.outerHeight(true) + this.prop('margin'));\n toggler.trigger('click');\n },\n afterResize: function () {\n if (this.trackControls) {\n this.trackControls[this.prop('height') < this.trackControls.outerHeight(true) ? 'hide' : 'show']();\n }\n },\n afterResetHeight: function () {\n var heightToggler = this.prop('heightToggler');\n\n if (this.prop('resizable') === true && heightToggler) {\n heightToggler[this.prop('autoHeight') ? 'addClass' : 'removeClass']('gv-auto-height');\n heightToggler.trigger('toggleState');\n }\n },\n afterSetMVC: function () {\n var heightToggler = this.prop('heightToggler');\n\n if (heightToggler) {\n heightToggler.trigger('toggleState')[this.prop('resizable') === true ? 'removeClass' : 'addClass']('gv-hide');\n }\n }\n }, 'tracks');\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","'use strict';\n\nglobal.jQuery = global.$ = require(__dirname + '/js/lib/jquery.js');\nrequire(__dirname + '/js/lib/jquery-ui.js');\nrequire(__dirname + '/js/lib/jquery.mousewheel.js');\nrequire(__dirname + '/js/lib/jquery.mousehold.js');\nrequire(__dirname + '/js/lib/jquery.tipsy.js');\n\nglobal.Base = require(__dirname + '/js/lib/Base.js');\nglobal.RTree = require(__dirname + '/js/lib/rtree.js');\nglobal.dallianceLib = require(__dirname + '/js/lib/dalliance-lib.min.js');\nglobal.jDataView = require(__dirname + '/js/lib/jDataView.js');\nglobal.jParser = require(__dirname + '/js/lib/jParser.js');\nglobal.BWReader = require(__dirname + '/js/lib/BWReader.js');\nglobal.VCFReader = require(__dirname + '/js/lib/VCFReader.js');\n\nglobal.Genoverse = require(__dirname + '/js/Genoverse.js');\n\nrequire(__dirname + '/js/Track.js');\n\nrequire(__dirname + '/js/Track/Controller.js');\nrequire(__dirname + '/js/Track/Model.js');\nrequire(__dirname + '/js/Track/View.js');\n\nrequire(__dirname + '/js/Track/library/Static.js');\n\nrequire(__dirname + '/js/Track/Controller/Stranded.js');\nrequire(__dirname + '/js/Track/Model/Stranded.js');\n\nrequire(__dirname + '/js/Track/library/Graph.js');\nrequire(__dirname + '/js/Track/library/Graph/Line.js');\nrequire(__dirname + '/js/Track/library/Graph/Bar.js'); // Graph.Bar depends on Graph.Line\n\nrequire(__dirname + '/js/Track/Controller/Sequence.js');\nrequire(__dirname + '/js/Track/Model/Sequence.js');\nrequire(__dirname + '/js/Track/Model/Sequence/Fasta.js');\nrequire(__dirname + '/js/Track/Model/Sequence/Ensembl.js');\nrequire(__dirname + '/js/Track/View/Sequence.js');\nrequire(__dirname + '/js/Track/View/Sequence/Variation.js');\n\nrequire(__dirname + '/js/Track/Model/SequenceVariation.js');\n\nrequire(__dirname + '/js/Track/Model/Gene.js');\nrequire(__dirname + '/js/Track/Model/Gene/Ensembl.js');\nrequire(__dirname + '/js/Track/View/Gene.js');\nrequire(__dirname + '/js/Track/View/Gene/Ensembl.js');\n\nrequire(__dirname + '/js/Track/Model/Transcript.js');\nrequire(__dirname + '/js/Track/Model/Transcript/Ensembl.js');\nrequire(__dirname + '/js/Track/View/Transcript.js');\nrequire(__dirname + '/js/Track/View/Transcript/Ensembl.js');\n\nrequire(__dirname + '/js/Track/Model/File.js');\nrequire(__dirname + '/js/Track/Model/File/BAM.js');\nrequire(__dirname + '/js/Track/Model/File/BED.js');\nrequire(__dirname + '/js/Track/Model/File/GFF.js');\nrequire(__dirname + '/js/Track/Model/File/VCF.js');\nrequire(__dirname + '/js/Track/Model/File/WIG.js');\n\nrequire(__dirname + '/js/Track/library/Chromosome.js');\nrequire(__dirname + '/js/Track/library/dbSNP.js');\nrequire(__dirname + '/js/Track/library/File.js');\nrequire(__dirname + '/js/Track/library/File/BAM.js');\nrequire(__dirname + '/js/Track/library/File/BED.js');\nrequire(__dirname + '/js/Track/library/File/BIGBED.js');\nrequire(__dirname + '/js/Track/library/File/BIGWIG.js');\nrequire(__dirname + '/js/Track/library/File/GFF.js');\nrequire(__dirname + '/js/Track/library/File/VCF.js');\nrequire(__dirname + '/js/Track/library/File/WIG.js');\nrequire(__dirname + '/js/Track/library/Gene.js');\nrequire(__dirname + '/js/Track/library/HighlightRegion.js');\nrequire(__dirname + '/js/Track/library/Legend.js');\nrequire(__dirname + '/js/Track/library/Scaleline.js');\nrequire(__dirname + '/js/Track/library/Scalebar.js');\n\nrequire(__dirname + '/js/plugins/controlPanel.js');\nrequire(__dirname + '/js/plugins/fileDrop.js');\nrequire(__dirname + '/js/plugins/focusRegion.js');\nrequire(__dirname + '/js/plugins/fullscreen.js');\nrequire(__dirname + '/js/plugins/karyotype.js');\nrequire(__dirname + '/js/plugins/resizer.js');\nrequire(__dirname + '/js/plugins/tooltips.js');\nrequire(__dirname + '/js/plugins/trackControls.js');\n"],"names":["Genoverse","Base","extend","baseURL","undefined","urlParamTemplate","width","longestLabel","defaultLength","defaultScrollDelta","tracks","highlights","plugins","dragAction","wheelAction","isStatic","saveable","saveKey","storageType","autoHideMessages","trackAutoHeight","hideEmptyTracks","genome","useHash","chr","start","end","constructor","config","browser","this","supported","die","container","$","length","appendTo","addClass","data","eventNamespace","id","events","when","ready","loadGenome","loadPlugins","always","wrapFunctions","init","genomeName","toLowerCase","ajax","url","origin","dataType","context","success","Genomes","i","loadPluginsTask","Deferred","loadedPlugins","Plugins","pluginsByName","map","plugin","Array","isArray","reduce","acc","initializePlugin","conf","requires","deferred","call","replace","resolve","concat","pluginName","done","apply","arg","css","js","getCSS","noCSS","on","getScript","pluginsLoaded","arguments","push","addDomElements","addUserEventHandlers","tracksById","prev","legends","initialLocation","window","history","pushState","textWidth","document","createElement","getContext","measureText","labelWidth","labelContainer","outerWidth","Math","min","wrapper","Infinity","paramRegex","RegExp","coords","getCoords","chromosomeSize","size","canChangeChr","loadConfig","addTracks","setRange","addHighlights","defaultTracks","getItem","e","JSON","parse","prop","track","trackId","tracksByNamespace","getAllTrackTypes","savedConfig","setConfig","$track","parseInt","isNaN","prototype","_fromStorage","namespace","trackIds","saveConfig","_constructing","j","Track","Legend","HighlightRegion","order","autoHeight","height","initialHeight","defaultHeight","setItem","stringify","resetConfig","unremovableHighlights","removeHighlights","h","removeItem","removeTracks","menus","sortable","items","handle","axis","helper","cursor","update","proxy","updateTrackOrder","ui","placeholder","item","visibility","html","hide","selector","selectorControls","zoomInHighlight","zoomOutHighlight","clone","toggleClass","documentEvents","hideMessages","which","target","mousedown","delta","deltaX","deltaY","noWheelZoom","mousewheelZoom","startDragScroll","move","stopDragScroll","pos","getSelectorPosition","className","moveTo","cancelSelect","addHighlight","mouseup","mousemove","keydown","keyup","wheelTimeout","clearTimeout","setTimeout","popState","onTracks","mvc","args","func","shift","disabled","_interface","reset","slice","scale","setWidth","controlPanel","superContainer","bind","zoomDeltaTimeout","zoomTimeout","left","pageX","top","pageY","display","animate","complete","offset","moveSelector","dragging","scrolling","dragOffset","dragStart","scrollDelta","max","updateURL","checkTrackHeights","startDragSelect","x","selectorStalled","selectorStart","removeClass","stopDragSelect","outerHeight","find","show","keepDragging","dragSelect","setDragAction","action","keepSelect","hasClass","toggleSelect","setWheelAction","closeMenus","shiftKey","round","minLeft","maxLeft","keepLength","String","floor","center","setScale","scaledStart","labelBuffer","ceil","resetTrackHeights","zoomIn","zoomOut","addTrack","after","defaults","grep","t","insertAfter","sort","a","b","getTrackNamespace","sortTracks","removeTrack","splice","destructor","sorted","labels","containers","position","append","each","diff","next","p","n","o","abs","location","hash","getQueryString","href","match","decodeURIComponent","search","split","tmp","currentLocation","newLocation","indexOf","getChromosomeSize","el","error","failed","menuTemplate","fadeOut","not","makeMenu","features","event","makeFeatureMenu","menu","contentEl","table","remove","model","sortFeatures","feature","title","menuLabel","name","label","join","of","my","collision","add","content","loading","getMenu","isDeferred","linkData","key","columns","colspan","focus","highlight","menuEl","controller","populateMenu","reject","promise","properties","v","color","test","fail","console","obj","filter","children","trigger","fn","once","f","fnString","eventMap","makeEventMap","types","handler","makeFnString","toString","compare","type","destroy","empty","off","src","attr","ancestor","functionWrap","functions","debug","substring","toUpperCase","isBrowser","mainObj","Controller","Model","rtn","currentConfig","_currentConfig","funcs","log","time","base","timeEnd","trackTypes","subtype","namespaces","genoverseLoadOptions","cssReady","fontAwesomeReady","loadCSS","prependTo","loadFontAwesome","module","exports","margin","resizable","border","unsortable","fixedOrder","invert","legend","hideEmpty","stranded","Stranded","models","views","setInterface","setDefaults","setEvents","setLengthMap","setMVC","makeFirstImage","addChildTracks","addLegend","noop","configSettings","defaultConfig","controls","defaultName","configName","defaultAutoHeight","setDefaultConfig","_setCurrentConfig","abort","_defaults","settings","getSettingsForLength","controllerSettings","trackSettings","hasOwnProperty","isEmptyObject","changed","setChrProps","threshold","view","newMVC","object","value","deepCopy","prevLengthMap","mvSettings","prevType","mv","lengthMap","checked","featureHeight","View","setHeight","forceShow","resetHeight","resizer","resize","_config","configChanged","forEach","featureFilters","control","getConfig","featureFilter","Boolean","updateName","child","parentTrack","childTracks","legendTrack","setLabelHeight","now","legendType","shared","makeLegendTrack","changeChr","setName","enable","disable","objs","scrollBuffer","clickTolerance","messages","deferreds","imgRange","scrollRange","resetImages","scrollContainer","resetImageRanges","scrollStart","right","labelName","part","minLabelHeight","parents","imgContainer","messageContainer","click","collapsed","is","code","checkHeight","cookie","parent","y","getClickedFeatures","bounds","w","tolerance","featureBounds","minX","maxX","showMessage","additionalText","msg","fullVisibleHeight","hideMessage","siblings","style","showError","thresholdMessage","visibleFeatureHeight","autoResize","featurePositions","minHeight","bottom","labelTop","labelPositions","toggleExpander","imgContainers","featureMargin","expander","enforceMinHeight","setLabelBuffer","formatLabel","setScaleSettings","k","makeImage","cls","params","labelHeight","tooLarge","div","bgImage","background","image","fadeIn","checkDataRange","buffer","getData","findFeatures","render","renderBackground","images","makeImages","img","positionFeatures","scaleFeatures","featureCanvas","labelCanvas","featureContext","labelContext","font","textAlign","textBaseline","draw","toDataURL","canvas","drawBackground","Location","state","Sequence","makeSeqFeatureMenu","featureMenus","sequence","charAt","_makeImage","strand","featureStrand","makeReverseImage","makeForwardImage","reverseTrack","orderReverse","forwardTrack","_deferredReverseTrackImages","_makeReverseTrackImage","removing","allData","dataBuffer","xhrFields","urlParams","urlParamsGenerator","dataRequestLimit","showServerErrors","featuresById","dataRangesByChr","featuresByChr","dataLoading","dataBufferStart","_url","RTree","dataRanges","parseURL","assembly","receiveData","resolveWith","bins","bin","request","xhr","statusText","responseJSON","message","setDataRange","parseData","insertFeature","updateData","insert","ranges","s","ID","hashCode","subFeatures","unshift","fake","filters","string","charCodeAt","File","isLocal","largeFile","indexFile","dataFile","reader","FileReader","onload","result","readAsText","BAM","bamFile","dallianceLib","URLFetchable","baiFile","rejectWith","BlobFetchable","makeBam","bam","makeBamError","fetch","fetchBamError","readName","seq","BED","fields","len","subfeatures","subfeature","blockSizes","blockStarts","thinFeature","thinFeature1","thinFeature2","thickFeature","lines","thinHeight","thickHeight","filterNumber","originalFeature","score","parseFloat","thickStart","thickEnd","drawThick","scoreColor","blockCount","GFF","text","seqId","source","GTF","VCF","vcfFile","tbiFile","makeVCF","then","vcf","cachedVCF","getRecords","records","VCFReader","readTabix","tabix","maxQual","alleles","allele","labelColor","WIG","Graph","Bar","chrom","step","span","line","Gene","Ensembl","feature_type","external_name","transcripts","chunkSize","chunksByChr","substr","Fasta","startByte","lineLength","getStartByte","endByte","headers","Range","startByteRequest","SequenceVariation","seqModel","getSeqModel","seqData","alt_allele","otherTrack","Transcript","geneIds","seenGenes","ids","d","Parent","logic_name","biotype","cdsStart","cdsEnd","exons","cds","exon","utr","fontHeight","fontFamily","fontWeight","fontColor","minScaledWidth","precisionFactor","widthCorrection","repeatLabels","bump","alwaysReposition","depth","subFeatureJoinStyle","subFeatureJoinLineWidth","scaleSettings","labelUnits","roundPixelValue","positionFeature","X","positioned","H","W","marginRight","Y","marginTop","l","bumpFeature","c","tree","clash","searchResults","visible","labelPosition","drawFeature","legendColor","setFeatureColor","drawSubFeatures","truncateForDrawing","fillStyle","fillRect","clear","clearRect","borderColor","strokeStyle","strokeRect","drawLabel","decorations","decorateFeature","clonedFeature","joinColor","drawSubFeatureJoin","original","untruncated","currentY","spacing","setLabelColor","fillText","shadeColor","percent","R","G","B","truncateSubFeatureJoinForDrawing","lineWidth","beginPath","x1","y1","lineTo","x3","x2","y2","y3","quadraticCurveTo","stroke","xMid","yScale","power","unit","pow","colors","A","T","C","labelColors","lowerCase","labelYOffset","widestLabel","drawSequence","bp","drawLabels","default","showLegend","reference","ref_allele","drawing","snv","highlightSNVs","outlineSNVs","positionX","positionY","highlightColor","setHighlightColor","closePath","globalAlpha","fill","utrHeight","Chromosome","acen","gneg","gpos","gpos100","gpos25","gpos33","gpos50","gpos66","gpos75","gvar","stalk","bands","menuTitle","drawnAcen","chrSize","bezierCurveTo","Position","indexExt","val","BIGBED","bigbedFile","bwReader","getValues","BWReader","BB","BIGWIG","bigwigFile","BW","afterSetMVC","CHROM","POS","REF","ALT","QUAL","FILTER","INFO","highlightRef","heat","red","green","Source","Biotype","setYRange","yMinMaxFromFeatures","afterSetName","getYScale","prevHeight","prevRange","maxDP","r","prevRangeSize","rangeChange","toFixed","visibleFeatures","range","minY","maxY","prepend","before","typeWrapper","featureDataSets","set","datasets","setNames","sets","dataset","list","yAxisLabels","yRange","showZeroY","axesSettings","axisColor","axisLabelColor","scaleLineColor","rescaleableY","rescaleable","isPlainObject","hadController","yAxisPlaceholder","yAxisCanvas","guidelinesCanvas","offsetContainer","drawAxes","wasDisabled","interval","axisContext","linesContext","axisWidth","yZero","values","avg","_features","vals","featuresByDataset","Average","Min","Max","Value","zeroY","setFeatures","binnedFeatures","binStart","marginBottom","binSize","Object","keys","Line","xRange","clickedCoords","m","setCoords","coordPositions","lastBinSize","prevFeature","prevCoords","baseline","arr","binnedCoords","showPopups","colorIndex","removable","seen","Static","setTracks","localeCompare","textColor","xPos","yPos","xScale","xOffest","xOffset","lockToTrack","afterRemoveTracks","afterUpdateTrackOrder","updateOrder","afterPositionFeatures","afterResize","userResize","afterCheckHeight","stringified","Scalebar","minPixPerMajor","majorGuideLine","minorGuideLine","divisions","divisor","majorUnit","fromDigit","toDigit","major","minorUnit","flip","lastLabel","opacity","guideLines","Scaleline","arrowWidth","scaleline","drawnScale","textMargin","strandText","strandWidth","dir","dbSNP","info","colorMap","transcript_ablation","splice_acceptor_variant","splice_donor_variant","stop_gained","frameshift_variant","stop_lost","start_lost","transcript_amplification","inframe_insertion","inframe_deletion","missense_variant","protein_altering_variant","splice_region_variant","incomplete_terminal_codon_variant","stop_retained_variant","synonymous_variant","coding_sequence_variant","mature_miRNA_variant","non_coding_transcript_exon_variant","intron_variant","NMD_transcript_variant","non_coding_transcript_variant","upstream_gene_variant","downstream_gene_variant","TFBS_ablation","TFBS_amplification","TF_binding_site_variant","regulatory_region_ablation","regulatory_region_amplification","feature_elongation","regulatory_region_variant","feature_truncation","intergenic_variant","consequence_type","Consequence","Alleles","pop","populationGenotypes","population_genotypes","population","frequencies","frequency","count","Genotype","genotype","callback","BIG_WIG_MAGIC","BIG_WIG_MAGIC_BE","BIG_BED_MAGIC","BIG_BED_MAGIC_BE","IDXTREE_MAGIC","bbi","fetchedData","cb","fetched","readChromTree","unzoomedDataOffset","chromTreeOffset","ba","Uint8Array","sa","Uint16Array","la","Uint32Array","bpTree","itemsPerBlock","keySize","valueSize","itemCount","read64Bit","chroms","lengths","nodeOffset","idx","fromCharCode","readChromTreeLeaf","unzoomedIndexOffset","Rheader","blockSize","nItems","chrIdxStart","baseStart","chrIdxEnd","baseEnd","endFileOffset","nItemsPerSlot","rootOffset","chromid","query","fetchBlocks","b0","b1","getBlocks","totalSize","fb","blockData","ioffset","bi","uncompressBufSize","inflateBuffer","parser","WiggleParser","BEDParser","outstanding","fetchRTreeKids","level","maxNodeSize","treedata","traverseRTreeKids","node","lo","isLeaf","dataOffset","getRTreeNode","overlaps","startChrom","startBase","endChrom","endBase","findOverlaps","traverseRTree","Int16Array","Int32Array","fa","Float32Array","chromId","blockStart","itemStep","itemSpan","blockType","bbRecord","ch","rest","header","reduction","indexOffset","magic","version","numZoomLevels","fieldCount","definedFieldCount","asOffset","totalSummaryOffset","extHeaderOffset","compressed","summary","extHeader","zoomHeaders","reductionLevel","field_re","headerMatch","exec","as","declType","comment","schema","_instance","_static","_prototyping","proto","klass","implement","valueOf","method","previous","returnValue","toSource","hidden","block","definition","tabi_fmt","string0","n_ref","format","col_seq","col_beg","col_end","meta","skip","l_nm","names","current","chunk","cnk_beg","cnk_end","n_chunk","chunkseq","index","n_bin","binseq","n_intv","intervseq","head","indexseq","bgzf_hd_fmt","id1","id2","cm","flg","mtime","xfl","os","xlen","subheader","si1","si2","slen","bsize","bgzfHd","subhead","inflate","_2p16","tbi","vcf_data","tbi_data","bins2hash","inflateRegion","tabix_buffer","jParser","bhash","ref","beg","chunks","getChunks","vcfThis","loop","record","ebsz","last","byteLength","inner_end","buffer2String","inner_start","rec","cnks","reg2bins","bin2Ranges","V","remove_duplicates","cbfn","blocks","nextBlockOffset","appendBuffers","inflateBlock","blockOffset","getBGZFHD","hdobj","inflated_block","hdSize","buf","bufferVec","resultBuffer","resultBB","objectsArray","usedObjects","so","binid","cnk","cnkseq","was","hufts","checkfn","mode","blens","bb","tb","codes","D","check","write","read","bitb","bitk","inftree","E","subarray","BYTES_PER_ELEMENT","byteOffset","J","inflateInit","next_in","next_in_index","avail_in","next_out","next_out_index","avail_out","g","K","L","M","minv","maxv","F","blob","z","opts","N","O","ArrayBuffer","P","Q","chrToIndex","indexToChr","indices","bai","indexChunks","minBlockIndex","q","u","I","Z","aa","ca","istate","inflateEnd","inflateSync","inflateSetDictionary","inflateReset","total_in","total_out","nowrap","free","wbits","marker","need","adler","proc","_adler","adler32","set_dictionary","da","inflateSyncPoint","sync_point","inflate_flush","inflate_trees_bits","inflate_trees_dynamic","lbits","dbits","ltree","ltree_index","dtree","dtree_index","inflate_fast","tree_index","lit","get","dist","huft_build","hn","initWorkArea","webkitSlice","salted","onloadend","readAsBinaryString","FileReaderSync","readAsArrayBuffer","navigator","userAgent","fetchAsText","getURL","XMLHttpRequest","open","setRequestHeader","onreadystatechange","readyState","status","responseText","credentials","withCredentials","send","salt","resolver","attempt","truncatedLength","timeout","overrideMimeType","responseType","response","mozResponseArrayBuffer","blocksForRange","U","readBamRecords","S","ea","segment","flag","mq","light","seqLength","nextSegment","nextPos","cigar","quals","_littleEndian","wrapBuffer","_isArrayBuffer","_isPixelData","PixelData","CanvasPixelArray","_isDataView","DataView","_isNodeBuffer","TypeError","_offset","_bitOffset","_view","_checkBounds","_engineAction","_dataViewAction","_arrayBufferAction","_arrayAction","hi","NodeBuffer","TextEncoder","TextDecoder","createImageData","Int8","Int16","Int32","Uint8","Uint16","Uint32","Float32","Float64","jDataView","from","Uint64","Number","fromNumber","Int64","create","compatibility","RangeError","_action","getBytes","_setBytes","_getBytes","reverse","setBytes","getString","decode","escape","setString","encode","unescape","encodeURIComponent","getChar","setChar","tell","seek","alignBy","_getFloat64","_getFloat32","_get64","getUint32","getInt64","getUint64","_getInt32","_getUint32","_getInt16","_getUint16","_getInt8","_getUint8","_getBitRangeData","bytes","wideValue","getSigned","getUnsigned","_setBinaryFloat","LN2","_setFloat32","_setFloat64","_set64","setUint32","setInt64","setUint64","_setUint32","_setUint16","_setUint8","setUnsigned","_setInt32","_setInt16","_setInt8","setSigned","inherit","ClonedObject","structure","callee","Error","_bitShift","toInt","Function","all","uint8","getUint8","uint16","getUint16","uint32","uint64","int8","getInt8","int16","getInt16","int32","getInt32","float32","getFloat32","float64","getFloat64","char","array","results","old_position","err","if","predicate","fieldValue","bitSize","byteShift","output","self","cleanData","_data","triggerHandler","widget","Widget","expr","_createWidget","_proto","_childConstructors","options","isFunction","_super","_superApply","widgetEventPrefix","widgetName","widgetFullName","bridge","jquery","pushStack","option","_init","defaultElement","classes","element","uuid","bindings","hoverable","focusable","classesElementLookup","_on","ownerDocument","defaultView","parentWindow","_getCreateOptions","_create","_setOptionDisabled","_trigger","_getCreateEventData","_destroy","_removeClass","removeData","removeAttr","_setOptions","_setOption","_setOptionClasses","_classes","_toggleClass","unique","extra","_untrackClassesElement","inArray","_addClass","guid","_off","_delay","_hoverable","mouseenter","currentTarget","mouseleave","_focusable","focusin","focusout","Event","originalEvent","isDefaultPrevented","effect","duration","delay","effects","easing","queue","nodeType","isWindow","scrollTop","scrollLeft","preventDefault","scrollbarWidth","offsetWidth","clientWidth","getScrollInfo","isDocument","scrollWidth","scrollHeight","getWithinInfo","_","within","at","marginLeft","targetWidth","targetHeight","elemWidth","elemHeight","collisionPosition","collisionWidth","collisionHeight","elem","using","horizontal","vertical","important","fit","flipfit","createPseudo","disableSelection","enableSelection","scrollParent","eq","ie","cancel","distance","_mouseInit","_mouseDown","stopImmediatePropagation","started","_mouseDestroy","_mouseMoveDelegate","_mouseUpDelegate","_mouseMoved","_mouseStarted","_mouseUp","_mouseDownEvent","nodeName","closest","_mouseCapture","mouseDelayMet","_mouseDelayTimer","_mouseDistanceMet","_mouseDelayMet","_mouseStart","_mouseMove","documentMode","button","altKey","ctrlKey","metaKey","ignoreMissingWhich","_mouseDrag","_mouseStop","parentNode","safeActiveElement","activeElement","body","safeBlur","mouse","addClasses","connectToSortable","containment","cursorAt","grid","iframeFix","refreshPositions","revert","revertDuration","scope","scroll","scrollSensitivity","scrollSpeed","snap","snapMode","snapTolerance","stack","zIndex","drag","stop","_setPositionRelative","_setHandleClassName","_removeHandleClassName","destroyOnClear","_getHandle","_blurActiveElement","_blockFrames","iframeBlocks","_unblockFrames","_createHelper","_cacheHelperProportions","ddmanager","_cacheMargins","cssPosition","offsetParent","hasFixedAncestor","positionAbs","_refreshOffsets","originalPosition","_generatePosition","originalPageX","originalPageY","_adjustOffsetFromHelper","_setContainment","_clear","dropBehaviour","prepareOffsets","margins","_getParentOffset","relative","_getRelativeOffset","_convertPositionTo","_uiHash","drop","dropped","dragStop","handleElement","helperProportions","_isRootNode","tagName","contains","relativeContainer","offsetHeight","cancelHelperRemoval","sortables","isOver","_storedCSS","_helper","_intersectsWith","containerCache","_parent","currentItem","fromOutside","_revert","_cursor","_opacity","scrollParentNotHidden","overflowOffset","snapElements","snapping","release","snapItem","makeArray","_zIndex","draggable","alsoResize","animateDuration","animateEasing","aspectRatio","autoHide","ghost","handles","maxHeight","maxWidth","minWidth","_num","_isNumber","_hasScroll","_aspectRatio","originalElement","_proportionallyResizeElements","wrap","elementIsWrapper","originalResizeStyle","zoom","_proportionallyResize","_setupHandles","_handles","resizing","_removeHandles","se","sw","ne","nw","trim","_renderAxis","first","_renderProxy","originalSize","sizeDiff","originalMousePosition","_propagate","_change","_updatePrevProperties","_updateVirtualBoundaries","_updateRatio","_respectSize","_updateCache","_applyChanges","prevPosition","prevSize","_vBoundaries","_getPaddingPlusBorderDimensions","outerDimensions","elementOffset","containerElement","containerOffset","containerPosition","parentData","containerSize","innerHeight","innerWidth","uiBackCompat","removeChild","connectWith","dropOnEmpty","forcePlaceholderSize","forceHelperSize","activate","beforeStop","change","deactivate","out","over","receive","_isOverAxis","_isFloating","refresh","instance","reverting","_refreshItems","addBack","_removeCurrentsFromItems","currentContainer","domPosition","_createPlaceholder","storedCursor","storedStylesheet","_storedOpacity","_storedZIndex","_preserveHelperProportions","lastPositionAbs","_intersectsWithPointer","direction","_intersectsWithSides","_rearrange","_contactContainers","_noFinalSort","serialize","_getItemsAsjQuery","connected","attribute","expression","toArray","forcePointerForContainers","floating","_getDragVerticalDirection","_getDragHorizontalDirection","_connectWith","toleranceElement","custom","refreshContainers","_createTrPlaceholder","appendChild","insertBefore","nextSibling","counter","sender","getPrototypeOf","flat","nonce","noModule","getAttribute","setAttribute","merge","prevObject","even","odd","expando","random","isReady","globalEval","support","Symbol","iterator","Date","ue","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","ee","te","re","oe","ae","be","childNodes","getElementById","getElementsByTagName","getElementsByClassName","qsa","ye","xe","querySelectorAll","removeAttribute","cacheLength","le","ce","fe","attrHandle","pe","sourceIndex","de","he","ge","isDisabled","ve","isXML","namespaceURI","documentElement","setDocument","addEventListener","attachEvent","attributes","createComment","getById","getElementsByName","getAttributeNode","innerHTML","matchesSelector","matches","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","sortDetached","specified","uniqueSort","detectDuplicates","sortStable","getText","textContent","firstChild","nodeValue","selectors","preFilter","lastChild","uniqueID","pseudos","setFilters","has","lang","root","hasFocus","tabIndex","enabled","selected","selectedIndex","input","lt","gt","nth","radio","checkbox","file","password","submit","me","we","Te","Ce","Ee","tokenize","compile","select","defaultValue","isXMLDoc","escapeSelector","parseHTML","contents","prevAll","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","Callbacks","stopOnFalse","memory","lock","locked","fireWith","fire","fired","pipe","progress","notify","notifyWith","exceptionHook","stackTrace","getStackHook","warn","readyException","removeEventListener","readyWait","doScroll","uid","cache","defineProperty","configurable","access","hasData","_removeData","dequeue","_queueHooks","clearQueue","composed","getRootNode","cur","cssNumber","toggle","createDocumentFragment","checkClone","cloneNode","noCloneChecked","thead","col","tr","td","_default","tbody","tfoot","colgroup","caption","th","optgroup","htmlPrefilter","createTextNode","Se","isTrigger","special","delegateType","stopPropagation","global","triggered","dispatch","bindType","origType","delegateCount","setup","teardown","removeEvent","fix","delegateTarget","preDispatch","handlers","isPropagationStopped","isImmediatePropagationStopped","rnamespace","handleObj","postDispatch","addProp","enumerable","writable","load","noBubble","beforeunload","defaultPrevented","relatedTarget","timeStamp","isSimulated","bubbles","cancelable","changedTouches","detail","eventPhase","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","blur","pointerenter","pointerleave","one","ke","Ae","Ne","je","De","qe","Le","He","_evalUrl","Oe","detach","replaceWith","replaceChild","replaceAll","Pe","Re","opener","getComputedStyle","Me","Ie","We","getPropertyValue","pixelBoxStyles","Fe","cssText","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","borderTopWidth","borderBottomWidth","Be","$e","_e","ze","cssProps","Ue","Xe","Ve","Ge","letterSpacing","Ye","Qe","Je","getClientRects","Ke","cssHooks","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineHeight","orphans","widows","setProperty","isFinite","getBoundingClientRect","padding","expand","Tween","propHooks","run","fx","linear","swing","cos","PI","Ze","et","tt","nt","rt","it","ot","requestAnimationFrame","tick","st","ut","tweeners","prefilters","startTime","tweens","props","specialEasing","originalProperties","originalOptions","createTween","timer","anim","Animation","tweener","unqueued","overflow","overflowX","overflowY","prefilter","speed","speeds","old","fadeTo","finish","timers","slideDown","slideUp","slideToggle","fadeToggle","slow","fast","checkOn","optSelected","radioValue","ct","ft","attrHooks","pt","dt","ht","vt","removeProp","propFix","yt","valHooks","mt","xt","simulate","bt","wt","Tt","parseXML","DOMParser","parseFromString","Ct","Et","St","kt","At","param","serializeArray","Nt","jt","Dt","qt","Lt","Ht","Ot","Pt","Rt","Mt","It","Wt","dataTypes","Ft","ajaxSettings","flatOptions","active","lastModified","etag","protocol","processData","async","contentType","accepts","xml","json","responseFields","converters","ajaxSetup","ajaxPrefilter","ajaxTransport","statusCode","getResponseHeader","getAllResponseHeaders","mimeType","crossDomain","host","traditional","hasContent","ifModified","beforeSend","dataFilter","getJSON","wrapAll","firstElementChild","wrapInner","unwrap","Bt","$t","cors","username","onerror","onabort","ontimeout","binary","script","scriptAttrs","charset","scriptCharset","_t","zt","Ut","jsonp","jsonpCallback","createHTMLDocument","implementation","animated","setOffset","pageYOffset","pageXOffset","scrollTo","Height","Width","unbind","delegate","undelegate","hover","Xt","holdReady","parseJSON","camelCase","isNumeric","Vt","jQuery","Gt","noConflict","mousehold","fireStep","ctr","setInterval","clearMousehold","clearInterval","mouseout","fixHooks","mouseHooks","orgEvent","wheelDelta","HORIZONTAL_AXIS","wheelDeltaY","wheelDeltaX","mousewheel","onmousewheel","unmousewheel","maybeCall","thing","ctx","Tipsy","$element","fixTitle","getTitle","$tip","tip","tp","actualWidth","actualHeight","gravity","fade","fallback","validate","toggleEnabled","tipsy","ele","elementOptions","live","binder","eventIn","eventOut","hoverState","delayIn","delayOut","revalidate","pointee","isElementInDOM","metadata","autoNS","autoWE","autoBounds","prefer","ns","ew","boundTop","boundLeft","$this","_dereq_","rectangle","bbox","ar","leaf","temp","geoJSON","insertSubtree","geometry","coordinates","geos","geometries","makeRec","prelim","that","point","multiPointLineString","multiLineStringPolygon","multiPolygon","geometryCollection","geojson","Rectangle","overlap","nx","ny","ax","ay","ax2","ay2","overlapRectangle","containsRectangle","expandRectangle","axw","bxw","ayh","byh","makeMBR","nodes","rect","squarifiedRatio","lperi","larea","rootTree","flatten","todo","removeSubtree","hitStack","countStack","retArray","retObj","searchSubtree","chooseLeafSubtree","bestChoiceArea","bestChoiceIndex","bestChoiceStack","oldLRatio","nh","lratio","linearSplit","pickLinear","pickNext","highAreaDelta","highAreaNode","lowestGrowthGroup","areaA","areaB","newAreaA","changeNewAreaA","newAreaB","changeNewAreaB","tempNode","t1","t2","lowestHighX","highestLowX","lowestHighY","highestLowY","attachData","moreTree","returnNode","returnArray","bc","pbc","treeStack","ai","getTree","setTree","newTree","where","removeArea","deleted","numberDeleted","removeObj","toJSON","printing","fromJSON","pluginConf","icon","beforeInit","tracksLibrary","panel","buttonSet","class","afterInit","tracksButton","getTrackTags","tags","str","visibleTracks","availableTracks","currentTracks","reload","listTracks","trackNameEl","tracksLibraryCategories","categoryName","category","tracksLibraryCategoryOrder","allCategoryNames","parentEl","row","afterAddDomElements","fileDrop","dataTransfer","fileDropDiv","totalDropOverlay","dragleave","ev","files","parts","gz","ext","focusRegion","fullscreen","genoverse","eventName","elemName","requestName","cancelName","onmsfullscreenchange","mozRequestFullScreen","webkitRequestFullscreen","onfullscreenchange","fullscreenVars","enterEvent","preFullscreenWidth","exitEvent","eventListener","karyotype","createKaryotype","chromosome","assemblyName","showAssembly","measureWidth","karyotypeLabel","hoverFeature","hideTooltip","viewPoint","updatePosition","afterAddTracks","updateLocation","recreateKaryotype","afterSetRange","afterSetWidth","afterMoveTo","tooltips","toggleTooltips","updateTooltips","trackControls","defaultControls","toggleState","controlsContainer","toggler","afterResetHeight","heightToggler","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","globalThis"],"sourceRoot":""}
|