grnsight 4.0.0 → 6.0.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/.travis.yml +3 -1
- package/GRNsight - Beta.html +194 -0
- package/Gemfile.lock +259 -0
- package/README.md +2 -2
- package/_gh_pages/about.html +360 -45
- package/_gh_pages/assets/css/footer.css +3 -0
- package/_gh_pages/assets/css/main.css +28 -14
- package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_estimation_output_binary-no-targetless-genes_sif.png +0 -0
- package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_estimation_output_binary_sif.png +0 -0
- package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_graphml_3-edges-and-footer.png +0 -0
- package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_graphml_header-and-3-nodes.png +0 -0
- package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_graphml_output_3-edges-and-footer.png +0 -0
- package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_graphml_output_header-and-3-nodes.png +0 -0
- package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_input_binary-no-targetless-genes_sif.png +0 -0
- package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_input_binary_sif.png +0 -0
- package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_input_concatenated-no-targetless-genes_sif.png +0 -0
- package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_input_concatenated_sif.png +0 -0
- package/_gh_pages/assets/images/Choe-Shin_CMSI402-poster-session_20180430.jpg +0 -0
- package/_gh_pages/assets/images/Choe_SCCUR_2017.jpg +0 -0
- package/_gh_pages/assets/images/Dahlquist-Choe-Shin_CMSI402-poster-session_20180430.jpg +0 -0
- package/_gh_pages/assets/images/Dionisio-Dahlquist_GRNsight-shades_20170506.jpg +0 -0
- package/_gh_pages/assets/images/Klein_Samdarshi_TriBeta_2018_20180317.jpg +0 -0
- package/_gh_pages/assets/images/Shin_SCCUR_2017.jpg +0 -0
- package/{documents/manuscripts/peerj-computerscience-2016/figures/submitted-versions/Figure1_zoom145_900pix-wide.png → _gh_pages/assets/images/demo-3_network-sheet.png} +0 -0
- package/{documents/manuscripts/peerj-computerscience-2016/figures/submitted-versions/Figure2_zoom145_900pix-wide.png → _gh_pages/assets/images/demo-4_network-optimized-weights-sheet.png} +0 -0
- package/_gh_pages/assets/images/gene-pages-0.png +0 -0
- package/_gh_pages/assets/images/gene-pages-1.png +0 -0
- package/_gh_pages/assets/images/gene-pages-2.png +0 -0
- package/_gh_pages/assets/images/gene-pages-3.png +0 -0
- package/_gh_pages/assets/images/grnsight2020.png +0 -0
- package/_gh_pages/assets/images/v3demo2-grid+nodecoloring.png +0 -0
- package/_gh_pages/assets/images/v3demo2-nodecoloring.png +0 -0
- package/_gh_pages/assets/images/v3demo2.png +0 -0
- package/_gh_pages/assets/js/ga-report.js +11 -11
- package/_gh_pages/assets/js/iframeResizer.min.js +9 -0
- package/_gh_pages/assets/js/main.js +43 -43
- package/_gh_pages/beta.html +29 -24
- package/_gh_pages/contact.html +31 -31
- package/_gh_pages/coverage/coverage.json +1 -0
- package/_gh_pages/coverage/coverage.raw.json +1 -0
- package/_gh_pages/coverage/lcov-report/base.css +223 -0
- package/_gh_pages/coverage/lcov-report/block-navigation.js +63 -0
- package/_gh_pages/coverage/lcov-report/controllers/additional-sheet-parser.js.html +330 -0
- package/_gh_pages/coverage/lcov-report/controllers/constants.js.html +243 -0
- package/_gh_pages/coverage/lcov-report/controllers/export-controller.js.html +285 -0
- package/_gh_pages/coverage/lcov-report/controllers/exporters/graphml.js.html +405 -0
- package/_gh_pages/coverage/lcov-report/controllers/exporters/index.html +110 -0
- package/_gh_pages/coverage/lcov-report/controllers/exporters/sif.js.html +150 -0
- package/_gh_pages/coverage/lcov-report/controllers/helpers.js.html +114 -0
- package/_gh_pages/coverage/lcov-report/controllers/import-controller.js.html +233 -0
- package/_gh_pages/coverage/lcov-report/controllers/importers/graphml.js.html +716 -0
- package/_gh_pages/coverage/lcov-report/controllers/importers/index.html +106 -0
- package/_gh_pages/coverage/lcov-report/controllers/importers/sif.js.html +488 -0
- package/_gh_pages/coverage/lcov-report/controllers/index.html +162 -0
- package/_gh_pages/coverage/lcov-report/controllers/semantic-checker.js.html +810 -0
- package/_gh_pages/coverage/lcov-report/controllers/spreadsheet-controller.js.html +1779 -0
- package/_gh_pages/coverage/lcov-report/index.html +136 -0
- package/_gh_pages/coverage/lcov-report/prettify.css +1 -0
- package/_gh_pages/coverage/lcov-report/prettify.js +1 -0
- package/_gh_pages/coverage/lcov-report/server/controllers/additional-sheet-parser.js.html +330 -0
- package/_gh_pages/coverage/lcov-report/server/controllers/constants.js.html +243 -0
- package/_gh_pages/coverage/lcov-report/server/controllers/export-controller.js.html +285 -0
- package/_gh_pages/coverage/lcov-report/server/controllers/exporters/graphml.js.html +405 -0
- package/_gh_pages/coverage/lcov-report/server/controllers/exporters/index.html +110 -0
- package/_gh_pages/coverage/lcov-report/server/controllers/exporters/sif.js.html +150 -0
- package/_gh_pages/coverage/lcov-report/server/controllers/graphml-constants.js.html +585 -0
- package/_gh_pages/coverage/lcov-report/server/controllers/helpers.js.html +114 -0
- package/_gh_pages/coverage/lcov-report/server/controllers/import-controller.js.html +237 -0
- package/_gh_pages/coverage/lcov-report/server/controllers/importers/graphml.js.html +585 -0
- package/_gh_pages/coverage/lcov-report/server/controllers/importers/index.html +110 -0
- package/_gh_pages/coverage/lcov-report/server/controllers/importers/sif.js.html +492 -0
- package/_gh_pages/coverage/lcov-report/server/controllers/index.html +188 -0
- package/_gh_pages/coverage/lcov-report/server/controllers/semantic-checker.js.html +810 -0
- package/_gh_pages/coverage/lcov-report/server/controllers/spreadsheet-controller.js.html +1779 -0
- package/_gh_pages/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/_gh_pages/coverage/lcov-report/sorter.js +158 -0
- package/_gh_pages/coverage/lcov-report/web-client/public/js/grnstate.js.html +225 -0
- package/_gh_pages/coverage/lcov-report/web-client/public/js/index.html +97 -0
- package/_gh_pages/coverage/lcov.info +49 -0
- package/_gh_pages/documentation.html +998 -320
- package/_gh_pages/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.aux +47 -0
- package/_gh_pages/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.bbl +73 -0
- package/_gh_pages/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.blg +52 -0
- package/_gh_pages/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.log +1056 -0
- package/_gh_pages/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.out +7 -0
- package/_gh_pages/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.synctex.gz +0 -0
- package/_gh_pages/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_manuscript_2016_text-only_revised-Dondi.docx +0 -0
- package/_gh_pages/encryption/server.cert +21 -0
- package/_gh_pages/encryption/server.key +28 -0
- package/_gh_pages/favicon.ico +0 -0
- package/_gh_pages/index.html +45 -22
- package/_gh_pages/links.html +47 -28
- package/_gh_pages/news.html +103 -21
- package/_gh_pages/onlyfooter.html +78 -0
- package/_gh_pages/onlyheader.html +64 -0
- package/_gh_pages/onlysidebar.html +73 -0
- package/_gh_pages/package-lock.json +14048 -0
- package/_gh_pages/people.html +129 -40
- package/_gh_pages/privacy.html +23 -17
- package/_gh_pages/publications.html +75 -33
- package/_gh_pages/robots.txt +1 -0
- package/_gh_pages/sitemap.xml +87 -74
- package/_gh_pages/test-files/import-samples/attributes.graphml +40 -0
- package/_gh_pages/test-files/import-samples/port.graphml +32 -0
- package/_gh_pages/test-files/import-samples/simple.graphml +31 -0
- package/_gh_pages/web-client/public/js/grnsight.min.js +2347 -0
- package/_gh_pages/web-client/public/stylesheets/grnsight.css +443 -0
- package/coverage/coverage.json +1 -1
- package/coverage/lcov.info +1847 -1142
- package/database/README.md +1 -0
- package/database/network-database/README.md +44 -0
- package/database/network-database/schema.sql +24 -0
- package/database/network-database/scripts/filter_genes.py +76 -0
- package/database/network-database/scripts/generate_network.py +199 -0
- package/database/network-database/scripts/generate_sgd_network_from_yeastract_network.py +120 -0
- package/database/network-database/scripts/loader.py +78 -0
- package/package.json +20 -11
- package/server/app.js +7 -2
- package/server/config/config.js +12 -3
- package/server/controllers/additional-sheet-parser.js +292 -55
- package/server/controllers/constants.js +4 -37
- package/server/controllers/custom-workbook-controller.js +66 -0
- package/server/controllers/demo-workbooks.js +5973 -0
- package/server/controllers/export-constants.js +78 -0
- package/server/controllers/export-controller.js +4 -3
- package/server/controllers/exporters/graphml.js +15 -15
- package/server/controllers/exporters/sif.js +7 -7
- package/server/controllers/exporters/xlsx.js +110 -34
- package/server/controllers/expression-database-controller.js +19 -0
- package/server/controllers/expression-sheet-parser.js +170 -0
- package/server/controllers/graphml-constants.js +0 -17
- package/server/controllers/helpers.js +25 -1
- package/server/controllers/import-controller.js +2 -2
- package/server/controllers/importers/graphml.js +17 -20
- package/server/controllers/importers/sif.js +22 -18
- package/server/controllers/network-database-controller.js +18 -0
- package/server/controllers/network-sheet-parser.js +307 -0
- package/server/controllers/semantic-checker.js +30 -162
- package/server/controllers/sif-constants.js +36 -0
- package/server/controllers/spreadsheet-controller.js +277 -425
- package/server/controllers/workbook-constants.js +521 -0
- package/server/dals/expression-dal.js +122 -0
- package/server/dals/network-dal.js +96 -0
- package/test/additional-sheet-parser-tests.js +147 -38
- package/test/api-tests.js +3 -6
- package/test/errors-adjacency-matrix-modifications.js +30 -29
- package/test/errors-graph-tests.js +4 -4
- package/test/errors-sheet-modifications.js +10 -2
- package/test/export-tests.js +187 -60
- package/test/expression-data-import-tests.js +113 -0
- package/test/grnstate-tests.js +8 -2
- package/test/import-graphml-tests.js +59 -40
- package/test/import-sif-tests.js +50 -37
- package/test/test.js +554 -91
- package/test/warnings-adjacency-matrix-modifications.js +8 -7
- package/test-files/additional-sheet-test-files/optimization-diagnostics-default.xlsx +0 -0
- package/test-files/additional-sheet-test-files/optimization-diagnostics-extraneous-data.xlsx +0 -0
- package/test-files/additional-sheet-test-files/optimization-diagnostics-incorrect-MSE-gene-header.xlsx +0 -0
- package/test-files/additional-sheet-test-files/optimization-diagnostics-incorrect-MSE-header.xlsx +0 -0
- package/test-files/additional-sheet-test-files/optimization-diagnostics-incorrect-column-headers.xlsx +0 -0
- package/test-files/additional-sheet-test-files/optimization-diagnostics-invalid-MSE-data.xlsx +0 -0
- package/test-files/additional-sheet-test-files/optimization-diagnostics-invalid-value.xlsx +0 -0
- package/test-files/additional-sheet-test-files/optimization-diagnostics-missing-MSE-data.xlsx +0 -0
- package/test-files/additional-sheet-test-files/optimization-diagnostics-missing-column-headers.xlsx +0 -0
- package/test-files/additional-sheet-test-files/optimization-diagnostics-missing-header.xlsx +0 -0
- package/test-files/additional-sheet-test-files/optimization-diagnostics-unknown-parameter.xlsx +0 -0
- package/test-files/additional-sheet-test-files/optimization-parameters-default.xlsx +0 -0
- package/test-files/additional-sheet-test-files/optimization-parameters-incorrect-headers.xlsx +0 -0
- package/test-files/additional-sheet-test-files/optimization-parameters-invalid-optimization-parameter.xlsx +0 -0
- package/test-files/additional-sheet-test-files/optimization-parameters-missing-headers.xlsx +0 -0
- package/test-files/additional-sheet-test-files/optimization-parameters-unknown-parameter.xlsx +0 -0
- package/test-files/additional-sheet-test-files/two-column-sheets-extraneous-data.xlsx +0 -0
- package/test-files/additional-sheet-test-files/two-column-sheets-incorrect-cell-A1.xlsx +0 -0
- package/test-files/additional-sheet-test-files/two-column-sheets-incorrect-column-header.xlsx +0 -0
- package/test-files/additional-sheet-test-files/two-column-sheets-invalid-gene-length.xlsx +0 -0
- package/test-files/additional-sheet-test-files/two-column-sheets-invalid-gene-type.xlsx +0 -0
- package/test-files/additional-sheet-test-files/two-column-sheets-invalid-value.xlsx +0 -0
- package/test-files/additional-sheet-test-files/two-column-sheets-missing-column-header.xlsx +0 -0
- package/test-files/additional-sheet-test-files/two-column-sheets-special-character.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/asymmetric-gene-order-input.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/asymmetric-gene-order-output.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/extra-column-adjacent-input.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/extra-column-adjacent-output.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/extra-column-end-of-sheet-input.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/extra-column-end-of-sheet-output.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/extra-data-random-cell-both-output.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/extra-data-random-cell-network-only-input.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/extra-data-random-cell-network-only-output.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/extra-data-random-cell-network-optimized-only-output.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/extra-row-end-of-sheet-input.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/extra-row-end-of-sheet-output.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/incorrect-network-cell-A1.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/missing-column-end-input.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/missing-column-end-output.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/missing-data-input.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/missing-data-output.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/missing-row-end-input.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/missing-row-end-output.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/missing-row-middle-input.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/missing-row-middle-output.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/missing-value-bottom-corner-input.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/missing-value-bottom-corner-output.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/value-replaced-w-spaces-both-output.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/value-replaced-w-spaces-net-only-input.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/value-replaced-w-spaces-net-op-only-output.xlsx +0 -0
- package/test-files/adjacency-matrix-modifications/value-replaced/342/200/223w-spaces-net-only-output.xlsx +0 -0
- package/test-files/demo-files/15-genes_28-edges_db5_Dahlquist-data_estimation_output.xlsx +0 -0
- package/test-files/demo-files/15-genes_28-edges_db5_Dahlquist-data_input.xlsx +0 -0
- package/test-files/expression-data-test-sheets/expression_sheet_correct_numbering.xlsx +0 -0
- package/test-files/expression-data-test-sheets/expression_sheet_different_number_of_columns.xlsx +0 -0
- package/test-files/expression-data-test-sheets/expression_sheet_empty_column.xlsx +0 -0
- package/test-files/expression-data-test-sheets/expression_sheet_empty_row.xlsx +0 -0
- package/test-files/expression-data-test-sheets/expression_sheet_erroneous_data.xlsx +0 -0
- package/test-files/expression-data-test-sheets/expression_sheet_extra_gene_name.xlsx +0 -0
- package/test-files/expression-data-test-sheets/expression_sheet_incorrectly_ordered_time_points.xlsx +0 -0
- package/test-files/expression-data-test-sheets/expression_sheet_mismatched_case_gene_names.xlsx +0 -0
- package/test-files/expression-data-test-sheets/expression_sheet_mismatched_gene_names.xlsx +0 -0
- package/test-files/expression-data-test-sheets/expression_sheet_missing_column_header.xlsx +0 -0
- package/test-files/expression-data-test-sheets/expression_sheet_missing_data_error.xlsx +0 -0
- package/test-files/expression-data-test-sheets/expression_sheet_missing_data_ok.xlsx +0 -0
- package/test-files/expression-data-test-sheets/expression_sheet_missing_data_ok_export_exact.xlsx +0 -0
- package/test-files/expression-data-test-sheets/expression_sheet_missing_gene_name.xlsx +0 -0
- package/test-files/expression-data-test-sheets/expression_sheet_name_not_in_optparams.xlsx +0 -0
- package/test-files/expression-data-test-sheets/expression_sheet_name_not_present.xlsx +0 -0
- package/test-files/expression-data-test-sheets/expression_sheet_negative_time_points.xlsx +0 -0
- package/test-files/expression-data-test-sheets/expression_sheet_non_numerical_time_points.xlsx +0 -0
- package/test-files/expression-data-test-sheets/expression_sheet_not_existing.xlsx +0 -0
- package/test-files/expression-data-test-sheets/expression_sheet_wrong_id_label.xlsx +0 -0
- package/test-files/expression-data-test-sheets/expression_sheet_wrong_order_gene_names.xlsx +0 -0
- package/test-files/expression-data-test-sheets/expression_sheet_wrong_sheet_name_case.xlsx +0 -0
- package/test-files/expression-data-test-sheets/expression_sheet_wrong_sheet_name_convention.xlsx +0 -0
- package/test-files/gene-name-modifications/NaN-as-gene-name-input.xlsx +0 -0
- package/test-files/gene-name-modifications/NaN-as-gene-name-output.xlsx +0 -0
- package/test-files/gene-name-modifications/mismatched-case-related-input.xlsx +0 -0
- package/test-files/gene-name-modifications/mismatched-case-related-output.xlsx +0 -0
- package/test-files/gene-name-modifications/mismatched-case-unrelated-input.xlsx +0 -0
- package/test-files/gene-name-modifications/mismatched-case-unrelated-output.xlsx +0 -0
- package/test-files/graph-tests/different-sized-networks/{80-genes-0-edges.xlsx → 134-genes-0-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{45-genes-max-edges.xlsx → 44-source-genes-45-target-genes-max-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{1-gene-0-edges.xlsx → unused-files/1-gene-0-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{1-gene-1-edges.xlsx → unused-files/1-gene-1-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{10-genes-50-edges.xlsx → unused-files/10-genes-50-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{10-genes-90-edges.xlsx → unused-files/10-genes-90-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{100-genes-0-edges.xlsx → unused-files/100-genes-0-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{110-genes-0-edges.xlsx → unused-files/110-genes-0-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{120-genes-0-edges.xlsx → unused-files/120-genes-0-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{130-genes-0-edges.xlsx → unused-files/130-genes-0-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{140-genes-0-edges.xlsx → unused-files/140-genes-0-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{150-genes-10000-edges.xlsx → unused-files/150-genes-10000-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{150-genes-20000-edges.xlsx → unused-files/150-genes-20000-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{150-genes-max-edges.xlsx → unused-files/150-genes-max-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{160-genes-max-edges.xlsx → unused-files/160-genes-max-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{20-genes-max-edges.xlsx → unused-files/20-genes-max-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{25-genes-max-edges.xlsx → unused-files/25-genes-max-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{30-genes-max-edges.xlsx → unused-files/30-genes-max-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{34-genes-0-edges.xlsx → unused-files/34-genes-0-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{34-genes-40-edges.xlsx → unused-files/34-genes-40-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{34-genes-65-edges.xlsx → unused-files/34-genes-65-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{34-genes-90-edges.xlsx → unused-files/34-genes-90-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{5-genes-max-edges.xlsx → unused-files/5-genes-max-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{51-genes-max-edges.xlsx → unused-files/51-genes-max-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{52-genes-max-edges.xlsx → unused-files/52-genes-max-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{55-genes-0-edges.xlsx → unused-files/55-genes-0-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{55-genes-max-edges.xlsx → unused-files/55-genes-max-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{65-genes-0-edges.xlsx → unused-files/65-genes-0-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{7-genes-max-edges.xlsx → unused-files/7-genes-max-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{70-genes-0-edges.xlsx → unused-files/70-genes-0-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{9-genes-max-edges.xlsx → unused-files/9-genes-max-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{90-genes-0-edges.xlsx → unused-files/90-genes-0-edges.xlsx} +0 -0
- package/test-files/graph-tests/different-sized-networks/{regulation-matrix-documented-20140709-AllTF-all-targets.xlsx → unused-files/regulation-matrix-documented-20140709-AllTF-all-targets.xlsx} +0 -0
- package/test-files/node-tests/long-gene-name-no-spaces-first.xlsx +0 -0
- package/test-files/node-tests/long-gene-name-no-spaces-second.xlsx +0 -0
- package/test-files/node-tests/long-gene-name-spaces.xlsx +0 -0
- package/test-files/species-test-data/15-genes_28-edges_db5_Dahlquist-data_input_no-species.xlsx +0 -0
- package/test-files/species-test-data/15-genes_28-edges_db5_Dahlquist-data_input_with-species.xlsx +0 -0
- package/test-files/species-test-data/3-gene_7-edge_elegans.xlsx +0 -0
- package/test-files/species-test-data/3-gene_7-edge_melanogaster.xlsx +0 -0
- package/test-files/species-test-data/3-gene_7-edge_musculus.xlsx +0 -0
- package/test-files/species-test-data/3-gene_7-edge_sapiens.xlsx +0 -0
- package/test-files/species-test-data/kev-fake-data-sapiens-no-exp-data.xlsx +0 -0
- package/test-files/spreadsheet-controller-test-files/sheet-name-capitalized-network-optimized-weights.xlsx +0 -0
- package/test-files/spreadsheet-controller-test-files/sheet-name-capitalized-network.xlsx +0 -0
- package/web-client/app.js +1 -1
- package/web-client/controllers/main.js +1 -1
- package/web-client/public/favicon.ico +0 -0
- package/web-client/public/gene/api.js +76 -14
- package/web-client/public/gene/info.js +19 -8
- package/web-client/public/js/api/grnsight-api.js +124 -0
- package/web-client/public/js/constants.js +90 -17
- package/web-client/public/js/createNetwork.js +195 -0
- package/web-client/public/js/graph-statistics.js +7 -7
- package/web-client/public/js/graph.js +369 -324
- package/web-client/public/js/grnsight.js +2 -2
- package/web-client/public/js/grnsight.min.js +128 -59
- package/web-client/public/js/grnstate.js +54 -30
- package/web-client/public/js/iframe-coordination.js +55 -0
- package/web-client/public/js/setup-handlers.js +358 -18
- package/web-client/public/js/setup-load-and-import-handlers.js +105 -66
- package/web-client/public/js/update-app.js +483 -93
- package/web-client/public/js/upload.js +349 -32
- package/web-client/public/js/warnings.js +13 -51
- package/web-client/public/lib/iframeSizer.contentWindow.min.js +10 -0
- package/web-client/public/stylesheets/grnsight.styl +323 -28
- package/web-client/views/components/demo.pug +10 -0
- package/web-client/views/{graph.jade → graph.pug} +0 -0
- package/web-client/views/{info.jade → info.pug} +1 -5
- package/web-client/views/upload.pug +580 -0
- package/_gh_pages/Gemfile +0 -7
- package/_gh_pages/Gemfile.lock +0 -129
- package/documents/SDF/CMSI_402/spring_2014/Southwick_CMSI402_Spring2014_software-development-plan.md +0 -71
- package/documents/SDF/CMSI_402/spring_2014/Southwick_CMSI402_Spring2014_software-requirements-specification.md +0 -71
- package/documents/SDF/CMSI_402/spring_2014/use-case-diagram-spring-2014.jpg +0 -0
- package/documents/SDF/CMSI_402/spring_2017/Anguiano_402_Final_Presentation.pptx +0 -0
- package/documents/SDF/CMSI_402/spring_2017/Anguiano_402_Presentation_Final_Poster.pdf +0 -0
- package/documents/SDF/CMSI_402/spring_2017/Anguiano_CMSI402_Spring2017_project-proposal-presentation.pptx +0 -0
- package/documents/SDF/CMSI_402/spring_2017/Anguiano_CMSI402_Spring2017_project-proposal.docx +0 -0
- package/documents/SDF/CMSI_402/spring_2017/Anguiano_CMSI402_Spring2017_software-development-plan.docx +0 -0
- package/documents/SDF/CMSI_402/spring_2017/Anguiano_CMSI402_Spring2017_software-requirements-specification.docx +0 -0
- package/documents/SDF/CMSI_402/spring_2017/Design Review Presentation.pptx +0 -0
- package/documents/SDF/CMSI_402/spring_2018/0402report.docx +0 -0
- package/documents/SDF/CMSI_402/spring_2018/0409report.docx +0 -0
- package/documents/SDF/CMSI_402/spring_2018/402-gantt.png +0 -0
- package/documents/SDF/CMSI_402/spring_2018/402SRS_GRNSightFeedback01.txt +0 -28
- package/documents/SDF/CMSI_402/spring_2018/402_SPD.md +0 -223
- package/documents/SDF/CMSI_402/spring_2018/ChoeShinCMSI402_Final.pptx +0 -0
- package/documents/SDF/CMSI_402/spring_2018/ProjectProposal.md +0 -22
- package/documents/SDF/CMSI_402/spring_2018/SoftwareRequirementsSpecification.md +0 -88
- package/documents/SDF/CMSI_402/spring_2018/homework/choe_eileen/Choe_Eileen_CMSI 402_HW1.pdf +0 -0
- package/documents/SDF/CMSI_402/spring_2018/homework/choe_eileen/Choe_Eileen_CMSI402_HW2.pdf +0 -0
- package/documents/SDF/CMSI_402/spring_2018/homework/shin_jen/402hw2.docx +0 -0
- package/documents/SDF/CMSI_402/spring_2018/homework/shin_jen/Jen - 402Hw1.docx +0 -0
- package/documents/SDF/CMSI_402/spring_2018/homework/shin_jen/Jen - hw3.docx +0 -0
- package/documents/SDF/CMSI_402/spring_2018/writtenStatusReport.docx +0 -0
- package/documents/SDF/CMSI_402/spring_2018/writtenStatusReport4 +0 -0
- package/documents/abstracts/Anguiano_Varshneya_Undergraduate-Research-Symposium_2017_abstract.pdf +0 -0
- package/documents/abstracts/SIGGRAPH 2017 Abstract/ACM-Reference-Format.bst +0 -3478
- package/documents/abstracts/SIGGRAPH 2017 Abstract/Figure1_zoom100.png +0 -0
- package/documents/abstracts/SIGGRAPH 2017 Abstract/acmart.cls +0 -2352
- package/documents/abstracts/SIGGRAPH 2017 Abstract/acmart.ins +0 -29
- package/documents/abstracts/SIGGRAPH 2017 Abstract/always-weights.png +0 -0
- package/documents/abstracts/SIGGRAPH 2017 Abstract/auto.png +0 -0
- package/documents/abstracts/SIGGRAPH 2017 Abstract/networkA.png +0 -0
- package/documents/abstracts/SIGGRAPH 2017 Abstract/networkB-normalized.png +0 -0
- package/documents/abstracts/SIGGRAPH 2017 Abstract/networkB.png +0 -0
- package/documents/abstracts/SIGGRAPH 2017 Abstract/never-weights.png +0 -0
- package/documents/abstracts/SIGGRAPH 2017 Abstract/representative-image/screenshot.jpg +0 -0
- package/documents/abstracts/SIGGRAPH 2017 Abstract/representative-image/screenshot3x2.png +0 -0
- package/documents/abstracts/SIGGRAPH 2017 Abstract/representative-image/withweights3x2.png +0 -0
- package/documents/abstracts/SIGGRAPH 2017 Abstract/screenshot-auto.png +0 -0
- package/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.bib +0 -85
- package/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.pdf +0 -0
- package/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.tex +0 -235
- package/documents/abstracts/SWE Collegiate Competition 2017.md +0 -9
- package/documents/abstracts/Samdarshi_GRNsight_SoCalSysBio_Abstract_2019.docx +0 -0
- package/documents/abstracts/Varshneya_Samdarshi_Southern-California-Systems-Biology_2017_abstract.docx +0 -0
- package/documents/abstracts/~$mdarshi_SoCalSysBio_Abstract_2019.docx +0 -0
- package/documents/developer_documents/State Diagram.graphml +0 -3525
- package/documents/developer_documents/graphml/State Diagram.graphml +0 -3115
- package/documents/developer_documents/older_versions/GRNsight State Diagram old.png +0 -0
- package/documents/developer_documents/older_versions/GRNsight State Diagram.png +0 -0
- package/documents/developer_documents/testing_script_generator/GRNsightTestingDocument.md +0 -998
- package/documents/developer_documents/testing_script_generator/featureList.json +0 -496
- package/documents/developer_documents/testing_script_generator/testing-script-generator.js +0 -149
- package/documents/manuscripts/peerj-computerscience-2016/GRNsight_PeerJ-CS_conference-presentations_2016.docx +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/GRNsight_PeerJ-CS_manuscript_2016.docx +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/GRNsight_PeerJ-CS_manuscript_2016_Table1.docx +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/GRNsight_PeerJ-CS_manuscript_2016_references.rtf +0 -264
- package/documents/manuscripts/peerj-computerscience-2016/GRNsight_PeerJ-CS_manuscript_2016_text-only.docx +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/21-genes_31-edges_Schade-data_for-screenshots.xlsx +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom100.jpg +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom100.png +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom100.psd +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom145.jpg +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom145.png +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom145.psd +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom145_900pix-wide.psd +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom100.jpg +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom100.png +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom100.psd +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom145.jpg +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom145.png +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom145.psd +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom145_900pix-wide.psd +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5A.pdf +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5B.pdf +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5C.eps +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5D.pdf +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5E.pdf +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5F.eps +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5_compiled.png +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/figures/submitted-versions/Figure3_GRNsight-Architecture.pdf +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/figures/submitted-versions/Figure4_GRNsight-Screenshot.pdf +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/figures/submitted-versions/Figure5_compiled.pdf +12 -5383
- package/documents/manuscripts/peerj-computerscience-2016/peerj-reviewing-10823-v0.pdf +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_conference-presentations_2016_revised.docx +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_cover-letter-and-response_2016.pdf +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_cover-letter_2016.docx +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_cover-letter_2016.pdf +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_manuscript_2016_Table1.docx +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_manuscript_2016_references_revised.rtf +0 -385
- package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_manuscript_2016_text-only_revised.docx +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_manuscript_2016_text-only_revised_marked.docx +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_response-to-reviewers_2016.docx +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_response-to-reviewers_2016.pdf +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/revisions/figures/Figure3_GRNsight-Architecture.pdf +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/revisions/figures/Figure4_GRNsight-Screenshot-auto.pdf +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/revisions/figures/Figure4_GRNsight-Screenshot.pdf +0 -0
- package/documents/manuscripts/peerj-computerscience-2016/revisions/peerj-reviewing-10823-v1.pdf +0 -0
- package/documents/posters/Anguiano_CMSI402_2017.pptx +0 -0
- package/documents/posters/Anguiano_Varshneya_LMU-Symposium_2015.pptx +0 -0
- package/documents/posters/Anguiano_Varshneya_SCCUR_2014.pptx +0 -0
- package/documents/posters/Choe_Shin_CMSI402_2018.pptx +0 -0
- package/documents/posters/Dahlquist-et-al_BOSC_ISMB_2016_poster.pptx +0 -0
- package/documents/posters/Lopez_Filler_LMU_Symposium_2019.pdf +0 -0
- package/documents/posters/Lopez_Filler_LMU_Symposium_2019.pptx +0 -0
- package/documents/posters/Samdarshi-et-al_LMU-Symposium_2017.pptx +0 -0
- package/documents/posters/Samdarshi-et-al_LMU-Symposium_2018.pptx +0 -0
- package/documents/posters/Samdarshi-et-al_SoCalSysBio_2019.pptx +0 -0
- package/documents/posters/Shin-et-al_SCCUR_2017.pptx +0 -0
- package/documents/posters/Southwick_CMSI402_2014.pptx +0 -0
- package/documents/posters/Varshneya_Samdarshi_LMU-Symposium_2016.pptx +0 -0
- package/documents/posters/Varshneya_Samdarshi_SoCalSysBio_2017.pptx +0 -0
- package/documents/presentations/Anguiano_402_Final_Presentation.pptx +0 -0
- package/documents/presentations/Choe_SWERapidFire2017_final.pptx +0 -0
- package/documents/presentations/Dahlquist_BOSC_20160709.pptx +0 -0
- package/documents/presentations/Dahlquist_ExperimentalBiology_20160404_talk.pptx +0 -0
- package/documents/presentations/Dahlquist_SoCalSysBio_20150131_talk.pptx +0 -0
- package/documents/presentations/Samdarshi_LMU-Symposium_20190323_talk.pdf +0 -0
- package/documents/presentations/Samdarshi_LMU-Symposium_20190323_talk.pptx +0 -0
- package/documents/presentations/Southwick_Anguiano_LMU-Symposium_20140329_talk.pptx +0 -0
- package/documents/presentations/Southwick_CMSI402_Presentation_20140508_talk.pptx +0 -0
- package/documents/presentations/Varshneya_Anguiano_LMU-Symposium_201703_talk.pptx +0 -0
- package/documents/reports/Samdarshi_Mihir_2019/Samdarshi_2019_Final.docx +0 -0
- package/documents/reports/Samdarshi_Mihir_2019/Samdarshi_Mihir_2019_AnnotatedBibliography.docx +0 -0
- package/documents/reports/Samdarshi_Mihir_2019/Samdarshi_Mihir_2019_Outline.docx +0 -0
- package/documents/reports/Samdarshi_Mihir_2019/~$mdarshi_2019_Draft.docx +0 -0
- package/documents/reports/Samdarshi_Mihir_2019/~$mdarshi_2019_Final_Paper_Draft.docx +0 -0
- package/documents/reports/Varshneya_Anu_2017/Varshneya-201701-AnnotatedBibliography.docx +0 -0
- package/documents/reports/Varshneya_Anu_2017/Varshneya-201702-Introduction.docx +0 -0
- package/documents/reports/Varshneya_Anu_2017/Varshneya-201702-Outline.docx +0 -0
- package/documents/reports/Varshneya_Anu_2017/Varshneya-201703-Discussion.docx +0 -0
- package/documents/reports/Varshneya_Anu_2017/Varshneya-201703-MMResults.docx +0 -0
- package/documents/reports/Varshneya_Anu_2017/Varshneya-201704-Draft-1.docx +0 -0
- package/documents/reports/Varshneya_Anu_2017/Varshneya-201704-Final.docx +0 -0
- package/onlysidebar.html +0 -8
- package/test/graph-library-tests.js +0 -165
- package/test-files/demo-files/21-genes_50-edges_Dahlquist-data_estimation_output.xlsx +0 -0
- package/test-files/demo-files/21-genes_50-edges_Dahlquist-data_input.xlsx +0 -0
- package/test-files/graph-tests/different-sized-networks/10-genes-max-edges.xlsx +0 -0
- package/test-files/graph-tests/different-sized-networks/12-genes-max-edges.xlsx +0 -0
- package/test-files/graph-tests/different-sized-networks/35-genes-max-edges.xlsx +0 -0
- package/test-files/graph-tests/different-sized-networks/40-genes-0-edges.xlsx +0 -0
- package/test-files/graph-tests/different-sized-networks/40-genes-max-edges.xlsx +0 -0
- package/test-files/graph-tests/different-sized-networks/42-genes-max-edges.xlsx +0 -0
- package/test-files/graph-tests/different-sized-networks/50-genes-max-edges.xlsx +0 -0
- package/test-files/graph-tests/different-sized-networks/75-genes-150-edges.xlsx +0 -0
- package/web-client/public/js/container.js +0 -121
- package/web-client/views/upload.jade +0 -464
|
@@ -82,6 +82,17 @@ eval("module.exports = { \"default\": __webpack_require__(/*! core-js/library/fn
|
|
|
82
82
|
|
|
83
83
|
/***/ }),
|
|
84
84
|
|
|
85
|
+
/***/ "./node_modules/canvg/dist/browser/canvg.min.js":
|
|
86
|
+
/*!******************************************************!*\
|
|
87
|
+
!*** ./node_modules/canvg/dist/browser/canvg.min.js ***!
|
|
88
|
+
\******************************************************/
|
|
89
|
+
/*! no static exports found */
|
|
90
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
91
|
+
|
|
92
|
+
eval("!function(t,e){ true?module.exports=e(__webpack_require__(/*! rgbcolor */ \"./node_modules/rgbcolor/index.js\"),__webpack_require__(/*! stackblur-canvas */ \"./node_modules/stackblur-canvas/dist/stackblur-es.js\")):undefined}(this,function(y,v){\"use strict\";var t;return y=y&&y.hasOwnProperty(\"default\")?y.default:y,v=v&&v.hasOwnProperty(\"default\")?v.default:v,function(t){var l;t.exports;(l=window).DOMParser=window.DOMParser;var c=l.document;function d(t,e){var i;return(i=c.createElement(\"canvas\")).width=t,i.height=e,i}var f,p=function(t,e,i){if(null!=t||null!=e||null!=i){var n=m(i||{});\"string\"==typeof t&&(t=c.getElementById(t)),null!=t.svg&&t.svg.stop(),t.childNodes&&1==t.childNodes.length&&\"OBJECT\"==t.childNodes[0].nodeName||(t.svg=n);var s=t.getContext(\"2d\");void 0!==e.documentElement?n.loadXmlDoc(s,e):\"<\"==e.substr(0,1)?n.loadXml(s,e):n.load(s,e)}else for(var a=c.querySelectorAll(\"svg\"),r=0;r<a.length;r++){var o=a[r],h=c.createElement(\"canvas\");if(void 0!==o.clientWidth&&void 0!==o.clientHeight)h.width=o.clientWidth,h.height=o.clientHeight;else{var l=o.getBoundingClientRect();h.width=l.width,h.height=l.height}o.parentNode.insertBefore(h,o),o.parentNode.removeChild(o);var u=c.createElement(\"div\");u.appendChild(o),p(h,u.innerHTML)}};\"undefined\"==typeof Element||(void 0!==Element.prototype.matches?f=function(t,e){return t.matches(e)}:void 0!==Element.prototype.webkitMatchesSelector?f=function(t,e){return t.webkitMatchesSelector(e)}:void 0!==Element.prototype.mozMatchesSelector?f=function(t,e){return t.mozMatchesSelector(e)}:void 0!==Element.prototype.msMatchesSelector?f=function(t,e){return t.msMatchesSelector(e)}:void 0!==Element.prototype.oMatchesSelector?f=function(t,e){return t.oMatchesSelector(e)}:(\"function\"!=typeof jQuery&&\"function\"!=typeof Zepto||(f=function(t,e){return $(t).is(e)}),void 0===f&&\"undefined\"!=typeof Sizzle&&(f=Sizzle.matchesSelector)));var e=/(\\[[^\\]]+\\])/g,i=/(#[^\\s\\+>~\\.\\[:]+)/g,a=/(\\.[^\\s\\+>~\\.\\[:]+)/g,r=/(::[^\\s\\+>~\\.\\[:]+|:first-line|:first-letter|:before|:after)/gi,o=/(:[\\w-]+\\([^\\)]*\\))/gi,h=/(:[^\\s\\+>~\\.\\[:]+)/g,u=/([^\\s\\+>~\\.\\[:]+)/g;function P(n){var s=[0,0,0],t=function(t,e){var i=n.match(t);null!=i&&(s[e]+=i.length,n=n.replace(t,\" \"))};return n=(n=n.replace(/:not\\(([^\\)]*)\\)/g,\" $1 \")).replace(/{[\\s\\S]*/gm,\" \"),t(e,1),t(i,0),t(a,1),t(r,2),t(o,1),t(h,1),n=(n=n.replace(/[\\*\\s\\+>~]/g,\" \")).replace(/[#\\.]/g,\" \"),t(u,2),s.join(\"\")}function m(s){var D={opts:s,FRAMERATE:30,MAX_VIRTUAL_PIXELS:3e4,rootEmSize:12,emSize:12,log:function(){}};1==D.opts.log&&\"undefined\"!=typeof console&&(D.log=function(t){console.log(t)}),D.init=function(t){var e=0;D.UniqueId=function(){return\"canvg\"+ ++e},D.Definitions={},D.Styles={},D.StylesSpecificity={},D.Animations=[],D.Images=[],D.ctx=t,D.ViewPort=new function(){this.viewPorts=[],this.Clear=function(){this.viewPorts=[]},this.SetCurrent=function(t,e){this.viewPorts.push({width:t,height:e})},this.RemoveCurrent=function(){this.viewPorts.pop()},this.Current=function(){return this.viewPorts[this.viewPorts.length-1]},this.width=function(){return this.Current().width},this.height=function(){return this.Current().height},this.ComputeSize=function(t){return null!=t&&\"number\"==typeof t?t:\"x\"==t?this.width():\"y\"==t?this.height():Math.sqrt(Math.pow(this.width(),2)+Math.pow(this.height(),2))/Math.sqrt(2)}}},D.init(),D.ImagesLoaded=function(){for(var t=0;t<D.Images.length;t++)if(!D.Images[t].loaded)return!1;return!0},D.trim=function(t){return t.replace(/^\\s+|\\s+$/g,\"\")},D.compressSpaces=function(t){return t.replace(/(?!\\u3000)\\s+/gm,\" \")},D.ajax=function(t){var e;return(e=l.XMLHttpRequest?new l.XMLHttpRequest:new ActiveXObject(\"Microsoft.XMLHTTP\"))?(e.open(\"GET\",t,!1),e.send(null),e.responseText):null},D.parseXml=function(e){if(\"undefined\"!=typeof Windows&&void 0!==Windows.Data&&void 0!==Windows.Data.Xml){var t=new Windows.Data.Xml.Dom.XmlDocument,i=new Windows.Data.Xml.Dom.XmlLoadSettings;return i.prohibitDtd=!1,t.loadXml(e,i),t}if(!l.DOMParser)return e=e.replace(/<!DOCTYPE svg[^>]*>/,\"\"),(t=new ActiveXObject(\"Microsoft.XMLDOM\")).async=\"false\",t.loadXML(e),t;try{var n=s.xmldom?new l.DOMParser(s.xmldom):new l.DOMParser;return n.parseFromString(e,\"image/svg+xml\")}catch(t){return(n=s.xmldom?new l.DOMParser(s.xmldom):new l.DOMParser).parseFromString(e,\"text/xml\")}},D.Property=function(t,e){this.name=t,this.value=e},D.Property.prototype.getValue=function(){return this.value},D.Property.prototype.hasValue=function(){return null!=this.value&&\"\"!==this.value},D.Property.prototype.numValue=function(){if(!this.hasValue())return 0;var t=parseFloat(this.value);return(this.value+\"\").match(/%$/)&&(t/=100),t},D.Property.prototype.valueOrDefault=function(t){return this.hasValue()?this.value:t},D.Property.prototype.numValueOrDefault=function(t){return this.hasValue()?this.numValue():parseFloat(t)},D.Property.prototype.addOpacity=function(t){var e=this.value;if(null!=t.value&&\"\"!=t.value&&\"string\"==typeof this.value){var i=new y(this.value);i.ok&&(e=\"rgba(\"+i.r+\", \"+i.g+\", \"+i.b+\", \"+t.numValue()+\")\")}return new D.Property(this.name,e)},D.Property.prototype.getDefinition=function(){var t=this.value.match(/#([^\\)'\"]+)/);return t&&(t=t[1]),t||(t=this.value),D.Definitions[t]},D.Property.prototype.isUrlDefinition=function(){return 0==this.value.indexOf(\"url(\")},D.Property.prototype.getFillStyleDefinition=function(t,e){var i=this.getDefinition();if(null!=i&&i.createGradient)return i.createGradient(D.ctx,t,e);if(null!=i&&i.createPattern){if(i.getHrefAttribute().hasValue()){var n=i.attribute(\"patternTransform\");i=i.getHrefAttribute().getDefinition(),n.hasValue()&&(i.attribute(\"patternTransform\",!0).value=n.value)}return i.createPattern(D.ctx,t,e)}return null},D.Property.prototype.getDPI=function(){return 96},D.Property.prototype.getREM=function(){return D.rootEmSize},D.Property.prototype.getEM=function(){return D.emSize},D.Property.prototype.getUnits=function(){return(this.value+\"\").replace(/[0-9\\.\\-]/g,\"\")},D.Property.prototype.isPixels=function(){if(!this.hasValue())return!1;var t=this.value+\"\";return!!t.match(/px$/)||!!t.match(/^[0-9]+$/)},D.Property.prototype.toPixels=function(t,e){if(!this.hasValue())return 0;var i=this.value+\"\";if(i.match(/rem$/))return this.numValue()*this.getREM(t);if(i.match(/em$/))return this.numValue()*this.getEM(t);if(i.match(/ex$/))return this.numValue()*this.getEM(t)/2;if(i.match(/px$/))return this.numValue();if(i.match(/pt$/))return this.numValue()*this.getDPI(t)*(1/72);if(i.match(/pc$/))return 15*this.numValue();if(i.match(/cm$/))return this.numValue()*this.getDPI(t)/2.54;if(i.match(/mm$/))return this.numValue()*this.getDPI(t)/25.4;if(i.match(/in$/))return this.numValue()*this.getDPI(t);if(i.match(/%$/))return this.numValue()*D.ViewPort.ComputeSize(t);var n=this.numValue();return e&&n<1?n*D.ViewPort.ComputeSize(t):n},D.Property.prototype.toMilliseconds=function(){return this.hasValue()?(this.value+\"\").match(/ms$/)?this.numValue():1e3*this.numValue():0},D.Property.prototype.toRadians=function(){if(!this.hasValue())return 0;var t=this.value+\"\";return t.match(/deg$/)?this.numValue()*(Math.PI/180):t.match(/grad$/)?this.numValue()*(Math.PI/200):t.match(/rad$/)?this.numValue():this.numValue()*(Math.PI/180)};var t={baseline:\"alphabetic\",\"before-edge\":\"top\",\"text-before-edge\":\"top\",middle:\"middle\",central:\"middle\",\"after-edge\":\"bottom\",\"text-after-edge\":\"bottom\",ideographic:\"ideographic\",alphabetic:\"alphabetic\",hanging:\"hanging\",mathematical:\"alphabetic\"};return D.Property.prototype.toTextBaseline=function(){return this.hasValue()?t[this.value]:null},D.Font=new function(){this.Styles=\"normal|italic|oblique|inherit\",this.Variants=\"normal|small-caps|inherit\",this.Weights=\"normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit\",this.CreateFont=function(t,e,i,n,s,a){var r=null!=a?this.Parse(a):this.CreateFont(\"\",\"\",\"\",\"\",\"\",D.ctx.font);return{fontFamily:s=s||r.fontFamily,fontSize:n||r.fontSize,fontStyle:t||r.fontStyle,fontWeight:i||r.fontWeight,fontVariant:e||r.fontVariant,toString:function(){return[this.fontStyle,this.fontVariant,this.fontWeight,this.fontSize,this.fontFamily].join(\" \")}}};var r=this;this.Parse=function(t){for(var e={},i=D.trim(D.compressSpaces(t||\"\")).split(\" \"),n={fontSize:!1,fontStyle:!1,fontWeight:!1,fontVariant:!1},s=\"\",a=0;a<i.length;a++)n.fontStyle||-1==r.Styles.indexOf(i[a])?n.fontVariant||-1==r.Variants.indexOf(i[a])?n.fontWeight||-1==r.Weights.indexOf(i[a])?n.fontSize?\"inherit\"!=i[a]&&(s+=i[a]):(\"inherit\"!=i[a]&&(e.fontSize=i[a].split(\"/\")[0]),n.fontStyle=n.fontVariant=n.fontWeight=n.fontSize=!0):(\"inherit\"!=i[a]&&(e.fontWeight=i[a]),n.fontStyle=n.fontVariant=n.fontWeight=!0):(\"inherit\"!=i[a]&&(e.fontVariant=i[a]),n.fontStyle=n.fontVariant=!0):(\"inherit\"!=i[a]&&(e.fontStyle=i[a]),n.fontStyle=!0);return\"\"!=s&&(e.fontFamily=s),e}},D.ToNumberArray=function(t){for(var e=(t||\"\").match(/-?(\\d+(?:\\.\\d*(?:[eE][+-]?\\d+)?)?|\\.\\d+)(?=\\D|$)/gm)||[],i=0;i<e.length;i++)e[i]=parseFloat(e[i]);return e},D.Point=function(t,e){this.x=t,this.y=e},D.Point.prototype.angleTo=function(t){return Math.atan2(t.y-this.y,t.x-this.x)},D.Point.prototype.applyTransform=function(t){var e=this.x*t[0]+this.y*t[2]+t[4],i=this.x*t[1]+this.y*t[3]+t[5];this.x=e,this.y=i},D.CreatePoint=function(t){var e=D.ToNumberArray(t);return new D.Point(e[0],e[1])},D.CreatePath=function(t){for(var e=D.ToNumberArray(t),i=[],n=0;n<e.length;n+=2)i.push(new D.Point(e[n],e[n+1]));return i},D.BoundingBox=function(t,e,i,n){this.x1=Number.NaN,this.y1=Number.NaN,this.x2=Number.NaN,this.y2=Number.NaN,this.x=function(){return this.x1},this.y=function(){return this.y1},this.width=function(){return this.x2-this.x1},this.height=function(){return this.y2-this.y1},this.addPoint=function(t,e){null!=t&&((isNaN(this.x1)||isNaN(this.x2))&&(this.x1=t,this.x2=t),t<this.x1&&(this.x1=t),t>this.x2&&(this.x2=t)),null!=e&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=e,this.y2=e),e<this.y1&&(this.y1=e),e>this.y2&&(this.y2=e))},this.addX=function(t){this.addPoint(t,null)},this.addY=function(t){this.addPoint(null,t)},this.addBoundingBox=function(t){this.addPoint(t.x1,t.y1),this.addPoint(t.x2,t.y2)},this.addQuadraticCurve=function(t,e,i,n,s,a){var r=t+2/3*(i-t),o=e+2/3*(n-e),h=r+1/3*(s-t),l=o+1/3*(a-e);this.addBezierCurve(t,e,r,h,o,l,s,a)},this.addBezierCurve=function(t,e,i,n,s,a,r,o){var h=[t,e],l=[i,n],u=[s,a],c=[r,o];this.addPoint(h[0],h[1]),this.addPoint(c[0],c[1]);for(var f=0;f<=1;f++){var p=function(t){return Math.pow(1-t,3)*h[f]+3*Math.pow(1-t,2)*t*l[f]+3*(1-t)*Math.pow(t,2)*u[f]+Math.pow(t,3)*c[f]},d=6*h[f]-12*l[f]+6*u[f],m=-3*h[f]+9*l[f]-9*u[f]+3*c[f],y=3*l[f]-3*h[f];if(0!=m){var v=Math.pow(d,2)-4*y*m;if(!(v<0)){var g=(-d+Math.sqrt(v))/(2*m);0<g&&g<1&&(0==f&&this.addX(p(g)),1==f&&this.addY(p(g)));var x=(-d-Math.sqrt(v))/(2*m);0<x&&x<1&&(0==f&&this.addX(p(x)),1==f&&this.addY(p(x)))}}else{if(0==d)continue;var b=-y/d;0<b&&b<1&&(0==f&&this.addX(p(b)),1==f&&this.addY(p(b)))}}},this.isPointInBox=function(t,e){return this.x1<=t&&t<=this.x2&&this.y1<=e&&e<=this.y2},this.addPoint(t,e),this.addPoint(i,n)},D.Transform=function(t){var e=this;this.Type={},this.Type.translate=function(t){this.p=D.CreatePoint(t),this.apply=function(t){t.translate(this.p.x||0,this.p.y||0)},this.unapply=function(t){t.translate(-1*this.p.x||0,-1*this.p.y||0)},this.applyToPoint=function(t){t.applyTransform([1,0,0,1,this.p.x||0,this.p.y||0])}},this.Type.rotate=function(t){var e=D.ToNumberArray(t);this.angle=new D.Property(\"angle\",e[0]),this.cx=e[1]||0,this.cy=e[2]||0,this.apply=function(t){t.translate(this.cx,this.cy),t.rotate(this.angle.toRadians()),t.translate(-this.cx,-this.cy)},this.unapply=function(t){t.translate(this.cx,this.cy),t.rotate(-1*this.angle.toRadians()),t.translate(-this.cx,-this.cy)},this.applyToPoint=function(t){var e=this.angle.toRadians();t.applyTransform([1,0,0,1,this.p.x||0,this.p.y||0]),t.applyTransform([Math.cos(e),Math.sin(e),-Math.sin(e),Math.cos(e),0,0]),t.applyTransform([1,0,0,1,-this.p.x||0,-this.p.y||0])}},this.Type.scale=function(t){this.p=D.CreatePoint(t),this.apply=function(t){t.scale(this.p.x||1,this.p.y||this.p.x||1)},this.unapply=function(t){t.scale(1/this.p.x||1,1/this.p.y||this.p.x||1)},this.applyToPoint=function(t){t.applyTransform([this.p.x||0,0,0,this.p.y||0,0,0])}},this.Type.matrix=function(t){this.m=D.ToNumberArray(t),this.apply=function(t){t.transform(this.m[0],this.m[1],this.m[2],this.m[3],this.m[4],this.m[5])},this.unapply=function(t){var e=this.m[0],i=this.m[2],n=this.m[4],s=this.m[1],a=this.m[3],r=this.m[5],o=1/(e*(1*a-0*r)-i*(1*s-0*r)+n*(0*s-0*a));t.transform(o*(1*a-0*r),o*(0*r-1*s),o*(0*n-1*i),o*(1*e-0*n),o*(i*r-n*a),o*(n*s-e*r))},this.applyToPoint=function(t){t.applyTransform(this.m)}},this.Type.SkewBase=function(t){this.base=e.Type.matrix,this.base(t),this.angle=new D.Property(\"angle\",t)},this.Type.SkewBase.prototype=new this.Type.matrix,this.Type.skewX=function(t){this.base=e.Type.SkewBase,this.base(t),this.m=[1,0,Math.tan(this.angle.toRadians()),1,0,0]},this.Type.skewX.prototype=new this.Type.SkewBase,this.Type.skewY=function(t){this.base=e.Type.SkewBase,this.base(t),this.m=[1,Math.tan(this.angle.toRadians()),0,1,0,0]},this.Type.skewY.prototype=new this.Type.SkewBase,this.transforms=[],this.apply=function(t){for(var e=0;e<this.transforms.length;e++)this.transforms[e].apply(t)},this.unapply=function(t){for(var e=this.transforms.length-1;0<=e;e--)this.transforms[e].unapply(t)},this.applyToPoint=function(t){for(var e=0;e<this.transforms.length;e++)this.transforms[e].applyToPoint(t)};for(var i=D.trim(D.compressSpaces(t)).replace(/\\)([a-zA-Z])/g,\") $1\").replace(/\\)(\\s?,\\s?)/g,\") \").split(/\\s(?=[a-z])/),n=0;n<i.length;n++)if(\"none\"!==i[n]){var s=D.trim(i[n].split(\"(\")[0]),a=i[n].split(\"(\")[1].replace(\")\",\"\"),r=this.Type[s];if(void 0!==r){var o=new r(a);o.type=s,this.transforms.push(o)}}},D.AspectRatio=function(t,e,i,n,s,a,r,o,h,l){var u=(e=(e=D.compressSpaces(e)).replace(/^defer\\s/,\"\")).split(\" \")[0]||\"xMidYMid\",c=e.split(\" \")[1]||\"meet\",f=i/n,p=s/a,d=Math.min(f,p),m=Math.max(f,p);\"meet\"==c&&(n*=d,a*=d),\"slice\"==c&&(n*=m,a*=m),h=new D.Property(\"refX\",h),l=new D.Property(\"refY\",l),h.hasValue()&&l.hasValue()?t.translate(-d*h.toPixels(\"x\"),-d*l.toPixels(\"y\")):(u.match(/^xMid/)&&(\"meet\"==c&&d==p||\"slice\"==c&&m==p)&&t.translate(i/2-n/2,0),u.match(/YMid$/)&&(\"meet\"==c&&d==f||\"slice\"==c&&m==f)&&t.translate(0,s/2-a/2),u.match(/^xMax/)&&(\"meet\"==c&&d==p||\"slice\"==c&&m==p)&&t.translate(i-n,0),u.match(/YMax$/)&&(\"meet\"==c&&d==f||\"slice\"==c&&m==f)&&t.translate(0,s-a)),\"none\"==u?t.scale(f,p):\"meet\"==c?t.scale(d,d):\"slice\"==c&&t.scale(m,m),t.translate(null==r?0:-r,null==o?0:-o)},D.Element={},D.EmptyProperty=new D.Property(\"EMPTY\",\"\"),D.Element.ElementBase=function(a){this.attributes={},this.styles={},this.stylesSpecificity={},this.children=[],this.attribute=function(t,e){var i=this.attributes[t];return null!=i?i:(1==e&&(i=new D.Property(t,\"\"),this.attributes[t]=i),i||D.EmptyProperty)},this.getHrefAttribute=function(){for(var t in this.attributes)if(\"href\"==t||t.match(/:href$/))return this.attributes[t];return D.EmptyProperty},this.style=function(t,e,i){var n=this.styles[t];if(null!=n)return n;var s=this.attribute(t);if(null!=s&&s.hasValue())return this.styles[t]=s;if(1!=i){var a=this.parent;if(null!=a){var r=a.style(t);if(null!=r&&r.hasValue())return r}}return 1==e&&(n=new D.Property(t,\"\"),this.styles[t]=n),n||D.EmptyProperty},this.render=function(t){if(\"none\"!=this.style(\"display\").value&&\"hidden\"!=this.style(\"visibility\").value){if(t.save(),this.style(\"mask\").hasValue()){var e=this.style(\"mask\").getDefinition();null!=e&&e.apply(t,this)}else if(this.style(\"filter\").hasValue()){var i=this.style(\"filter\").getDefinition();null!=i&&i.apply(t,this)}else this.setContext(t),this.renderChildren(t),this.clearContext(t);t.restore()}},this.setContext=function(){},this.clearContext=function(){},this.renderChildren=function(t){for(var e=0;e<this.children.length;e++)this.children[e].render(t)},this.addChild=function(t,e){var i=t;e&&(i=D.CreateElement(t)),i.parent=this,\"title\"!=i.type&&this.children.push(i)},this.addStylesFromStyleDefinition=function(){for(var t in D.Styles)if(\"@\"!=t[0]&&f(a,t)){var e=D.Styles[t],i=D.StylesSpecificity[t];if(null!=e)for(var n in e){var s=this.stylesSpecificity[n];void 0===s&&(s=\"000\"),s<=i&&(this.styles[n]=e[n],this.stylesSpecificity[n]=i)}}};var t,e=new RegExp(\"^[A-Z-]+$\");if(null!=a&&1==a.nodeType){for(var i=0;i<a.attributes.length;i++){var n=a.attributes[i],s=(t=n.nodeName,e.test(t)?t.toLowerCase():t);this.attributes[s]=new D.Property(s,n.value)}if(this.addStylesFromStyleDefinition(),this.attribute(\"style\").hasValue()){var r=this.attribute(\"style\").value.split(\";\");for(i=0;i<r.length;i++)if(\"\"!=D.trim(r[i])){var o=r[i].split(\":\"),h=D.trim(o[0]),l=D.trim(o[1]);this.styles[h]=new D.Property(h,l)}}this.attribute(\"id\").hasValue()&&null==D.Definitions[this.attribute(\"id\").value]&&(D.Definitions[this.attribute(\"id\").value]=this);for(i=0;i<a.childNodes.length;i++){var u=a.childNodes[i];if(1==u.nodeType&&this.addChild(u,!0),this.captureTextNodes&&(3==u.nodeType||4==u.nodeType)){var c=u.value||u.text||u.textContent||\"\";\"\"!=D.compressSpaces(c)&&this.addChild(new D.Element.tspan(u),!1)}}}},D.Element.RenderedElementBase=function(t){this.base=D.Element.ElementBase,this.base(t),this.calculateOpacity=function(){for(var t=1,e=this;null!=e;){var i=e.style(\"opacity\",!1,!0);i.hasValue()&&(t*=i.numValue()),e=e.parent}return t},this.setContext=function(t,e){if(!e){var i;if(this.style(\"fill\").isUrlDefinition())null!=(i=this.style(\"fill\").getFillStyleDefinition(this,this.style(\"fill-opacity\")))&&(t.fillStyle=i);else if(this.style(\"fill\").hasValue()){var n;\"currentColor\"==(n=this.style(\"fill\")).value&&(n.value=this.style(\"color\").value),\"inherit\"!=n.value&&(t.fillStyle=\"none\"==n.value?\"rgba(0,0,0,0)\":n.value)}if(this.style(\"fill-opacity\").hasValue())n=(n=new D.Property(\"fill\",t.fillStyle)).addOpacity(this.style(\"fill-opacity\")),t.fillStyle=n.value;if(this.style(\"stroke\").isUrlDefinition())null!=(i=this.style(\"stroke\").getFillStyleDefinition(this,this.style(\"stroke-opacity\")))&&(t.strokeStyle=i);else if(this.style(\"stroke\").hasValue()){var s;\"currentColor\"==(s=this.style(\"stroke\")).value&&(s.value=this.style(\"color\").value),\"inherit\"!=s.value&&(t.strokeStyle=\"none\"==s.value?\"rgba(0,0,0,0)\":s.value)}if(this.style(\"stroke-opacity\").hasValue())s=(s=new D.Property(\"stroke\",t.strokeStyle)).addOpacity(this.style(\"stroke-opacity\")),t.strokeStyle=s.value;if(this.style(\"stroke-width\").hasValue()){var a=this.style(\"stroke-width\").toPixels();t.lineWidth=0==a?.001:a}if(this.style(\"stroke-linecap\").hasValue()&&(t.lineCap=this.style(\"stroke-linecap\").value),this.style(\"stroke-linejoin\").hasValue()&&(t.lineJoin=this.style(\"stroke-linejoin\").value),this.style(\"stroke-miterlimit\").hasValue()&&(t.miterLimit=this.style(\"stroke-miterlimit\").value),this.style(\"paint-order\").hasValue()&&(t.paintOrder=this.style(\"paint-order\").value),this.style(\"stroke-dasharray\").hasValue()&&\"none\"!=this.style(\"stroke-dasharray\").value){var r=D.ToNumberArray(this.style(\"stroke-dasharray\").value);void 0!==t.setLineDash?t.setLineDash(r):void 0!==t.webkitLineDash?t.webkitLineDash=r:void 0===t.mozDash||1==r.length&&0==r[0]||(t.mozDash=r);var o=this.style(\"stroke-dashoffset\").toPixels();void 0!==t.lineDashOffset?t.lineDashOffset=o:void 0!==t.webkitLineDashOffset?t.webkitLineDashOffset=o:void 0!==t.mozDashOffset&&(t.mozDashOffset=o)}}if(void 0!==t.font)if(this.style(\"font\").hasValue())t.font=this.style(\"font\").value;else{t.font=D.Font.CreateFont(this.style(\"font-style\").value,this.style(\"font-variant\").value,this.style(\"font-weight\").value,this.style(\"font-size\").hasValue()?this.style(\"font-size\").toPixels()+\"px\":\"\",this.style(\"font-family\").value).toString();var h=this.style(\"font-size\",!1,!1);h.isPixels()&&(D.emSize=h.toPixels())}this.style(\"transform\",!1,!0).hasValue()&&new D.Transform(this.style(\"transform\",!1,!0).value).apply(t);if(this.style(\"clip-path\",!1,!0).hasValue()){var l=this.style(\"clip-path\",!1,!0).getDefinition();null!=l&&l.apply(t)}t.globalAlpha=this.calculateOpacity()}},D.Element.RenderedElementBase.prototype=new D.Element.ElementBase,D.Element.PathElementBase=function(t){this.base=D.Element.RenderedElementBase,this.base(t),this.path=function(t){return null!=t&&t.beginPath(),new D.BoundingBox},this.renderChildren=function(t){this.path(t),D.Mouse.checkPath(this,t),\"\"!=t.fillStyle&&(\"inherit\"!=this.style(\"fill-rule\").valueOrDefault(\"inherit\")?t.fill(this.style(\"fill-rule\").value):t.fill()),\"\"!=t.strokeStyle&&t.stroke();var e=this.getMarkers();if(null!=e){if(this.style(\"marker-start\").isUrlDefinition())(i=this.style(\"marker-start\").getDefinition()).render(t,e[0][0],e[0][1]);if(this.style(\"marker-mid\").isUrlDefinition())for(var i=this.style(\"marker-mid\").getDefinition(),n=1;n<e.length-1;n++)i.render(t,e[n][0],e[n][1]);if(this.style(\"marker-end\").isUrlDefinition())(i=this.style(\"marker-end\").getDefinition()).render(t,e[e.length-1][0],e[e.length-1][1])}},this.getBoundingBox=function(){return this.path()},this.getMarkers=function(){return null}},D.Element.PathElementBase.prototype=new D.Element.RenderedElementBase,D.SetDefaults=function(t){t.strokeStyle=\"rgba(0,0,0,0)\",t.lineCap=\"butt\",t.lineJoin=\"miter\",t.miterLimit=4},D.Element.svg=function(t){this.base=D.Element.RenderedElementBase,this.base(t),this.baseClearContext=this.clearContext,this.clearContext=function(t){this.baseClearContext(t),D.ViewPort.RemoveCurrent()},this.baseSetContext=this.setContext,this.setContext=function(t){if(D.SetDefaults(t),t.canvas.style&&void 0!==t.font&&void 0!==l.getComputedStyle){t.font=l.getComputedStyle(t.canvas).getPropertyValue(\"font\");var e=new D.Property(\"fontSize\",D.Font.Parse(t.font).fontSize);e.hasValue()&&(D.rootEmSize=D.emSize=e.toPixels(\"y\"))}this.baseSetContext(t),this.attribute(\"x\").hasValue()||(this.attribute(\"x\",!0).value=0),this.attribute(\"y\").hasValue()||(this.attribute(\"y\",!0).value=0),t.translate(this.attribute(\"x\").toPixels(\"x\"),this.attribute(\"y\").toPixels(\"y\"));var i=D.ViewPort.width(),n=D.ViewPort.height();if(this.attribute(\"width\").hasValue()||(this.attribute(\"width\",!0).value=\"100%\"),this.attribute(\"height\").hasValue()||(this.attribute(\"height\",!0).value=\"100%\"),void 0===this.root){i=this.attribute(\"width\").toPixels(\"x\"),n=this.attribute(\"height\").toPixels(\"y\");var s=0,a=0;this.attribute(\"refX\").hasValue()&&this.attribute(\"refY\").hasValue()&&(s=-this.attribute(\"refX\").toPixels(\"x\"),a=-this.attribute(\"refY\").toPixels(\"y\")),\"visible\"!=this.attribute(\"overflow\").valueOrDefault(\"hidden\")&&(t.beginPath(),t.moveTo(s,a),t.lineTo(i,a),t.lineTo(i,n),t.lineTo(s,n),t.closePath(),t.clip())}if(D.ViewPort.SetCurrent(i,n),this.attribute(\"viewBox\").hasValue()){var r=D.ToNumberArray(this.attribute(\"viewBox\").value),o=r[0],h=r[1];i=r[2],n=r[3],D.AspectRatio(t,this.attribute(\"preserveAspectRatio\").value,D.ViewPort.width(),i,D.ViewPort.height(),n,o,h,this.attribute(\"refX\").value,this.attribute(\"refY\").value),D.ViewPort.RemoveCurrent(),D.ViewPort.SetCurrent(r[2],r[3])}}},D.Element.svg.prototype=new D.Element.RenderedElementBase,D.Element.rect=function(t){this.base=D.Element.PathElementBase,this.base(t),this.path=function(t){var e=this.attribute(\"x\").toPixels(\"x\"),i=this.attribute(\"y\").toPixels(\"y\"),n=this.attribute(\"width\").toPixels(\"x\"),s=this.attribute(\"height\").toPixels(\"y\"),a=this.attribute(\"rx\").toPixels(\"x\"),r=this.attribute(\"ry\").toPixels(\"y\");if(this.attribute(\"rx\").hasValue()&&!this.attribute(\"ry\").hasValue()&&(r=a),this.attribute(\"ry\").hasValue()&&!this.attribute(\"rx\").hasValue()&&(a=r),a=Math.min(a,n/2),r=Math.min(r,s/2),null!=t){var o=(Math.sqrt(2)-1)/3*4;t.beginPath(),0<s&&0<n&&(t.moveTo(e+a,i),t.lineTo(e+n-a,i),t.bezierCurveTo(e+n-a+o*a,i,e+n,i+r-o*r,e+n,i+r),t.lineTo(e+n,i+s-r),t.bezierCurveTo(e+n,i+s-r+o*r,e+n-a+o*a,i+s,e+n-a,i+s),t.lineTo(e+a,i+s),t.bezierCurveTo(e+a-o*a,i+s,e,i+s-r+o*r,e,i+s-r),t.lineTo(e,i+r),t.bezierCurveTo(e,i+r-o*r,e+a-o*a,i,e+a,i),t.closePath())}return new D.BoundingBox(e,i,e+n,i+s)}},D.Element.rect.prototype=new D.Element.PathElementBase,D.Element.circle=function(t){this.base=D.Element.PathElementBase,this.base(t),this.path=function(t){var e=this.attribute(\"cx\").toPixels(\"x\"),i=this.attribute(\"cy\").toPixels(\"y\"),n=this.attribute(\"r\").toPixels();return null!=t&&0<n&&(t.beginPath(),t.arc(e,i,n,0,2*Math.PI,!1),t.closePath()),new D.BoundingBox(e-n,i-n,e+n,i+n)}},D.Element.circle.prototype=new D.Element.PathElementBase,D.Element.ellipse=function(t){this.base=D.Element.PathElementBase,this.base(t),this.path=function(t){var e=(Math.sqrt(2)-1)/3*4,i=this.attribute(\"rx\").toPixels(\"x\"),n=this.attribute(\"ry\").toPixels(\"y\"),s=this.attribute(\"cx\").toPixels(\"x\"),a=this.attribute(\"cy\").toPixels(\"y\");return null!=t&&(t.beginPath(),t.moveTo(s+i,a),t.bezierCurveTo(s+i,a+e*n,s+e*i,a+n,s,a+n),t.bezierCurveTo(s-e*i,a+n,s-i,a+e*n,s-i,a),t.bezierCurveTo(s-i,a-e*n,s-e*i,a-n,s,a-n),t.bezierCurveTo(s+e*i,a-n,s+i,a-e*n,s+i,a),t.closePath()),new D.BoundingBox(s-i,a-n,s+i,a+n)}},D.Element.ellipse.prototype=new D.Element.PathElementBase,D.Element.line=function(t){this.base=D.Element.PathElementBase,this.base(t),this.getPoints=function(){return[new D.Point(this.attribute(\"x1\").toPixels(\"x\"),this.attribute(\"y1\").toPixels(\"y\")),new D.Point(this.attribute(\"x2\").toPixels(\"x\"),this.attribute(\"y2\").toPixels(\"y\"))]},this.path=function(t){var e=this.getPoints();return null!=t&&(t.beginPath(),t.moveTo(e[0].x,e[0].y),t.lineTo(e[1].x,e[1].y)),new D.BoundingBox(e[0].x,e[0].y,e[1].x,e[1].y)},this.getMarkers=function(){var t=this.getPoints(),e=t[0].angleTo(t[1]);return[[t[0],e],[t[1],e]]}},D.Element.line.prototype=new D.Element.PathElementBase,D.Element.polyline=function(t){this.base=D.Element.PathElementBase,this.base(t),this.points=D.CreatePath(this.attribute(\"points\").value),this.path=function(t){var e=new D.BoundingBox(this.points[0].x,this.points[0].y);null!=t&&(t.beginPath(),t.moveTo(this.points[0].x,this.points[0].y));for(var i=1;i<this.points.length;i++)e.addPoint(this.points[i].x,this.points[i].y),null!=t&&t.lineTo(this.points[i].x,this.points[i].y);return e},this.getMarkers=function(){for(var t=[],e=0;e<this.points.length-1;e++)t.push([this.points[e],this.points[e].angleTo(this.points[e+1])]);return 0<t.length&&t.push([this.points[this.points.length-1],t[t.length-1][1]]),t}},D.Element.polyline.prototype=new D.Element.PathElementBase,D.Element.polygon=function(t){this.base=D.Element.polyline,this.base(t),this.basePath=this.path,this.path=function(t){var e=this.basePath(t);return null!=t&&(t.lineTo(this.points[0].x,this.points[0].y),t.closePath()),e}},D.Element.polygon.prototype=new D.Element.polyline,D.Element.path=function(t){this.base=D.Element.PathElementBase,this.base(t);var e=this.attribute(\"d\").value;e=e.replace(/,/gm,\" \");for(var i=0;i<2;i++)e=e.replace(/([MmZzLlHhVvCcSsQqTtAa])([^\\s])/gm,\"$1 $2\");e=(e=e.replace(/([^\\s])([MmZzLlHhVvCcSsQqTtAa])/gm,\"$1 $2\")).replace(/([0-9])([+\\-])/gm,\"$1 $2\");for(i=0;i<2;i++)e=e.replace(/(\\.[0-9]*)(\\.)/gm,\"$1 $2\");e=e.replace(/([Aa](\\s+[0-9]+){3})\\s+([01])\\s*([01])/gm,\"$1 $3 $4 \"),e=D.compressSpaces(e),e=D.trim(e),this.PathParser=new function(t){this.tokens=t.split(\" \"),this.reset=function(){this.i=-1,this.command=\"\",this.previousCommand=\"\",this.start=new D.Point(0,0),this.control=new D.Point(0,0),this.current=new D.Point(0,0),this.points=[],this.angles=[]},this.isEnd=function(){return this.i>=this.tokens.length-1},this.isCommandOrEnd=function(){return!!this.isEnd()||null!=this.tokens[this.i+1].match(/^[A-Za-z]$/)},this.isRelativeCommand=function(){switch(this.command){case\"m\":case\"l\":case\"h\":case\"v\":case\"c\":case\"s\":case\"q\":case\"t\":case\"a\":case\"z\":return!0}return!1},this.getToken=function(){return this.i++,this.tokens[this.i]},this.getScalar=function(){return parseFloat(this.getToken())},this.nextCommand=function(){this.previousCommand=this.command,this.command=this.getToken()},this.getPoint=function(){var t=new D.Point(this.getScalar(),this.getScalar());return this.makeAbsolute(t)},this.getAsControlPoint=function(){var t=this.getPoint();return this.control=t},this.getAsCurrentPoint=function(){var t=this.getPoint();return this.current=t},this.getReflectedControlPoint=function(){return\"c\"!=this.previousCommand.toLowerCase()&&\"s\"!=this.previousCommand.toLowerCase()&&\"q\"!=this.previousCommand.toLowerCase()&&\"t\"!=this.previousCommand.toLowerCase()?this.current:new D.Point(2*this.current.x-this.control.x,2*this.current.y-this.control.y)},this.makeAbsolute=function(t){return this.isRelativeCommand()&&(t.x+=this.current.x,t.y+=this.current.y),t},this.addMarker=function(t,e,i){null!=i&&0<this.angles.length&&null==this.angles[this.angles.length-1]&&(this.angles[this.angles.length-1]=this.points[this.points.length-1].angleTo(i)),this.addMarkerAngle(t,null==e?null:e.angleTo(t))},this.addMarkerAngle=function(t,e){this.points.push(t),this.angles.push(e)},this.getMarkerPoints=function(){return this.points},this.getMarkerAngles=function(){for(var t=0;t<this.angles.length;t++)if(null==this.angles[t])for(var e=t+1;e<this.angles.length;e++)if(null!=this.angles[e]){this.angles[t]=this.angles[e];break}return this.angles}}(e),this.path=function(t){var e=this.PathParser;e.reset();var i=new D.BoundingBox;for(null!=t&&t.beginPath();!e.isEnd();)switch(e.nextCommand(),e.command){case\"M\":case\"m\":var n=e.getAsCurrentPoint();for(e.addMarker(n),i.addPoint(n.x,n.y),null!=t&&t.moveTo(n.x,n.y),e.start=e.current;!e.isCommandOrEnd();){n=e.getAsCurrentPoint();e.addMarker(n,e.start),i.addPoint(n.x,n.y),null!=t&&t.lineTo(n.x,n.y)}break;case\"L\":case\"l\":for(;!e.isCommandOrEnd();){var s=e.current;n=e.getAsCurrentPoint();e.addMarker(n,s),i.addPoint(n.x,n.y),null!=t&&t.lineTo(n.x,n.y)}break;case\"H\":case\"h\":for(;!e.isCommandOrEnd();){var a=new D.Point((e.isRelativeCommand()?e.current.x:0)+e.getScalar(),e.current.y);e.addMarker(a,e.current),e.current=a,i.addPoint(e.current.x,e.current.y),null!=t&&t.lineTo(e.current.x,e.current.y)}break;case\"V\":case\"v\":for(;!e.isCommandOrEnd();){a=new D.Point(e.current.x,(e.isRelativeCommand()?e.current.y:0)+e.getScalar());e.addMarker(a,e.current),e.current=a,i.addPoint(e.current.x,e.current.y),null!=t&&t.lineTo(e.current.x,e.current.y)}break;case\"C\":case\"c\":for(;!e.isCommandOrEnd();){var r=e.current,o=e.getPoint(),h=e.getAsControlPoint(),l=e.getAsCurrentPoint();e.addMarker(l,h,o),i.addBezierCurve(r.x,r.y,o.x,o.y,h.x,h.y,l.x,l.y),null!=t&&t.bezierCurveTo(o.x,o.y,h.x,h.y,l.x,l.y)}break;case\"S\":case\"s\":for(;!e.isCommandOrEnd();){r=e.current,o=e.getReflectedControlPoint(),h=e.getAsControlPoint(),l=e.getAsCurrentPoint();e.addMarker(l,h,o),i.addBezierCurve(r.x,r.y,o.x,o.y,h.x,h.y,l.x,l.y),null!=t&&t.bezierCurveTo(o.x,o.y,h.x,h.y,l.x,l.y)}break;case\"Q\":case\"q\":for(;!e.isCommandOrEnd();){r=e.current,h=e.getAsControlPoint(),l=e.getAsCurrentPoint();e.addMarker(l,h,h),i.addQuadraticCurve(r.x,r.y,h.x,h.y,l.x,l.y),null!=t&&t.quadraticCurveTo(h.x,h.y,l.x,l.y)}break;case\"T\":case\"t\":for(;!e.isCommandOrEnd();){r=e.current,h=e.getReflectedControlPoint();e.control=h;l=e.getAsCurrentPoint();e.addMarker(l,h,h),i.addQuadraticCurve(r.x,r.y,h.x,h.y,l.x,l.y),null!=t&&t.quadraticCurveTo(h.x,h.y,l.x,l.y)}break;case\"A\":case\"a\":for(;!e.isCommandOrEnd();){r=e.current;var u=e.getScalar(),c=e.getScalar(),f=e.getScalar()*(Math.PI/180),p=e.getScalar(),d=e.getScalar(),m=(l=e.getAsCurrentPoint(),new D.Point(Math.cos(f)*(r.x-l.x)/2+Math.sin(f)*(r.y-l.y)/2,-Math.sin(f)*(r.x-l.x)/2+Math.cos(f)*(r.y-l.y)/2)),y=Math.pow(m.x,2)/Math.pow(u,2)+Math.pow(m.y,2)/Math.pow(c,2);1<y&&(u*=Math.sqrt(y),c*=Math.sqrt(y));var v=(p==d?-1:1)*Math.sqrt((Math.pow(u,2)*Math.pow(c,2)-Math.pow(u,2)*Math.pow(m.y,2)-Math.pow(c,2)*Math.pow(m.x,2))/(Math.pow(u,2)*Math.pow(m.y,2)+Math.pow(c,2)*Math.pow(m.x,2)));isNaN(v)&&(v=0);var g=new D.Point(v*u*m.y/c,v*-c*m.x/u),x=new D.Point((r.x+l.x)/2+Math.cos(f)*g.x-Math.sin(f)*g.y,(r.y+l.y)/2+Math.sin(f)*g.x+Math.cos(f)*g.y),b=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2))},P=function(t,e){return(t[0]*e[0]+t[1]*e[1])/(b(t)*b(e))},E=function(t,e){return(t[0]*e[1]<t[1]*e[0]?-1:1)*Math.acos(P(t,e))},w=E([1,0],[(m.x-g.x)/u,(m.y-g.y)/c]),C=[(m.x-g.x)/u,(m.y-g.y)/c],B=[(-m.x-g.x)/u,(-m.y-g.y)/c],M=E(C,B);P(C,B)<=-1&&(M=Math.PI),1<=P(C,B)&&(M=0);var T=1-d?1:-1,S=w+T*(M/2),V=new D.Point(x.x+u*Math.cos(S),x.y+c*Math.sin(S));if(e.addMarkerAngle(V,S-T*Math.PI/2),e.addMarkerAngle(l,S-T*Math.PI),i.addPoint(l.x,l.y),null!=t&&!isNaN(w)&&!isNaN(M)){P=c<u?u:c;var k=c<u?1:u/c,A=c<u?c/u:1;t.translate(x.x,x.y),t.rotate(f),t.scale(k,A),t.arc(0,0,P,w,w+M,1-d),t.scale(1/k,1/A),t.rotate(-f),t.translate(-x.x,-x.y)}}break;case\"Z\":case\"z\":null!=t&&i.x1!==i.x2&&i.y1!==i.y2&&t.closePath(),e.current=e.start}return i},this.getMarkers=function(){for(var t=this.PathParser.getMarkerPoints(),e=this.PathParser.getMarkerAngles(),i=[],n=0;n<t.length;n++)i.push([t[n],e[n]]);return i}},D.Element.path.prototype=new D.Element.PathElementBase,D.Element.pattern=function(t){this.base=D.Element.ElementBase,this.base(t),this.createPattern=function(t,e,i){var n=this.attribute(\"width\").toPixels(\"x\",!0),s=this.attribute(\"height\").toPixels(\"y\",!0),a=new D.Element.svg;a.attributes.viewBox=new D.Property(\"viewBox\",this.attribute(\"viewBox\").value),a.attributes.width=new D.Property(\"width\",n+\"px\"),a.attributes.height=new D.Property(\"height\",s+\"px\"),a.attributes.transform=new D.Property(\"transform\",this.attribute(\"patternTransform\").value),a.children=this.children;var r=d(n,s),o=r.getContext(\"2d\");this.attribute(\"x\").hasValue()&&this.attribute(\"y\").hasValue()&&o.translate(this.attribute(\"x\").toPixels(\"x\",!0),this.attribute(\"y\").toPixels(\"y\",!0)),i.hasValue()?this.styles[\"fill-opacity\"]=i:delete this.styles[\"fill-opacity\"];for(var h=-1;h<=1;h++)for(var l=-1;l<=1;l++)o.save(),a.attributes.x=new D.Property(\"x\",h*r.width),a.attributes.y=new D.Property(\"y\",l*r.height),a.render(o),o.restore();return t.createPattern(r,\"repeat\")}},D.Element.pattern.prototype=new D.Element.ElementBase,D.Element.marker=function(t){this.base=D.Element.ElementBase,this.base(t),this.baseRender=this.render,this.render=function(t,e,i){if(e){t.translate(e.x,e.y),\"auto\"==this.attribute(\"orient\").valueOrDefault(\"auto\")&&t.rotate(i),\"strokeWidth\"==this.attribute(\"markerUnits\").valueOrDefault(\"strokeWidth\")&&t.scale(t.lineWidth,t.lineWidth),t.save();var n=new D.Element.svg;n.attributes.viewBox=new D.Property(\"viewBox\",this.attribute(\"viewBox\").value),n.attributes.refX=new D.Property(\"refX\",this.attribute(\"refX\").value),n.attributes.refY=new D.Property(\"refY\",this.attribute(\"refY\").value),n.attributes.width=new D.Property(\"width\",this.attribute(\"markerWidth\").value),n.attributes.height=new D.Property(\"height\",this.attribute(\"markerHeight\").value),n.attributes.fill=new D.Property(\"fill\",this.attribute(\"fill\").valueOrDefault(\"black\")),n.attributes.stroke=new D.Property(\"stroke\",this.attribute(\"stroke\").valueOrDefault(\"none\")),n.children=this.children,n.render(t),t.restore(),\"strokeWidth\"==this.attribute(\"markerUnits\").valueOrDefault(\"strokeWidth\")&&t.scale(1/t.lineWidth,1/t.lineWidth),\"auto\"==this.attribute(\"orient\").valueOrDefault(\"auto\")&&t.rotate(-i),t.translate(-e.x,-e.y)}}},D.Element.marker.prototype=new D.Element.ElementBase,D.Element.defs=function(t){this.base=D.Element.ElementBase,this.base(t),this.render=function(){}},D.Element.defs.prototype=new D.Element.ElementBase,D.Element.GradientBase=function(t){this.base=D.Element.ElementBase,this.base(t),this.stops=[];for(var e=0;e<this.children.length;e++){var i=this.children[e];\"stop\"==i.type&&this.stops.push(i)}this.getGradient=function(){},this.gradientUnits=function(){return this.attribute(\"gradientUnits\").valueOrDefault(\"objectBoundingBox\")},this.attributesToInherit=[\"gradientUnits\"],this.inheritStopContainer=function(t){for(var e=0;e<this.attributesToInherit.length;e++){var i=this.attributesToInherit[e];!this.attribute(i).hasValue()&&t.attribute(i).hasValue()&&(this.attribute(i,!0).value=t.attribute(i).value)}},this.createGradient=function(t,e,i){var n=this;this.getHrefAttribute().hasValue()&&(n=this.getHrefAttribute().getDefinition(),this.inheritStopContainer(n));var s=function(t){return i.hasValue()?new D.Property(\"color\",t).addOpacity(i).value:t},a=this.getGradient(t,e);if(null==a)return s(n.stops[n.stops.length-1].color);for(var r=0;r<n.stops.length;r++)a.addColorStop(n.stops[r].offset,s(n.stops[r].color));if(this.attribute(\"gradientTransform\").hasValue()){var o=D.ViewPort.viewPorts[0],h=new D.Element.rect;h.attributes.x=new D.Property(\"x\",-D.MAX_VIRTUAL_PIXELS/3),h.attributes.y=new D.Property(\"y\",-D.MAX_VIRTUAL_PIXELS/3),h.attributes.width=new D.Property(\"width\",D.MAX_VIRTUAL_PIXELS),h.attributes.height=new D.Property(\"height\",D.MAX_VIRTUAL_PIXELS);var l=new D.Element.g;l.attributes.transform=new D.Property(\"transform\",this.attribute(\"gradientTransform\").value),l.children=[h];var u=new D.Element.svg;u.attributes.x=new D.Property(\"x\",0),u.attributes.y=new D.Property(\"y\",0),u.attributes.width=new D.Property(\"width\",o.width),u.attributes.height=new D.Property(\"height\",o.height),u.children=[l];var c=d(o.width,o.height),f=c.getContext(\"2d\");return f.fillStyle=a,u.render(f),f.createPattern(c,\"no-repeat\")}return a}},D.Element.GradientBase.prototype=new D.Element.ElementBase,D.Element.linearGradient=function(t){this.base=D.Element.GradientBase,this.base(t),this.attributesToInherit.push(\"x1\"),this.attributesToInherit.push(\"y1\"),this.attributesToInherit.push(\"x2\"),this.attributesToInherit.push(\"y2\"),this.getGradient=function(t,e){var i=\"objectBoundingBox\"==this.gradientUnits()?e.getBoundingBox(t):null;this.attribute(\"x1\").hasValue()||this.attribute(\"y1\").hasValue()||this.attribute(\"x2\").hasValue()||this.attribute(\"y2\").hasValue()||(this.attribute(\"x1\",!0).value=0,this.attribute(\"y1\",!0).value=0,this.attribute(\"x2\",!0).value=1,this.attribute(\"y2\",!0).value=0);var n=\"objectBoundingBox\"==this.gradientUnits()?i.x()+i.width()*this.attribute(\"x1\").numValue():this.attribute(\"x1\").toPixels(\"x\"),s=\"objectBoundingBox\"==this.gradientUnits()?i.y()+i.height()*this.attribute(\"y1\").numValue():this.attribute(\"y1\").toPixels(\"y\"),a=\"objectBoundingBox\"==this.gradientUnits()?i.x()+i.width()*this.attribute(\"x2\").numValue():this.attribute(\"x2\").toPixels(\"x\"),r=\"objectBoundingBox\"==this.gradientUnits()?i.y()+i.height()*this.attribute(\"y2\").numValue():this.attribute(\"y2\").toPixels(\"y\");return n==a&&s==r?null:t.createLinearGradient(n,s,a,r)}},D.Element.linearGradient.prototype=new D.Element.GradientBase,D.Element.radialGradient=function(t){this.base=D.Element.GradientBase,this.base(t),this.attributesToInherit.push(\"cx\"),this.attributesToInherit.push(\"cy\"),this.attributesToInherit.push(\"r\"),this.attributesToInherit.push(\"fx\"),this.attributesToInherit.push(\"fy\"),this.attributesToInherit.push(\"fr\"),this.getGradient=function(t,e){var i=e.getBoundingBox(t);this.attribute(\"cx\").hasValue()||(this.attribute(\"cx\",!0).value=\"50%\"),this.attribute(\"cy\").hasValue()||(this.attribute(\"cy\",!0).value=\"50%\"),this.attribute(\"r\").hasValue()||(this.attribute(\"r\",!0).value=\"50%\");var n=\"objectBoundingBox\"==this.gradientUnits()?i.x()+i.width()*this.attribute(\"cx\").numValue():this.attribute(\"cx\").toPixels(\"x\"),s=\"objectBoundingBox\"==this.gradientUnits()?i.y()+i.height()*this.attribute(\"cy\").numValue():this.attribute(\"cy\").toPixels(\"y\"),a=n,r=s;this.attribute(\"fx\").hasValue()&&(a=\"objectBoundingBox\"==this.gradientUnits()?i.x()+i.width()*this.attribute(\"fx\").numValue():this.attribute(\"fx\").toPixels(\"x\")),this.attribute(\"fy\").hasValue()&&(r=\"objectBoundingBox\"==this.gradientUnits()?i.y()+i.height()*this.attribute(\"fy\").numValue():this.attribute(\"fy\").toPixels(\"y\"));var o=\"objectBoundingBox\"==this.gradientUnits()?(i.width()+i.height())/2*this.attribute(\"r\").numValue():this.attribute(\"r\").toPixels(),h=this.attribute(\"fr\").toPixels();return t.createRadialGradient(a,r,h,n,s,o)}},D.Element.radialGradient.prototype=new D.Element.GradientBase,D.Element.stop=function(t){this.base=D.Element.ElementBase,this.base(t),this.offset=this.attribute(\"offset\").numValue(),this.offset<0&&(this.offset=0),1<this.offset&&(this.offset=1);var e=this.style(\"stop-color\",!0);\"\"===e.value&&(e.value=\"#000\"),this.style(\"stop-opacity\").hasValue()&&(e=e.addOpacity(this.style(\"stop-opacity\"))),this.color=e.value},D.Element.stop.prototype=new D.Element.ElementBase,D.Element.AnimateBase=function(t){this.base=D.Element.ElementBase,this.base(t),D.Animations.push(this),this.duration=0,this.begin=this.attribute(\"begin\").toMilliseconds(),this.maxDuration=this.begin+this.attribute(\"dur\").toMilliseconds(),this.getProperty=function(){var t=this.attribute(\"attributeType\").value,e=this.attribute(\"attributeName\").value;return\"CSS\"==t?this.parent.style(e,!0):this.parent.attribute(e,!0)},this.initialValue=null,this.initialUnits=\"\",this.removed=!1,this.calcValue=function(){return\"\"},this.update=function(t){if(null==this.initialValue&&(this.initialValue=this.getProperty().value,this.initialUnits=this.getProperty().getUnits()),this.duration>this.maxDuration){if(\"indefinite\"==this.attribute(\"repeatCount\").value||\"indefinite\"==this.attribute(\"repeatDur\").value)this.duration=0;else if(\"freeze\"!=this.attribute(\"fill\").valueOrDefault(\"remove\")||this.frozen){if(\"remove\"==this.attribute(\"fill\").valueOrDefault(\"remove\")&&!this.removed)return this.removed=!0,this.getProperty().value=this.parent.animationFrozen?this.parent.animationFrozenValue:this.initialValue,!0}else this.frozen=!0,this.parent.animationFrozen=!0,this.parent.animationFrozenValue=this.getProperty().value;return!1}this.duration=this.duration+t;var e=!1;if(this.begin<this.duration){var i=this.calcValue();if(this.attribute(\"type\").hasValue())i=this.attribute(\"type\").value+\"(\"+i+\")\";this.getProperty().value=i,e=!0}return e},this.from=this.attribute(\"from\"),this.to=this.attribute(\"to\"),this.values=this.attribute(\"values\"),this.values.hasValue()&&(this.values.value=this.values.value.split(\";\")),this.progress=function(){var t={progress:(this.duration-this.begin)/(this.maxDuration-this.begin)};if(this.values.hasValue()){var e=t.progress*(this.values.value.length-1),i=Math.floor(e),n=Math.ceil(e);t.from=new D.Property(\"from\",parseFloat(this.values.value[i])),t.to=new D.Property(\"to\",parseFloat(this.values.value[n])),t.progress=(e-i)/(n-i)}else t.from=this.from,t.to=this.to;return t}},D.Element.AnimateBase.prototype=new D.Element.ElementBase,D.Element.animate=function(t){this.base=D.Element.AnimateBase,this.base(t),this.calcValue=function(){var t=this.progress(),e=t.from.numValue()+(t.to.numValue()-t.from.numValue())*t.progress;return\"%\"===this.initialUnits&&(e*=100),e+this.initialUnits}},D.Element.animate.prototype=new D.Element.AnimateBase,D.Element.animateColor=function(t){this.base=D.Element.AnimateBase,this.base(t),this.calcValue=function(){var t=this.progress(),e=new y(t.from.value),i=new y(t.to.value);if(e.ok&&i.ok){var n=e.r+(i.r-e.r)*t.progress,s=e.g+(i.g-e.g)*t.progress,a=e.b+(i.b-e.b)*t.progress;return\"rgb(\"+parseInt(n,10)+\",\"+parseInt(s,10)+\",\"+parseInt(a,10)+\")\"}return this.attribute(\"from\").value}},D.Element.animateColor.prototype=new D.Element.AnimateBase,D.Element.animateTransform=function(t){this.base=D.Element.AnimateBase,this.base(t),this.calcValue=function(){for(var t=this.progress(),e=D.ToNumberArray(t.from.value),i=D.ToNumberArray(t.to.value),n=\"\",s=0;s<e.length;s++)n+=e[s]+(i[s]-e[s])*t.progress+\" \";return n}},D.Element.animateTransform.prototype=new D.Element.animate,D.Element.font=function(t){this.base=D.Element.ElementBase,this.base(t),this.horizAdvX=this.attribute(\"horiz-adv-x\").numValue(),this.isRTL=!1,this.isArabic=!1,this.fontFace=null,this.missingGlyph=null,this.glyphs=[];for(var e=0;e<this.children.length;e++){var i=this.children[e];\"font-face\"==i.type?(this.fontFace=i).style(\"font-family\").hasValue()&&(D.Definitions[i.style(\"font-family\").value]=this):\"missing-glyph\"==i.type?this.missingGlyph=i:\"glyph\"==i.type&&(\"\"!=i.arabicForm?(this.isRTL=!0,this.isArabic=!0,void 0===this.glyphs[i.unicode]&&(this.glyphs[i.unicode]=[]),this.glyphs[i.unicode][i.arabicForm]=i):this.glyphs[i.unicode]=i)}this.render=function(){}},D.Element.font.prototype=new D.Element.ElementBase,D.Element.fontface=function(t){this.base=D.Element.ElementBase,this.base(t),this.ascent=this.attribute(\"ascent\").value,this.descent=this.attribute(\"descent\").value,this.unitsPerEm=this.attribute(\"units-per-em\").numValue()},D.Element.fontface.prototype=new D.Element.ElementBase,D.Element.missingglyph=function(t){this.base=D.Element.path,this.base(t),this.horizAdvX=0},D.Element.missingglyph.prototype=new D.Element.path,D.Element.glyph=function(t){this.base=D.Element.path,this.base(t),this.horizAdvX=this.attribute(\"horiz-adv-x\").numValue(),this.unicode=this.attribute(\"unicode\").value,this.arabicForm=this.attribute(\"arabic-form\").value},D.Element.glyph.prototype=new D.Element.path,D.Element.text=function(t){this.captureTextNodes=!0,this.base=D.Element.RenderedElementBase,this.base(t),this.baseSetContext=this.setContext,this.setContext=function(t){this.baseSetContext(t);var e=this.style(\"dominant-baseline\").toTextBaseline();null==e&&(e=this.style(\"alignment-baseline\").toTextBaseline()),null!=e&&(t.textBaseline=e)},this.initializeCoordinates=function(t){this.x=this.attribute(\"x\").toPixels(\"x\"),this.y=this.attribute(\"y\").toPixels(\"y\"),this.attribute(\"dx\").hasValue()&&(this.x+=this.attribute(\"dx\").toPixels(\"x\")),this.attribute(\"dy\").hasValue()&&(this.y+=this.attribute(\"dy\").toPixels(\"y\")),this.x+=this.getAnchorDelta(t,this,0)},this.getBoundingBox=function(t){this.initializeCoordinates(t);for(var e=null,i=0;i<this.children.length;i++){var n=this.getChildBoundingBox(t,this,this,i);null==e?e=n:e.addBoundingBox(n)}return e},this.renderChildren=function(t){this.initializeCoordinates(t);for(var e=0;e<this.children.length;e++)this.renderChild(t,this,this,e);D.Mouse.checkBoundingBox(this,this.getBoundingBox(t))},this.getAnchorDelta=function(t,e,i){var n=this.style(\"text-anchor\").valueOrDefault(\"start\");if(\"start\"==n)return 0;for(var s=0,a=i;a<e.children.length;a++){var r=e.children[a];if(i<a&&r.attribute(\"x\").hasValue())break;s+=r.measureTextRecursive(t)}return-1*(\"end\"==n?s:s/2)},this.adjustChildCoordinates=function(t,e,i,n){var s=i.children[n];if(\"function\"!=typeof s.measureText)return s;if(s.attribute(\"x\").hasValue()){s.x=s.attribute(\"x\").toPixels(\"x\")+e.getAnchorDelta(t,i,n);var a=s.attribute(\"text-anchor\").valueOrDefault(\"start\");if(\"start\"!==a){var r=s.measureTextRecursive(t);s.x+=-1*(\"end\"==a?r:r/2)}s.attribute(\"dx\").hasValue()&&(s.x+=s.attribute(\"dx\").toPixels(\"x\"))}else s.attribute(\"dx\").hasValue()&&(e.x+=s.attribute(\"dx\").toPixels(\"x\")),s.x=e.x;return e.x=s.x+s.measureText(t),s.attribute(\"y\").hasValue()?(s.y=s.attribute(\"y\").toPixels(\"y\"),s.attribute(\"dy\").hasValue()&&(s.y+=s.attribute(\"dy\").toPixels(\"y\"))):(s.attribute(\"dy\").hasValue()&&(e.y+=s.attribute(\"dy\").toPixels(\"y\")),s.y=e.y),e.y=s.y,s},this.getChildBoundingBox=function(t,e,i,n){var s=this.adjustChildCoordinates(t,e,i,n),a=s.getBoundingBox(t);for(n=0;n<s.children.length;n++){var r=e.getChildBoundingBox(t,e,s,n);a.addBoundingBox(r)}return a},this.renderChild=function(t,e,i,n){var s=this.adjustChildCoordinates(t,e,i,n);s.render(t);for(n=0;n<s.children.length;n++)e.renderChild(t,e,s,n)}},D.Element.text.prototype=new D.Element.RenderedElementBase,D.Element.TextElementBase=function(t){this.base=D.Element.RenderedElementBase,this.base(t),this.getGlyph=function(t,e,i){var n=e[i],s=null;if(t.isArabic){var a=\"isolated\";(0==i||\" \"==e[i-1])&&i<e.length-2&&\" \"!=e[i+1]&&(a=\"terminal\"),0<i&&\" \"!=e[i-1]&&i<e.length-2&&\" \"!=e[i+1]&&(a=\"medial\"),0<i&&\" \"!=e[i-1]&&(i==e.length-1||\" \"==e[i+1])&&(a=\"initial\"),void 0!==t.glyphs[n]&&null==(s=t.glyphs[n][a])&&\"glyph\"==t.glyphs[n].type&&(s=t.glyphs[n])}else s=t.glyphs[n];return null==s&&(s=t.missingGlyph),s},this.renderChildren=function(t){var e=this.parent.style(\"font-family\").getDefinition();if(null==e)\"stroke\"==t.paintOrder?(\"\"!=t.strokeStyle&&t.strokeText(D.compressSpaces(this.getText()),this.x,this.y),\"\"!=t.fillStyle&&t.fillText(D.compressSpaces(this.getText()),this.x,this.y)):(\"\"!=t.fillStyle&&t.fillText(D.compressSpaces(this.getText()),this.x,this.y),\"\"!=t.strokeStyle&&t.strokeText(D.compressSpaces(this.getText()),this.x,this.y));else{var i=this.parent.style(\"font-size\").numValueOrDefault(D.Font.Parse(D.ctx.font).fontSize),n=this.parent.style(\"font-style\").valueOrDefault(D.Font.Parse(D.ctx.font).fontStyle),s=this.getText();e.isRTL&&(s=s.split(\"\").reverse().join(\"\"));for(var a=D.ToNumberArray(this.parent.attribute(\"dx\").value),r=0;r<s.length;r++){var o=this.getGlyph(e,s,r),h=i/e.fontFace.unitsPerEm;t.translate(this.x,this.y),t.scale(h,-h);var l=t.lineWidth;t.lineWidth=t.lineWidth*e.fontFace.unitsPerEm/i,\"italic\"==n&&t.transform(1,0,.4,1,0,0),o.render(t),\"italic\"==n&&t.transform(1,0,-.4,1,0,0),t.lineWidth=l,t.scale(1/h,-1/h),t.translate(-this.x,-this.y),this.x+=i*(o.horizAdvX||e.horizAdvX)/e.fontFace.unitsPerEm,void 0===a[r]||isNaN(a[r])||(this.x+=a[r])}}},this.getText=function(){},this.measureTextRecursive=function(t){for(var e=this.measureText(t),i=0;i<this.children.length;i++)e+=this.children[i].measureTextRecursive(t);return e},this.measureText=function(t){var e=this.parent.style(\"font-family\").getDefinition();if(null!=e){var i=this.parent.style(\"font-size\").numValueOrDefault(D.Font.Parse(D.ctx.font).fontSize),n=0,s=this.getText();e.isRTL&&(s=s.split(\"\").reverse().join(\"\"));for(var a=D.ToNumberArray(this.parent.attribute(\"dx\").value),r=0;r<s.length;r++){n+=(this.getGlyph(e,s,r).horizAdvX||e.horizAdvX)*i/e.fontFace.unitsPerEm,void 0===a[r]||isNaN(a[r])||(n+=a[r])}return n}var o=D.compressSpaces(this.getText());if(!t.measureText)return 10*o.length;t.save(),this.setContext(t,!0);var h=t.measureText(o).width;return t.restore(),h},this.getBoundingBox=function(t){var e=this.parent.style(\"font-size\").numValueOrDefault(D.Font.Parse(D.ctx.font).fontSize);return new D.BoundingBox(this.x,this.y-e,this.x+this.measureText(t),this.y)}},D.Element.TextElementBase.prototype=new D.Element.RenderedElementBase,D.Element.tspan=function(t){this.captureTextNodes=!0,this.base=D.Element.TextElementBase,this.base(t),this.text=D.compressSpaces(t.value||t.text||t.textContent||\"\"),this.getText=function(){return 0<this.children.length?\"\":this.text}},D.Element.tspan.prototype=new D.Element.TextElementBase,D.Element.tref=function(t){this.base=D.Element.TextElementBase,this.base(t),this.getText=function(){var t=this.getHrefAttribute().getDefinition();if(null!=t)return t.children[0].getText()}},D.Element.tref.prototype=new D.Element.TextElementBase,D.Element.a=function(t){this.base=D.Element.TextElementBase,this.base(t),this.hasText=0<t.childNodes.length;for(var e=0;e<t.childNodes.length;e++)3!=t.childNodes[e].nodeType&&(this.hasText=!1);this.text=this.hasText?t.childNodes[0].value||t.childNodes[0].data:\"\",this.getText=function(){return this.text},this.baseRenderChildren=this.renderChildren,this.renderChildren=function(t){if(this.hasText){this.baseRenderChildren(t);var e=new D.Property(\"fontSize\",D.Font.Parse(D.ctx.font).fontSize);D.Mouse.checkBoundingBox(this,new D.BoundingBox(this.x,this.y-e.toPixels(\"y\"),this.x+this.measureText(t),this.y))}else if(0<this.children.length){var i=new D.Element.g;i.children=this.children,i.parent=this,i.render(t)}},this.onclick=function(){l.open(this.getHrefAttribute().value)},this.onmousemove=function(){D.ctx.canvas.style.cursor=\"pointer\"}},D.Element.a.prototype=new D.Element.TextElementBase,D.Element.textPath=function(t){this.base=D.Element.TextElementBase,this.base(t);var e=this.getHrefAttribute().getDefinition();this.text=D.compressSpaces(t.value||t.text||t.textContent||\"\"),this.renderChildren=function(t){this.setTextData(t),t.save();var e=this.parent.style(\"text-decoration\").value,i=this.fontSize(),n=this.glyphInfo,s=t.fillStyle;\"underline\"===e&&t.beginPath();for(var a=0;a<n.length;a++){var r=n[a].p0,o=n[a].p1,h=n[a].text;t.save(),t.translate(r.x,r.y),t.rotate(n[a].rotation),\"\"!=t.fillStyle&&t.fillText(D.compressSpaces(h),0,0),\"\"!=t.strokeStyle&&t.strokeText(D.compressSpaces(h),0,0),t.restore(),\"underline\"===e&&(0===a&&t.moveTo(r.x,r.y+i/8),t.lineTo(o.x,o.y+i/5))}\"underline\"===e&&(t.lineWidth=i/20,t.strokeStyle=s,t.stroke(),t.closePath()),t.restore()},this.path=function(t){var e=this.dataArray;null!=t&&t.beginPath();for(var i=0;i<e.length;i++){var n=e[i].command,s=e[i].points;switch(n){case\"L\":null!=t&&t.lineTo(s[0],s[1]);break;case\"M\":null!=t&&t.moveTo(s[0],s[1]);break;case\"C\":null!=t&&t.bezierCurveTo(s[0],s[1],s[2],s[3],s[4],s[5]);break;case\"Q\":null!=t&&t.quadraticCurveTo(s[0],s[1],s[2],s[3]);break;case\"A\":var a=s[0],r=s[1],o=s[2],h=s[3],l=s[4],u=s[5],c=s[6],f=s[7],p=h<o?o:h,d=h<o?1:o/h,m=h<o?h/o:1;null!=t&&(t.translate(a,r),t.rotate(c),t.scale(d,m),t.arc(0,0,p,l,l+u,1-f),t.scale(1/d,1/m),t.rotate(-c),t.translate(-a,-r));break;case\"z\":null!=t&&t.closePath()}}},this.getText=function(){return this.text},this.fontSize=function(){return this.parent.style(\"font-size\").numValueOrDefault(D.Font.Parse(D.ctx.font).fontSize)},this.measureText=function(t,e){var i=this.parent.style(\"font-family\").getDefinition();if(e=e||this.getText(),null!=i){var n=this.fontSize(),s=0;i.isRTL&&(e=e.split(\"\").reverse().join(\"\"));for(var a=D.ToNumberArray(this.parent.attribute(\"dx\").value),r=0;r<e.length;r++){s+=(this.getGlyph(i,e,r).horizAdvX||i.horizAdvX)*n/i.fontFace.unitsPerEm,void 0===a[r]||isNaN(a[r])||(s+=a[r])}return s}var o=D.compressSpaces(e);if(!t.measureText)return 10*o.length;t.save(),this.setContext(t);var h=t.measureText(o).width;return t.restore(),h},this.setTextData=function(r){if(!this.hasOwnProperty(\"glyphInfo\")){var o=this,t=this.getText().split(\"\"),h=this.getText().split(\" \").length-1,e=D.ToNumberArray(this.parent.attribute(\"dx\").valueOrDefault(\"0\")),i=0,l=this.parent.style(\"text-anchor\").valueOrDefault(\"start\"),n=this.style(\"letter-spacing\"),s=this.parent.style(\"letter-spacing\");n.hasValue()&&\"inherit\"!==n.getValue()?n.hasValue()&&\"initial\"!==n.getValue()&&\"unset\"!==n.getValue()&&(i=n.toPixels()):i=s.toPixels(),this.letterSpacingCache=[];for(var a=0;a<this.getText().length;a++)this.letterSpacingCache.push(void 0!==e[a]?e[a]:i);var u=this.letterSpacingCache.reduce(function(t,e){return t+e||0},0);this.textWidth=this.measureText(r),this.textHeight=this.fontSize();var c=Math.max(this.textWidth+u,0);this.glyphInfo=[];var f=this.getPathLength(),p=this.style(\"startOffset\").numValueOrDefault(0)*f,d=0;\"middle\"!==l&&\"center\"!==l||(d=-c/2),\"end\"!==l&&\"right\"!==l||(d=-c),d+=p;var m=function(t,e){var i,n=o.measureText(r,t);\" \"===t&&\"justify\"===l&&c<f&&(n+=(f-c)/h),-1<e&&(d+=(i=(i=e)||0,o.letterSpacingCache[i]||0));var s=o.textHeight/20,a={p0:o.getEquidistantPointOnPath(d,s),p1:o.getEquidistantPointOnPath(d+n,s)};return d+=n,a};for(a=0;a<t.length;a++){var y=m(t[a],a);if(void 0!==y.p0&&void 0!==y.p1){var v=o.getLineLength(y.p0.x,y.p0.y,y.p1.x,y.p1.y),g=o.getPointOnLine(0+v/2,y.p0.x,y.p0.y,y.p1.x,y.p1.y),x=Math.atan2(y.p1.y-y.p0.y,y.p1.x-y.p0.x);this.glyphInfo.push({transposeX:g.x,transposeY:g.y,text:t[a],rotation:x,p0:y.p0,p1:y.p1})}}}},this.parsePathData=function(t){if(this.pathLength=void 0,!t)return[];var e=[],i=t.PathParser;for(i.reset();!i.isEnd();){var n=[],s=null,a=i.current?i.current.x:0,r=i.current?i.current.y:0;i.nextCommand();var o=i.command.toUpperCase();switch(i.command){case\"M\":case\"m\":var h=i.getAsCurrentPoint();for(n.push(h.x,h.y),i.start=i.current;!i.isCommandOrEnd();){h=i.getAsCurrentPoint();n.push(h.x,h.y),s=\"L\"}break;case\"L\":case\"l\":for(;!i.isCommandOrEnd();){h=i.getAsCurrentPoint();n.push(h.x,h.y)}s=\"L\";break;case\"H\":case\"h\":for(;!i.isCommandOrEnd();){var l=new D.Point((i.isRelativeCommand()?i.current.x:0)+i.getScalar(),i.current.y);n.push(l.x,l.y),i.current=l}s=\"L\";break;case\"V\":case\"v\":for(;!i.isCommandOrEnd();){l=new D.Point(i.current.x,(i.isRelativeCommand()?i.current.y:0)+i.getScalar());n.push(l.x,l.y),i.current=l}s=\"L\";break;case\"C\":case\"c\":for(;!i.isCommandOrEnd();){var u=i.getPoint(),c=i.getAsControlPoint(),f=i.getAsCurrentPoint();n.push(u.x,u.y,c.x,c.y,f.x,f.y)}break;case\"S\":case\"s\":for(;!i.isCommandOrEnd();){u=i.getReflectedControlPoint(),c=i.getAsControlPoint(),f=i.getAsCurrentPoint();n.push(u.x,u.y,c.x,c.y,f.x,f.y)}s=\"C\";break;case\"Q\":case\"q\":for(;!i.isCommandOrEnd();){c=i.getAsControlPoint(),f=i.getAsCurrentPoint();n.push(c.x,c.y,f.x,f.y)}break;case\"T\":case\"t\":for(;!i.isCommandOrEnd();){c=i.getReflectedControlPoint();i.control=c;f=i.getAsCurrentPoint();n.push(c.x,c.y,f.x,f.y)}s=\"Q\";break;case\"A\":case\"a\":for(;!i.isCommandOrEnd();){var p=i.current,d=i.getScalar(),m=i.getScalar(),y=i.getScalar()*(Math.PI/180),v=i.getScalar(),g=i.getScalar(),x=(f=i.getAsCurrentPoint(),new D.Point(Math.cos(y)*(p.x-f.x)/2+Math.sin(y)*(p.y-f.y)/2,-Math.sin(y)*(p.x-f.x)/2+Math.cos(y)*(p.y-f.y)/2)),b=Math.pow(x.x,2)/Math.pow(d,2)+Math.pow(x.y,2)/Math.pow(m,2);1<b&&(d*=Math.sqrt(b),m*=Math.sqrt(b));var P=(v==g?-1:1)*Math.sqrt((Math.pow(d,2)*Math.pow(m,2)-Math.pow(d,2)*Math.pow(x.y,2)-Math.pow(m,2)*Math.pow(x.x,2))/(Math.pow(d,2)*Math.pow(x.y,2)+Math.pow(m,2)*Math.pow(x.x,2)));isNaN(P)&&(P=0);var E=new D.Point(P*d*x.y/m,P*-m*x.x/d),w=new D.Point((p.x+f.x)/2+Math.cos(y)*E.x-Math.sin(y)*E.y,(p.y+f.y)/2+Math.sin(y)*E.x+Math.cos(y)*E.y),C=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2))},B=function(t,e){return(t[0]*e[0]+t[1]*e[1])/(C(t)*C(e))},M=function(t,e){return(t[0]*e[1]<t[1]*e[0]?-1:1)*Math.acos(B(t,e))},T=M([1,0],[(x.x-E.x)/d,(x.y-E.y)/m]),S=[(x.x-E.x)/d,(x.y-E.y)/m],V=[(-x.x-E.x)/d,(-x.y-E.y)/m],k=M(S,V);B(S,V)<=-1&&(k=Math.PI),1<=B(S,V)&&(k=0),0===g&&0<k&&(k-=2*Math.PI),1===g&&k<0&&(k+=2*Math.PI),n=[w.x,w.y,d,m,T,k,y,g]}break;case\"Z\":case\"z\":i.current=i.start}\"Z\"!==o?e.push({command:s||o,points:n,start:{x:a,y:r},pathLength:this.calcLength(a,r,s||o,n)}):e.push({command:\"z\",points:[],start:void 0,pathLength:0})}return e},this.getPathLength=function(){if(void 0===this.pathLength||null===this.pathLength||isNaN(this.pathLength))for(var t=this.pathLength=0;t<this.dataArray.length;t++)0<this.dataArray[t].pathLength&&(this.pathLength+=this.dataArray[t].pathLength);return this.pathLength},this.getPointOnPath=function(t){var e=0,i=this.getPathLength(),n=void 0;if(!(t<-5e-5||i<t-5e-5))for(var s=0;s<this.dataArray.length;s++){var a=this.dataArray[s];if(!a||!(a.pathLength<5e-5||e+a.pathLength+5e-5<t)){var r=t-e,o=void 0;switch(a.command){case\"L\":n=this.getPointOnLine(r,a.start.x,a.start.y,a.points[0],a.points[1],a.start.x,a.start.y);break;case\"A\":var h=a.points[4],l=a.points[5],u=a.points[4]+l;if(o=h+r/a.pathLength*l,l<0&&o<u||0<=l&&u<o)break;n=this.getPointOnEllipticalArc(a.points[0],a.points[1],a.points[2],a.points[3],o,a.points[6]);break;case\"C\":1<(o=r/a.pathLength)&&(o=1),n=this.getPointOnCubicBezier(o,a.start.x,a.start.y,a.points[0],a.points[1],a.points[2],a.points[3],a.points[4],a.points[5]);break;case\"Q\":1<(o=r/a.pathLength)&&(o=1),n=this.getPointOnQuadraticBezier(o,a.start.x,a.start.y,a.points[0],a.points[1],a.points[2],a.points[3])}if(void 0!==n&&n!=={})return n;break}e+=a.pathLength}},this.buildEquidistantCache=function(t,e){var i=this.getPathLength();if(e=e||.25,t=t||i/100,this.equidistantCache=this.equidistantCache||{},!this.equidistantCache.hasOwnProperty(\"points\")||this.equidistantCache.step!=t||this.equidistantCache.precision!=e){this.equidistantCache={step:t,precision:e,points:[]};for(var n=0,s=0;s<=i;s+=e){var a=this.getPointOnPath(s),r=this.getPointOnPath(s+e);void 0!==a&&void 0!==r&&(t<=(n+=this.getLineLength(a.x,a.y,r.x,r.y))&&(this.equidistantCache.points.push({x:a.x,y:a.y,distance:s}),n-=t))}}},this.getEquidistantPointOnPath=function(t,e,i){if(this.buildEquidistantCache(e,i),!(t<0||5e-5<t-this.getPathLength())){var n=Math.round(t/this.getPathLength()*(this.equidistantCache.points.length-1));return this.equidistantCache.points[n]||void 0}},this.getLineLength=function(t,e,i,n){return Math.sqrt((i-t)*(i-t)+(n-e)*(n-e))},this.getPointOnLine=function(t,e,i,n,s,a,r){void 0===a&&(a=e),void 0===r&&(r=i);var o=(s-i)/(n-e+1e-8),h=Math.sqrt(t*t/(1+o*o));n<e&&(h*=-1);var l,u=o*h;if(n===e)l={x:a,y:r+u};else if((r-i)/(a-e+1e-8)===o)l={x:a+h,y:r+u};else{var c,f,p=this.getLineLength(e,i,n,s);if(p<1e-8)return;var d=(a-e)*(n-e)+(r-i)*(s-i);c=e+(d/=p*p)*(n-e),f=i+d*(s-i);var m=this.getLineLength(a,r,c,f),y=Math.sqrt(t*t-m*m);h=Math.sqrt(y*y/(1+o*o)),n<e&&(h*=-1),l={x:c+h,y:f+(u=o*h)}}return l},this.getPointOnCubicBezier=function(t,e,i,n,s,a,r,o,h){function l(t){return t*t*t}function u(t){return 3*t*t*(1-t)}function c(t){return 3*t*(1-t)*(1-t)}function f(t){return(1-t)*(1-t)*(1-t)}return{x:o*l(t)+a*u(t)+n*c(t)+e*f(t),y:h*l(t)+r*u(t)+s*c(t)+i*f(t)}},this.getPointOnQuadraticBezier=function(t,e,i,n,s,a,r){function o(t){return t*t}function h(t){return 2*t*(1-t)}function l(t){return(1-t)*(1-t)}return{x:a*o(t)+n*h(t)+e*l(t),y:r*o(t)+s*h(t)+i*l(t)}},this.getPointOnEllipticalArc=function(t,e,i,n,s,a){var r=Math.cos(a),o=Math.sin(a),h=i*Math.cos(s),l=n*Math.sin(s);return{x:t+(h*r-l*o),y:e+(h*o+l*r)}},this.calcLength=function(t,e,i,n){var s,a,r,o;switch(i){case\"L\":return this.getLineLength(t,e,n[0],n[1]);case\"C\":for(s=0,a=this.getPointOnCubicBezier(0,t,e,n[0],n[1],n[2],n[3],n[4],n[5]),o=.01;o<=1;o+=.01)r=this.getPointOnCubicBezier(o,t,e,n[0],n[1],n[2],n[3],n[4],n[5]),s+=this.getLineLength(a.x,a.y,r.x,r.y),a=r;return s;case\"Q\":for(s=0,a=this.getPointOnQuadraticBezier(0,t,e,n[0],n[1],n[2],n[3]),o=.01;o<=1;o+=.01)r=this.getPointOnQuadraticBezier(o,t,e,n[0],n[1],n[2],n[3]),s+=this.getLineLength(a.x,a.y,r.x,r.y),a=r;return s;case\"A\":s=0;var h=n[4],l=n[5],u=n[4]+l,c=Math.PI/180;if(Math.abs(h-u)<c&&(c=Math.abs(h-u)),a=this.getPointOnEllipticalArc(n[0],n[1],n[2],n[3],h,0),l<0)for(o=h-c;u<o;o-=c)r=this.getPointOnEllipticalArc(n[0],n[1],n[2],n[3],o,0),s+=this.getLineLength(a.x,a.y,r.x,r.y),a=r;else for(o=h+c;o<u;o+=c)r=this.getPointOnEllipticalArc(n[0],n[1],n[2],n[3],o,0),s+=this.getLineLength(a.x,a.y,r.x,r.y),a=r;return r=this.getPointOnEllipticalArc(n[0],n[1],n[2],n[3],u,0),s+=this.getLineLength(a.x,a.y,r.x,r.y)}return 0},this.dataArray=this.parsePathData(e)},D.Element.textPath.prototype=new D.Element.TextElementBase,D.Element.image=function(t){this.base=D.Element.RenderedElementBase,this.base(t);var e=this.getHrefAttribute().value;if(\"\"!=e){var a=e.match(/\\.svg$/);if(D.Images.push(this),this.loaded=!1,a)this.img=D.ajax(e),this.loaded=!0;else{this.img=c.createElement(\"img\"),1==D.opts.useCORS&&(this.img.crossOrigin=\"Anonymous\");var r=this;this.img.onload=function(){r.loaded=!0},this.img.onerror=function(){D.log('ERROR: image \"'+e+'\" not found'),r.loaded=!0},this.img.src=e}this.renderChildren=function(t){var e=this.attribute(\"x\").toPixels(\"x\"),i=this.attribute(\"y\").toPixels(\"y\"),n=this.attribute(\"width\").toPixels(\"x\"),s=this.attribute(\"height\").toPixels(\"y\");0!=n&&0!=s&&(t.save(),a?t.drawSvg(this.img,e,i,n,s):(t.translate(e,i),D.AspectRatio(t,this.attribute(\"preserveAspectRatio\").value,n,this.img.width,s,this.img.height,0,0),r.loaded&&(void 0===this.img.complete||this.img.complete)&&t.drawImage(this.img,0,0)),t.restore())},this.getBoundingBox=function(){var t=this.attribute(\"x\").toPixels(\"x\"),e=this.attribute(\"y\").toPixels(\"y\"),i=this.attribute(\"width\").toPixels(\"x\"),n=this.attribute(\"height\").toPixels(\"y\");return new D.BoundingBox(t,e,t+i,e+n)}}},D.Element.image.prototype=new D.Element.RenderedElementBase,D.Element.g=function(t){this.base=D.Element.RenderedElementBase,this.base(t),this.getBoundingBox=function(t){for(var e=new D.BoundingBox,i=0;i<this.children.length;i++)e.addBoundingBox(this.children[i].getBoundingBox(t));return e}},D.Element.g.prototype=new D.Element.RenderedElementBase,D.Element.symbol=function(t){this.base=D.Element.RenderedElementBase,this.base(t),this.render=function(){}},D.Element.symbol.prototype=new D.Element.RenderedElementBase,D.ParseExternalUrl=function(t){var e=t.match(/url\\(('([^']+)'|\"([^\"]+)\"|([^'\"\\)]+))\\)/)||[];return e[2]||e[3]||e[4]},D.Element.style=function(t){this.base=D.Element.ElementBase,this.base(t);for(var e=\"\",i=0;i<t.childNodes.length;i++)e+=t.childNodes[i].data;e=e.replace(/(\\/\\*([^*]|[\\r\\n]|(\\*+([^*\\/]|[\\r\\n])))*\\*+\\/)|(^[\\s]*\\/\\/.*)/gm,\"\");var n=(e=D.compressSpaces(e)).split(\"}\");for(i=0;i<n.length;i++)if(\"\"!=D.trim(n[i]))for(var s=n[i].split(\"{\"),a=s[0].split(\",\"),r=s[1].split(\";\"),o=0;o<a.length;o++){var h=D.trim(a[o]);if(\"\"!=h){for(var l=D.Styles[h]||{},u=0;u<r.length;u++){var c=r[u].indexOf(\":\"),f=r[u].substr(0,c),p=r[u].substr(c+1,r[u].length-c);null!=f&&null!=p&&(l[D.trim(f)]=new D.Property(D.trim(f),D.trim(p)))}if(D.Styles[h]=l,D.StylesSpecificity[h]=P(h),\"@font-face\"==h)for(var d=l[\"font-family\"].value.replace(/\"/g,\"\"),m=l.src.value.split(\",\"),y=0;y<m.length;y++)if(0<m[y].indexOf('format(\"svg\")')){var v=D.ParseExternalUrl(m[y]);if(v)for(var g=D.parseXml(D.ajax(v)).getElementsByTagName(\"font\"),x=0;x<g.length;x++){var b=D.CreateElement(g[x]);D.Definitions[d]=b}}}}},D.Element.style.prototype=new D.Element.ElementBase,D.Element.use=function(t){this.base=D.Element.RenderedElementBase,this.base(t),this.baseSetContext=this.setContext,this.setContext=function(t){this.baseSetContext(t),this.attribute(\"x\").hasValue()&&t.translate(this.attribute(\"x\").toPixels(\"x\"),0),this.attribute(\"y\").hasValue()&&t.translate(0,this.attribute(\"y\").toPixels(\"y\"))};var n=this.getHrefAttribute().getDefinition();this.path=function(t){null!=n&&n.path(t)},this.elementTransform=function(){if(null!=n&&n.style(\"transform\",!1,!0).hasValue())return new D.Transform(n.style(\"transform\",!1,!0).value)},this.getBoundingBox=function(t){if(null!=n)return n.getBoundingBox(t)},this.renderChildren=function(t){if(null!=n){var e=n;\"symbol\"==n.type&&((e=new D.Element.svg).type=\"svg\",e.attributes.viewBox=new D.Property(\"viewBox\",n.attribute(\"viewBox\").value),e.attributes.preserveAspectRatio=new D.Property(\"preserveAspectRatio\",n.attribute(\"preserveAspectRatio\").value),e.attributes.overflow=new D.Property(\"overflow\",n.attribute(\"overflow\").value),e.children=n.children),\"svg\"==e.type&&(this.attribute(\"width\").hasValue()&&(e.attributes.width=new D.Property(\"width\",this.attribute(\"width\").value)),this.attribute(\"height\").hasValue()&&(e.attributes.height=new D.Property(\"height\",this.attribute(\"height\").value)));var i=e.parent;e.parent=null,e.render(t),e.parent=i}}},D.Element.use.prototype=new D.Element.RenderedElementBase,D.Element.mask=function(t){this.base=D.Element.ElementBase,this.base(t),this.apply=function(t,e){var i=this.attribute(\"x\").toPixels(\"x\"),n=this.attribute(\"y\").toPixels(\"y\"),s=this.attribute(\"width\").toPixels(\"x\"),a=this.attribute(\"height\").toPixels(\"y\");if(0==s&&0==a){for(var r=new D.BoundingBox,o=0;o<this.children.length;o++)r.addBoundingBox(this.children[o].getBoundingBox(t));i=Math.floor(r.x1),n=Math.floor(r.y1),s=Math.floor(r.width()),a=Math.floor(r.height())}var h=e.style(\"mask\").value;e.style(\"mask\").value=\"\";var l=d(i+s,n+a),u=l.getContext(\"2d\");D.SetDefaults(u),this.renderChildren(u),new D.Element.feColorMatrix({nodeType:1,childNodes:[],attributes:[{nodeName:\"type\",value:\"luminanceToAlpha\"},{nodeName:\"includeOpacity\",value:\"true\"}]}).apply(u,0,0,i+s,n+a);var c=d(i+s,n+a),f=c.getContext(\"2d\");D.SetDefaults(f),e.render(f),f.globalCompositeOperation=\"destination-in\",f.fillStyle=u.createPattern(l,\"no-repeat\"),f.fillRect(0,0,i+s,n+a),t.fillStyle=f.createPattern(c,\"no-repeat\"),t.fillRect(0,0,i+s,n+a),e.style(\"mask\").value=h},this.render=function(){}},D.Element.mask.prototype=new D.Element.ElementBase,D.Element.clipPath=function(t){this.base=D.Element.ElementBase,this.base(t),this.apply=function(t){var e=\"undefined\"!=typeof CanvasRenderingContext2D,i=t.beginPath,n=t.closePath;e&&(CanvasRenderingContext2D.prototype.beginPath=function(){},CanvasRenderingContext2D.prototype.closePath=function(){}),i.call(t);for(var s=0;s<this.children.length;s++){var a=this.children[s];if(void 0!==a.path){var r=void 0!==a.elementTransform&&a.elementTransform();!r&&a.style(\"transform\",!1,!0).hasValue()&&(r=new D.Transform(a.style(\"transform\",!1,!0).value)),r&&r.apply(t),a.path(t),e&&(CanvasRenderingContext2D.prototype.closePath=n),r&&r.unapply(t)}}n.call(t),t.clip(),e&&(CanvasRenderingContext2D.prototype.beginPath=i,CanvasRenderingContext2D.prototype.closePath=n)},this.render=function(){}},D.Element.clipPath.prototype=new D.Element.ElementBase,D.Element.filter=function(t){this.base=D.Element.ElementBase,this.base(t),this.apply=function(t,e){var i=e.getBoundingBox(t),n=Math.floor(i.x1),s=Math.floor(i.y1),a=Math.floor(i.width()),r=Math.floor(i.height()),o=e.style(\"filter\").value;e.style(\"filter\").value=\"\";for(var h=0,l=0,u=0;u<this.children.length;u++){var c=this.children[u].extraFilterDistance||0;h=Math.max(h,c),l=Math.max(l,c)}var f=d(a+2*h,r+2*l),p=f.getContext(\"2d\");D.SetDefaults(p),p.translate(-n+h,-s+l),e.render(p);for(u=0;u<this.children.length;u++)\"function\"==typeof this.children[u].apply&&this.children[u].apply(p,0,0,a+2*h,r+2*l);t.drawImage(f,0,0,a+2*h,r+2*l,n-h,s-l,a+2*h,r+2*l),e.style(\"filter\",!0).value=o},this.render=function(){}},D.Element.filter.prototype=new D.Element.ElementBase,D.Element.feDropShadow=function(t){this.base=D.Element.ElementBase,this.base(t),this.addStylesFromStyleDefinition(),this.apply=function(){}},D.Element.feDropShadow.prototype=new D.Element.ElementBase,D.Element.feMorphology=function(t){this.base=D.Element.ElementBase,this.base(t),this.apply=function(){}},D.Element.feMorphology.prototype=new D.Element.ElementBase,D.Element.feComposite=function(t){this.base=D.Element.ElementBase,this.base(t),this.apply=function(){}},D.Element.feComposite.prototype=new D.Element.ElementBase,D.Element.feColorMatrix=function(t){this.base=D.Element.ElementBase,this.base(t);var n=D.ToNumberArray(this.attribute(\"values\").value);switch(this.attribute(\"type\").valueOrDefault(\"matrix\")){case\"saturate\":var e=n[0];n=[.213+.787*e,.715-.715*e,.072-.072*e,0,0,.213-.213*e,.715+.285*e,.072-.072*e,0,0,.213-.213*e,.715-.715*e,.072+.928*e,0,0,0,0,0,1,0,0,0,0,0,1];break;case\"hueRotate\":var s=n[0]*Math.PI/180,i=function(t,e,i){return t+Math.cos(s)*e+Math.sin(s)*i};n=[i(.213,.787,-.213),i(.715,-.715,-.715),i(.072,-.072,.928),0,0,i(.213,-.213,.143),i(.715,.285,.14),i(.072,-.072,-.283),0,0,i(.213,-.213,-.787),i(.715,-.715,.715),i(.072,.928,.072),0,0,0,0,0,1,0,0,0,0,0,1];break;case\"luminanceToAlpha\":n=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,.2125,.7154,.0721,0,0,0,0,0,0,1]}function d(t,e,i,n,s,a){return t[i*n*4+4*e+a]}function m(t,e,i,n,s,a,r){t[i*n*4+4*e+a]=r}function y(t,e){var i=n[t];return i*(i<0?e-255:e)}var v=this.attribute(\"includeOpacity\").hasValue();this.apply=function(t,e,i,n,s){var a=t.getImageData(0,0,n,s);for(i=0;i<s;i++)for(e=0;e<n;e++){var r=d(a.data,e,i,n,0,0),o=d(a.data,e,i,n,0,1),h=d(a.data,e,i,n,0,2),l=d(a.data,e,i,n,0,3),u=y(0,r)+y(1,o)+y(2,h)+y(3,l)+y(4,1),c=y(5,r)+y(6,o)+y(7,h)+y(8,l)+y(9,1),f=y(10,r)+y(11,o)+y(12,h)+y(13,l)+y(14,1),p=y(15,r)+y(16,o)+y(17,h)+y(18,l)+y(19,1);v&&(u=c=f=0,p*=l/255),m(a.data,e,i,n,0,0,u),m(a.data,e,i,n,0,1,c),m(a.data,e,i,n,0,2,f),m(a.data,e,i,n,0,3,p)}t.clearRect(0,0,n,s),t.putImageData(a,0,0)}},D.Element.feColorMatrix.prototype=new D.Element.ElementBase,D.Element.feGaussianBlur=function(t){this.base=D.Element.ElementBase,this.base(t),this.blurRadius=Math.floor(this.attribute(\"stdDeviation\").numValue()),this.extraFilterDistance=this.blurRadius,this.apply=function(t,e,i,n,s){v&&void 0!==v.canvasRGBA?(t.canvas.id=D.UniqueId(),t.canvas.style.display=\"none\",c.body.appendChild(t.canvas),v.canvasRGBA(t.canvas,e,i,n,s,this.blurRadius),c.body.removeChild(t.canvas)):D.log(\"ERROR: StackBlur.js must be included for blur to work\")}},D.Element.feGaussianBlur.prototype=new D.Element.ElementBase,D.Element.title=function(){},D.Element.title.prototype=new D.Element.ElementBase,D.Element.desc=function(){},D.Element.desc.prototype=new D.Element.ElementBase,D.Element.MISSING=function(t){D.log(\"ERROR: Element '\"+t.nodeName+\"' not yet implemented.\")},D.Element.MISSING.prototype=new D.Element.ElementBase,D.CreateElement=function(t){var e=t.nodeName.replace(/^[^:]+:/,\"\");e=e.replace(/\\-/g,\"\");var i=null;return(i=void 0!==D.Element[e]?new D.Element[e](t):new D.Element.MISSING(t)).type=t.nodeName,i},D.load=function(t,e){D.loadXml(t,D.ajax(e))},D.loadXml=function(t,e){D.loadXmlDoc(t,D.parseXml(e))},D.loadXmlDoc=function(a,r){D.init(a);var i=function(t){for(var e=a.canvas;e;)t.x-=e.offsetLeft,t.y-=e.offsetTop,e=e.offsetParent;return l.scrollX&&(t.x+=l.scrollX),l.scrollY&&(t.y+=l.scrollY),t};1!=D.opts.ignoreMouse&&(a.canvas.onclick=function(t){var e=i(new D.Point(null!=t?t.clientX:event.clientX,null!=t?t.clientY:event.clientY));D.Mouse.onclick(e.x,e.y)},a.canvas.onmousemove=function(t){var e=i(new D.Point(null!=t?t.clientX:event.clientX,null!=t?t.clientY:event.clientY));D.Mouse.onmousemove(e.x,e.y)});var o=D.CreateElement(r.documentElement);o.root=!0,o.addStylesFromStyleDefinition();var h=!0,n=function(){D.ViewPort.Clear(),a.canvas.parentNode?D.ViewPort.SetCurrent(a.canvas.parentNode.clientWidth,a.canvas.parentNode.clientHeight):D.ViewPort.SetCurrent(800,600),1!=D.opts.ignoreDimensions&&(h||null==D.opts.scaleWidth&&null==D.opts.scaleHeight)&&(o.style(\"width\").hasValue()&&(a.canvas.width=o.style(\"width\").toPixels(\"x\"),a.canvas.style&&(a.canvas.style.width=a.canvas.width+\"px\")),o.style(\"height\").hasValue()&&(a.canvas.height=o.style(\"height\").toPixels(\"y\"),a.canvas.style&&(a.canvas.style.height=a.canvas.height+\"px\")));var t=a.canvas.clientWidth||a.canvas.width,e=a.canvas.clientHeight||a.canvas.height;if(1==D.opts.ignoreDimensions&&o.style(\"width\").hasValue()&&o.style(\"height\").hasValue()&&(t=o.style(\"width\").toPixels(\"x\"),e=o.style(\"height\").toPixels(\"y\")),D.ViewPort.SetCurrent(t,e),null!=D.opts.offsetX&&(o.attribute(\"x\",!0).value=D.opts.offsetX),null!=D.opts.offsetY&&(o.attribute(\"y\",!0).value=D.opts.offsetY),null!=D.opts.scaleWidth||null!=D.opts.scaleHeight){var i=null,n=null,s=D.ToNumberArray(o.attribute(\"viewBox\").value);null!=D.opts.scaleWidth&&(o.attribute(\"width\").hasValue()?i=o.attribute(\"width\").toPixels(\"x\")/D.opts.scaleWidth:isNaN(s[2])||(i=s[2]/D.opts.scaleWidth)),null!=D.opts.scaleHeight&&(o.attribute(\"height\").hasValue()?n=o.attribute(\"height\").toPixels(\"y\")/D.opts.scaleHeight:isNaN(s[3])||(n=s[3]/D.opts.scaleHeight)),null==i&&(i=n),null==n&&(n=i),o.attribute(\"width\",!0).value=D.opts.scaleWidth,o.attribute(\"height\",!0).value=D.opts.scaleHeight,o.style(\"transform\",!0,!0).value+=\" scale(\"+1/i+\",\"+1/n+\")\"}1!=D.opts.ignoreClear&&a.clearRect(0,0,t,e),o.render(a),h&&(h=!1,\"function\"==typeof D.opts.renderCallback&&D.opts.renderCallback(r))},s=!0;D.ImagesLoaded()&&(s=!1,n()),D.intervalID=setInterval(function(){var t=!1;if(s&&D.ImagesLoaded()&&(t=!(s=!1)),1!=D.opts.ignoreMouse&&(t=t||D.Mouse.hasEvents()),1!=D.opts.ignoreAnimation)for(var e=0;e<D.Animations.length;e++){var i=D.Animations[e].update(1e3/D.FRAMERATE);t=t||i}\"function\"==typeof D.opts.forceRedraw&&1==D.opts.forceRedraw()&&(t=!0),t&&(n(),D.Mouse.runEvents())},1e3/D.FRAMERATE)},D.stop=function(){D.intervalID&&clearInterval(D.intervalID)},D.Mouse=new function(){this.events=[],this.hasEvents=function(){return 0!=this.events.length},this.onclick=function(t,e){this.events.push({type:\"onclick\",x:t,y:e,run:function(t){t.onclick&&t.onclick()}})},this.onmousemove=function(t,e){this.events.push({type:\"onmousemove\",x:t,y:e,run:function(t){t.onmousemove&&t.onmousemove()}})},this.eventElements=[],this.checkPath=function(t,e){for(var i=0;i<this.events.length;i++){var n=this.events[i];e.isPointInPath&&e.isPointInPath(n.x,n.y)&&(this.eventElements[i]=t)}},this.checkBoundingBox=function(t,e){if(e)for(var i=0;i<this.events.length;i++){var n=this.events[i];e.isPointInBox(n.x,n.y)&&(this.eventElements[i]=t)}},this.runEvents=function(){D.ctx.canvas.style.cursor=\"\";for(var t=0;t<this.events.length;t++)for(var e=this.events[t],i=this.eventElements[t];i;)e.run(i),i=i.parent;this.events=[],this.eventElements=[]}},D}\"undefined\"!=typeof CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.drawSvg=function(t,e,i,n,s,a){var r={ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0,ignoreClear:!0,offsetX:e,offsetY:i,scaleWidth:n,scaleHeight:s};for(var o in a)a.hasOwnProperty(o)&&(r[o]=a[o]);p(this.canvas,t,r)}),p._build=m,t.exports=p}(t={exports:{}},t.exports),t.exports});\n\n//# sourceURL=webpack:///./node_modules/canvg/dist/browser/canvg.min.js?");
|
|
93
|
+
|
|
94
|
+
/***/ }),
|
|
95
|
+
|
|
85
96
|
/***/ "./node_modules/core-js/library/fn/object/assign.js":
|
|
86
97
|
/*!**********************************************************!*\
|
|
87
98
|
!*** ./node_modules/core-js/library/fn/object/assign.js ***!
|
|
@@ -144,7 +155,7 @@ eval("var toString = {}.toString;\n\nmodule.exports = function (it) {\n return
|
|
|
144
155
|
/*! no static exports found */
|
|
145
156
|
/***/ (function(module, exports) {
|
|
146
157
|
|
|
147
|
-
eval("var core = module.exports = { version: '2.6.
|
|
158
|
+
eval("var core = module.exports = { version: '2.6.10' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n//# sourceURL=webpack:///./node_modules/core-js/library/modules/_core.js?");
|
|
148
159
|
|
|
149
160
|
/***/ }),
|
|
150
161
|
|
|
@@ -310,7 +321,7 @@ eval("module.exports = true;\n\n\n//# sourceURL=webpack:///./node_modules/core-j
|
|
|
310
321
|
/***/ (function(module, exports, __webpack_require__) {
|
|
311
322
|
|
|
312
323
|
"use strict";
|
|
313
|
-
eval("\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = __webpack_require__(/*! ./_object-keys */ \"./node_modules/core-js/library/modules/_object-keys.js\");\nvar gOPS = __webpack_require__(/*! ./_object-gops */ \"./node_modules/core-js/library/modules/_object-gops.js\");\nvar pIE = __webpack_require__(/*! ./_object-pie */ \"./node_modules/core-js/library/modules/_object-pie.js\");\nvar toObject = __webpack_require__(/*! ./_to-object */ \"./node_modules/core-js/library/modules/_to-object.js\");\nvar IObject = __webpack_require__(/*! ./_iobject */ \"./node_modules/core-js/library/modules/_iobject.js\");\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(/*! ./_fails */ \"./node_modules/core-js/library/modules/_fails.js\")(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key
|
|
324
|
+
eval("\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ \"./node_modules/core-js/library/modules/_descriptors.js\");\nvar getKeys = __webpack_require__(/*! ./_object-keys */ \"./node_modules/core-js/library/modules/_object-keys.js\");\nvar gOPS = __webpack_require__(/*! ./_object-gops */ \"./node_modules/core-js/library/modules/_object-gops.js\");\nvar pIE = __webpack_require__(/*! ./_object-pie */ \"./node_modules/core-js/library/modules/_object-pie.js\");\nvar toObject = __webpack_require__(/*! ./_to-object */ \"./node_modules/core-js/library/modules/_to-object.js\");\nvar IObject = __webpack_require__(/*! ./_iobject */ \"./node_modules/core-js/library/modules/_iobject.js\");\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(/*! ./_fails */ \"./node_modules/core-js/library/modules/_fails.js\")(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n\n\n//# sourceURL=webpack:///./node_modules/core-js/library/modules/_object-assign.js?");
|
|
314
325
|
|
|
315
326
|
/***/ }),
|
|
316
327
|
|
|
@@ -966,7 +977,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */
|
|
|
966
977
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
967
978
|
|
|
968
979
|
"use strict";
|
|
969
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Color\", function() { return Color; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"darker\", function() { return darker; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"brighter\", function() { return brighter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return color; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rgbConvert\", function() { return rgbConvert; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rgb\", function() { return rgb; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Rgb\", function() { return Rgb; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hslConvert\", function() { return hslConvert; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hsl\", function() { return hsl; });\n/* harmony import */ var _define__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./define */ \"./node_modules/d3-color/src/define.js\");\n\n\nfunction Color() {}\n\nvar darker = 0.7;\nvar brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex3 = /^#([0-9a-f]{3})$/,\n reHex6 = /^#([0-9a-f]{6})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\nObject(_define__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Color, color, {\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: function() {\n return this.rgb().hex();\n },\n toString: function() {\n return this.rgb() + \"\";\n }\n});\n\nfunction color(format) {\n var m;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex3.exec(format)) ? (m = parseInt(m[1], 16), new Rgb((m >> 8 & 0xf) | (m >> 4 & 0x0f0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1)) // #f00\n : (m = reHex6.exec(format)) ? rgbn(parseInt(m[1], 16)) // #ff0000\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format])\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nfunction rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nfunction rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nfunction Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\nObject(_define__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Rgb, rgb, Object(_define__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (0 <= this.r && this.r <= 255)\n && (0 <= this.g && this.g <= 255)\n && (0 <= this.b && this.b <= 255)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: function() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n },\n toString: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nfunction hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nfunction hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nObject(_define__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Hsl, hsl, Object(_define__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n\n\n//# sourceURL=webpack:///./node_modules/d3-color/src/color.js?");
|
|
980
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Color\", function() { return Color; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"darker\", function() { return darker; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"brighter\", function() { return brighter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return color; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rgbConvert\", function() { return rgbConvert; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rgb\", function() { return rgb; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Rgb\", function() { return Rgb; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hslConvert\", function() { return hslConvert; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hsl\", function() { return hsl; });\n/* harmony import */ var _define_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./define.js */ \"./node_modules/d3-color/src/define.js\");\n\n\nfunction Color() {}\n\nvar darker = 0.7;\nvar brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\nObject(_define_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nfunction color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? new Rgb(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? new Rgb((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nfunction rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nfunction rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nfunction Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\nObject(_define_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Rgb, rgb, Object(_define_js__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nfunction hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nfunction hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nObject(_define_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Hsl, hsl, Object(_define_js__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n\n\n//# sourceURL=webpack:///./node_modules/d3-color/src/color.js?");
|
|
970
981
|
|
|
971
982
|
/***/ }),
|
|
972
983
|
|
|
@@ -978,7 +989,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
978
989
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
979
990
|
|
|
980
991
|
"use strict";
|
|
981
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return cubehelix; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Cubehelix\", function() { return Cubehelix; });\n/* harmony import */ var
|
|
992
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return cubehelix; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Cubehelix\", function() { return Cubehelix; });\n/* harmony import */ var _define_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./define.js */ \"./node_modules/d3-color/src/define.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color.js */ \"./node_modules/d3-color/src/color.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-color/src/math.js\");\n\n\n\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof _color_js__WEBPACK_IMPORTED_MODULE_1__[\"Rgb\"])) o = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"rgbConvert\"])(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"rad2deg\"] - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nfunction cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nObject(_define_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Cubehelix, cubehelix, Object(_define_js__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"Color\"], {\n brighter: function(k) {\n k = k == null ? _color_js__WEBPACK_IMPORTED_MODULE_1__[\"brighter\"] : Math.pow(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"brighter\"], k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? _color_js__WEBPACK_IMPORTED_MODULE_1__[\"darker\"] : Math.pow(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"darker\"], k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"deg2rad\"],\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new _color_js__WEBPACK_IMPORTED_MODULE_1__[\"Rgb\"](\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n\n\n//# sourceURL=webpack:///./node_modules/d3-color/src/cubehelix.js?");
|
|
982
993
|
|
|
983
994
|
/***/ }),
|
|
984
995
|
|
|
@@ -1002,7 +1013,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
1002
1013
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1003
1014
|
|
|
1004
1015
|
"use strict";
|
|
1005
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var
|
|
1016
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./color.js */ \"./node_modules/d3-color/src/color.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"color\", function() { return _color_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"rgb\", function() { return _color_js__WEBPACK_IMPORTED_MODULE_0__[\"rgb\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hsl\", function() { return _color_js__WEBPACK_IMPORTED_MODULE_0__[\"hsl\"]; });\n\n/* harmony import */ var _lab_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lab.js */ \"./node_modules/d3-color/src/lab.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lab\", function() { return _lab_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hcl\", function() { return _lab_js__WEBPACK_IMPORTED_MODULE_1__[\"hcl\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lch\", function() { return _lab_js__WEBPACK_IMPORTED_MODULE_1__[\"lch\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"gray\", function() { return _lab_js__WEBPACK_IMPORTED_MODULE_1__[\"gray\"]; });\n\n/* harmony import */ var _cubehelix_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cubehelix.js */ \"./node_modules/d3-color/src/cubehelix.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cubehelix\", function() { return _cubehelix_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n\n\n\n\n\n//# sourceURL=webpack:///./node_modules/d3-color/src/index.js?");
|
|
1006
1017
|
|
|
1007
1018
|
/***/ }),
|
|
1008
1019
|
|
|
@@ -1014,7 +1025,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _col
|
|
|
1014
1025
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1015
1026
|
|
|
1016
1027
|
"use strict";
|
|
1017
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"gray\", function() { return gray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return lab; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Lab\", function() { return Lab; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lch\", function() { return lch; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hcl\", function() { return hcl; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Hcl\", function() { return Hcl; });\n/* harmony import */ var
|
|
1028
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"gray\", function() { return gray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return lab; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Lab\", function() { return Lab; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lch\", function() { return lch; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hcl\", function() { return hcl; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Hcl\", function() { return Hcl; });\n/* harmony import */ var _define_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./define.js */ \"./node_modules/d3-color/src/define.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color.js */ \"./node_modules/d3-color/src/color.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-color/src/math.js\");\n\n\n\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nvar K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof _color_js__WEBPACK_IMPORTED_MODULE_1__[\"Rgb\"])) o = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"rgbConvert\"])(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nfunction gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nfunction lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nfunction Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\nObject(_define_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Lab, lab, Object(_define_js__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"Color\"], {\n brighter: function(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker: function(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb: function() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new _color_js__WEBPACK_IMPORTED_MODULE_1__[\"Rgb\"](\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"rad2deg\"];\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nfunction lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nfunction hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"deg2rad\"];\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\nObject(_define_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Hcl, hcl, Object(_define_js__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"Color\"], {\n brighter: function(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker: function(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb: function() {\n return hcl2lab(this).rgb();\n }\n}));\n\n\n//# sourceURL=webpack:///./node_modules/d3-color/src/lab.js?");
|
|
1018
1029
|
|
|
1019
1030
|
/***/ }),
|
|
1020
1031
|
|
|
@@ -1038,7 +1049,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
1038
1049
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1039
1050
|
|
|
1040
1051
|
"use strict";
|
|
1041
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"format\", function() { return format; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"formatPrefix\", function() { return formatPrefix; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return defaultLocale; });\n/* harmony import */ var
|
|
1052
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"format\", function() { return format; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"formatPrefix\", function() { return formatPrefix; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return defaultLocale; });\n/* harmony import */ var _locale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./locale.js */ \"./node_modules/d3-format/src/locale.js\");\n\n\nvar locale;\nvar format;\nvar formatPrefix;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\n\nfunction defaultLocale(definition) {\n locale = Object(_locale_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n\n\n//# sourceURL=webpack:///./node_modules/d3-format/src/defaultLocale.js?");
|
|
1042
1053
|
|
|
1043
1054
|
/***/ }),
|
|
1044
1055
|
|
|
@@ -1050,7 +1061,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
1050
1061
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1051
1062
|
|
|
1052
1063
|
"use strict";
|
|
1053
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var
|
|
1064
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatDecimal.js */ \"./node_modules/d3-format/src/formatDecimal.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x) {\n return x = Object(_formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Math.abs(x)), x ? x[1] : NaN;\n});\n\n\n//# sourceURL=webpack:///./node_modules/d3-format/src/exponent.js?");
|
|
1054
1065
|
|
|
1055
1066
|
/***/ }),
|
|
1056
1067
|
|
|
@@ -1098,7 +1109,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */
|
|
|
1098
1109
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1099
1110
|
|
|
1100
1111
|
"use strict";
|
|
1101
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"prefixExponent\", function() { return prefixExponent; });\n/* harmony import */ var
|
|
1112
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"prefixExponent\", function() { return prefixExponent; });\n/* harmony import */ var _formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatDecimal.js */ \"./node_modules/d3-format/src/formatDecimal.js\");\n\n\nvar prefixExponent;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x, p) {\n var d = Object(_formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + Object(_formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n});\n\n\n//# sourceURL=webpack:///./node_modules/d3-format/src/formatPrefixAuto.js?");
|
|
1102
1113
|
|
|
1103
1114
|
/***/ }),
|
|
1104
1115
|
|
|
@@ -1110,7 +1121,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
1110
1121
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1111
1122
|
|
|
1112
1123
|
"use strict";
|
|
1113
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var
|
|
1124
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatDecimal.js */ \"./node_modules/d3-format/src/formatDecimal.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x, p) {\n var d = Object(_formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n});\n\n\n//# sourceURL=webpack:///./node_modules/d3-format/src/formatRounded.js?");
|
|
1114
1125
|
|
|
1115
1126
|
/***/ }),
|
|
1116
1127
|
|
|
@@ -1118,11 +1129,11 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _for
|
|
|
1118
1129
|
/*!*******************************************************!*\
|
|
1119
1130
|
!*** ./node_modules/d3-format/src/formatSpecifier.js ***!
|
|
1120
1131
|
\*******************************************************/
|
|
1121
|
-
/*! exports provided: default */
|
|
1132
|
+
/*! exports provided: default, FormatSpecifier */
|
|
1122
1133
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1123
1134
|
|
|
1124
1135
|
"use strict";
|
|
1125
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return formatSpecifier; });\n// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nfunction formatSpecifier(specifier) {\n return new FormatSpecifier(
|
|
1136
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return formatSpecifier; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FormatSpecifier\", function() { return FormatSpecifier; });\n// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nfunction formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nfunction FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n\n\n//# sourceURL=webpack:///./node_modules/d3-format/src/formatSpecifier.js?");
|
|
1126
1137
|
|
|
1127
1138
|
/***/ }),
|
|
1128
1139
|
|
|
@@ -1146,7 +1157,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n// Trims insignificant zeros,
|
|
|
1146
1157
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1147
1158
|
|
|
1148
1159
|
"use strict";
|
|
1149
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var
|
|
1160
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _formatPrefixAuto_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatPrefixAuto.js */ \"./node_modules/d3-format/src/formatPrefixAuto.js\");\n/* harmony import */ var _formatRounded_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./formatRounded.js */ \"./node_modules/d3-format/src/formatRounded.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": function(x) { return Math.round(x).toString(10); },\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return Object(_formatRounded_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(x * 100, p); },\n \"r\": _formatRounded_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n \"s\": _formatPrefixAuto_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n});\n\n\n//# sourceURL=webpack:///./node_modules/d3-format/src/formatTypes.js?");
|
|
1150
1161
|
|
|
1151
1162
|
/***/ }),
|
|
1152
1163
|
|
|
@@ -1166,11 +1177,11 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */
|
|
|
1166
1177
|
/*!*********************************************!*\
|
|
1167
1178
|
!*** ./node_modules/d3-format/src/index.js ***!
|
|
1168
1179
|
\*********************************************/
|
|
1169
|
-
/*! exports provided: formatDefaultLocale, format, formatPrefix, formatLocale, formatSpecifier, precisionFixed, precisionPrefix, precisionRound */
|
|
1180
|
+
/*! exports provided: formatDefaultLocale, format, formatPrefix, formatLocale, formatSpecifier, FormatSpecifier, precisionFixed, precisionPrefix, precisionRound */
|
|
1170
1181
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1171
1182
|
|
|
1172
1183
|
"use strict";
|
|
1173
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var
|
|
1184
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultLocale.js */ \"./node_modules/d3-format/src/defaultLocale.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"formatDefaultLocale\", function() { return _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"format\", function() { return _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__[\"format\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"formatPrefix\", function() { return _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__[\"formatPrefix\"]; });\n\n/* harmony import */ var _locale_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./locale.js */ \"./node_modules/d3-format/src/locale.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"formatLocale\", function() { return _locale_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _formatSpecifier_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./formatSpecifier.js */ \"./node_modules/d3-format/src/formatSpecifier.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"formatSpecifier\", function() { return _formatSpecifier_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FormatSpecifier\", function() { return _formatSpecifier_js__WEBPACK_IMPORTED_MODULE_2__[\"FormatSpecifier\"]; });\n\n/* harmony import */ var _precisionFixed_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./precisionFixed.js */ \"./node_modules/d3-format/src/precisionFixed.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"precisionFixed\", function() { return _precisionFixed_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _precisionPrefix_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./precisionPrefix.js */ \"./node_modules/d3-format/src/precisionPrefix.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"precisionPrefix\", function() { return _precisionPrefix_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _precisionRound_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./precisionRound.js */ \"./node_modules/d3-format/src/precisionRound.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"precisionRound\", function() { return _precisionRound_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./node_modules/d3-format/src/index.js?");
|
|
1174
1185
|
|
|
1175
1186
|
/***/ }),
|
|
1176
1187
|
|
|
@@ -1182,7 +1193,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _def
|
|
|
1182
1193
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1183
1194
|
|
|
1184
1195
|
"use strict";
|
|
1185
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var
|
|
1196
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _exponent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exponent.js */ \"./node_modules/d3-format/src/exponent.js\");\n/* harmony import */ var _formatGroup_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./formatGroup.js */ \"./node_modules/d3-format/src/formatGroup.js\");\n/* harmony import */ var _formatNumerals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./formatNumerals.js */ \"./node_modules/d3-format/src/formatNumerals.js\");\n/* harmony import */ var _formatSpecifier_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./formatSpecifier.js */ \"./node_modules/d3-format/src/formatSpecifier.js\");\n/* harmony import */ var _formatTrim_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./formatTrim.js */ \"./node_modules/d3-format/src/formatTrim.js\");\n/* harmony import */ var _formatTypes_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./formatTypes.js */ \"./node_modules/d3-format/src/formatTypes.js\");\n/* harmony import */ var _formatPrefixAuto_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./formatPrefixAuto.js */ \"./node_modules/d3-format/src/formatPrefixAuto.js\");\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./identity.js */ \"./node_modules/d3-format/src/identity.js\");\n\n\n\n\n\n\n\n\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? _identity_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"] : Object(_formatGroup_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? _identity_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"] : Object(_formatNumerals_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = Object(_formatSpecifier_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!_formatTypes_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"][type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = _formatTypes_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"][type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Perform the initial formatting.\n var valueNegative = value < 0;\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = Object(_formatTrim_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(value);\n\n // If a negative value rounds to zero during formatting, treat as positive.\n if (valueNegative && +value === 0) valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n\n valueSuffix = (type === \"s\" ? prefixes[8 + _formatPrefixAuto_js__WEBPACK_IMPORTED_MODULE_6__[\"prefixExponent\"] / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = Object(_formatSpecifier_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(Object(_exponent_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n});\n\n\n//# sourceURL=webpack:///./node_modules/d3-format/src/locale.js?");
|
|
1186
1197
|
|
|
1187
1198
|
/***/ }),
|
|
1188
1199
|
|
|
@@ -1194,7 +1205,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _exp
|
|
|
1194
1205
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1195
1206
|
|
|
1196
1207
|
"use strict";
|
|
1197
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var
|
|
1208
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _exponent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exponent.js */ \"./node_modules/d3-format/src/exponent.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(step) {\n return Math.max(0, -Object(_exponent_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Math.abs(step)));\n});\n\n\n//# sourceURL=webpack:///./node_modules/d3-format/src/precisionFixed.js?");
|
|
1198
1209
|
|
|
1199
1210
|
/***/ }),
|
|
1200
1211
|
|
|
@@ -1206,7 +1217,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _exp
|
|
|
1206
1217
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1207
1218
|
|
|
1208
1219
|
"use strict";
|
|
1209
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var
|
|
1220
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _exponent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exponent.js */ \"./node_modules/d3-format/src/exponent.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(Object(_exponent_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) / 3))) * 3 - Object(_exponent_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Math.abs(step)));\n});\n\n\n//# sourceURL=webpack:///./node_modules/d3-format/src/precisionPrefix.js?");
|
|
1210
1221
|
|
|
1211
1222
|
/***/ }),
|
|
1212
1223
|
|
|
@@ -1218,7 +1229,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _exp
|
|
|
1218
1229
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1219
1230
|
|
|
1220
1231
|
"use strict";
|
|
1221
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var
|
|
1232
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _exponent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exponent.js */ \"./node_modules/d3-format/src/exponent.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, Object(_exponent_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(max) - Object(_exponent_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(step)) + 1;\n});\n\n\n//# sourceURL=webpack:///./node_modules/d3-format/src/precisionRound.js?");
|
|
1222
1233
|
|
|
1223
1234
|
/***/ }),
|
|
1224
1235
|
|
|
@@ -1854,7 +1865,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
1854
1865
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1855
1866
|
|
|
1856
1867
|
"use strict";
|
|
1857
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeFormat\", function() { return timeFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeParse\", function() { return timeParse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcFormat\", function() { return utcFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcParse\", function() { return utcParse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return defaultLocale; });\n/* harmony import */ var
|
|
1868
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeFormat\", function() { return timeFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeParse\", function() { return timeParse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcFormat\", function() { return utcFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcParse\", function() { return utcParse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return defaultLocale; });\n/* harmony import */ var _locale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./locale.js */ \"./node_modules/d3-time-format/src/locale.js\");\n\n\nvar locale;\nvar timeFormat;\nvar timeParse;\nvar utcFormat;\nvar utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nfunction defaultLocale(definition) {\n locale = Object(_locale_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n\n\n//# sourceURL=webpack:///./node_modules/d3-time-format/src/defaultLocale.js?");
|
|
1858
1869
|
|
|
1859
1870
|
/***/ }),
|
|
1860
1871
|
|
|
@@ -1866,7 +1877,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
1866
1877
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1867
1878
|
|
|
1868
1879
|
"use strict";
|
|
1869
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var
|
|
1880
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultLocale.js */ \"./node_modules/d3-time-format/src/defaultLocale.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeFormatDefaultLocale\", function() { return _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeFormat\", function() { return _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__[\"timeFormat\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeParse\", function() { return _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__[\"timeParse\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcFormat\", function() { return _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__[\"utcFormat\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcParse\", function() { return _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__[\"utcParse\"]; });\n\n/* harmony import */ var _locale_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./locale.js */ \"./node_modules/d3-time-format/src/locale.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeFormatLocale\", function() { return _locale_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _isoFormat_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isoFormat.js */ \"./node_modules/d3-time-format/src/isoFormat.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isoFormat\", function() { return _isoFormat_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _isoParse_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isoParse.js */ \"./node_modules/d3-time-format/src/isoParse.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isoParse\", function() { return _isoParse_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./node_modules/d3-time-format/src/index.js?");
|
|
1870
1881
|
|
|
1871
1882
|
/***/ }),
|
|
1872
1883
|
|
|
@@ -1878,7 +1889,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _def
|
|
|
1878
1889
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1879
1890
|
|
|
1880
1891
|
"use strict";
|
|
1881
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isoSpecifier\", function() { return isoSpecifier; });\n/* harmony import */ var
|
|
1892
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isoSpecifier\", function() { return isoSpecifier; });\n/* harmony import */ var _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultLocale.js */ \"./node_modules/d3-time-format/src/defaultLocale.js\");\n\n\nvar isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString\n ? formatIsoNative\n : Object(_defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__[\"utcFormat\"])(isoSpecifier);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (formatIso);\n\n\n//# sourceURL=webpack:///./node_modules/d3-time-format/src/isoFormat.js?");
|
|
1882
1893
|
|
|
1883
1894
|
/***/ }),
|
|
1884
1895
|
|
|
@@ -1890,7 +1901,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
1890
1901
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1891
1902
|
|
|
1892
1903
|
"use strict";
|
|
1893
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var
|
|
1904
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _isoFormat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isoFormat.js */ \"./node_modules/d3-time-format/src/isoFormat.js\");\n/* harmony import */ var _defaultLocale_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultLocale.js */ \"./node_modules/d3-time-format/src/defaultLocale.js\");\n\n\n\nfunction parseIsoNative(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n}\n\nvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\")\n ? parseIsoNative\n : Object(_defaultLocale_js__WEBPACK_IMPORTED_MODULE_1__[\"utcParse\"])(_isoFormat_js__WEBPACK_IMPORTED_MODULE_0__[\"isoSpecifier\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (parseIso);\n\n\n//# sourceURL=webpack:///./node_modules/d3-time-format/src/isoParse.js?");
|
|
1894
1905
|
|
|
1895
1906
|
/***/ }),
|
|
1896
1907
|
|
|
@@ -1902,7 +1913,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _iso
|
|
|
1902
1913
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1903
1914
|
|
|
1904
1915
|
"use strict";
|
|
1905
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return formatLocale; });\n/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-time */ \"./node_modules/d3-time/src/index.js\");\n\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newYear(y) {\n return {y: y, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0};\n}\n\nfunction formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, newDate) {\n return function(string) {\n var d = newYear(1900),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newYear(d.y)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcMonday\"].ceil(week) : Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcMonday\"])(week);\n week = d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcDay\"].offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = newDate(newYear(d.y)), day = week.getDay();\n week = day > 4 || day === 0 ? d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeMonday\"].ceil(week) : Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeMonday\"])(week);\n week = d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeDay\"].offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newYear(d.y)).getUTCDay() : newDate(newYear(d.y)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return newDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", localDate);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier, utcDate);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = (+n[0]) * 1000, i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeDay\"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeYear\"])(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeSunday\"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeYear\"])(d), d), p, 2);\n}\n\nfunction formatWeekNumberISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeThursday\"])(d) : d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeThursday\"].ceil(d);\n return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeThursday\"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeYear\"])(d), d) + (Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeYear\"])(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeMonday\"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeYear\"])(d), d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcDay\"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcYear\"])(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcSunday\"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcYear\"])(d), d), p, 2);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcThursday\"])(d) : d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcThursday\"].ceil(d);\n return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcThursday\"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcYear\"])(d), d) + (Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcYear\"])(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcMonday\"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcYear\"])(d), d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n\n\n//# sourceURL=webpack:///./node_modules/d3-time-format/src/locale.js?");
|
|
1916
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return formatLocale; });\n/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-time */ \"./node_modules/d3-time/src/index.js\");\n\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nfunction formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcMonday\"].ceil(week) : Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcMonday\"])(week);\n week = d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcDay\"].offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeMonday\"].ceil(week) : Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeMonday\"])(week);\n week = d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeDay\"].offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeDay\"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeYear\"])(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeSunday\"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeYear\"])(d) - 1, d), p, 2);\n}\n\nfunction formatWeekNumberISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeThursday\"])(d) : d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeThursday\"].ceil(d);\n return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeThursday\"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeYear\"])(d), d) + (Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeYear\"])(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeMonday\"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeYear\"])(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcDay\"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcYear\"])(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcSunday\"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcYear\"])(d) - 1, d), p, 2);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcThursday\"])(d) : d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcThursday\"].ceil(d);\n return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcThursday\"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcYear\"])(d), d) + (Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcYear\"])(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcMonday\"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcYear\"])(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n\n\n//# sourceURL=webpack:///./node_modules/d3-time-format/src/locale.js?");
|
|
1906
1917
|
|
|
1907
1918
|
/***/ }),
|
|
1908
1919
|
|
|
@@ -1914,7 +1925,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
1914
1925
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1915
1926
|
|
|
1916
1927
|
"use strict";
|
|
1917
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"days\", function() { return days; });\n/* harmony import */ var
|
|
1928
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"days\", function() { return days; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ \"./node_modules/d3-time/src/duration.js\");\n\n\n\nvar day = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationMinute\"]) / _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationDay\"];\n}, function(date) {\n return date.getDate() - 1;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (day);\nvar days = day.range;\n\n\n//# sourceURL=webpack:///./node_modules/d3-time/src/day.js?");
|
|
1918
1929
|
|
|
1919
1930
|
/***/ }),
|
|
1920
1931
|
|
|
@@ -1938,7 +1949,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
1938
1949
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1939
1950
|
|
|
1940
1951
|
"use strict";
|
|
1941
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hours\", function() { return hours; });\n/* harmony import */ var
|
|
1952
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hours\", function() { return hours; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ \"./node_modules/d3-time/src/duration.js\");\n\n\n\nvar hour = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationSecond\"] - date.getMinutes() * _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationMinute\"]);\n}, function(date, step) {\n date.setTime(+date + step * _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationHour\"]);\n}, function(start, end) {\n return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationHour\"];\n}, function(date) {\n return date.getHours();\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hour);\nvar hours = hour.range;\n\n\n//# sourceURL=webpack:///./node_modules/d3-time/src/hour.js?");
|
|
1942
1953
|
|
|
1943
1954
|
/***/ }),
|
|
1944
1955
|
|
|
@@ -1950,7 +1961,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
1950
1961
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1951
1962
|
|
|
1952
1963
|
"use strict";
|
|
1953
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval */ \"./node_modules/d3-time/src/interval.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeInterval\", function() { return _interval__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _millisecond__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./millisecond */ \"./node_modules/d3-time/src/millisecond.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeMillisecond\", function() { return _millisecond__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeMilliseconds\", function() { return _millisecond__WEBPACK_IMPORTED_MODULE_1__[\"milliseconds\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcMillisecond\", function() { return _millisecond__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcMilliseconds\", function() { return _millisecond__WEBPACK_IMPORTED_MODULE_1__[\"milliseconds\"]; });\n\n/* harmony import */ var _second__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./second */ \"./node_modules/d3-time/src/second.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeSecond\", function() { return _second__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeSeconds\", function() { return _second__WEBPACK_IMPORTED_MODULE_2__[\"seconds\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcSecond\", function() { return _second__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcSeconds\", function() { return _second__WEBPACK_IMPORTED_MODULE_2__[\"seconds\"]; });\n\n/* harmony import */ var _minute__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./minute */ \"./node_modules/d3-time/src/minute.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeMinute\", function() { return _minute__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeMinutes\", function() { return _minute__WEBPACK_IMPORTED_MODULE_3__[\"minutes\"]; });\n\n/* harmony import */ var _hour__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./hour */ \"./node_modules/d3-time/src/hour.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeHour\", function() { return _hour__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeHours\", function() { return _hour__WEBPACK_IMPORTED_MODULE_4__[\"hours\"]; });\n\n/* harmony import */ var _day__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./day */ \"./node_modules/d3-time/src/day.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeDay\", function() { return _day__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeDays\", function() { return _day__WEBPACK_IMPORTED_MODULE_5__[\"days\"]; });\n\n/* harmony import */ var _week__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./week */ \"./node_modules/d3-time/src/week.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeWeek\", function() { return _week__WEBPACK_IMPORTED_MODULE_6__[\"sunday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeWeeks\", function() { return _week__WEBPACK_IMPORTED_MODULE_6__[\"sundays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeSunday\", function() { return _week__WEBPACK_IMPORTED_MODULE_6__[\"sunday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeSundays\", function() { return _week__WEBPACK_IMPORTED_MODULE_6__[\"sundays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeMonday\", function() { return _week__WEBPACK_IMPORTED_MODULE_6__[\"monday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeMondays\", function() { return _week__WEBPACK_IMPORTED_MODULE_6__[\"mondays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeTuesday\", function() { return _week__WEBPACK_IMPORTED_MODULE_6__[\"tuesday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeTuesdays\", function() { return _week__WEBPACK_IMPORTED_MODULE_6__[\"tuesdays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeWednesday\", function() { return _week__WEBPACK_IMPORTED_MODULE_6__[\"wednesday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeWednesdays\", function() { return _week__WEBPACK_IMPORTED_MODULE_6__[\"wednesdays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeThursday\", function() { return _week__WEBPACK_IMPORTED_MODULE_6__[\"thursday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeThursdays\", function() { return _week__WEBPACK_IMPORTED_MODULE_6__[\"thursdays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeFriday\", function() { return _week__WEBPACK_IMPORTED_MODULE_6__[\"friday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeFridays\", function() { return _week__WEBPACK_IMPORTED_MODULE_6__[\"fridays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeSaturday\", function() { return _week__WEBPACK_IMPORTED_MODULE_6__[\"saturday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeSaturdays\", function() { return _week__WEBPACK_IMPORTED_MODULE_6__[\"saturdays\"]; });\n\n/* harmony import */ var _month__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./month */ \"./node_modules/d3-time/src/month.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeMonth\", function() { return _month__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeMonths\", function() { return _month__WEBPACK_IMPORTED_MODULE_7__[\"months\"]; });\n\n/* harmony import */ var _year__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./year */ \"./node_modules/d3-time/src/year.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeYear\", function() { return _year__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeYears\", function() { return _year__WEBPACK_IMPORTED_MODULE_8__[\"years\"]; });\n\n/* harmony import */ var _utcMinute__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utcMinute */ \"./node_modules/d3-time/src/utcMinute.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcMinute\", function() { return _utcMinute__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcMinutes\", function() { return _utcMinute__WEBPACK_IMPORTED_MODULE_9__[\"utcMinutes\"]; });\n\n/* harmony import */ var _utcHour__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utcHour */ \"./node_modules/d3-time/src/utcHour.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcHour\", function() { return _utcHour__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcHours\", function() { return _utcHour__WEBPACK_IMPORTED_MODULE_10__[\"utcHours\"]; });\n\n/* harmony import */ var _utcDay__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./utcDay */ \"./node_modules/d3-time/src/utcDay.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcDay\", function() { return _utcDay__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcDays\", function() { return _utcDay__WEBPACK_IMPORTED_MODULE_11__[\"utcDays\"]; });\n\n/* harmony import */ var _utcWeek__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utcWeek */ \"./node_modules/d3-time/src/utcWeek.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcWeek\", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__[\"utcSunday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcWeeks\", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__[\"utcSundays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcSunday\", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__[\"utcSunday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcSundays\", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__[\"utcSundays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcMonday\", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__[\"utcMonday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcMondays\", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__[\"utcMondays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcTuesday\", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__[\"utcTuesday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcTuesdays\", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__[\"utcTuesdays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcWednesday\", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__[\"utcWednesday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcWednesdays\", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__[\"utcWednesdays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcThursday\", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__[\"utcThursday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcThursdays\", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__[\"utcThursdays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcFriday\", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__[\"utcFriday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcFridays\", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__[\"utcFridays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcSaturday\", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__[\"utcSaturday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcSaturdays\", function() { return _utcWeek__WEBPACK_IMPORTED_MODULE_12__[\"utcSaturdays\"]; });\n\n/* harmony import */ var _utcMonth__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./utcMonth */ \"./node_modules/d3-time/src/utcMonth.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcMonth\", function() { return _utcMonth__WEBPACK_IMPORTED_MODULE_13__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcMonths\", function() { return _utcMonth__WEBPACK_IMPORTED_MODULE_13__[\"utcMonths\"]; });\n\n/* harmony import */ var _utcYear__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./utcYear */ \"./node_modules/d3-time/src/utcYear.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcYear\", function() { return _utcYear__WEBPACK_IMPORTED_MODULE_14__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcYears\", function() { return _utcYear__WEBPACK_IMPORTED_MODULE_14__[\"utcYears\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./node_modules/d3-time/src/index.js?");
|
|
1964
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeInterval\", function() { return _interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _millisecond_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./millisecond.js */ \"./node_modules/d3-time/src/millisecond.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeMillisecond\", function() { return _millisecond_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeMilliseconds\", function() { return _millisecond_js__WEBPACK_IMPORTED_MODULE_1__[\"milliseconds\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcMillisecond\", function() { return _millisecond_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcMilliseconds\", function() { return _millisecond_js__WEBPACK_IMPORTED_MODULE_1__[\"milliseconds\"]; });\n\n/* harmony import */ var _second_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./second.js */ \"./node_modules/d3-time/src/second.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeSecond\", function() { return _second_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeSeconds\", function() { return _second_js__WEBPACK_IMPORTED_MODULE_2__[\"seconds\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcSecond\", function() { return _second_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcSeconds\", function() { return _second_js__WEBPACK_IMPORTED_MODULE_2__[\"seconds\"]; });\n\n/* harmony import */ var _minute_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./minute.js */ \"./node_modules/d3-time/src/minute.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeMinute\", function() { return _minute_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeMinutes\", function() { return _minute_js__WEBPACK_IMPORTED_MODULE_3__[\"minutes\"]; });\n\n/* harmony import */ var _hour_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./hour.js */ \"./node_modules/d3-time/src/hour.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeHour\", function() { return _hour_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeHours\", function() { return _hour_js__WEBPACK_IMPORTED_MODULE_4__[\"hours\"]; });\n\n/* harmony import */ var _day_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./day.js */ \"./node_modules/d3-time/src/day.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeDay\", function() { return _day_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeDays\", function() { return _day_js__WEBPACK_IMPORTED_MODULE_5__[\"days\"]; });\n\n/* harmony import */ var _week_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./week.js */ \"./node_modules/d3-time/src/week.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeWeek\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"sunday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeWeeks\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"sundays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeSunday\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"sunday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeSundays\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"sundays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeMonday\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"monday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeMondays\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"mondays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeTuesday\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"tuesday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeTuesdays\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"tuesdays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeWednesday\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"wednesday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeWednesdays\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"wednesdays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeThursday\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"thursday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeThursdays\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"thursdays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeFriday\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"friday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeFridays\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"fridays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeSaturday\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"saturday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeSaturdays\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"saturdays\"]; });\n\n/* harmony import */ var _month_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./month.js */ \"./node_modules/d3-time/src/month.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeMonth\", function() { return _month_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeMonths\", function() { return _month_js__WEBPACK_IMPORTED_MODULE_7__[\"months\"]; });\n\n/* harmony import */ var _year_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./year.js */ \"./node_modules/d3-time/src/year.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeYear\", function() { return _year_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeYears\", function() { return _year_js__WEBPACK_IMPORTED_MODULE_8__[\"years\"]; });\n\n/* harmony import */ var _utcMinute_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utcMinute.js */ \"./node_modules/d3-time/src/utcMinute.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcMinute\", function() { return _utcMinute_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcMinutes\", function() { return _utcMinute_js__WEBPACK_IMPORTED_MODULE_9__[\"utcMinutes\"]; });\n\n/* harmony import */ var _utcHour_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utcHour.js */ \"./node_modules/d3-time/src/utcHour.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcHour\", function() { return _utcHour_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcHours\", function() { return _utcHour_js__WEBPACK_IMPORTED_MODULE_10__[\"utcHours\"]; });\n\n/* harmony import */ var _utcDay_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./utcDay.js */ \"./node_modules/d3-time/src/utcDay.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcDay\", function() { return _utcDay_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcDays\", function() { return _utcDay_js__WEBPACK_IMPORTED_MODULE_11__[\"utcDays\"]; });\n\n/* harmony import */ var _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utcWeek.js */ \"./node_modules/d3-time/src/utcWeek.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcWeek\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcSunday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcWeeks\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcSundays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcSunday\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcSunday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcSundays\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcSundays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcMonday\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcMonday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcMondays\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcMondays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcTuesday\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcTuesday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcTuesdays\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcTuesdays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcWednesday\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcWednesday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcWednesdays\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcWednesdays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcThursday\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcThursday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcThursdays\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcThursdays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcFriday\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcFriday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcFridays\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcFridays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcSaturday\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcSaturday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcSaturdays\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcSaturdays\"]; });\n\n/* harmony import */ var _utcMonth_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./utcMonth.js */ \"./node_modules/d3-time/src/utcMonth.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcMonth\", function() { return _utcMonth_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcMonths\", function() { return _utcMonth_js__WEBPACK_IMPORTED_MODULE_13__[\"utcMonths\"]; });\n\n/* harmony import */ var _utcYear_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./utcYear.js */ \"./node_modules/d3-time/src/utcYear.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcYear\", function() { return _utcYear_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcYears\", function() { return _utcYear_js__WEBPACK_IMPORTED_MODULE_14__[\"utcYears\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./node_modules/d3-time/src/index.js?");
|
|
1954
1965
|
|
|
1955
1966
|
/***/ }),
|
|
1956
1967
|
|
|
@@ -1962,7 +1973,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _int
|
|
|
1962
1973
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1963
1974
|
|
|
1964
1975
|
"use strict";
|
|
1965
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return newInterval; });\nvar t0 = new Date,\n t1 = new Date;\n\nfunction newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = new Date(+date)), date;\n }\n\n interval.floor =
|
|
1976
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return newInterval; });\nvar t0 = new Date,\n t1 = new Date;\n\nfunction newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n\n\n//# sourceURL=webpack:///./node_modules/d3-time/src/interval.js?");
|
|
1966
1977
|
|
|
1967
1978
|
/***/ }),
|
|
1968
1979
|
|
|
@@ -1974,7 +1985,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
1974
1985
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1975
1986
|
|
|
1976
1987
|
"use strict";
|
|
1977
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"milliseconds\", function() { return milliseconds; });\n/* harmony import */ var
|
|
1988
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"milliseconds\", function() { return milliseconds; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n\n\nvar millisecond = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (millisecond);\nvar milliseconds = millisecond.range;\n\n\n//# sourceURL=webpack:///./node_modules/d3-time/src/millisecond.js?");
|
|
1978
1989
|
|
|
1979
1990
|
/***/ }),
|
|
1980
1991
|
|
|
@@ -1986,7 +1997,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
1986
1997
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1987
1998
|
|
|
1988
1999
|
"use strict";
|
|
1989
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"minutes\", function() { return minutes; });\n/* harmony import */ var
|
|
2000
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"minutes\", function() { return minutes; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ \"./node_modules/d3-time/src/duration.js\");\n\n\n\nvar minute = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationSecond\"]);\n}, function(date, step) {\n date.setTime(+date + step * _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationMinute\"]);\n}, function(start, end) {\n return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationMinute\"];\n}, function(date) {\n return date.getMinutes();\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (minute);\nvar minutes = minute.range;\n\n\n//# sourceURL=webpack:///./node_modules/d3-time/src/minute.js?");
|
|
1990
2001
|
|
|
1991
2002
|
/***/ }),
|
|
1992
2003
|
|
|
@@ -1998,7 +2009,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
1998
2009
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1999
2010
|
|
|
2000
2011
|
"use strict";
|
|
2001
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"months\", function() { return months; });\n/* harmony import */ var
|
|
2012
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"months\", function() { return months; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n\n\nvar month = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (month);\nvar months = month.range;\n\n\n//# sourceURL=webpack:///./node_modules/d3-time/src/month.js?");
|
|
2002
2013
|
|
|
2003
2014
|
/***/ }),
|
|
2004
2015
|
|
|
@@ -2010,7 +2021,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
2010
2021
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2011
2022
|
|
|
2012
2023
|
"use strict";
|
|
2013
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"seconds\", function() { return seconds; });\n/* harmony import */ var
|
|
2024
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"seconds\", function() { return seconds; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ \"./node_modules/d3-time/src/duration.js\");\n\n\n\nvar second = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationSecond\"]);\n}, function(start, end) {\n return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationSecond\"];\n}, function(date) {\n return date.getUTCSeconds();\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (second);\nvar seconds = second.range;\n\n\n//# sourceURL=webpack:///./node_modules/d3-time/src/second.js?");
|
|
2014
2025
|
|
|
2015
2026
|
/***/ }),
|
|
2016
2027
|
|
|
@@ -2022,7 +2033,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
2022
2033
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2023
2034
|
|
|
2024
2035
|
"use strict";
|
|
2025
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcDays\", function() { return utcDays; });\n/* harmony import */ var
|
|
2036
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcDays\", function() { return utcDays; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ \"./node_modules/d3-time/src/duration.js\");\n\n\n\nvar utcDay = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationDay\"];\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (utcDay);\nvar utcDays = utcDay.range;\n\n\n//# sourceURL=webpack:///./node_modules/d3-time/src/utcDay.js?");
|
|
2026
2037
|
|
|
2027
2038
|
/***/ }),
|
|
2028
2039
|
|
|
@@ -2034,7 +2045,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
2034
2045
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2035
2046
|
|
|
2036
2047
|
"use strict";
|
|
2037
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcHours\", function() { return utcHours; });\n/* harmony import */ var
|
|
2048
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcHours\", function() { return utcHours; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ \"./node_modules/d3-time/src/duration.js\");\n\n\n\nvar utcHour = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationHour\"]);\n}, function(start, end) {\n return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationHour\"];\n}, function(date) {\n return date.getUTCHours();\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (utcHour);\nvar utcHours = utcHour.range;\n\n\n//# sourceURL=webpack:///./node_modules/d3-time/src/utcHour.js?");
|
|
2038
2049
|
|
|
2039
2050
|
/***/ }),
|
|
2040
2051
|
|
|
@@ -2046,7 +2057,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
2046
2057
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2047
2058
|
|
|
2048
2059
|
"use strict";
|
|
2049
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcMinutes\", function() { return utcMinutes; });\n/* harmony import */ var
|
|
2060
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcMinutes\", function() { return utcMinutes; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ \"./node_modules/d3-time/src/duration.js\");\n\n\n\nvar utcMinute = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationMinute\"]);\n}, function(start, end) {\n return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationMinute\"];\n}, function(date) {\n return date.getUTCMinutes();\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (utcMinute);\nvar utcMinutes = utcMinute.range;\n\n\n//# sourceURL=webpack:///./node_modules/d3-time/src/utcMinute.js?");
|
|
2050
2061
|
|
|
2051
2062
|
/***/ }),
|
|
2052
2063
|
|
|
@@ -2058,7 +2069,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
2058
2069
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2059
2070
|
|
|
2060
2071
|
"use strict";
|
|
2061
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcMonths\", function() { return utcMonths; });\n/* harmony import */ var
|
|
2072
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcMonths\", function() { return utcMonths; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n\n\nvar utcMonth = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (utcMonth);\nvar utcMonths = utcMonth.range;\n\n\n//# sourceURL=webpack:///./node_modules/d3-time/src/utcMonth.js?");
|
|
2062
2073
|
|
|
2063
2074
|
/***/ }),
|
|
2064
2075
|
|
|
@@ -2070,7 +2081,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
2070
2081
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2071
2082
|
|
|
2072
2083
|
"use strict";
|
|
2073
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcSunday\", function() { return utcSunday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcMonday\", function() { return utcMonday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcTuesday\", function() { return utcTuesday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcWednesday\", function() { return utcWednesday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcThursday\", function() { return utcThursday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcFriday\", function() { return utcFriday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcSaturday\", function() { return utcSaturday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcSundays\", function() { return utcSundays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcMondays\", function() { return utcMondays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcTuesdays\", function() { return utcTuesdays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcWednesdays\", function() { return utcWednesdays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcThursdays\", function() { return utcThursdays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcFridays\", function() { return utcFridays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcSaturdays\", function() { return utcSaturdays; });\n/* harmony import */ var
|
|
2084
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcSunday\", function() { return utcSunday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcMonday\", function() { return utcMonday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcTuesday\", function() { return utcTuesday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcWednesday\", function() { return utcWednesday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcThursday\", function() { return utcThursday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcFriday\", function() { return utcFriday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcSaturday\", function() { return utcSaturday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcSundays\", function() { return utcSundays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcMondays\", function() { return utcMondays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcTuesdays\", function() { return utcTuesdays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcWednesdays\", function() { return utcWednesdays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcThursdays\", function() { return utcThursdays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcFridays\", function() { return utcFridays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcSaturdays\", function() { return utcSaturdays; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ \"./node_modules/d3-time/src/duration.js\");\n\n\n\nfunction utcWeekday(i) {\n return Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationWeek\"];\n });\n}\n\nvar utcSunday = utcWeekday(0);\nvar utcMonday = utcWeekday(1);\nvar utcTuesday = utcWeekday(2);\nvar utcWednesday = utcWeekday(3);\nvar utcThursday = utcWeekday(4);\nvar utcFriday = utcWeekday(5);\nvar utcSaturday = utcWeekday(6);\n\nvar utcSundays = utcSunday.range;\nvar utcMondays = utcMonday.range;\nvar utcTuesdays = utcTuesday.range;\nvar utcWednesdays = utcWednesday.range;\nvar utcThursdays = utcThursday.range;\nvar utcFridays = utcFriday.range;\nvar utcSaturdays = utcSaturday.range;\n\n\n//# sourceURL=webpack:///./node_modules/d3-time/src/utcWeek.js?");
|
|
2074
2085
|
|
|
2075
2086
|
/***/ }),
|
|
2076
2087
|
|
|
@@ -2082,7 +2093,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
2082
2093
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2083
2094
|
|
|
2084
2095
|
"use strict";
|
|
2085
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcYears\", function() { return utcYears; });\n/* harmony import */ var
|
|
2096
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcYears\", function() { return utcYears; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n\n\nvar utcYear = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (utcYear);\nvar utcYears = utcYear.range;\n\n\n//# sourceURL=webpack:///./node_modules/d3-time/src/utcYear.js?");
|
|
2086
2097
|
|
|
2087
2098
|
/***/ }),
|
|
2088
2099
|
|
|
@@ -2094,7 +2105,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
2094
2105
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2095
2106
|
|
|
2096
2107
|
"use strict";
|
|
2097
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sunday\", function() { return sunday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"monday\", function() { return monday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tuesday\", function() { return tuesday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"wednesday\", function() { return wednesday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"thursday\", function() { return thursday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"friday\", function() { return friday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"saturday\", function() { return saturday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sundays\", function() { return sundays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mondays\", function() { return mondays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tuesdays\", function() { return tuesdays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"wednesdays\", function() { return wednesdays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"thursdays\", function() { return thursdays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fridays\", function() { return fridays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"saturdays\", function() { return saturdays; });\n/* harmony import */ var
|
|
2108
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sunday\", function() { return sunday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"monday\", function() { return monday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tuesday\", function() { return tuesday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"wednesday\", function() { return wednesday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"thursday\", function() { return thursday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"friday\", function() { return friday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"saturday\", function() { return saturday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sundays\", function() { return sundays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mondays\", function() { return mondays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tuesdays\", function() { return tuesdays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"wednesdays\", function() { return wednesdays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"thursdays\", function() { return thursdays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fridays\", function() { return fridays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"saturdays\", function() { return saturdays; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ \"./node_modules/d3-time/src/duration.js\");\n\n\n\nfunction weekday(i) {\n return Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationMinute\"]) / _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationWeek\"];\n });\n}\n\nvar sunday = weekday(0);\nvar monday = weekday(1);\nvar tuesday = weekday(2);\nvar wednesday = weekday(3);\nvar thursday = weekday(4);\nvar friday = weekday(5);\nvar saturday = weekday(6);\n\nvar sundays = sunday.range;\nvar mondays = monday.range;\nvar tuesdays = tuesday.range;\nvar wednesdays = wednesday.range;\nvar thursdays = thursday.range;\nvar fridays = friday.range;\nvar saturdays = saturday.range;\n\n\n//# sourceURL=webpack:///./node_modules/d3-time/src/week.js?");
|
|
2098
2109
|
|
|
2099
2110
|
/***/ }),
|
|
2100
2111
|
|
|
@@ -2106,7 +2117,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
2106
2117
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2107
2118
|
|
|
2108
2119
|
"use strict";
|
|
2109
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"years\", function() { return years; });\n/* harmony import */ var
|
|
2120
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"years\", function() { return years; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n\n\nvar year = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (year);\nvar years = year.range;\n\n\n//# sourceURL=webpack:///./node_modules/d3-time/src/year.js?");
|
|
2110
2121
|
|
|
2111
2122
|
/***/ }),
|
|
2112
2123
|
|
|
@@ -2134,6 +2145,17 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n
|
|
|
2134
2145
|
|
|
2135
2146
|
/***/ }),
|
|
2136
2147
|
|
|
2148
|
+
/***/ "./node_modules/jspdf/dist/jspdf.min.js":
|
|
2149
|
+
/*!**********************************************!*\
|
|
2150
|
+
!*** ./node_modules/jspdf/dist/jspdf.min.js ***!
|
|
2151
|
+
\**********************************************/
|
|
2152
|
+
/*! no static exports found */
|
|
2153
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
2154
|
+
|
|
2155
|
+
eval("/* WEBPACK VAR INJECTION */(function(global) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;var __WEBPACK_AMD_DEFINE_RESULT__;!function(t){ true?!(__WEBPACK_AMD_DEFINE_FACTORY__ = (t),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):undefined}(function(){\"use strict\";\n/** @license\n * jsPDF - PDF Document creation from JavaScript\n * Version 1.5.3 Built on 2018-12-27T14:11:42.696Z\n * CommitID d93d28db14\n *\n * Copyright (c) 2010-2016 James Hall <james@parall.ax>, https://github.com/MrRio/jsPDF\n * 2010 Aaron Spike, https://github.com/acspike\n * 2012 Willow Systems Corporation, willow-systems.com\n * 2012 Pablo Hess, https://github.com/pablohess\n * 2012 Florian Jenett, https://github.com/fjenett\n * 2013 Warren Weckesser, https://github.com/warrenweckesser\n * 2013 Youssef Beddad, https://github.com/lifof\n * 2013 Lee Driscoll, https://github.com/lsdriscoll\n * 2013 Stefan Slonevskiy, https://github.com/stefslon\n * 2013 Jeremy Morel, https://github.com/jmorel\n * 2013 Christoph Hartmann, https://github.com/chris-rock\n * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n * 2014 James Makes, https://github.com/dollaruw\n * 2014 Diego Casorran, https://github.com/diegocr\n * 2014 Steven Spungin, https://github.com/Flamenco\n * 2014 Kenneth Glassey, https://github.com/Gavvers\n *\n * Licensed under the MIT License\n *\n * Contributor(s):\n * siefkenj, ahwolf, rickygu, Midnith, saintclair, eaparango,\n * kim3er, mfo, alnorth, Flamenco\n */function se(t){return(se=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}!function(t){if(\"object\"!==se(t.console)){t.console={};for(var e,n,r=t.console,i=function(){},o=[\"memory\"],a=\"assert,clear,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,markTimeline,profile,profiles,profileEnd,show,table,time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn\".split(\",\");e=o.pop();)r[e]||(r[e]={});for(;n=a.pop();)r[n]||(r[n]=i)}var s,l,h,u,c=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";void 0===t.btoa&&(t.btoa=function(t){var e,n,r,i,o,a=0,s=0,l=\"\",h=[];if(!t)return t;for(;e=(o=t.charCodeAt(a++)<<16|t.charCodeAt(a++)<<8|t.charCodeAt(a++))>>18&63,n=o>>12&63,r=o>>6&63,i=63&o,h[s++]=c.charAt(e)+c.charAt(n)+c.charAt(r)+c.charAt(i),a<t.length;);l=h.join(\"\");var u=t.length%3;return(u?l.slice(0,u-3):l)+\"===\".slice(u||3)}),void 0===t.atob&&(t.atob=function(t){var e,n,r,i,o,a,s=0,l=0,h=[];if(!t)return t;for(t+=\"\";e=(a=c.indexOf(t.charAt(s++))<<18|c.indexOf(t.charAt(s++))<<12|(i=c.indexOf(t.charAt(s++)))<<6|(o=c.indexOf(t.charAt(s++))))>>16&255,n=a>>8&255,r=255&a,h[l++]=64==i?String.fromCharCode(e):64==o?String.fromCharCode(e,n):String.fromCharCode(e,n,r),s<t.length;);return h.join(\"\")}),Array.prototype.map||(Array.prototype.map=function(t){if(null==this||\"function\"!=typeof t)throw new TypeError;for(var e=Object(this),n=e.length>>>0,r=new Array(n),i=1<arguments.length?arguments[1]:void 0,o=0;o<n;o++)o in e&&(r[o]=t.call(i,e[o],o,e));return r}),Array.isArray||(Array.isArray=function(t){return\"[object Array]\"===Object.prototype.toString.call(t)}),Array.prototype.forEach||(Array.prototype.forEach=function(t,e){if(null==this||\"function\"!=typeof t)throw new TypeError;for(var n=Object(this),r=n.length>>>0,i=0;i<r;i++)i in n&&t.call(e,n[i],i,n)}),Array.prototype.find||Object.defineProperty(Array.prototype,\"find\",{value:function(t){if(null==this)throw new TypeError('\"this\" is null or not defined');var e=Object(this),n=e.length>>>0;if(\"function\"!=typeof t)throw new TypeError(\"predicate must be a function\");for(var r=arguments[1],i=0;i<n;){var o=e[i];if(t.call(r,o,i,e))return o;i++}},configurable:!0,writable:!0}),Object.keys||(Object.keys=(s=Object.prototype.hasOwnProperty,l=!{toString:null}.propertyIsEnumerable(\"toString\"),u=(h=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"]).length,function(t){if(\"object\"!==se(t)&&(\"function\"!=typeof t||null===t))throw new TypeError;var e,n,r=[];for(e in t)s.call(t,e)&&r.push(e);if(l)for(n=0;n<u;n++)s.call(t,h[n])&&r.push(h[n]);return r})),\"function\"!=typeof Object.assign&&(Object.assign=function(t){if(null==t)throw new TypeError(\"Cannot convert undefined or null to object\");t=Object(t);for(var e=1;e<arguments.length;e++){var n=arguments[e];if(null!=n)for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}),String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^\\s+|\\s+$/g,\"\")}),String.prototype.trimLeft||(String.prototype.trimLeft=function(){return this.replace(/^\\s+/g,\"\")}),String.prototype.trimRight||(String.prototype.trimRight=function(){return this.replace(/\\s+$/g,\"\")}),Number.isInteger=Number.isInteger||function(t){return\"number\"==typeof t&&isFinite(t)&&Math.floor(t)===t}}(\"undefined\"!=typeof self&&self||\"undefined\"!=typeof window&&window||\"undefined\"!=typeof global&&global||Function('return typeof this === \"object\" && this.content')()||Function(\"return this\")());var t,e,n,_,l,F,P,p,d,k,a,o,s,h,u,c,r,i,f,g,m,y,v,w,b,x,I,C,B,N,L,A,S,j,E,M,O,q,T,R,D,U,z,H,W,V,G,Y,J,X,K,Z,Q,$,tt,et,nt,rt,it,ot,at,st,lt=function(ie){function oe(o){if(\"object\"!==se(o))throw new Error(\"Invalid Context passed to initialize PubSub (jsPDF-module)\");var a={};this.subscribe=function(t,e,n){if(n=n||!1,\"string\"!=typeof t||\"function\"!=typeof e||\"boolean\"!=typeof n)throw new Error(\"Invalid arguments passed to PubSub.subscribe (jsPDF-module)\");a.hasOwnProperty(t)||(a[t]={});var r=Math.random().toString(35);return a[t][r]=[e,!!n],r},this.unsubscribe=function(t){for(var e in a)if(a[e][t])return delete a[e][t],0===Object.keys(a[e]).length&&delete a[e],!0;return!1},this.publish=function(t){if(a.hasOwnProperty(t)){var e=Array.prototype.slice.call(arguments,1),n=[];for(var r in a[t]){var i=a[t][r];try{i[0].apply(o,e)}catch(t){ie.console&&console.error(\"jsPDF PubSub Error\",t.message,t)}i[1]&&n.push(r)}n.length&&n.forEach(this.unsubscribe)}},this.getTopics=function(){return a}}function ae(t,e,i,n){var r={},o=[],a=1;\"object\"===se(t)&&(t=(r=t).orientation,e=r.unit||e,i=r.format||i,n=r.compress||r.compressPdf||n,o=r.filters||(!0===n?[\"FlateEncode\"]:o),a=\"number\"==typeof r.userUnit?Math.abs(r.userUnit):1),e=e||\"mm\",t=(\"\"+(t||\"P\")).toLowerCase();var s=r.putOnlyUsedFonts||!0,K={},l={internal:{},__private__:{}};l.__private__.PubSub=oe;var h=\"1.3\",u=l.__private__.getPdfVersion=function(){return h},c=(l.__private__.setPdfVersion=function(t){h=t},{a0:[2383.94,3370.39],a1:[1683.78,2383.94],a2:[1190.55,1683.78],a3:[841.89,1190.55],a4:[595.28,841.89],a5:[419.53,595.28],a6:[297.64,419.53],a7:[209.76,297.64],a8:[147.4,209.76],a9:[104.88,147.4],a10:[73.7,104.88],b0:[2834.65,4008.19],b1:[2004.09,2834.65],b2:[1417.32,2004.09],b3:[1000.63,1417.32],b4:[708.66,1000.63],b5:[498.9,708.66],b6:[354.33,498.9],b7:[249.45,354.33],b8:[175.75,249.45],b9:[124.72,175.75],b10:[87.87,124.72],c0:[2599.37,3676.54],c1:[1836.85,2599.37],c2:[1298.27,1836.85],c3:[918.43,1298.27],c4:[649.13,918.43],c5:[459.21,649.13],c6:[323.15,459.21],c7:[229.61,323.15],c8:[161.57,229.61],c9:[113.39,161.57],c10:[79.37,113.39],dl:[311.81,623.62],letter:[612,792],\"government-letter\":[576,756],legal:[612,1008],\"junior-legal\":[576,360],ledger:[1224,792],tabloid:[792,1224],\"credit-card\":[153,243]}),f=(l.__private__.getPageFormats=function(){return c},l.__private__.getPageFormat=function(t){return c[t]});\"string\"==typeof i&&(i=f(i)),i=i||f(\"a4\");var p,Z=l.f2=l.__private__.f2=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.f2\");return t.toFixed(2)},Q=l.__private__.f3=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.f3\");return t.toFixed(3)},d=\"00000000000000000000000000000000\",g=l.__private__.getFileId=function(){return d},m=l.__private__.setFileId=function(t){return t=t||\"12345678901234567890123456789012\".split(\"\").map(function(){return\"ABCDEF0123456789\".charAt(Math.floor(16*Math.random()))}).join(\"\"),d=t};l.setFileId=function(t){return m(t),this},l.getFileId=function(){return g()};var y=l.__private__.convertDateToPDFDate=function(t){var e=t.getTimezoneOffset(),n=e<0?\"+\":\"-\",r=Math.floor(Math.abs(e/60)),i=Math.abs(e%60),o=[n,P(r),\"'\",P(i),\"'\"].join(\"\");return[\"D:\",t.getFullYear(),P(t.getMonth()+1),P(t.getDate()),P(t.getHours()),P(t.getMinutes()),P(t.getSeconds()),o].join(\"\")},v=l.__private__.convertPDFDateToDate=function(t){var e=parseInt(t.substr(2,4),10),n=parseInt(t.substr(6,2),10)-1,r=parseInt(t.substr(8,2),10),i=parseInt(t.substr(10,2),10),o=parseInt(t.substr(12,2),10),a=parseInt(t.substr(14,2),10);parseInt(t.substr(16,2),10),parseInt(t.substr(20,2),10);return new Date(e,n,r,i,o,a,0)},w=l.__private__.setCreationDate=function(t){var e;if(void 0===t&&(t=new Date),\"object\"===se(t)&&\"[object Date]\"===Object.prototype.toString.call(t))e=y(t);else{if(!/^D:(20[0-2][0-9]|203[0-7]|19[7-9][0-9])(0[0-9]|1[0-2])([0-2][0-9]|3[0-1])(0[0-9]|1[0-9]|2[0-3])(0[0-9]|[1-5][0-9])(0[0-9]|[1-5][0-9])(\\+0[0-9]|\\+1[0-4]|\\-0[0-9]|\\-1[0-1])\\'(0[0-9]|[1-5][0-9])\\'?$/.test(t))throw new Error(\"Invalid argument passed to jsPDF.setCreationDate\");e=t}return p=e},b=l.__private__.getCreationDate=function(t){var e=p;return\"jsDate\"===t&&(e=v(p)),e};l.setCreationDate=function(t){return w(t),this},l.getCreationDate=function(t){return b(t)};var x,N,L,A,S,$,_,F,P=l.__private__.padd2=function(t){return(\"0\"+parseInt(t)).slice(-2)},k=!1,I=[],C=[],B=0,tt=(l.__private__.setCustomOutputDestination=function(t){N=t},l.__private__.resetCustomOutputDestination=function(t){N=void 0},l.__private__.out=function(t){var e;return t=\"string\"==typeof t?t:t.toString(),(e=void 0===N?k?I[x]:C:N).push(t),k||(B+=t.length+1),e}),j=l.__private__.write=function(t){return tt(1===arguments.length?t.toString():Array.prototype.join.call(arguments,\" \"))},E=l.__private__.getArrayBuffer=function(t){for(var e=t.length,n=new ArrayBuffer(e),r=new Uint8Array(n);e--;)r[e]=t.charCodeAt(e);return n},M=[[\"Helvetica\",\"helvetica\",\"normal\",\"WinAnsiEncoding\"],[\"Helvetica-Bold\",\"helvetica\",\"bold\",\"WinAnsiEncoding\"],[\"Helvetica-Oblique\",\"helvetica\",\"italic\",\"WinAnsiEncoding\"],[\"Helvetica-BoldOblique\",\"helvetica\",\"bolditalic\",\"WinAnsiEncoding\"],[\"Courier\",\"courier\",\"normal\",\"WinAnsiEncoding\"],[\"Courier-Bold\",\"courier\",\"bold\",\"WinAnsiEncoding\"],[\"Courier-Oblique\",\"courier\",\"italic\",\"WinAnsiEncoding\"],[\"Courier-BoldOblique\",\"courier\",\"bolditalic\",\"WinAnsiEncoding\"],[\"Times-Roman\",\"times\",\"normal\",\"WinAnsiEncoding\"],[\"Times-Bold\",\"times\",\"bold\",\"WinAnsiEncoding\"],[\"Times-Italic\",\"times\",\"italic\",\"WinAnsiEncoding\"],[\"Times-BoldItalic\",\"times\",\"bolditalic\",\"WinAnsiEncoding\"],[\"ZapfDingbats\",\"zapfdingbats\",\"normal\",null],[\"Symbol\",\"symbol\",\"normal\",null]],et=(l.__private__.getStandardFonts=function(t){return M},r.fontSize||16),O=(l.__private__.setFontSize=l.setFontSize=function(t){return et=t,this},l.__private__.getFontSize=l.getFontSize=function(){return et}),nt=r.R2L||!1,q=(l.__private__.setR2L=l.setR2L=function(t){return nt=t,this},l.__private__.getR2L=l.getR2L=function(t){return nt},l.__private__.setZoomMode=function(t){var e=[void 0,null,\"fullwidth\",\"fullheight\",\"fullpage\",\"original\"];if(/^\\d*\\.?\\d*\\%$/.test(t))L=t;else if(isNaN(t)){if(-1===e.indexOf(t))throw new Error('zoom must be Integer (e.g. 2), a percentage Value (e.g. 300%) or fullwidth, fullheight, fullpage, original. \"'+t+'\" is not recognized.');L=t}else L=parseInt(t,10)}),T=(l.__private__.getZoomMode=function(){return L},l.__private__.setPageMode=function(t){if(-1==[void 0,null,\"UseNone\",\"UseOutlines\",\"UseThumbs\",\"FullScreen\"].indexOf(t))throw new Error('Page mode must be one of UseNone, UseOutlines, UseThumbs, or FullScreen. \"'+t+'\" is not recognized.');A=t}),R=(l.__private__.getPageMode=function(){return A},l.__private__.setLayoutMode=function(t){if(-1==[void 0,null,\"continuous\",\"single\",\"twoleft\",\"tworight\",\"two\"].indexOf(t))throw new Error('Layout mode must be one of continuous, single, twoleft, tworight. \"'+t+'\" is not recognized.');S=t}),D=(l.__private__.getLayoutMode=function(){return S},l.__private__.setDisplayMode=l.setDisplayMode=function(t,e,n){return q(t),R(e),T(n),this},{title:\"\",subject:\"\",author:\"\",keywords:\"\",creator:\"\"}),U=(l.__private__.getDocumentProperty=function(t){if(-1===Object.keys(D).indexOf(t))throw new Error(\"Invalid argument passed to jsPDF.getDocumentProperty\");return D[t]},l.__private__.getDocumentProperties=function(t){return D},l.__private__.setDocumentProperties=l.setProperties=l.setDocumentProperties=function(t){for(var e in D)D.hasOwnProperty(e)&&t[e]&&(D[e]=t[e]);return this},l.__private__.setDocumentProperty=function(t,e){if(-1===Object.keys(D).indexOf(t))throw new Error(\"Invalid arguments passed to jsPDF.setDocumentProperty\");return D[t]=e},0),z=[],rt={},H={},W=0,V=[],G=[],it=new oe(l),Y=r.hotfixes||[],J=l.__private__.newObject=function(){var t=X();return ot(t,!0),t},X=l.__private__.newObjectDeferred=function(){return z[++U]=function(){return B},U},ot=function(t,e){return e=\"boolean\"==typeof e&&e,z[t]=B,e&&tt(t+\" 0 obj\"),t},at=l.__private__.newAdditionalObject=function(){var t={objId:X(),content:\"\"};return G.push(t),t},st=X(),lt=X(),ht=l.__private__.decodeColorString=function(t){var e=t.split(\" \");if(2===e.length&&(\"g\"===e[1]||\"G\"===e[1])){var n=parseFloat(e[0]);e=[n,n,n,\"r\"]}for(var r=\"#\",i=0;i<3;i++)r+=(\"0\"+Math.floor(255*parseFloat(e[i])).toString(16)).slice(-2);return r},ut=l.__private__.encodeColorString=function(t){var e;\"string\"==typeof t&&(t={ch1:t});var n=t.ch1,r=t.ch2,i=t.ch3,o=t.ch4,a=(t.precision,\"draw\"===t.pdfColorType?[\"G\",\"RG\",\"K\"]:[\"g\",\"rg\",\"k\"]);if(\"string\"==typeof n&&\"#\"!==n.charAt(0)){var s=new RGBColor(n);if(s.ok)n=s.toHex();else if(!/^\\d*\\.?\\d*$/.test(n))throw new Error('Invalid color \"'+n+'\" passed to jsPDF.encodeColorString.')}if(\"string\"==typeof n&&/^#[0-9A-Fa-f]{3}$/.test(n)&&(n=\"#\"+n[1]+n[1]+n[2]+n[2]+n[3]+n[3]),\"string\"==typeof n&&/^#[0-9A-Fa-f]{6}$/.test(n)){var l=parseInt(n.substr(1),16);n=l>>16&255,r=l>>8&255,i=255&l}if(void 0===r||void 0===o&&n===r&&r===i)if(\"string\"==typeof n)e=n+\" \"+a[0];else switch(t.precision){case 2:e=Z(n/255)+\" \"+a[0];break;case 3:default:e=Q(n/255)+\" \"+a[0]}else if(void 0===o||\"object\"===se(o)){if(o&&!isNaN(o.a)&&0===o.a)return e=[\"1.000\",\"1.000\",\"1.000\",a[1]].join(\" \");if(\"string\"==typeof n)e=[n,r,i,a[1]].join(\" \");else switch(t.precision){case 2:e=[Z(n/255),Z(r/255),Z(i/255),a[1]].join(\" \");break;default:case 3:e=[Q(n/255),Q(r/255),Q(i/255),a[1]].join(\" \")}}else if(\"string\"==typeof n)e=[n,r,i,o,a[2]].join(\" \");else switch(t.precision){case 2:e=[Z(n/255),Z(r/255),Z(i/255),Z(o/255),a[2]].join(\" \");break;case 3:default:e=[Q(n/255),Q(r/255),Q(i/255),Q(o/255),a[2]].join(\" \")}return e},ct=l.__private__.getFilters=function(){return o},ft=l.__private__.putStream=function(t){var e=(t=t||{}).data||\"\",n=t.filters||ct(),r=t.alreadyAppliedFilters||[],i=t.addLength1||!1,o=e.length,a={};!0===n&&(n=[\"FlateEncode\"]);var s=t.additionalKeyValues||[],l=(a=void 0!==ae.API.processDataByFilters?ae.API.processDataByFilters(e,n):{data:e,reverseChain:[]}).reverseChain+(Array.isArray(r)?r.join(\" \"):r.toString());0!==a.data.length&&(s.push({key:\"Length\",value:a.data.length}),!0===i&&s.push({key:\"Length1\",value:o})),0!=l.length&&(l.split(\"/\").length-1==1?s.push({key:\"Filter\",value:l}):s.push({key:\"Filter\",value:\"[\"+l+\"]\"})),tt(\"<<\");for(var h=0;h<s.length;h++)tt(\"/\"+s[h].key+\" \"+s[h].value);tt(\">>\"),0!==a.data.length&&(tt(\"stream\"),tt(a.data),tt(\"endstream\"))},pt=l.__private__.putPage=function(t){t.mediaBox;var e=t.number,n=t.data,r=t.objId,i=t.contentsObjId;ot(r,!0);V[x].mediaBox.topRightX,V[x].mediaBox.bottomLeftX,V[x].mediaBox.topRightY,V[x].mediaBox.bottomLeftY;tt(\"<</Type /Page\"),tt(\"/Parent \"+t.rootDictionaryObjId+\" 0 R\"),tt(\"/Resources \"+t.resourceDictionaryObjId+\" 0 R\"),tt(\"/MediaBox [\"+parseFloat(Z(t.mediaBox.bottomLeftX))+\" \"+parseFloat(Z(t.mediaBox.bottomLeftY))+\" \"+Z(t.mediaBox.topRightX)+\" \"+Z(t.mediaBox.topRightY)+\"]\"),null!==t.cropBox&&tt(\"/CropBox [\"+Z(t.cropBox.bottomLeftX)+\" \"+Z(t.cropBox.bottomLeftY)+\" \"+Z(t.cropBox.topRightX)+\" \"+Z(t.cropBox.topRightY)+\"]\"),null!==t.bleedBox&&tt(\"/BleedBox [\"+Z(t.bleedBox.bottomLeftX)+\" \"+Z(t.bleedBox.bottomLeftY)+\" \"+Z(t.bleedBox.topRightX)+\" \"+Z(t.bleedBox.topRightY)+\"]\"),null!==t.trimBox&&tt(\"/TrimBox [\"+Z(t.trimBox.bottomLeftX)+\" \"+Z(t.trimBox.bottomLeftY)+\" \"+Z(t.trimBox.topRightX)+\" \"+Z(t.trimBox.topRightY)+\"]\"),null!==t.artBox&&tt(\"/ArtBox [\"+Z(t.artBox.bottomLeftX)+\" \"+Z(t.artBox.bottomLeftY)+\" \"+Z(t.artBox.topRightX)+\" \"+Z(t.artBox.topRightY)+\"]\"),\"number\"==typeof t.userUnit&&1!==t.userUnit&&tt(\"/UserUnit \"+t.userUnit),it.publish(\"putPage\",{objId:r,pageContext:V[e],pageNumber:e,page:n}),tt(\"/Contents \"+i+\" 0 R\"),tt(\">>\"),tt(\"endobj\");var o=n.join(\"\\n\");return ot(i,!0),ft({data:o,filters:ct()}),tt(\"endobj\"),r},dt=l.__private__.putPages=function(){var t,e,n=[];for(t=1;t<=W;t++)V[t].objId=X(),V[t].contentsObjId=X();for(t=1;t<=W;t++)n.push(pt({number:t,data:I[t],objId:V[t].objId,contentsObjId:V[t].contentsObjId,mediaBox:V[t].mediaBox,cropBox:V[t].cropBox,bleedBox:V[t].bleedBox,trimBox:V[t].trimBox,artBox:V[t].artBox,userUnit:V[t].userUnit,rootDictionaryObjId:st,resourceDictionaryObjId:lt}));ot(st,!0),tt(\"<</Type /Pages\");var r=\"/Kids [\";for(e=0;e<W;e++)r+=n[e]+\" 0 R \";tt(r+\"]\"),tt(\"/Count \"+W),tt(\">>\"),tt(\"endobj\"),it.publish(\"postPutPages\")},gt=function(){!function(){for(var t in rt)rt.hasOwnProperty(t)&&(!1===s||!0===s&&K.hasOwnProperty(t))&&(e=rt[t],it.publish(\"putFont\",{font:e,out:tt,newObject:J,putStream:ft}),!0!==e.isAlreadyPutted&&(e.objectNumber=J(),tt(\"<<\"),tt(\"/Type /Font\"),tt(\"/BaseFont /\"+e.postScriptName),tt(\"/Subtype /Type1\"),\"string\"==typeof e.encoding&&tt(\"/Encoding /\"+e.encoding),tt(\"/FirstChar 32\"),tt(\"/LastChar 255\"),tt(\">>\"),tt(\"endobj\")));var e}(),it.publish(\"putResources\"),ot(lt,!0),tt(\"<<\"),function(){for(var t in tt(\"/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]\"),tt(\"/Font <<\"),rt)rt.hasOwnProperty(t)&&(!1===s||!0===s&&K.hasOwnProperty(t))&&tt(\"/\"+t+\" \"+rt[t].objectNumber+\" 0 R\");tt(\">>\"),tt(\"/XObject <<\"),it.publish(\"putXobjectDict\"),tt(\">>\")}(),tt(\">>\"),tt(\"endobj\"),it.publish(\"postPutResources\")},mt=function(t,e,n){H.hasOwnProperty(e)||(H[e]={}),H[e][n]=t},yt=function(t,e,n,r,i){i=i||!1;var o=\"F\"+(Object.keys(rt).length+1).toString(10),a={id:o,postScriptName:t,fontName:e,fontStyle:n,encoding:r,isStandardFont:i,metadata:{}};return it.publish(\"addFont\",{font:a,instance:this}),void 0!==o&&(rt[o]=a,mt(o,e,n)),o},vt=l.__private__.pdfEscape=l.pdfEscape=function(t,e){return function(t,e){var n,r,i,o,a,s,l,h,u;if(i=(e=e||{}).sourceEncoding||\"Unicode\",a=e.outputEncoding,(e.autoencode||a)&&rt[$].metadata&&rt[$].metadata[i]&&rt[$].metadata[i].encoding&&(o=rt[$].metadata[i].encoding,!a&&rt[$].encoding&&(a=rt[$].encoding),!a&&o.codePages&&(a=o.codePages[0]),\"string\"==typeof a&&(a=o[a]),a)){for(l=!1,s=[],n=0,r=t.length;n<r;n++)(h=a[t.charCodeAt(n)])?s.push(String.fromCharCode(h)):s.push(t[n]),s[n].charCodeAt(0)>>8&&(l=!0);t=s.join(\"\")}for(n=t.length;void 0===l&&0!==n;)t.charCodeAt(n-1)>>8&&(l=!0),n--;if(!l)return t;for(s=e.noBOM?[]:[254,255],n=0,r=t.length;n<r;n++){if((u=(h=t.charCodeAt(n))>>8)>>8)throw new Error(\"Character at position \"+n+\" of string '\"+t+\"' exceeds 16bits. Cannot be encoded into UCS-2 BE\");s.push(u),s.push(h-(u<<8))}return String.fromCharCode.apply(void 0,s)}(t,e).replace(/\\\\/g,\"\\\\\\\\\").replace(/\\(/g,\"\\\\(\").replace(/\\)/g,\"\\\\)\")},wt=l.__private__.beginPage=function(t,e){var n,r=\"string\"==typeof e&&e.toLowerCase();if(\"string\"==typeof t&&(n=f(t.toLowerCase()))&&(t=n[0],e=n[1]),Array.isArray(t)&&(e=t[1],t=t[0]),(isNaN(t)||isNaN(e))&&(t=i[0],e=i[1]),r){switch(r.substr(0,1)){case\"l\":t<e&&(r=\"s\");break;case\"p\":e<t&&(r=\"s\")}\"s\"===r&&(n=t,t=e,e=n)}(14400<t||14400<e)&&(console.warn(\"A page in a PDF can not be wider or taller than 14400 userUnit. jsPDF limits the width/height to 14400\"),t=Math.min(14400,t),e=Math.min(14400,e)),i=[t,e],k=!0,I[++W]=[],V[W]={objId:0,contentsObjId:0,userUnit:Number(a),artBox:null,bleedBox:null,cropBox:null,trimBox:null,mediaBox:{bottomLeftX:0,bottomLeftY:0,topRightX:Number(t),topRightY:Number(e)}},xt(W)},bt=function(){wt.apply(this,arguments),Dt(Rt),tt(Jt),0!==te&&tt(te+\" J\"),0!==ne&&tt(ne+\" j\"),it.publish(\"addPage\",{pageNumber:W})},xt=function(t){0<t&&t<=W&&(x=t)},Nt=l.__private__.getNumberOfPages=l.getNumberOfPages=function(){return I.length-1},Lt=function(t,e,n){var r,i=void 0;return n=n||{},t=void 0!==t?t:rt[$].fontName,e=void 0!==e?e:rt[$].fontStyle,r=t.toLowerCase(),void 0!==H[r]&&void 0!==H[r][e]?i=H[r][e]:void 0!==H[t]&&void 0!==H[t][e]?i=H[t][e]:!1===n.disableWarning&&console.warn(\"Unable to look up font label for font '\"+t+\"', '\"+e+\"'. Refer to getFontList() for available fonts.\"),i||n.noFallback||null==(i=H.times[e])&&(i=H.times.normal),i},At=l.__private__.putInfo=function(){for(var t in J(),tt(\"<<\"),tt(\"/Producer (jsPDF \"+ae.version+\")\"),D)D.hasOwnProperty(t)&&D[t]&&tt(\"/\"+t.substr(0,1).toUpperCase()+t.substr(1)+\" (\"+vt(D[t])+\")\");tt(\"/CreationDate (\"+p+\")\"),tt(\">>\"),tt(\"endobj\")},St=l.__private__.putCatalog=function(t){var e=(t=t||{}).rootDictionaryObjId||st;switch(J(),tt(\"<<\"),tt(\"/Type /Catalog\"),tt(\"/Pages \"+e+\" 0 R\"),L||(L=\"fullwidth\"),L){case\"fullwidth\":tt(\"/OpenAction [3 0 R /FitH null]\");break;case\"fullheight\":tt(\"/OpenAction [3 0 R /FitV null]\");break;case\"fullpage\":tt(\"/OpenAction [3 0 R /Fit]\");break;case\"original\":tt(\"/OpenAction [3 0 R /XYZ null null 1]\");break;default:var n=\"\"+L;\"%\"===n.substr(n.length-1)&&(L=parseInt(L)/100),\"number\"==typeof L&&tt(\"/OpenAction [3 0 R /XYZ null null \"+Z(L)+\"]\")}switch(S||(S=\"continuous\"),S){case\"continuous\":tt(\"/PageLayout /OneColumn\");break;case\"single\":tt(\"/PageLayout /SinglePage\");break;case\"two\":case\"twoleft\":tt(\"/PageLayout /TwoColumnLeft\");break;case\"tworight\":tt(\"/PageLayout /TwoColumnRight\")}A&&tt(\"/PageMode /\"+A),it.publish(\"putCatalog\"),tt(\">>\"),tt(\"endobj\")},_t=l.__private__.putTrailer=function(){tt(\"trailer\"),tt(\"<<\"),tt(\"/Size \"+(U+1)),tt(\"/Root \"+U+\" 0 R\"),tt(\"/Info \"+(U-1)+\" 0 R\"),tt(\"/ID [ <\"+d+\"> <\"+d+\"> ]\"),tt(\">>\")},Ft=l.__private__.putHeader=function(){tt(\"%PDF-\"+h),tt(\"%ºß¬à\")},Pt=l.__private__.putXRef=function(){var t=1,e=\"0000000000\";for(tt(\"xref\"),tt(\"0 \"+(U+1)),tt(\"0000000000 65535 f \"),t=1;t<=U;t++){\"function\"==typeof z[t]?tt((e+z[t]()).slice(-10)+\" 00000 n \"):void 0!==z[t]?tt((e+z[t]).slice(-10)+\" 00000 n \"):tt(\"0000000000 00000 n \")}},kt=l.__private__.buildDocument=function(){k=!1,B=U=0,C=[],z=[],G=[],st=X(),lt=X(),it.publish(\"buildDocument\"),Ft(),dt(),function(){it.publish(\"putAdditionalObjects\");for(var t=0;t<G.length;t++){var e=G[t];ot(e.objId,!0),tt(e.content),tt(\"endobj\")}it.publish(\"postPutAdditionalObjects\")}(),gt(),At(),St();var t=B;return Pt(),_t(),tt(\"startxref\"),tt(\"\"+t),tt(\"%%EOF\"),k=!0,C.join(\"\\n\")},It=l.__private__.getBlob=function(t){return new Blob([E(t)],{type:\"application/pdf\"})},Ct=l.output=l.__private__.output=((F=function(t,e){e=e||{};var n=kt();switch(\"string\"==typeof e?e={filename:e}:e.filename=e.filename||\"generated.pdf\",t){case void 0:return n;case\"save\":l.save(e.filename);break;case\"arraybuffer\":return E(n);case\"blob\":return It(n);case\"bloburi\":case\"bloburl\":if(void 0!==ie.URL&&\"function\"==typeof ie.URL.createObjectURL)return ie.URL&&ie.URL.createObjectURL(It(n))||void 0;console.warn(\"bloburl is not supported by your system, because URL.createObjectURL is not supported by your browser.\");break;case\"datauristring\":case\"dataurlstring\":return\"data:application/pdf;filename=\"+e.filename+\";base64,\"+btoa(n);case\"dataurlnewwindow\":var r='<html><style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style><body><iframe src=\"'+this.output(\"datauristring\")+'\"></iframe></body></html>',i=ie.open();if(null!==i&&i.document.write(r),i||\"undefined\"==typeof safari)return i;case\"datauri\":case\"dataurl\":return ie.document.location.href=\"data:application/pdf;filename=\"+e.filename+\";base64,\"+btoa(n);default:return null}}).foo=function(){try{return F.apply(this,arguments)}catch(t){var e=t.stack||\"\";~e.indexOf(\" at \")&&(e=e.split(\" at \")[1]);var n=\"Error in function \"+e.split(\"\\n\")[0].split(\"<\")[0]+\": \"+t.message;if(!ie.console)throw new Error(n);ie.console.error(n,t),ie.alert&&alert(n)}},(F.foo.bar=F).foo),Bt=function(t){return!0===Array.isArray(Y)&&-1<Y.indexOf(t)};switch(e){case\"pt\":_=1;break;case\"mm\":_=72/25.4;break;case\"cm\":_=72/2.54;break;case\"in\":_=72;break;case\"px\":_=1==Bt(\"px_scaling\")?.75:96/72;break;case\"pc\":case\"em\":_=12;break;case\"ex\":_=6;break;default:throw new Error(\"Invalid unit: \"+e)}w(),m();var jt=l.__private__.getPageInfo=function(t){if(isNaN(t)||t%1!=0)throw new Error(\"Invalid argument passed to jsPDF.getPageInfo\");return{objId:V[t].objId,pageNumber:t,pageContext:V[t]}},Et=l.__private__.getPageInfoByObjId=function(t){for(var e in V)if(V[e].objId===t)break;if(isNaN(t)||t%1!=0)throw new Error(\"Invalid argument passed to jsPDF.getPageInfoByObjId\");return jt(e)},Mt=l.__private__.getCurrentPageInfo=function(){return{objId:V[x].objId,pageNumber:x,pageContext:V[x]}};l.addPage=function(){return bt.apply(this,arguments),this},l.setPage=function(){return xt.apply(this,arguments),this},l.insertPage=function(t){return this.addPage(),this.movePage(x,t),this},l.movePage=function(t,e){if(e<t){for(var n=I[t],r=V[t],i=t;e<i;i--)I[i]=I[i-1],V[i]=V[i-1];I[e]=n,V[e]=r,this.setPage(e)}else if(t<e){for(n=I[t],r=V[t],i=t;i<e;i++)I[i]=I[i+1],V[i]=V[i+1];I[e]=n,V[e]=r,this.setPage(e)}return this},l.deletePage=function(){return function(t){0<t&&t<=W&&(I.splice(t,1),--W<x&&(x=W),this.setPage(x))}.apply(this,arguments),this};l.__private__.text=l.text=function(t,e,n,i){var r;\"number\"!=typeof t||\"number\"!=typeof e||\"string\"!=typeof n&&!Array.isArray(n)||(r=n,n=e,e=t,t=r);var o=arguments[3],a=arguments[4],s=arguments[5];if(\"object\"===se(o)&&null!==o||(\"string\"==typeof a&&(s=a,a=null),\"string\"==typeof o&&(s=o,o=null),\"number\"==typeof o&&(a=o,o=null),i={flags:o,angle:a,align:s}),(o=o||{}).noBOM=o.noBOM||!0,o.autoencode=o.autoencode||!0,isNaN(e)||isNaN(n)||null==t)throw new Error(\"Invalid arguments passed to jsPDF.text\");if(0===t.length)return c;var l,h=\"\",u=\"number\"==typeof i.lineHeightFactor?i.lineHeightFactor:Tt,c=i.scope||this;function f(t){for(var e,n=t.concat(),r=[],i=n.length;i--;)\"string\"==typeof(e=n.shift())?r.push(e):Array.isArray(t)&&1===e.length?r.push(e[0]):r.push([e[0],e[1],e[2]]);return r}function p(t,e){var n;if(\"string\"==typeof t)n=e(t)[0];else if(Array.isArray(t)){for(var r,i,o=t.concat(),a=[],s=o.length;s--;)\"string\"==typeof(r=o.shift())?a.push(e(r)[0]):Array.isArray(r)&&\"string\"===r[0]&&(i=e(r[0],r[1],r[2]),a.push([i[0],i[1],i[2]]));n=a}return n}var d=!1,g=!0;if(\"string\"==typeof t)d=!0;else if(Array.isArray(t)){for(var m,y=t.concat(),v=[],w=y.length;w--;)(\"string\"!=typeof(m=y.shift())||Array.isArray(m)&&\"string\"!=typeof m[0])&&(g=!1);d=g}if(!1===d)throw new Error('Type of text must be string or Array. \"'+t+'\" is not recognized.');var b=rt[$].encoding;\"WinAnsiEncoding\"!==b&&\"StandardEncoding\"!==b||(t=p(t,function(t,e,n){return[(r=t,r=r.split(\"\\t\").join(Array(i.TabLen||9).join(\" \")),vt(r,o)),e,n];var r})),\"string\"==typeof t&&(t=t.match(/[\\r?\\n]/)?t.split(/\\r\\n|\\r|\\n/g):[t]);var x=et/c.internal.scaleFactor,N=x*(Tt-1);switch(i.baseline){case\"bottom\":n-=N;break;case\"top\":n+=x-N;break;case\"hanging\":n+=x-2*N;break;case\"middle\":n+=x/2-N}0<(O=i.maxWidth||0)&&(\"string\"==typeof t?t=c.splitTextToSize(t,O):\"[object Array]\"===Object.prototype.toString.call(t)&&(t=c.splitTextToSize(t.join(\" \"),O)));var L={text:t,x:e,y:n,options:i,mutex:{pdfEscape:vt,activeFontKey:$,fonts:rt,activeFontSize:et}};it.publish(\"preProcessText\",L),t=L.text;a=(i=L.options).angle;var A=c.internal.scaleFactor,S=[];if(a){a*=Math.PI/180;var _=Math.cos(a),F=Math.sin(a);S=[Z(_),Z(F),Z(-1*F),Z(_)]}void 0!==(M=i.charSpace)&&(h+=Q(M*A)+\" Tc\\n\");i.lang;var P=-1,k=void 0!==i.renderingMode?i.renderingMode:i.stroke,I=c.internal.getCurrentPageInfo().pageContext;switch(k){case 0:case!1:case\"fill\":P=0;break;case 1:case!0:case\"stroke\":P=1;break;case 2:case\"fillThenStroke\":P=2;break;case 3:case\"invisible\":P=3;break;case 4:case\"fillAndAddForClipping\":P=4;break;case 5:case\"strokeAndAddPathForClipping\":P=5;break;case 6:case\"fillThenStrokeAndAddToPathForClipping\":P=6;break;case 7:case\"addToPathForClipping\":P=7}var C=void 0!==I.usedRenderingMode?I.usedRenderingMode:-1;-1!==P?h+=P+\" Tr\\n\":-1!==C&&(h+=\"0 Tr\\n\"),-1!==P&&(I.usedRenderingMode=P);s=i.align||\"left\";var B=et*u,j=c.internal.pageSize.getWidth(),E=(A=c.internal.scaleFactor,rt[$]),M=i.charSpace||Qt,O=i.maxWidth||0,q=(o={},[]);if(\"[object Array]\"===Object.prototype.toString.call(t)){var T,R;v=f(t);\"left\"!==s&&(R=v.map(function(t){return c.getStringUnitWidth(t,{font:E,charSpace:M,fontSize:et})*et/A}));var D,U=Math.max.apply(Math,R),z=0;if(\"right\"===s){e-=R[0],t=[];var H=0;for(w=v.length;H<w;H++)U-R[H],T=0===H?(D=Wt(e),Vt(n)):(D=(z-R[H])*A,-B),t.push([v[H],D,T]),z=R[H]}else if(\"center\"===s){e-=R[0]/2,t=[];for(H=0,w=v.length;H<w;H++)(U-R[H])/2,T=0===H?(D=Wt(e),Vt(n)):(D=(z-R[H])/2*A,-B),t.push([v[H],D,T]),z=R[H]}else if(\"left\"===s){t=[];for(H=0,w=v.length;H<w;H++)T=0===H?Vt(n):-B,D=0===H?Wt(e):0,t.push(v[H])}else{if(\"justify\"!==s)throw new Error('Unrecognized alignment option, use \"left\", \"center\", \"right\" or \"justify\".');t=[];for(O=0!==O?O:j,H=0,w=v.length;H<w;H++)T=0===H?Vt(n):-B,D=0===H?Wt(e):0,H<w-1&&q.push(((O-R[H])/(v[H].split(\" \").length-1)*A).toFixed(2)),t.push([v[H],D,T])}}!0===(\"boolean\"==typeof i.R2L?i.R2L:nt)&&(t=p(t,function(t,e,n){return[t.split(\"\").reverse().join(\"\"),e,n]}));L={text:t,x:e,y:n,options:i,mutex:{pdfEscape:vt,activeFontKey:$,fonts:rt,activeFontSize:et}};it.publish(\"postProcessText\",L),t=L.text,l=L.mutex.isHex;v=f(t);t=[];var W,V,G,Y=0,J=(w=v.length,\"\");for(H=0;H<w;H++)J=\"\",Array.isArray(v[H])?(W=parseFloat(v[H][1]),V=parseFloat(v[H][2]),G=(l?\"<\":\"(\")+v[H][0]+(l?\">\":\")\"),Y=1):(W=Wt(e),V=Vt(n),G=(l?\"<\":\"(\")+v[H]+(l?\">\":\")\")),void 0!==q&&void 0!==q[H]&&(J=q[H]+\" Tw\\n\"),0!==S.length&&0===H?t.push(J+S.join(\" \")+\" \"+W.toFixed(2)+\" \"+V.toFixed(2)+\" Tm\\n\"+G):1===Y||0===Y&&0===H?t.push(J+W.toFixed(2)+\" \"+V.toFixed(2)+\" Td\\n\"+G):t.push(J+G);t=0===Y?t.join(\" Tj\\nT* \"):t.join(\" Tj\\n\"),t+=\" Tj\\n\";var X=\"BT\\n/\"+$+\" \"+et+\" Tf\\n\"+(et*u).toFixed(2)+\" TL\\n\"+Kt+\"\\n\";return X+=h,X+=t,tt(X+=\"ET\"),K[$]=!0,c},l.__private__.lstext=l.lstext=function(t,e,n,r){return console.warn(\"jsPDF.lstext is deprecated\"),this.text(t,e,n,{charSpace:r})},l.__private__.clip=l.clip=function(t){tt(\"evenodd\"===t?\"W*\":\"W\"),tt(\"n\")},l.__private__.clip_fixed=l.clip_fixed=function(t){console.log(\"clip_fixed is deprecated\"),l.clip(t)};var Ot=l.__private__.isValidStyle=function(t){var e=!1;return-1!==[void 0,null,\"S\",\"F\",\"DF\",\"FD\",\"f\",\"f*\",\"B\",\"B*\"].indexOf(t)&&(e=!0),e},qt=l.__private__.getStyle=function(t){var e=\"S\";return\"F\"===t?e=\"f\":\"FD\"===t||\"DF\"===t?e=\"B\":\"f\"!==t&&\"f*\"!==t&&\"B\"!==t&&\"B*\"!==t||(e=t),e};l.__private__.line=l.line=function(t,e,n,r){if(isNaN(t)||isNaN(e)||isNaN(n)||isNaN(r))throw new Error(\"Invalid arguments passed to jsPDF.line\");return this.lines([[n-t,r-e]],t,e)},l.__private__.lines=l.lines=function(t,e,n,r,i,o){var a,s,l,h,u,c,f,p,d,g,m,y;if(\"number\"==typeof t&&(y=n,n=e,e=t,t=y),r=r||[1,1],o=o||!1,isNaN(e)||isNaN(n)||!Array.isArray(t)||!Array.isArray(r)||!Ot(i)||\"boolean\"!=typeof o)throw new Error(\"Invalid arguments passed to jsPDF.lines\");for(tt(Q(Wt(e))+\" \"+Q(Vt(n))+\" m \"),a=r[0],s=r[1],h=t.length,g=e,m=n,l=0;l<h;l++)2===(u=t[l]).length?(g=u[0]*a+g,m=u[1]*s+m,tt(Q(Wt(g))+\" \"+Q(Vt(m))+\" l\")):(c=u[0]*a+g,f=u[1]*s+m,p=u[2]*a+g,d=u[3]*s+m,g=u[4]*a+g,m=u[5]*s+m,tt(Q(Wt(c))+\" \"+Q(Vt(f))+\" \"+Q(Wt(p))+\" \"+Q(Vt(d))+\" \"+Q(Wt(g))+\" \"+Q(Vt(m))+\" c\"));return o&&tt(\" h\"),null!==i&&tt(qt(i)),this},l.__private__.rect=l.rect=function(t,e,n,r,i){if(isNaN(t)||isNaN(e)||isNaN(n)||isNaN(r)||!Ot(i))throw new Error(\"Invalid arguments passed to jsPDF.rect\");return tt([Z(Wt(t)),Z(Vt(e)),Z(n*_),Z(-r*_),\"re\"].join(\" \")),null!==i&&tt(qt(i)),this},l.__private__.triangle=l.triangle=function(t,e,n,r,i,o,a){if(isNaN(t)||isNaN(e)||isNaN(n)||isNaN(r)||isNaN(i)||isNaN(o)||!Ot(a))throw new Error(\"Invalid arguments passed to jsPDF.triangle\");return this.lines([[n-t,r-e],[i-n,o-r],[t-i,e-o]],t,e,[1,1],a,!0),this},l.__private__.roundedRect=l.roundedRect=function(t,e,n,r,i,o,a){if(isNaN(t)||isNaN(e)||isNaN(n)||isNaN(r)||isNaN(i)||isNaN(o)||!Ot(a))throw new Error(\"Invalid arguments passed to jsPDF.roundedRect\");var s=4/3*(Math.SQRT2-1);return this.lines([[n-2*i,0],[i*s,0,i,o-o*s,i,o],[0,r-2*o],[0,o*s,-i*s,o,-i,o],[2*i-n,0],[-i*s,0,-i,-o*s,-i,-o],[0,2*o-r],[0,-o*s,i*s,-o,i,-o]],t+i,e,[1,1],a),this},l.__private__.ellipse=l.ellipse=function(t,e,n,r,i){if(isNaN(t)||isNaN(e)||isNaN(n)||isNaN(r)||!Ot(i))throw new Error(\"Invalid arguments passed to jsPDF.ellipse\");var o=4/3*(Math.SQRT2-1)*n,a=4/3*(Math.SQRT2-1)*r;return tt([Z(Wt(t+n)),Z(Vt(e)),\"m\",Z(Wt(t+n)),Z(Vt(e-a)),Z(Wt(t+o)),Z(Vt(e-r)),Z(Wt(t)),Z(Vt(e-r)),\"c\"].join(\" \")),tt([Z(Wt(t-o)),Z(Vt(e-r)),Z(Wt(t-n)),Z(Vt(e-a)),Z(Wt(t-n)),Z(Vt(e)),\"c\"].join(\" \")),tt([Z(Wt(t-n)),Z(Vt(e+a)),Z(Wt(t-o)),Z(Vt(e+r)),Z(Wt(t)),Z(Vt(e+r)),\"c\"].join(\" \")),tt([Z(Wt(t+o)),Z(Vt(e+r)),Z(Wt(t+n)),Z(Vt(e+a)),Z(Wt(t+n)),Z(Vt(e)),\"c\"].join(\" \")),null!==i&&tt(qt(i)),this},l.__private__.circle=l.circle=function(t,e,n,r){if(isNaN(t)||isNaN(e)||isNaN(n)||!Ot(r))throw new Error(\"Invalid arguments passed to jsPDF.circle\");return this.ellipse(t,e,n,n,r)};l.setFont=function(t,e){return $=Lt(t,e,{disableWarning:!1}),this},l.setFontStyle=l.setFontType=function(t){return $=Lt(void 0,t),this};l.__private__.getFontList=l.getFontList=function(){var t,e,n,r={};for(t in H)if(H.hasOwnProperty(t))for(e in r[t]=n=[],H[t])H[t].hasOwnProperty(e)&&n.push(e);return r};l.addFont=function(t,e,n,r){yt.call(this,t,e,n,r=r||\"Identity-H\")};var Tt,Rt=r.lineWidth||.200025,Dt=l.__private__.setLineWidth=l.setLineWidth=function(t){return tt((t*_).toFixed(2)+\" w\"),this},Ut=(l.__private__.setLineDash=ae.API.setLineDash=function(t,e){if(t=t||[],e=e||0,isNaN(e)||!Array.isArray(t))throw new Error(\"Invalid arguments passed to jsPDF.setLineDash\");return t=t.map(function(t){return(t*_).toFixed(3)}).join(\" \"),e=parseFloat((e*_).toFixed(3)),tt(\"[\"+t+\"] \"+e+\" d\"),this},l.__private__.getLineHeight=l.getLineHeight=function(){return et*Tt}),zt=(Ut=l.__private__.getLineHeight=l.getLineHeight=function(){return et*Tt},l.__private__.setLineHeightFactor=l.setLineHeightFactor=function(t){return\"number\"==typeof(t=t||1.15)&&(Tt=t),this}),Ht=l.__private__.getLineHeightFactor=l.getLineHeightFactor=function(){return Tt};zt(r.lineHeight);var Wt=l.__private__.getHorizontalCoordinate=function(t){return t*_},Vt=l.__private__.getVerticalCoordinate=function(t){return V[x].mediaBox.topRightY-V[x].mediaBox.bottomLeftY-t*_},Gt=l.__private__.getHorizontalCoordinateString=function(t){return Z(t*_)},Yt=l.__private__.getVerticalCoordinateString=function(t){return Z(V[x].mediaBox.topRightY-V[x].mediaBox.bottomLeftY-t*_)},Jt=r.strokeColor||\"0 G\",Xt=(l.__private__.getStrokeColor=l.getDrawColor=function(){return ht(Jt)},l.__private__.setStrokeColor=l.setDrawColor=function(t,e,n,r){return Jt=ut({ch1:t,ch2:e,ch3:n,ch4:r,pdfColorType:\"draw\",precision:2}),tt(Jt),this},r.fillColor||\"0 g\"),Kt=(l.__private__.getFillColor=l.getFillColor=function(){return ht(Xt)},l.__private__.setFillColor=l.setFillColor=function(t,e,n,r){return Xt=ut({ch1:t,ch2:e,ch3:n,ch4:r,pdfColorType:\"fill\",precision:2}),tt(Xt),this},r.textColor||\"0 g\"),Zt=l.__private__.getTextColor=l.getTextColor=function(){return ht(Kt)},Qt=(l.__private__.setTextColor=l.setTextColor=function(t,e,n,r){return Kt=ut({ch1:t,ch2:e,ch3:n,ch4:r,pdfColorType:\"text\",precision:3}),this},r.charSpace||0),$t=l.__private__.getCharSpace=l.getCharSpace=function(){return Qt},te=(l.__private__.setCharSpace=l.setCharSpace=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.setCharSpace\");return Qt=t,this},0);l.CapJoinStyles={0:0,butt:0,but:0,miter:0,1:1,round:1,rounded:1,circle:1,2:2,projecting:2,project:2,square:2,bevel:2};l.__private__.setLineCap=l.setLineCap=function(t){var e=l.CapJoinStyles[t];if(void 0===e)throw new Error(\"Line cap style of '\"+t+\"' is not recognized. See or extend .CapJoinStyles property for valid styles\");return tt((te=e)+\" J\"),this};var ee,ne=0;l.__private__.setLineJoin=l.setLineJoin=function(t){var e=l.CapJoinStyles[t];if(void 0===e)throw new Error(\"Line join style of '\"+t+\"' is not recognized. See or extend .CapJoinStyles property for valid styles\");return tt((ne=e)+\" j\"),this},l.__private__.setMiterLimit=l.setMiterLimit=function(t){if(t=t||0,isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.setMiterLimit\");return ee=parseFloat(Z(t*_)),tt(ee+\" M\"),this};for(var re in l.save=function(r,t){if(r=r||\"generated.pdf\",(t=t||{}).returnPromise=t.returnPromise||!1,!1!==t.returnPromise)return new Promise(function(t,e){try{var n=le(It(kt()),r);\"function\"==typeof le.unload&&ie.setTimeout&&setTimeout(le.unload,911),t(n)}catch(t){e(t.message)}});le(It(kt()),r),\"function\"==typeof le.unload&&ie.setTimeout&&setTimeout(le.unload,911)},ae.API)ae.API.hasOwnProperty(re)&&(\"events\"===re&&ae.API.events.length?function(t,e){var n,r,i;for(i=e.length-1;-1!==i;i--)n=e[i][0],r=e[i][1],t.subscribe.apply(t,[n].concat(\"function\"==typeof r?[r]:r))}(it,ae.API.events):l[re]=ae.API[re]);return l.internal={pdfEscape:vt,getStyle:qt,getFont:function(){return rt[Lt.apply(l,arguments)]},getFontSize:O,getCharSpace:$t,getTextColor:Zt,getLineHeight:Ut,getLineHeightFactor:Ht,write:j,getHorizontalCoordinate:Wt,getVerticalCoordinate:Vt,getCoordinateString:Gt,getVerticalCoordinateString:Yt,collections:{},newObject:J,newAdditionalObject:at,newObjectDeferred:X,newObjectDeferredBegin:ot,getFilters:ct,putStream:ft,events:it,scaleFactor:_,pageSize:{getWidth:function(){return(V[x].mediaBox.topRightX-V[x].mediaBox.bottomLeftX)/_},setWidth:function(t){V[x].mediaBox.topRightX=t*_+V[x].mediaBox.bottomLeftX},getHeight:function(){return(V[x].mediaBox.topRightY-V[x].mediaBox.bottomLeftY)/_},setHeight:function(t){V[x].mediaBox.topRightY=t*_+V[x].mediaBox.bottomLeftY}},output:Ct,getNumberOfPages:Nt,pages:I,out:tt,f2:Z,f3:Q,getPageInfo:jt,getPageInfoByObjId:Et,getCurrentPageInfo:Mt,getPDFVersion:u,hasHotfix:Bt},Object.defineProperty(l.internal.pageSize,\"width\",{get:function(){return(V[x].mediaBox.topRightX-V[x].mediaBox.bottomLeftX)/_},set:function(t){V[x].mediaBox.topRightX=t*_+V[x].mediaBox.bottomLeftX},enumerable:!0,configurable:!0}),Object.defineProperty(l.internal.pageSize,\"height\",{get:function(){return(V[x].mediaBox.topRightY-V[x].mediaBox.bottomLeftY)/_},set:function(t){V[x].mediaBox.topRightY=t*_+V[x].mediaBox.bottomLeftY},enumerable:!0,configurable:!0}),function(t){for(var e=0,n=M.length;e<n;e++){var r=yt(t[e][0],t[e][1],t[e][2],M[e][3],!0);K[r]=!0;var i=t[e][0].split(\"-\");mt(r,i[0],i[1]||\"\")}it.publish(\"addFonts\",{fonts:rt,dictionary:H})}(M),$=\"F1\",bt(i,t),it.publish(\"initialized\"),l}return ae.API={events:[]},ae.version=\"1.5.3\", true?!(__WEBPACK_AMD_DEFINE_RESULT__ = (function(){return ae}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):undefined,ae}(\"undefined\"!=typeof self&&self||\"undefined\"!=typeof window&&window||\"undefined\"!=typeof global&&global||Function('return typeof this === \"object\" && this.content')()||Function(\"return this\")());\n/**\n * @license\n * Copyright (c) 2016 Alexander Weidt,\n * https://github.com/BiggA94\n * \n * Licensed under the MIT License. http://opensource.org/licenses/mit-license\n */\n(function(t,e){var A,n=1,S=function(t){return t.replace(/\\\\/g,\"\\\\\\\\\").replace(/\\(/g,\"\\\\(\").replace(/\\)/g,\"\\\\)\")},y=function(t){return t.replace(/\\\\\\\\/g,\"\\\\\").replace(/\\\\\\(/g,\"(\").replace(/\\\\\\)/g,\")\")},_=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.f2\");return t.toFixed(2)},s=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.f2\");return t.toFixed(5)};t.__acroform__={};var r=function(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t},v=function(t){return t*n},w=function(t){return t/n},l=function(t){var e=new j,n=Y.internal.getHeight(t)||0,r=Y.internal.getWidth(t)||0;return e.BBox=[0,0,Number(_(r)),Number(_(n))],e},i=t.__acroform__.setBit=function(t,e){if(t=t||0,e=e||0,isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.setBit\");return t|=1<<e},o=t.__acroform__.clearBit=function(t,e){if(t=t||0,e=e||0,isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.clearBit\");return t&=~(1<<e)},a=t.__acroform__.getBit=function(t,e){if(isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.getBit\");return 0==(t&1<<e)?0:1},b=t.__acroform__.getBitForPdf=function(t,e){if(isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.getBitForPdf\");return a(t,e-1)},x=t.__acroform__.setBitForPdf=function(t,e){if(isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.setBitForPdf\");return i(t,e-1)},N=t.__acroform__.clearBitForPdf=function(t,e,n){if(isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.clearBitForPdf\");return o(t,e-1)},c=t.__acroform__.calculateCoordinates=function(t){var e=this.internal.getHorizontalCoordinate,n=this.internal.getVerticalCoordinate,r=t[0],i=t[1],o=t[2],a=t[3],s={};return s.lowerLeft_X=e(r)||0,s.lowerLeft_Y=n(i+a)||0,s.upperRight_X=e(r+o)||0,s.upperRight_Y=n(i)||0,[Number(_(s.lowerLeft_X)),Number(_(s.lowerLeft_Y)),Number(_(s.upperRight_X)),Number(_(s.upperRight_Y))]},f=function(t){if(t.appearanceStreamContent)return t.appearanceStreamContent;if(t.V||t.DV){var e=[],n=t.V||t.DV,r=h(t,n),i=A.internal.getFont(t.fontName,t.fontStyle).id;e.push(\"/Tx BMC\"),e.push(\"q\"),e.push(\"BT\"),e.push(A.__private__.encodeColorString(t.color)),e.push(\"/\"+i+\" \"+_(r.fontSize)+\" Tf\"),e.push(\"1 0 0 1 0 0 Tm\"),e.push(r.text),e.push(\"ET\"),e.push(\"Q\"),e.push(\"EMC\");var o=new l(t);return o.stream=e.join(\"\\n\"),o}},h=function(i,t){var e=i.maxFontSize||12,n=(i.fontName,{text:\"\",fontSize:\"\"}),o=(t=\")\"==(t=\"(\"==t.substr(0,1)?t.substr(1):t).substr(t.length-1)?t.substr(0,t.length-1):t).split(\" \"),r=(A.__private__.encodeColorString(i.color),e),a=Y.internal.getHeight(i)||0;a=a<0?-a:a;var s=Y.internal.getWidth(i)||0;s=s<0?-s:s;var l=function(t,e,n){if(t+1<o.length){var r=e+\" \"+o[t+1];return F(r,i,n).width<=s-4}return!1};r++;t:for(;;){t=\"\";var h=F(\"3\",i,--r).height,u=i.multiline?a-r:(a-h)/2,c=-2,f=u+=2,p=0,d=0,g=0;if(r<=0){t=\"(...) Tj\\n\",t+=\"% Width of Text: \"+F(t,i,r=12).width+\", FieldWidth:\"+s+\"\\n\";break}g=F(o[0]+\" \",i,r).width;var m=\"\",y=0;for(var v in o)if(o.hasOwnProperty(v)){m=\" \"==(m+=o[v]+\" \").substr(m.length-1)?m.substr(0,m.length-1):m;var w=parseInt(v);g=F(m+\" \",i,r).width;var b=l(w,m,r),x=v>=o.length-1;if(b&&!x){m+=\" \";continue}if(b||x){if(x)d=w;else if(i.multiline&&a<(h+2)*(y+2)+2)continue t}else{if(!i.multiline)continue t;if(a<(h+2)*(y+2)+2)continue t;d=w}for(var N=\"\",L=p;L<=d;L++)N+=o[L]+\" \";switch(N=\" \"==N.substr(N.length-1)?N.substr(0,N.length-1):N,g=F(N,i,r).width,i.textAlign){case\"right\":c=s-g-2;break;case\"center\":c=(s-g)/2;break;case\"left\":default:c=2}t+=_(c)+\" \"+_(f)+\" Td\\n\",t+=\"(\"+S(N)+\") Tj\\n\",t+=-_(c)+\" 0 Td\\n\",f=-(r+2),g=0,p=d+1,y++,m=\"\"}else;break}return n.text=t,n.fontSize=r,n},F=function(t,e,n){var r=A.internal.getFont(e.fontName,e.fontStyle),i=A.getStringUnitWidth(t,{font:r,fontSize:parseFloat(n),charSpace:0})*parseFloat(n);return{height:A.getStringUnitWidth(\"3\",{font:r,fontSize:parseFloat(n),charSpace:0})*parseFloat(n)*1.5,width:i}},u={fields:[],xForms:[],acroFormDictionaryRoot:null,printedOut:!1,internal:null,isInitialized:!1},p=function(){A.internal.acroformPlugin.acroFormDictionaryRoot.objId=void 0;var t=A.internal.acroformPlugin.acroFormDictionaryRoot.Fields;for(var e in t)if(t.hasOwnProperty(e)){var n=t[e];n.objId=void 0,n.hasAnnotation&&d.call(A,n)}},d=function(t){var e={type:\"reference\",object:t};void 0===A.internal.getPageInfo(t.page).pageContext.annotations.find(function(t){return t.type===e.type&&t.object===e.object})&&A.internal.getPageInfo(t.page).pageContext.annotations.push(e)},g=function(){if(void 0===A.internal.acroformPlugin.acroFormDictionaryRoot)throw new Error(\"putCatalogCallback: Root missing.\");A.internal.write(\"/AcroForm \"+A.internal.acroformPlugin.acroFormDictionaryRoot.objId+\" 0 R\")},m=function(){A.internal.events.unsubscribe(A.internal.acroformPlugin.acroFormDictionaryRoot._eventID),delete A.internal.acroformPlugin.acroFormDictionaryRoot._eventID,A.internal.acroformPlugin.printedOut=!0},L=function(t){var e=!t;t||(A.internal.newObjectDeferredBegin(A.internal.acroformPlugin.acroFormDictionaryRoot.objId,!0),A.internal.acroformPlugin.acroFormDictionaryRoot.putStream());t=t||A.internal.acroformPlugin.acroFormDictionaryRoot.Kids;for(var n in t)if(t.hasOwnProperty(n)){var r=t[n],i=[],o=r.Rect;if(r.Rect&&(r.Rect=c.call(this,r.Rect)),A.internal.newObjectDeferredBegin(r.objId,!0),r.DA=Y.createDefaultAppearanceStream(r),\"object\"===se(r)&&\"function\"==typeof r.getKeyValueListForStream&&(i=r.getKeyValueListForStream()),r.Rect=o,r.hasAppearanceStream&&!r.appearanceStreamContent){var a=f.call(this,r);i.push({key:\"AP\",value:\"<</N \"+a+\">>\"}),A.internal.acroformPlugin.xForms.push(a)}if(r.appearanceStreamContent){var s=\"\";for(var l in r.appearanceStreamContent)if(r.appearanceStreamContent.hasOwnProperty(l)){var h=r.appearanceStreamContent[l];if(s+=\"/\"+l+\" \",s+=\"<<\",1<=Object.keys(h).length||Array.isArray(h))for(var n in h){var u;if(h.hasOwnProperty(n))\"function\"==typeof(u=h[n])&&(u=u.call(this,r)),s+=\"/\"+n+\" \"+u+\" \",0<=A.internal.acroformPlugin.xForms.indexOf(u)||A.internal.acroformPlugin.xForms.push(u)}else\"function\"==typeof(u=h)&&(u=u.call(this,r)),s+=\"/\"+n+\" \"+u,0<=A.internal.acroformPlugin.xForms.indexOf(u)||A.internal.acroformPlugin.xForms.push(u);s+=\">>\"}i.push({key:\"AP\",value:\"<<\\n\"+s+\">>\"})}A.internal.putStream({additionalKeyValues:i}),A.internal.out(\"endobj\")}e&&P.call(this,A.internal.acroformPlugin.xForms)},P=function(t){for(var e in t)if(t.hasOwnProperty(e)){var n=e,r=t[e];A.internal.newObjectDeferredBegin(r&&r.objId,!0),\"object\"===se(r)&&\"function\"==typeof r.putStream&&r.putStream(),delete t[n]}},k=function(){if(void 0!==this.internal&&(void 0===this.internal.acroformPlugin||!1===this.internal.acroformPlugin.isInitialized)){if(A=this,M.FieldNum=0,this.internal.acroformPlugin=JSON.parse(JSON.stringify(u)),this.internal.acroformPlugin.acroFormDictionaryRoot)throw new Error(\"Exception while creating AcroformDictionary\");n=A.internal.scaleFactor,A.internal.acroformPlugin.acroFormDictionaryRoot=new E,A.internal.acroformPlugin.acroFormDictionaryRoot._eventID=A.internal.events.subscribe(\"postPutResources\",m),A.internal.events.subscribe(\"buildDocument\",p),A.internal.events.subscribe(\"putCatalog\",g),A.internal.events.subscribe(\"postPutPages\",L),A.internal.acroformPlugin.isInitialized=!0}},I=t.__acroform__.arrayToPdfArray=function(t){if(Array.isArray(t)){for(var e=\"[\",n=0;n<t.length;n++)switch(0!==n&&(e+=\" \"),se(t[n])){case\"boolean\":case\"number\":case\"object\":e+=t[n].toString();break;case\"string\":\"/\"!==t[n].substr(0,1)?e+=\"(\"+S(t[n].toString())+\")\":e+=t[n].toString()}return e+=\"]\"}throw new Error(\"Invalid argument passed to jsPDF.__acroform__.arrayToPdfArray\")};var C=function(t){return(t=t||\"\").toString(),t=\"(\"+S(t)+\")\"},B=function(){var e;Object.defineProperty(this,\"objId\",{configurable:!0,get:function(){if(e||(e=A.internal.newObjectDeferred()),!e)throw new Error(\"AcroFormPDFObject: Couldn't create Object ID\");return e},set:function(t){e=t}})};B.prototype.toString=function(){return this.objId+\" 0 R\"},B.prototype.putStream=function(){var t=this.getKeyValueListForStream();A.internal.putStream({data:this.stream,additionalKeyValues:t}),A.internal.out(\"endobj\")},B.prototype.getKeyValueListForStream=function(){return function(t){var e=[],n=Object.getOwnPropertyNames(t).filter(function(t){return\"content\"!=t&&\"appearanceStreamContent\"!=t&&\"_\"!=t.substring(0,1)});for(var r in n)if(!1===Object.getOwnPropertyDescriptor(t,n[r]).configurable){var i=n[r],o=t[i];o&&(Array.isArray(o)?e.push({key:i,value:I(o)}):o instanceof B?e.push({key:i,value:o.objId+\" 0 R\"}):\"function\"!=typeof o&&e.push({key:i,value:o}))}return e}(this)};var j=function(){B.call(this),Object.defineProperty(this,\"Type\",{value:\"/XObject\",configurable:!1,writeable:!0}),Object.defineProperty(this,\"Subtype\",{value:\"/Form\",configurable:!1,writeable:!0}),Object.defineProperty(this,\"FormType\",{value:1,configurable:!1,writeable:!0});var e,n=[];Object.defineProperty(this,\"BBox\",{configurable:!1,writeable:!0,get:function(){return n},set:function(t){n=t}}),Object.defineProperty(this,\"Resources\",{value:\"2 0 R\",configurable:!1,writeable:!0}),Object.defineProperty(this,\"stream\",{enumerable:!1,configurable:!0,set:function(t){e=t.trim()},get:function(){return e||null}})};r(j,B);var E=function(){B.call(this);var e,t=[];Object.defineProperty(this,\"Kids\",{enumerable:!1,configurable:!0,get:function(){return 0<t.length?t:void 0}}),Object.defineProperty(this,\"Fields\",{enumerable:!1,configurable:!1,get:function(){return t}}),Object.defineProperty(this,\"DA\",{enumerable:!1,configurable:!1,get:function(){if(e)return\"(\"+e+\")\"},set:function(t){e=t}})};r(E,B);var M=function t(){B.call(this);var e=4;Object.defineProperty(this,\"F\",{enumerable:!1,configurable:!1,get:function(){return e},set:function(t){if(isNaN(t))throw new Error('Invalid value \"'+t+'\" for attribute F supplied.');e=t}}),Object.defineProperty(this,\"showWhenPrinted\",{enumerable:!0,configurable:!0,get:function(){return Boolean(b(e,3))},set:function(t){!0===Boolean(t)?this.F=x(e,3):this.F=N(e,3)}});var n=0;Object.defineProperty(this,\"Ff\",{enumerable:!1,configurable:!1,get:function(){return n},set:function(t){if(isNaN(t))throw new Error('Invalid value \"'+t+'\" for attribute Ff supplied.');n=t}});var r=[];Object.defineProperty(this,\"Rect\",{enumerable:!1,configurable:!1,get:function(){if(0!==r.length)return r},set:function(t){r=void 0!==t?t:[]}}),Object.defineProperty(this,\"x\",{enumerable:!0,configurable:!0,get:function(){return!r||isNaN(r[0])?0:w(r[0])},set:function(t){r[0]=v(t)}}),Object.defineProperty(this,\"y\",{enumerable:!0,configurable:!0,get:function(){return!r||isNaN(r[1])?0:w(r[1])},set:function(t){r[1]=v(t)}}),Object.defineProperty(this,\"width\",{enumerable:!0,configurable:!0,get:function(){return!r||isNaN(r[2])?0:w(r[2])},set:function(t){r[2]=v(t)}}),Object.defineProperty(this,\"height\",{enumerable:!0,configurable:!0,get:function(){return!r||isNaN(r[3])?0:w(r[3])},set:function(t){r[3]=v(t)}});var i=\"\";Object.defineProperty(this,\"FT\",{enumerable:!0,configurable:!1,get:function(){return i},set:function(t){switch(t){case\"/Btn\":case\"/Tx\":case\"/Ch\":case\"/Sig\":i=t;break;default:throw new Error('Invalid value \"'+t+'\" for attribute FT supplied.')}}});var o=null;Object.defineProperty(this,\"T\",{enumerable:!0,configurable:!1,get:function(){if(!o||o.length<1){if(this instanceof H)return;o=\"FieldObject\"+t.FieldNum++}return\"(\"+S(o)+\")\"},set:function(t){o=t.toString()}}),Object.defineProperty(this,\"fieldName\",{configurable:!0,enumerable:!0,get:function(){return o},set:function(t){o=t}});var a=\"helvetica\";Object.defineProperty(this,\"fontName\",{enumerable:!0,configurable:!0,get:function(){return a},set:function(t){a=t}});var s=\"normal\";Object.defineProperty(this,\"fontStyle\",{enumerable:!0,configurable:!0,get:function(){return s},set:function(t){s=t}});var l=0;Object.defineProperty(this,\"fontSize\",{enumerable:!0,configurable:!0,get:function(){return w(l)},set:function(t){l=v(t)}});var h=50;Object.defineProperty(this,\"maxFontSize\",{enumerable:!0,configurable:!0,get:function(){return w(h)},set:function(t){h=v(t)}});var u=\"black\";Object.defineProperty(this,\"color\",{enumerable:!0,configurable:!0,get:function(){return u},set:function(t){u=t}});var c=\"/F1 0 Tf 0 g\";Object.defineProperty(this,\"DA\",{enumerable:!0,configurable:!1,get:function(){if(!(!c||this instanceof H||this instanceof V))return C(c)},set:function(t){t=t.toString(),c=t}});var f=null;Object.defineProperty(this,\"DV\",{enumerable:!1,configurable:!1,get:function(){if(f)return this instanceof D==!1?C(f):f},set:function(t){t=t.toString(),f=this instanceof D==!1?\"(\"===t.substr(0,1)?y(t.substr(1,t.length-2)):y(t):t}}),Object.defineProperty(this,\"defaultValue\",{enumerable:!0,configurable:!0,get:function(){return this instanceof D==!0?y(f.substr(1,f.length-1)):f},set:function(t){t=t.toString(),f=this instanceof D==!0?\"/\"+t:t}});var p=null;Object.defineProperty(this,\"V\",{enumerable:!1,configurable:!1,get:function(){if(p)return this instanceof D==!1?C(p):p},set:function(t){t=t.toString(),p=this instanceof D==!1?\"(\"===t.substr(0,1)?y(t.substr(1,t.length-2)):y(t):t}}),Object.defineProperty(this,\"value\",{enumerable:!0,configurable:!0,get:function(){return this instanceof D==!0?y(p.substr(1,p.length-1)):p},set:function(t){t=t.toString(),p=this instanceof D==!0?\"/\"+t:t}}),Object.defineProperty(this,\"hasAnnotation\",{enumerable:!0,configurable:!0,get:function(){return this.Rect}}),Object.defineProperty(this,\"Type\",{enumerable:!0,configurable:!1,get:function(){return this.hasAnnotation?\"/Annot\":null}}),Object.defineProperty(this,\"Subtype\",{enumerable:!0,configurable:!1,get:function(){return this.hasAnnotation?\"/Widget\":null}});var d,g=!1;Object.defineProperty(this,\"hasAppearanceStream\",{enumerable:!0,configurable:!0,writeable:!0,get:function(){return g},set:function(t){t=Boolean(t),g=t}}),Object.defineProperty(this,\"page\",{enumerable:!0,configurable:!0,writeable:!0,get:function(){if(d)return d},set:function(t){d=t}}),Object.defineProperty(this,\"readOnly\",{enumerable:!0,configurable:!0,get:function(){return Boolean(b(this.Ff,1))},set:function(t){!0===Boolean(t)?this.Ff=x(this.Ff,1):this.Ff=N(this.Ff,1)}}),Object.defineProperty(this,\"required\",{enumerable:!0,configurable:!0,get:function(){return Boolean(b(this.Ff,2))},set:function(t){!0===Boolean(t)?this.Ff=x(this.Ff,2):this.Ff=N(this.Ff,2)}}),Object.defineProperty(this,\"noExport\",{enumerable:!0,configurable:!0,get:function(){return Boolean(b(this.Ff,3))},set:function(t){!0===Boolean(t)?this.Ff=x(this.Ff,3):this.Ff=N(this.Ff,3)}});var m=null;Object.defineProperty(this,\"Q\",{enumerable:!0,configurable:!1,get:function(){if(null!==m)return m},set:function(t){if(-1===[0,1,2].indexOf(t))throw new Error('Invalid value \"'+t+'\" for attribute Q supplied.');m=t}}),Object.defineProperty(this,\"textAlign\",{get:function(){var t=\"left\";switch(m){case 0:default:t=\"left\";break;case 1:t=\"center\";break;case 2:t=\"right\"}return t},configurable:!0,enumerable:!0,set:function(t){switch(t){case\"right\":case 2:m=2;break;case\"center\":case 1:m=1;break;case\"left\":case 0:default:m=0}}})};r(M,B);var O=function(){M.call(this),this.FT=\"/Ch\",this.V=\"()\",this.fontName=\"zapfdingbats\";var e=0;Object.defineProperty(this,\"TI\",{enumerable:!0,configurable:!1,get:function(){return e},set:function(t){e=t}}),Object.defineProperty(this,\"topIndex\",{enumerable:!0,configurable:!0,get:function(){return e},set:function(t){e=t}});var r=[];Object.defineProperty(this,\"Opt\",{enumerable:!0,configurable:!1,get:function(){return I(r)},set:function(t){var e,n;n=[],\"string\"==typeof(e=t)&&(n=function(t,e,n){n||(n=1);for(var r,i=[];r=e.exec(t);)i.push(r[n]);return i}(e,/\\((.*?)\\)/g)),r=n}}),this.getOptions=function(){return r},this.setOptions=function(t){r=t,this.sort&&r.sort()},this.addOption=function(t){t=(t=t||\"\").toString(),r.push(t),this.sort&&r.sort()},this.removeOption=function(t,e){for(e=e||!1,t=(t=t||\"\").toString();-1!==r.indexOf(t)&&(r.splice(r.indexOf(t),1),!1!==e););},Object.defineProperty(this,\"combo\",{enumerable:!0,configurable:!0,get:function(){return Boolean(b(this.Ff,18))},set:function(t){!0===Boolean(t)?this.Ff=x(this.Ff,18):this.Ff=N(this.Ff,18)}}),Object.defineProperty(this,\"edit\",{enumerable:!0,configurable:!0,get:function(){return Boolean(b(this.Ff,19))},set:function(t){!0===this.combo&&(!0===Boolean(t)?this.Ff=x(this.Ff,19):this.Ff=N(this.Ff,19))}}),Object.defineProperty(this,\"sort\",{enumerable:!0,configurable:!0,get:function(){return Boolean(b(this.Ff,20))},set:function(t){!0===Boolean(t)?(this.Ff=x(this.Ff,20),r.sort()):this.Ff=N(this.Ff,20)}}),Object.defineProperty(this,\"multiSelect\",{enumerable:!0,configurable:!0,get:function(){return Boolean(b(this.Ff,22))},set:function(t){!0===Boolean(t)?this.Ff=x(this.Ff,22):this.Ff=N(this.Ff,22)}}),Object.defineProperty(this,\"doNotSpellCheck\",{enumerable:!0,configurable:!0,get:function(){return Boolean(b(this.Ff,23))},set:function(t){!0===Boolean(t)?this.Ff=x(this.Ff,23):this.Ff=N(this.Ff,23)}}),Object.defineProperty(this,\"commitOnSelChange\",{enumerable:!0,configurable:!0,get:function(){return Boolean(b(this.Ff,27))},set:function(t){!0===Boolean(t)?this.Ff=x(this.Ff,27):this.Ff=N(this.Ff,27)}}),this.hasAppearanceStream=!1};r(O,M);var q=function(){O.call(this),this.fontName=\"helvetica\",this.combo=!1};r(q,O);var T=function(){q.call(this),this.combo=!0};r(T,q);var R=function(){T.call(this),this.edit=!0};r(R,T);var D=function(){M.call(this),this.FT=\"/Btn\",Object.defineProperty(this,\"noToggleToOff\",{enumerable:!0,configurable:!0,get:function(){return Boolean(b(this.Ff,15))},set:function(t){!0===Boolean(t)?this.Ff=x(this.Ff,15):this.Ff=N(this.Ff,15)}}),Object.defineProperty(this,\"radio\",{enumerable:!0,configurable:!0,get:function(){return Boolean(b(this.Ff,16))},set:function(t){!0===Boolean(t)?this.Ff=x(this.Ff,16):this.Ff=N(this.Ff,16)}}),Object.defineProperty(this,\"pushButton\",{enumerable:!0,configurable:!0,get:function(){return Boolean(b(this.Ff,17))},set:function(t){!0===Boolean(t)?this.Ff=x(this.Ff,17):this.Ff=N(this.Ff,17)}}),Object.defineProperty(this,\"radioIsUnison\",{enumerable:!0,configurable:!0,get:function(){return Boolean(b(this.Ff,26))},set:function(t){!0===Boolean(t)?this.Ff=x(this.Ff,26):this.Ff=N(this.Ff,26)}});var e,n={};Object.defineProperty(this,\"MK\",{enumerable:!1,configurable:!1,get:function(){if(0!==Object.keys(n).length){var t,e=[];for(t in e.push(\"<<\"),n)e.push(\"/\"+t+\" (\"+n[t]+\")\");return e.push(\">>\"),e.join(\"\\n\")}},set:function(t){\"object\"===se(t)&&(n=t)}}),Object.defineProperty(this,\"caption\",{enumerable:!0,configurable:!0,get:function(){return n.CA||\"\"},set:function(t){\"string\"==typeof t&&(n.CA=t)}}),Object.defineProperty(this,\"AS\",{enumerable:!1,configurable:!1,get:function(){return e},set:function(t){e=t}}),Object.defineProperty(this,\"appearanceState\",{enumerable:!0,configurable:!0,get:function(){return e.substr(1,e.length-1)},set:function(t){e=\"/\"+t}})};r(D,M);var U=function(){D.call(this),this.pushButton=!0};r(U,D);var z=function(){D.call(this),this.radio=!0,this.pushButton=!1;var e=[];Object.defineProperty(this,\"Kids\",{enumerable:!0,configurable:!1,get:function(){return e},set:function(t){e=void 0!==t?t:[]}})};r(z,D);var H=function(){var e,n;M.call(this),Object.defineProperty(this,\"Parent\",{enumerable:!1,configurable:!1,get:function(){return e},set:function(t){e=t}}),Object.defineProperty(this,\"optionName\",{enumerable:!1,configurable:!0,get:function(){return n},set:function(t){n=t}});var r,i={};Object.defineProperty(this,\"MK\",{enumerable:!1,configurable:!1,get:function(){var t,e=[];for(t in e.push(\"<<\"),i)e.push(\"/\"+t+\" (\"+i[t]+\")\");return e.push(\">>\"),e.join(\"\\n\")},set:function(t){\"object\"===se(t)&&(i=t)}}),Object.defineProperty(this,\"caption\",{enumerable:!0,configurable:!0,get:function(){return i.CA||\"\"},set:function(t){\"string\"==typeof t&&(i.CA=t)}}),Object.defineProperty(this,\"AS\",{enumerable:!1,configurable:!1,get:function(){return r},set:function(t){r=t}}),Object.defineProperty(this,\"appearanceState\",{enumerable:!0,configurable:!0,get:function(){return r.substr(1,r.length-1)},set:function(t){r=\"/\"+t}}),this.optionName=name,this.caption=\"l\",this.appearanceState=\"Off\",this._AppearanceType=Y.RadioButton.Circle,this.appearanceStreamContent=this._AppearanceType.createAppearanceStream(name)};r(H,M),z.prototype.setAppearance=function(t){if(!(\"createAppearanceStream\"in t&&\"getCA\"in t))throw new Error(\"Couldn't assign Appearance to RadioButton. Appearance was Invalid!\");for(var e in this.Kids)if(this.Kids.hasOwnProperty(e)){var n=this.Kids[e];n.appearanceStreamContent=t.createAppearanceStream(n.optionName),n.caption=t.getCA()}},z.prototype.createOption=function(t){this.Kids.length;var e=new H;return e.Parent=this,e.optionName=t,this.Kids.push(e),J.call(this,e),e};var W=function(){D.call(this),this.fontName=\"zapfdingbats\",this.caption=\"3\",this.appearanceState=\"On\",this.value=\"On\",this.textAlign=\"center\",this.appearanceStreamContent=Y.CheckBox.createAppearanceStream()};r(W,D);var V=function(){M.call(this),this.FT=\"/Tx\",Object.defineProperty(this,\"multiline\",{enumerable:!0,configurable:!0,get:function(){return Boolean(b(this.Ff,13))},set:function(t){!0===Boolean(t)?this.Ff=x(this.Ff,13):this.Ff=N(this.Ff,13)}}),Object.defineProperty(this,\"fileSelect\",{enumerable:!0,configurable:!0,get:function(){return Boolean(b(this.Ff,21))},set:function(t){!0===Boolean(t)?this.Ff=x(this.Ff,21):this.Ff=N(this.Ff,21)}}),Object.defineProperty(this,\"doNotSpellCheck\",{enumerable:!0,configurable:!0,get:function(){return Boolean(b(this.Ff,23))},set:function(t){!0===Boolean(t)?this.Ff=x(this.Ff,23):this.Ff=N(this.Ff,23)}}),Object.defineProperty(this,\"doNotScroll\",{enumerable:!0,configurable:!0,get:function(){return Boolean(b(this.Ff,24))},set:function(t){!0===Boolean(t)?this.Ff=x(this.Ff,24):this.Ff=N(this.Ff,24)}}),Object.defineProperty(this,\"comb\",{enumerable:!0,configurable:!0,get:function(){return Boolean(b(this.Ff,25))},set:function(t){!0===Boolean(t)?this.Ff=x(this.Ff,25):this.Ff=N(this.Ff,25)}}),Object.defineProperty(this,\"richText\",{enumerable:!0,configurable:!0,get:function(){return Boolean(b(this.Ff,26))},set:function(t){!0===Boolean(t)?this.Ff=x(this.Ff,26):this.Ff=N(this.Ff,26)}});var e=null;Object.defineProperty(this,\"MaxLen\",{enumerable:!0,configurable:!1,get:function(){return e},set:function(t){e=t}}),Object.defineProperty(this,\"maxLength\",{enumerable:!0,configurable:!0,get:function(){return e},set:function(t){Number.isInteger(t)&&(e=t)}}),Object.defineProperty(this,\"hasAppearanceStream\",{enumerable:!0,configurable:!0,get:function(){return this.V||this.DV}})};r(V,M);var G=function(){V.call(this),Object.defineProperty(this,\"password\",{enumerable:!0,configurable:!0,get:function(){return Boolean(b(this.Ff,14))},set:function(t){!0===Boolean(t)?this.Ff=x(this.Ff,14):this.Ff=N(this.Ff,14)}}),this.password=!0};r(G,V);var Y={CheckBox:{createAppearanceStream:function(){return{N:{On:Y.CheckBox.YesNormal},D:{On:Y.CheckBox.YesPushDown,Off:Y.CheckBox.OffPushDown}}},YesPushDown:function(t){var e=l(t),n=[],r=A.internal.getFont(t.fontName,t.fontStyle).id,i=A.__private__.encodeColorString(t.color),o=h(t,t.caption);return n.push(\"0.749023 g\"),n.push(\"0 0 \"+_(Y.internal.getWidth(t))+\" \"+_(Y.internal.getHeight(t))+\" re\"),n.push(\"f\"),n.push(\"BMC\"),n.push(\"q\"),n.push(\"0 0 1 rg\"),n.push(\"/\"+r+\" \"+_(o.fontSize)+\" Tf \"+i),n.push(\"BT\"),n.push(o.text),n.push(\"ET\"),n.push(\"Q\"),n.push(\"EMC\"),e.stream=n.join(\"\\n\"),e},YesNormal:function(t){var e=l(t),n=A.internal.getFont(t.fontName,t.fontStyle).id,r=A.__private__.encodeColorString(t.color),i=[],o=Y.internal.getHeight(t),a=Y.internal.getWidth(t),s=h(t,t.caption);return i.push(\"1 g\"),i.push(\"0 0 \"+_(a)+\" \"+_(o)+\" re\"),i.push(\"f\"),i.push(\"q\"),i.push(\"0 0 1 rg\"),i.push(\"0 0 \"+_(a-1)+\" \"+_(o-1)+\" re\"),i.push(\"W\"),i.push(\"n\"),i.push(\"0 g\"),i.push(\"BT\"),i.push(\"/\"+n+\" \"+_(s.fontSize)+\" Tf \"+r),i.push(s.text),i.push(\"ET\"),i.push(\"Q\"),e.stream=i.join(\"\\n\"),e},OffPushDown:function(t){var e=l(t),n=[];return n.push(\"0.749023 g\"),n.push(\"0 0 \"+_(Y.internal.getWidth(t))+\" \"+_(Y.internal.getHeight(t))+\" re\"),n.push(\"f\"),e.stream=n.join(\"\\n\"),e}},RadioButton:{Circle:{createAppearanceStream:function(t){var e={D:{Off:Y.RadioButton.Circle.OffPushDown},N:{}};return e.N[t]=Y.RadioButton.Circle.YesNormal,e.D[t]=Y.RadioButton.Circle.YesPushDown,e},getCA:function(){return\"l\"},YesNormal:function(t){var e=l(t),n=[],r=Y.internal.getWidth(t)<=Y.internal.getHeight(t)?Y.internal.getWidth(t)/4:Y.internal.getHeight(t)/4;r=Number((.9*r).toFixed(5));var i=Y.internal.Bezier_C,o=Number((r*i).toFixed(5));return n.push(\"q\"),n.push(\"1 0 0 1 \"+s(Y.internal.getWidth(t)/2)+\" \"+s(Y.internal.getHeight(t)/2)+\" cm\"),n.push(r+\" 0 m\"),n.push(r+\" \"+o+\" \"+o+\" \"+r+\" 0 \"+r+\" c\"),n.push(\"-\"+o+\" \"+r+\" -\"+r+\" \"+o+\" -\"+r+\" 0 c\"),n.push(\"-\"+r+\" -\"+o+\" -\"+o+\" -\"+r+\" 0 -\"+r+\" c\"),n.push(o+\" -\"+r+\" \"+r+\" -\"+o+\" \"+r+\" 0 c\"),n.push(\"f\"),n.push(\"Q\"),e.stream=n.join(\"\\n\"),e},YesPushDown:function(t){var e=l(t),n=[],r=Y.internal.getWidth(t)<=Y.internal.getHeight(t)?Y.internal.getWidth(t)/4:Y.internal.getHeight(t)/4,i=(r=Number((.9*r).toFixed(5)),Number((2*r).toFixed(5))),o=Number((i*Y.internal.Bezier_C).toFixed(5)),a=Number((r*Y.internal.Bezier_C).toFixed(5));return n.push(\"0.749023 g\"),n.push(\"q\"),n.push(\"1 0 0 1 \"+s(Y.internal.getWidth(t)/2)+\" \"+s(Y.internal.getHeight(t)/2)+\" cm\"),n.push(i+\" 0 m\"),n.push(i+\" \"+o+\" \"+o+\" \"+i+\" 0 \"+i+\" c\"),n.push(\"-\"+o+\" \"+i+\" -\"+i+\" \"+o+\" -\"+i+\" 0 c\"),n.push(\"-\"+i+\" -\"+o+\" -\"+o+\" -\"+i+\" 0 -\"+i+\" c\"),n.push(o+\" -\"+i+\" \"+i+\" -\"+o+\" \"+i+\" 0 c\"),n.push(\"f\"),n.push(\"Q\"),n.push(\"0 g\"),n.push(\"q\"),n.push(\"1 0 0 1 \"+s(Y.internal.getWidth(t)/2)+\" \"+s(Y.internal.getHeight(t)/2)+\" cm\"),n.push(r+\" 0 m\"),n.push(r+\" \"+a+\" \"+a+\" \"+r+\" 0 \"+r+\" c\"),n.push(\"-\"+a+\" \"+r+\" -\"+r+\" \"+a+\" -\"+r+\" 0 c\"),n.push(\"-\"+r+\" -\"+a+\" -\"+a+\" -\"+r+\" 0 -\"+r+\" c\"),n.push(a+\" -\"+r+\" \"+r+\" -\"+a+\" \"+r+\" 0 c\"),n.push(\"f\"),n.push(\"Q\"),e.stream=n.join(\"\\n\"),e},OffPushDown:function(t){var e=l(t),n=[],r=Y.internal.getWidth(t)<=Y.internal.getHeight(t)?Y.internal.getWidth(t)/4:Y.internal.getHeight(t)/4,i=(r=Number((.9*r).toFixed(5)),Number((2*r).toFixed(5))),o=Number((i*Y.internal.Bezier_C).toFixed(5));return n.push(\"0.749023 g\"),n.push(\"q\"),n.push(\"1 0 0 1 \"+s(Y.internal.getWidth(t)/2)+\" \"+s(Y.internal.getHeight(t)/2)+\" cm\"),n.push(i+\" 0 m\"),n.push(i+\" \"+o+\" \"+o+\" \"+i+\" 0 \"+i+\" c\"),n.push(\"-\"+o+\" \"+i+\" -\"+i+\" \"+o+\" -\"+i+\" 0 c\"),n.push(\"-\"+i+\" -\"+o+\" -\"+o+\" -\"+i+\" 0 -\"+i+\" c\"),n.push(o+\" -\"+i+\" \"+i+\" -\"+o+\" \"+i+\" 0 c\"),n.push(\"f\"),n.push(\"Q\"),e.stream=n.join(\"\\n\"),e}},Cross:{createAppearanceStream:function(t){var e={D:{Off:Y.RadioButton.Cross.OffPushDown},N:{}};return e.N[t]=Y.RadioButton.Cross.YesNormal,e.D[t]=Y.RadioButton.Cross.YesPushDown,e},getCA:function(){return\"8\"},YesNormal:function(t){var e=l(t),n=[],r=Y.internal.calculateCross(t);return n.push(\"q\"),n.push(\"1 1 \"+_(Y.internal.getWidth(t)-2)+\" \"+_(Y.internal.getHeight(t)-2)+\" re\"),n.push(\"W\"),n.push(\"n\"),n.push(_(r.x1.x)+\" \"+_(r.x1.y)+\" m\"),n.push(_(r.x2.x)+\" \"+_(r.x2.y)+\" l\"),n.push(_(r.x4.x)+\" \"+_(r.x4.y)+\" m\"),n.push(_(r.x3.x)+\" \"+_(r.x3.y)+\" l\"),n.push(\"s\"),n.push(\"Q\"),e.stream=n.join(\"\\n\"),e},YesPushDown:function(t){var e=l(t),n=Y.internal.calculateCross(t),r=[];return r.push(\"0.749023 g\"),r.push(\"0 0 \"+_(Y.internal.getWidth(t))+\" \"+_(Y.internal.getHeight(t))+\" re\"),r.push(\"f\"),r.push(\"q\"),r.push(\"1 1 \"+_(Y.internal.getWidth(t)-2)+\" \"+_(Y.internal.getHeight(t)-2)+\" re\"),r.push(\"W\"),r.push(\"n\"),r.push(_(n.x1.x)+\" \"+_(n.x1.y)+\" m\"),r.push(_(n.x2.x)+\" \"+_(n.x2.y)+\" l\"),r.push(_(n.x4.x)+\" \"+_(n.x4.y)+\" m\"),r.push(_(n.x3.x)+\" \"+_(n.x3.y)+\" l\"),r.push(\"s\"),r.push(\"Q\"),e.stream=r.join(\"\\n\"),e},OffPushDown:function(t){var e=l(t),n=[];return n.push(\"0.749023 g\"),n.push(\"0 0 \"+_(Y.internal.getWidth(t))+\" \"+_(Y.internal.getHeight(t))+\" re\"),n.push(\"f\"),e.stream=n.join(\"\\n\"),e}}},createDefaultAppearanceStream:function(t){var e=A.internal.getFont(t.fontName,t.fontStyle).id,n=A.__private__.encodeColorString(t.color);return\"/\"+e+\" \"+t.fontSize+\" Tf \"+n}};Y.internal={Bezier_C:.551915024494,calculateCross:function(t){var e=Y.internal.getWidth(t),n=Y.internal.getHeight(t),r=Math.min(e,n);return{x1:{x:(e-r)/2,y:(n-r)/2+r},x2:{x:(e-r)/2+r,y:(n-r)/2},x3:{x:(e-r)/2,y:(n-r)/2},x4:{x:(e-r)/2+r,y:(n-r)/2+r}}}},Y.internal.getWidth=function(t){var e=0;return\"object\"===se(t)&&(e=v(t.Rect[2])),e},Y.internal.getHeight=function(t){var e=0;return\"object\"===se(t)&&(e=v(t.Rect[3])),e};var J=t.addField=function(t){if(k.call(this),!(t instanceof M))throw new Error(\"Invalid argument passed to jsPDF.addField.\");return function(t){A.internal.acroformPlugin.printedOut&&(A.internal.acroformPlugin.printedOut=!1,A.internal.acroformPlugin.acroFormDictionaryRoot=null),A.internal.acroformPlugin.acroFormDictionaryRoot||k.call(A),A.internal.acroformPlugin.acroFormDictionaryRoot.Fields.push(t)}.call(this,t),t.page=A.internal.getCurrentPageInfo().pageNumber,this};t.addButton=function(t){if(t instanceof D==!1)throw new Error(\"Invalid argument passed to jsPDF.addButton.\");return J.call(this,t)},t.addTextField=function(t){if(t instanceof V==!1)throw new Error(\"Invalid argument passed to jsPDF.addTextField.\");return J.call(this,t)},t.addChoiceField=function(t){if(t instanceof O==!1)throw new Error(\"Invalid argument passed to jsPDF.addChoiceField.\");return J.call(this,t)};\"object\"==se(e)&&void 0===e.ChoiceField&&void 0===e.ListBox&&void 0===e.ComboBox&&void 0===e.EditBox&&void 0===e.Button&&void 0===e.PushButton&&void 0===e.RadioButton&&void 0===e.CheckBox&&void 0===e.TextField&&void 0===e.PasswordField?(e.ChoiceField=O,e.ListBox=q,e.ComboBox=T,e.EditBox=R,e.Button=D,e.PushButton=U,e.RadioButton=z,e.CheckBox=W,e.TextField=V,e.PasswordField=G,e.AcroForm={Appearance:Y}):console.warn(\"AcroForm-Classes are not populated into global-namespace, because the class-Names exist already.\"),t.AcroFormChoiceField=O,t.AcroFormListBox=q,t.AcroFormComboBox=T,t.AcroFormEditBox=R,t.AcroFormButton=D,t.AcroFormPushButton=U,t.AcroFormRadioButton=z,t.AcroFormCheckBox=W,t.AcroFormTextField=V,t.AcroFormPasswordField=G,t.AcroFormAppearance=Y,t.AcroForm={ChoiceField:O,ListBox:q,ComboBox:T,EditBox:R,Button:D,PushButton:U,RadioButton:z,CheckBox:W,TextField:V,PasswordField:G,Appearance:Y}})((window.tmp=lt).API,\"undefined\"!=typeof window&&window||\"undefined\"!=typeof global&&global),\n/** @license\n * jsPDF addImage plugin\n * Copyright (c) 2012 Jason Siefken, https://github.com/siefkenj/\n * 2013 Chris Dowling, https://github.com/gingerchris\n * 2013 Trinh Ho, https://github.com/ineedfat\n * 2013 Edwin Alejandro Perez, https://github.com/eaparango\n * 2013 Norah Smith, https://github.com/burnburnrocket\n * 2014 Diego Casorran, https://github.com/diegocr\n * 2014 James Robb, https://github.com/jamesbrobb\n *\n * \n */\nfunction(x){var N=\"addImage_\",l={PNG:[[137,80,78,71]],TIFF:[[77,77,0,42],[73,73,42,0]],JPEG:[[255,216,255,224,void 0,void 0,74,70,73,70,0],[255,216,255,225,void 0,void 0,69,120,105,102,0,0]],JPEG2000:[[0,0,0,12,106,80,32,32]],GIF87a:[[71,73,70,56,55,97]],GIF89a:[[71,73,70,56,57,97]],BMP:[[66,77],[66,65],[67,73],[67,80],[73,67],[80,84]]},h=x.getImageFileTypeByImageData=function(t,e){var n,r;e=e||\"UNKNOWN\";var i,o,a,s=\"UNKNOWN\";for(a in x.isArrayBufferView(t)&&(t=x.arrayBufferToBinaryString(t)),l)for(i=l[a],n=0;n<i.length;n+=1){for(o=!0,r=0;r<i[n].length;r+=1)if(void 0!==i[n][r]&&i[n][r]!==t.charCodeAt(r)){o=!1;break}if(!0===o){s=a;break}}return\"UNKNOWN\"===s&&\"UNKNOWN\"!==e&&(console.warn('FileType of Image not recognized. Processing image as \"'+e+'\".'),s=e),s},n=function t(e){for(var n=this.internal.newObject(),r=this.internal.write,i=this.internal.putStream,o=(0,this.internal.getFilters)();-1!==o.indexOf(\"FlateEncode\");)o.splice(o.indexOf(\"FlateEncode\"),1);e.n=n;var a=[];if(a.push({key:\"Type\",value:\"/XObject\"}),a.push({key:\"Subtype\",value:\"/Image\"}),a.push({key:\"Width\",value:e.w}),a.push({key:\"Height\",value:e.h}),e.cs===this.color_spaces.INDEXED?a.push({key:\"ColorSpace\",value:\"[/Indexed /DeviceRGB \"+(e.pal.length/3-1)+\" \"+(\"smask\"in e?n+2:n+1)+\" 0 R]\"}):(a.push({key:\"ColorSpace\",value:\"/\"+e.cs}),e.cs===this.color_spaces.DEVICE_CMYK&&a.push({key:\"Decode\",value:\"[1 0 1 0 1 0 1 0]\"})),a.push({key:\"BitsPerComponent\",value:e.bpc}),\"dp\"in e&&a.push({key:\"DecodeParms\",value:\"<<\"+e.dp+\">>\"}),\"trns\"in e&&e.trns.constructor==Array){for(var s=\"\",l=0,h=e.trns.length;l<h;l++)s+=e.trns[l]+\" \"+e.trns[l]+\" \";a.push({key:\"Mask\",value:\"[\"+s+\"]\"})}\"smask\"in e&&a.push({key:\"SMask\",value:n+1+\" 0 R\"});var u=void 0!==e.f?[\"/\"+e.f]:void 0;if(i({data:e.data,additionalKeyValues:a,alreadyAppliedFilters:u}),r(\"endobj\"),\"smask\"in e){var c=\"/Predictor \"+e.p+\" /Colors 1 /BitsPerComponent \"+e.bpc+\" /Columns \"+e.w,f={w:e.w,h:e.h,cs:\"DeviceGray\",bpc:e.bpc,dp:c,data:e.smask};\"f\"in e&&(f.f=e.f),t.call(this,f)}e.cs===this.color_spaces.INDEXED&&(this.internal.newObject(),i({data:this.arrayBufferToBinaryString(new Uint8Array(e.pal))}),r(\"endobj\"))},L=function(){var t=this.internal.collections[N+\"images\"];for(var e in t)n.call(this,t[e])},A=function(){var t,e=this.internal.collections[N+\"images\"],n=this.internal.write;for(var r in e)n(\"/I\"+(t=e[r]).i,t.n,\"0\",\"R\")},S=function(t){return\"function\"==typeof x[\"process\"+t.toUpperCase()]},_=function(t){return\"object\"===se(t)&&1===t.nodeType},F=function(t,e){if(\"IMG\"===t.nodeName&&t.hasAttribute(\"src\")){var n=\"\"+t.getAttribute(\"src\");if(0===n.indexOf(\"data:image/\"))return unescape(n);var r=x.loadFile(n);if(void 0!==r)return btoa(r)}if(\"CANVAS\"===t.nodeName){var i=t;return t.toDataURL(\"image/jpeg\",1)}(i=document.createElement(\"canvas\")).width=t.clientWidth||t.width,i.height=t.clientHeight||t.height;var o=i.getContext(\"2d\");if(!o)throw\"addImage requires canvas to be supported by browser.\";return o.drawImage(t,0,0,i.width,i.height),i.toDataURL(\"png\"==(\"\"+e).toLowerCase()?\"image/png\":\"image/jpeg\")},P=function(t,e){var n;if(e)for(var r in e)if(t===e[r].alias){n=e[r];break}return n};x.color_spaces={DEVICE_RGB:\"DeviceRGB\",DEVICE_GRAY:\"DeviceGray\",DEVICE_CMYK:\"DeviceCMYK\",CAL_GREY:\"CalGray\",CAL_RGB:\"CalRGB\",LAB:\"Lab\",ICC_BASED:\"ICCBased\",INDEXED:\"Indexed\",PATTERN:\"Pattern\",SEPARATION:\"Separation\",DEVICE_N:\"DeviceN\"},x.decode={DCT_DECODE:\"DCTDecode\",FLATE_DECODE:\"FlateDecode\",LZW_DECODE:\"LZWDecode\",JPX_DECODE:\"JPXDecode\",JBIG2_DECODE:\"JBIG2Decode\",ASCII85_DECODE:\"ASCII85Decode\",ASCII_HEX_DECODE:\"ASCIIHexDecode\",RUN_LENGTH_DECODE:\"RunLengthDecode\",CCITT_FAX_DECODE:\"CCITTFaxDecode\"},x.image_compression={NONE:\"NONE\",FAST:\"FAST\",MEDIUM:\"MEDIUM\",SLOW:\"SLOW\"},x.sHashCode=function(t){var e,n=0;if(0===(t=t||\"\").length)return n;for(e=0;e<t.length;e++)n=(n<<5)-n+t.charCodeAt(e),n|=0;return n},x.isString=function(t){return\"string\"==typeof t},x.validateStringAsBase64=function(t){(t=t||\"\").toString().trim();var e=!0;return 0===t.length&&(e=!1),t.length%4!=0&&(e=!1),!1===/^[A-Za-z0-9+\\/]+$/.test(t.substr(0,t.length-2))&&(e=!1),!1===/^[A-Za-z0-9\\/][A-Za-z0-9+\\/]|[A-Za-z0-9+\\/]=|==$/.test(t.substr(-2))&&(e=!1),e},x.extractInfoFromBase64DataURI=function(t){return/^data:([\\w]+?\\/([\\w]+?));\\S*;*base64,(.+)$/g.exec(t)},x.extractImageFromDataUrl=function(t){var e=(t=t||\"\").split(\"base64,\"),n=null;if(2===e.length){var r=/^data:(\\w*\\/\\w*);*(charset=[\\w=-]*)*;*$/.exec(e[0]);Array.isArray(r)&&(n={mimeType:r[1],charset:r[2],data:e[1]})}return n},x.supportsArrayBuffer=function(){return\"undefined\"!=typeof ArrayBuffer&&\"undefined\"!=typeof Uint8Array},x.isArrayBuffer=function(t){return!!this.supportsArrayBuffer()&&t instanceof ArrayBuffer},x.isArrayBufferView=function(t){return!!this.supportsArrayBuffer()&&(\"undefined\"!=typeof Uint32Array&&(t instanceof Int8Array||t instanceof Uint8Array||\"undefined\"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array))},x.binaryStringToUint8Array=function(t){for(var e=t.length,n=new Uint8Array(e),r=0;r<e;r++)n[r]=t.charCodeAt(r);return n},x.arrayBufferToBinaryString=function(t){if(\"function\"==typeof atob)return atob(this.arrayBufferToBase64(t))},x.arrayBufferToBase64=function(t){for(var e,n=\"\",r=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",i=new Uint8Array(t),o=i.byteLength,a=o%3,s=o-a,l=0;l<s;l+=3)n+=r[(16515072&(e=i[l]<<16|i[l+1]<<8|i[l+2]))>>18]+r[(258048&e)>>12]+r[(4032&e)>>6]+r[63&e];return 1==a?n+=r[(252&(e=i[s]))>>2]+r[(3&e)<<4]+\"==\":2==a&&(n+=r[(64512&(e=i[s]<<8|i[s+1]))>>10]+r[(1008&e)>>4]+r[(15&e)<<2]+\"=\"),n},x.createImageInfo=function(t,e,n,r,i,o,a,s,l,h,u,c,f){var p={alias:s,w:e,h:n,cs:r,bpc:i,i:a,data:t};return o&&(p.f=o),l&&(p.dp=l),h&&(p.trns=h),u&&(p.pal=u),c&&(p.smask=c),f&&(p.p=f),p},x.addImage=function(t,e,n,r,i,o,a,s,l){var h=\"\";if(\"string\"!=typeof e){var u=o;o=i,i=r,r=n,n=e,e=u}if(\"object\"===se(t)&&!_(t)&&\"imageData\"in t){var c=t;t=c.imageData,e=c.format||e||\"UNKNOWN\",n=c.x||n||0,r=c.y||r||0,i=c.w||i,o=c.h||o,a=c.alias||a,s=c.compression||s,l=c.rotation||c.angle||l}var f=this.internal.getFilters();if(void 0===s&&-1!==f.indexOf(\"FlateEncode\")&&(s=\"SLOW\"),\"string\"==typeof t&&(t=unescape(t)),isNaN(n)||isNaN(r))throw console.error(\"jsPDF.addImage: Invalid coordinates\",arguments),new Error(\"Invalid coordinates passed to jsPDF.addImage\");var p,d,g,m,y,v,w,b=function(){var t=this.internal.collections[N+\"images\"];return t||(this.internal.collections[N+\"images\"]=t={},this.internal.events.subscribe(\"putResources\",L),this.internal.events.subscribe(\"putXobjectDict\",A)),t}.call(this);if(!((p=P(t,b))||(_(t)&&(t=F(t,e)),(null==(w=a)||0===w.length)&&(a=\"string\"==typeof(v=t)?x.sHashCode(v):x.isArrayBufferView(v)?x.sHashCode(x.arrayBufferToBinaryString(v)):null),p=P(a,b)))){if(this.isString(t)&&(\"\"!==(h=this.convertStringToImageData(t))?t=h:void 0!==(h=x.loadFile(t))&&(t=h)),e=this.getImageFileTypeByImageData(t,e),!S(e))throw new Error(\"addImage does not support files of type '\"+e+\"', please ensure that a plugin for '\"+e+\"' support is added.\");if(this.supportsArrayBuffer()&&(t instanceof Uint8Array||(d=t,t=this.binaryStringToUint8Array(t))),!(p=this[\"process\"+e.toUpperCase()](t,(y=0,(m=b)&&(y=Object.keys?Object.keys(m).length:function(t){var e=0;for(var n in t)t.hasOwnProperty(n)&&e++;return e}(m)),y),a,((g=s)&&\"string\"==typeof g&&(g=g.toUpperCase()),g in x.image_compression?g:x.image_compression.NONE),d)))throw new Error(\"An unknown error occurred whilst processing the image\")}return function(t,e,n,r,i,o,a,s){var l=function(t,e,n){return t||e||(e=t=-96),t<0&&(t=-1*n.w*72/t/this.internal.scaleFactor),e<0&&(e=-1*n.h*72/e/this.internal.scaleFactor),0===t&&(t=e*n.w/n.h),0===e&&(e=t*n.h/n.w),[t,e]}.call(this,n,r,i),h=this.internal.getCoordinateString,u=this.internal.getVerticalCoordinateString;if(n=l[0],r=l[1],a[o]=i,s){s*=Math.PI/180;var c=Math.cos(s),f=Math.sin(s),p=function(t){return t.toFixed(4)},d=[p(c),p(f),p(-1*f),p(c),0,0,\"cm\"]}this.internal.write(\"q\"),s?(this.internal.write([1,\"0\",\"0\",1,h(t),u(e+r),\"cm\"].join(\" \")),this.internal.write(d.join(\" \")),this.internal.write([h(n),\"0\",\"0\",h(r),\"0\",\"0\",\"cm\"].join(\" \"))):this.internal.write([h(n),\"0\",\"0\",h(r),h(t),u(e+r),\"cm\"].join(\" \")),this.internal.write(\"/I\"+i.i+\" Do\"),this.internal.write(\"Q\")}.call(this,n,r,i,o,p,p.i,b,l),this},x.convertStringToImageData=function(t){var e,n=\"\";if(this.isString(t)){var r;e=null!==(r=this.extractImageFromDataUrl(t))?r.data:t;try{n=atob(e)}catch(t){throw x.validateStringAsBase64(e)?new Error(\"atob-Error in jsPDF.convertStringToImageData \"+t.message):new Error(\"Supplied Data is not a valid base64-String jsPDF.convertStringToImageData \")}}return n};var u=function(t,e){return t.subarray(e,e+5)};x.processJPEG=function(t,e,n,r,i,o){var a,s=this.decode.DCT_DECODE;if(!this.isString(t)&&!this.isArrayBuffer(t)&&!this.isArrayBufferView(t))return null;if(this.isString(t)&&(a=function(t){var e;if(\"JPEG\"!==h(t))throw new Error(\"getJpegSize requires a binary string jpeg file\");for(var n=256*t.charCodeAt(4)+t.charCodeAt(5),r=4,i=t.length;r<i;){if(r+=n,255!==t.charCodeAt(r))throw new Error(\"getJpegSize could not find the size of the image\");if(192===t.charCodeAt(r+1)||193===t.charCodeAt(r+1)||194===t.charCodeAt(r+1)||195===t.charCodeAt(r+1)||196===t.charCodeAt(r+1)||197===t.charCodeAt(r+1)||198===t.charCodeAt(r+1)||199===t.charCodeAt(r+1))return e=256*t.charCodeAt(r+5)+t.charCodeAt(r+6),[256*t.charCodeAt(r+7)+t.charCodeAt(r+8),e,t.charCodeAt(r+9)];r+=2,n=256*t.charCodeAt(r)+t.charCodeAt(r+1)}}(t)),this.isArrayBuffer(t)&&(t=new Uint8Array(t)),this.isArrayBufferView(t)&&(a=function(t){if(65496!=(t[0]<<8|t[1]))throw new Error(\"Supplied data is not a JPEG\");for(var e,n=t.length,r=(t[4]<<8)+t[5],i=4;i<n;){if(r=((e=u(t,i+=r))[2]<<8)+e[3],(192===e[1]||194===e[1])&&255===e[0]&&7<r)return{width:((e=u(t,i+5))[2]<<8)+e[3],height:(e[0]<<8)+e[1],numcomponents:e[4]};i+=2}throw new Error(\"getJpegSizeFromBytes could not find the size of the image\")}(t),t=i||this.arrayBufferToBinaryString(t)),void 0===o)switch(a.numcomponents){case 1:o=this.color_spaces.DEVICE_GRAY;break;case 4:o=this.color_spaces.DEVICE_CMYK;break;default:case 3:o=this.color_spaces.DEVICE_RGB}return this.createImageInfo(t,a.width,a.height,o,8,s,e,n)},x.processJPG=function(){return this.processJPEG.apply(this,arguments)},x.getImageProperties=function(t){var e,n,r=\"\";if(_(t)&&(t=F(t)),this.isString(t)&&(\"\"!==(r=this.convertStringToImageData(t))?t=r:void 0!==(r=x.loadFile(t))&&(t=r)),n=this.getImageFileTypeByImageData(t),!S(n))throw new Error(\"addImage does not support files of type '\"+n+\"', please ensure that a plugin for '\"+n+\"' support is added.\");if(this.supportsArrayBuffer()&&(t instanceof Uint8Array||(t=this.binaryStringToUint8Array(t))),!(e=this[\"process\"+n.toUpperCase()](t)))throw new Error(\"An unknown error occurred whilst processing the image\");return{fileType:n,width:e.w,height:e.h,colorSpace:e.cs,compressionMode:e.f,bitsPerComponent:e.bpc}}}(lt.API),\n/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nt=lt.API,lt.API.events.push([\"addPage\",function(t){this.internal.getPageInfo(t.pageNumber).pageContext.annotations=[]}]),t.events.push([\"putPage\",function(t){for(var e=this.internal.getPageInfoByObjId(t.objId),n=t.pageContext.annotations,r=function(t){if(void 0!==t&&\"\"!=t)return!0},i=!1,o=0;o<n.length&&!i;o++)switch((l=n[o]).type){case\"link\":if(r(l.options.url)||r(l.options.pageNumber)){i=!0;break}case\"reference\":case\"text\":case\"freetext\":i=!0}if(0!=i){this.internal.write(\"/Annots [\"),this.internal.pageSize.height;var a=this.internal.getCoordinateString,s=this.internal.getVerticalCoordinateString;for(o=0;o<n.length;o++){var l;switch((l=n[o]).type){case\"reference\":this.internal.write(\" \"+l.object.objId+\" 0 R \");break;case\"text\":var h=this.internal.newAdditionalObject(),u=this.internal.newAdditionalObject(),c=l.title||\"Note\";m=\"<</Type /Annot /Subtype /Text \"+(p=\"/Rect [\"+a(l.bounds.x)+\" \"+s(l.bounds.y+l.bounds.h)+\" \"+a(l.bounds.x+l.bounds.w)+\" \"+s(l.bounds.y)+\"] \")+\"/Contents (\"+l.contents+\")\",m+=\" /Popup \"+u.objId+\" 0 R\",m+=\" /P \"+e.objId+\" 0 R\",m+=\" /T (\"+c+\") >>\",h.content=m;var f=h.objId+\" 0 R\";m=\"<</Type /Annot /Subtype /Popup \"+(p=\"/Rect [\"+a(l.bounds.x+30)+\" \"+s(l.bounds.y+l.bounds.h)+\" \"+a(l.bounds.x+l.bounds.w+30)+\" \"+s(l.bounds.y)+\"] \")+\" /Parent \"+f,l.open&&(m+=\" /Open true\"),m+=\" >>\",u.content=m,this.internal.write(h.objId,\"0 R\",u.objId,\"0 R\");break;case\"freetext\":var p=\"/Rect [\"+a(l.bounds.x)+\" \"+s(l.bounds.y)+\" \"+a(l.bounds.x+l.bounds.w)+\" \"+s(l.bounds.y+l.bounds.h)+\"] \",d=l.color||\"#000000\";m=\"<</Type /Annot /Subtype /FreeText \"+p+\"/Contents (\"+l.contents+\")\",m+=\" /DS(font: Helvetica,sans-serif 12.0pt; text-align:left; color:#\"+d+\")\",m+=\" /Border [0 0 0]\",m+=\" >>\",this.internal.write(m);break;case\"link\":if(l.options.name){var g=this.annotations._nameMap[l.options.name];l.options.pageNumber=g.page,l.options.top=g.y}else l.options.top||(l.options.top=0);p=\"/Rect [\"+a(l.x)+\" \"+s(l.y)+\" \"+a(l.x+l.w)+\" \"+s(l.y+l.h)+\"] \";var m=\"\";if(l.options.url)m=\"<</Type /Annot /Subtype /Link \"+p+\"/Border [0 0 0] /A <</S /URI /URI (\"+l.options.url+\") >>\";else if(l.options.pageNumber)switch(m=\"<</Type /Annot /Subtype /Link \"+p+\"/Border [0 0 0] /Dest [\"+this.internal.getPageInfo(l.options.pageNumber).objId+\" 0 R\",l.options.magFactor=l.options.magFactor||\"XYZ\",l.options.magFactor){case\"Fit\":m+=\" /Fit]\";break;case\"FitH\":m+=\" /FitH \"+l.options.top+\"]\";break;case\"FitV\":l.options.left=l.options.left||0,m+=\" /FitV \"+l.options.left+\"]\";break;case\"XYZ\":default:var y=s(l.options.top);l.options.left=l.options.left||0,void 0===l.options.zoom&&(l.options.zoom=0),m+=\" /XYZ \"+l.options.left+\" \"+y+\" \"+l.options.zoom+\"]\"}\"\"!=m&&(m+=\" >>\",this.internal.write(m))}}this.internal.write(\"]\")}}]),t.createAnnotation=function(t){var e=this.internal.getCurrentPageInfo();switch(t.type){case\"link\":this.link(t.bounds.x,t.bounds.y,t.bounds.w,t.bounds.h,t);break;case\"text\":case\"freetext\":e.pageContext.annotations.push(t)}},t.link=function(t,e,n,r,i){this.internal.getCurrentPageInfo().pageContext.annotations.push({x:t,y:e,w:n,h:r,options:i,type:\"link\"})},t.textWithLink=function(t,e,n,r){var i=this.getTextWidth(t),o=this.internal.getLineHeight()/this.internal.scaleFactor;return this.text(t,e,n),n+=.2*o,this.link(e,n-o,i,o,r),i},t.getTextWidth=function(t){var e=this.internal.getFontSize();return this.getStringUnitWidth(t)*e/this.internal.scaleFactor},\n/**\n * @license\n * Copyright (c) 2017 Aras Abbasi \n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var h={1569:[65152],1570:[65153,65154],1571:[65155,65156],1572:[65157,65158],1573:[65159,65160],1574:[65161,65162,65163,65164],1575:[65165,65166],1576:[65167,65168,65169,65170],1577:[65171,65172],1578:[65173,65174,65175,65176],1579:[65177,65178,65179,65180],1580:[65181,65182,65183,65184],1581:[65185,65186,65187,65188],1582:[65189,65190,65191,65192],1583:[65193,65194],1584:[65195,65196],1585:[65197,65198],1586:[65199,65200],1587:[65201,65202,65203,65204],1588:[65205,65206,65207,65208],1589:[65209,65210,65211,65212],1590:[65213,65214,65215,65216],1591:[65217,65218,65219,65220],1592:[65221,65222,65223,65224],1593:[65225,65226,65227,65228],1594:[65229,65230,65231,65232],1601:[65233,65234,65235,65236],1602:[65237,65238,65239,65240],1603:[65241,65242,65243,65244],1604:[65245,65246,65247,65248],1605:[65249,65250,65251,65252],1606:[65253,65254,65255,65256],1607:[65257,65258,65259,65260],1608:[65261,65262],1609:[65263,65264,64488,64489],1610:[65265,65266,65267,65268],1649:[64336,64337],1655:[64477],1657:[64358,64359,64360,64361],1658:[64350,64351,64352,64353],1659:[64338,64339,64340,64341],1662:[64342,64343,64344,64345],1663:[64354,64355,64356,64357],1664:[64346,64347,64348,64349],1667:[64374,64375,64376,64377],1668:[64370,64371,64372,64373],1670:[64378,64379,64380,64381],1671:[64382,64383,64384,64385],1672:[64392,64393],1676:[64388,64389],1677:[64386,64387],1678:[64390,64391],1681:[64396,64397],1688:[64394,64395],1700:[64362,64363,64364,64365],1702:[64366,64367,64368,64369],1705:[64398,64399,64400,64401],1709:[64467,64468,64469,64470],1711:[64402,64403,64404,64405],1713:[64410,64411,64412,64413],1715:[64406,64407,64408,64409],1722:[64414,64415],1723:[64416,64417,64418,64419],1726:[64426,64427,64428,64429],1728:[64420,64421],1729:[64422,64423,64424,64425],1733:[64480,64481],1734:[64473,64474],1735:[64471,64472],1736:[64475,64476],1737:[64482,64483],1739:[64478,64479],1740:[64508,64509,64510,64511],1744:[64484,64485,64486,64487],1746:[64430,64431],1747:[64432,64433]},a={65247:{65154:65269,65156:65271,65160:65273,65166:65275},65248:{65154:65270,65156:65272,65160:65274,65166:65276},65165:{65247:{65248:{65258:65010}}},1617:{1612:64606,1613:64607,1614:64608,1615:64609,1616:64610}},e={1612:64606,1613:64607,1614:64608,1615:64609,1616:64610},n=[1570,1571,1573,1575];t.__arabicParser__={};var r=t.__arabicParser__.isInArabicSubstitutionA=function(t){return void 0!==h[t.charCodeAt(0)]},u=t.__arabicParser__.isArabicLetter=function(t){return\"string\"==typeof t&&/^[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\uFB50-\\uFDFF\\uFE70-\\uFEFF]+$/.test(t)},i=t.__arabicParser__.isArabicEndLetter=function(t){return u(t)&&r(t)&&h[t.charCodeAt(0)].length<=2},o=t.__arabicParser__.isArabicAlfLetter=function(t){return u(t)&&0<=n.indexOf(t.charCodeAt(0))},s=(t.__arabicParser__.arabicLetterHasIsolatedForm=function(t){return u(t)&&r(t)&&1<=h[t.charCodeAt(0)].length},t.__arabicParser__.arabicLetterHasFinalForm=function(t){return u(t)&&r(t)&&2<=h[t.charCodeAt(0)].length}),l=(t.__arabicParser__.arabicLetterHasInitialForm=function(t){return u(t)&&r(t)&&3<=h[t.charCodeAt(0)].length},t.__arabicParser__.arabicLetterHasMedialForm=function(t){return u(t)&&r(t)&&4==h[t.charCodeAt(0)].length}),c=t.__arabicParser__.resolveLigatures=function(t){var e=0,n=a,r=0,i=\"\",o=0;for(e=0;e<t.length;e+=1)void 0!==n[t.charCodeAt(e)]?(o++,\"number\"==typeof(n=n[t.charCodeAt(e)])&&(r=-1!==(r=f(t.charAt(e),t.charAt(e-o),t.charAt(e+1)))?r:0,i+=String.fromCharCode(n),n=a,o=0),e===t.length-1&&(n=a,i+=t.charAt(e-(o-1)),e-=o-1,o=0)):(n=a,i+=t.charAt(e-o),e-=o,o=0);return i},f=(t.__arabicParser__.isArabicDiacritic=function(t){return void 0!==t&&void 0!==e[t.charCodeAt(0)]},t.__arabicParser__.getCorrectForm=function(t,e,n){return u(t)?!1===r(t)?-1:!s(t)||!u(e)&&!u(n)||!u(n)&&i(e)||i(t)&&!u(e)||i(t)&&o(e)||i(t)&&i(e)?0:l(t)&&u(e)&&!i(e)&&u(n)&&s(n)?3:i(t)||!u(n)?1:2:-1}),p=t.__arabicParser__.processArabic=t.processArabic=function(t){var e=0,n=0,r=0,i=\"\",o=\"\",a=\"\",s=(t=t||\"\").split(\"\\\\s+\"),l=[];for(e=0;e<s.length;e+=1){for(l.push(\"\"),n=0;n<s[e].length;n+=1)i=s[e][n],o=s[e][n-1],a=s[e][n+1],u(i)?(r=f(i,o,a),l[e]+=-1!==r?String.fromCharCode(h[i.charCodeAt(0)][r]):i):l[e]+=i;l[e]=c(l[e])}return l.join(\" \")};t.events.push([\"preProcessText\",function(t){var e=t.text,n=(t.x,t.y,t.options||{}),r=(t.mutex,n.lang,[]);if(\"[object Array]\"===Object.prototype.toString.call(e)){var i=0;for(r=[],i=0;i<e.length;i+=1)\"[object Array]\"===Object.prototype.toString.call(e[i])?r.push([p(e[i][0]),e[i][1],e[i][2]]):r.push([p(e[i])]);t.text=r}else t.text=p(e)}])}(lt.API),lt.API.autoPrint=function(t){var e;switch((t=t||{}).variant=t.variant||\"non-conform\",t.variant){case\"javascript\":this.addJS(\"print({});\");break;case\"non-conform\":default:this.internal.events.subscribe(\"postPutResources\",function(){e=this.internal.newObject(),this.internal.out(\"<<\"),this.internal.out(\"/S /Named\"),this.internal.out(\"/Type /Action\"),this.internal.out(\"/N /Print\"),this.internal.out(\">>\"),this.internal.out(\"endobj\")}),this.internal.events.subscribe(\"putCatalog\",function(){this.internal.out(\"/OpenAction \"+e+\" 0 R\")})}return this},\n/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\ne=lt.API,(n=function(){var e=void 0;Object.defineProperty(this,\"pdf\",{get:function(){return e},set:function(t){e=t}});var n=150;Object.defineProperty(this,\"width\",{get:function(){return n},set:function(t){n=isNaN(t)||!1===Number.isInteger(t)||t<0?150:t,this.getContext(\"2d\").pageWrapXEnabled&&(this.getContext(\"2d\").pageWrapX=n+1)}});var r=300;Object.defineProperty(this,\"height\",{get:function(){return r},set:function(t){r=isNaN(t)||!1===Number.isInteger(t)||t<0?300:t,this.getContext(\"2d\").pageWrapYEnabled&&(this.getContext(\"2d\").pageWrapY=r+1)}});var i=[];Object.defineProperty(this,\"childNodes\",{get:function(){return i},set:function(t){i=t}});var o={};Object.defineProperty(this,\"style\",{get:function(){return o},set:function(t){o=t}}),Object.defineProperty(this,\"parentNode\",{get:function(){return!1}})}).prototype.getContext=function(t,e){var n;if(\"2d\"!==(t=t||\"2d\"))return null;for(n in e)this.pdf.context2d.hasOwnProperty(n)&&(this.pdf.context2d[n]=e[n]);return(this.pdf.context2d._canvas=this).pdf.context2d},n.prototype.toDataURL=function(){throw new Error(\"toDataURL is not implemented.\")},e.events.push([\"initialized\",function(){this.canvas=new n,this.canvas.pdf=this}]),\n/** \n * @license\n * ====================================================================\n * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com\n * 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br\n * 2013 Lee Driscoll, https://github.com/lsdriscoll\n * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n * 2014 James Hall, james@parall.ax\n * 2014 Diego Casorran, https://github.com/diegocr\n *\n * \n * ====================================================================\n */\n_=lt.API,F={x:void 0,y:void 0,w:void 0,h:void 0,ln:void 0},P=1,p=function(t,e,n,r,i){F={x:t,y:e,w:n,h:r,ln:i}},d=function(){return F},k={left:0,top:0,bottom:0},_.setHeaderFunction=function(t){l=t},_.getTextDimensions=function(t,e){var n=this.table_font_size||this.internal.getFontSize(),r=(this.internal.getFont().fontStyle,(e=e||{}).scaleFactor||this.internal.scaleFactor),i=0,o=0,a=0;if(\"string\"==typeof t)0!=(i=this.getStringUnitWidth(t)*n)&&(o=1);else{if(\"[object Array]\"!==Object.prototype.toString.call(t))throw new Error(\"getTextDimensions expects text-parameter to be of type String or an Array of Strings.\");for(var s=0;s<t.length;s++)i<(a=this.getStringUnitWidth(t[s])*n)&&(i=a);0!==i&&(o=t.length)}return{w:i/=r,h:Math.max((o*n*this.getLineHeightFactor()-n*(this.getLineHeightFactor()-1))/r,0)}},_.cellAddPage=function(){var t=this.margins||k;this.addPage(),p(t.left,t.top,void 0,void 0),P+=1},_.cellInitialize=function(){F={x:void 0,y:void 0,w:void 0,h:void 0,ln:void 0},P=1},_.cell=function(t,e,n,r,i,o,a){var s=d(),l=!1;if(void 0!==s.ln)if(s.ln===o)t=s.x+s.w,e=s.y;else{var h=this.margins||k;s.y+s.h+r+13>=this.internal.pageSize.getHeight()-h.bottom&&(this.cellAddPage(),l=!0,this.printHeaders&&this.tableHeaderRow&&this.printHeaderRow(o,!0)),e=d().y+d().h,l&&(e=23)}if(void 0!==i[0])if(this.printingHeaderRow?this.rect(t,e,n,r,\"FD\"):this.rect(t,e,n,r),\"right\"===a){i instanceof Array||(i=[i]);for(var u=0;u<i.length;u++){var c=i[u],f=this.getStringUnitWidth(c)*this.internal.getFontSize()/this.internal.scaleFactor;this.text(c,t+n-f-3,e+this.internal.getLineHeight()*(u+1))}}else this.text(i,t+3,e+this.internal.getLineHeight());return p(t,e,n,r,o),this},_.arrayMax=function(t,e){var n,r,i,o=t[0];for(n=0,r=t.length;n<r;n+=1)i=t[n],e?-1===e(o,i)&&(o=i):o<i&&(o=i);return o},_.table=function(t,e,n,r,i){if(!n)throw\"No data for PDF table\";var o,a,s,l,h,u,c,f,p,d,g=[],m=[],y={},v={},w=[],b=[],x=!1,N=!0,L=12,A=k;if(A.width=this.internal.pageSize.getWidth(),i&&(!0===i.autoSize&&(x=!0),!1===i.printHeaders&&(N=!1),i.fontSize&&(L=i.fontSize),i.css&&void 0!==i.css[\"font-size\"]&&(L=16*i.css[\"font-size\"]),i.margins&&(A=i.margins)),this.lnMod=0,F={x:void 0,y:void 0,w:void 0,h:void 0,ln:void 0},P=1,this.printHeaders=N,this.margins=A,this.setFontSize(L),this.table_font_size=L,null==r)g=Object.keys(n[0]);else if(r[0]&&\"string\"!=typeof r[0])for(a=0,s=r.length;a<s;a+=1)o=r[a],g.push(o.name),m.push(o.prompt),v[o.name]=o.width*(19.049976/25.4);else g=r;if(x)for(d=function(t){return t[o]},a=0,s=g.length;a<s;a+=1){for(y[o=g[a]]=n.map(d),w.push(this.getTextDimensions(m[a]||o,{scaleFactor:1}).w),c=0,l=(u=y[o]).length;c<l;c+=1)h=u[c],w.push(this.getTextDimensions(h,{scaleFactor:1}).w);v[o]=_.arrayMax(w),w=[]}if(N){var S=this.calculateLineHeight(g,v,m.length?m:g);for(a=0,s=g.length;a<s;a+=1)o=g[a],b.push([t,e,v[o],S,String(m.length?m[a]:o)]);this.setTableHeaderRow(b),this.printHeaderRow(1,!1)}for(a=0,s=n.length;a<s;a+=1)for(f=n[a],S=this.calculateLineHeight(g,v,f),c=0,p=g.length;c<p;c+=1)o=g[c],this.cell(t,e,v[o],S,f[o],a+2,o.align);return this.lastCellPos=F,this.table_x=t,this.table_y=e,this},_.calculateLineHeight=function(t,e,n){for(var r,i=0,o=0;o<t.length;o++){n[r=t[o]]=this.splitTextToSize(String(n[r]),e[r]-3);var a=this.internal.getLineHeight()*n[r].length+3;i<a&&(i=a)}return i},_.setTableHeaderRow=function(t){this.tableHeaderRow=t},_.printHeaderRow=function(t,e){if(!this.tableHeaderRow)throw\"Property tableHeaderRow does not exist.\";var n,r,i,o;if(this.printingHeaderRow=!0,void 0!==l){var a=l(this,P);p(a[0],a[1],a[2],a[3],-1)}this.setFontStyle(\"bold\");var s=[];for(i=0,o=this.tableHeaderRow.length;i<o;i+=1)this.setFillColor(200,200,200),n=this.tableHeaderRow[i],e&&(this.margins.top=13,n[1]=this.margins&&this.margins.top||0,s.push(n)),r=[].concat(n),this.cell.apply(this,r.concat(t));0<s.length&&this.setTableHeaderRow(s),this.setFontStyle(\"normal\"),this.printingHeaderRow=!1},\n/**\n * jsPDF Context2D PlugIn Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License. http://opensource.org/licenses/mit-license\n */\nfunction(t,e){var l,i,o,h,u,c=function(t){return t=t||{},this.isStrokeTransparent=t.isStrokeTransparent||!1,this.strokeOpacity=t.strokeOpacity||1,this.strokeStyle=t.strokeStyle||\"#000000\",this.fillStyle=t.fillStyle||\"#000000\",this.isFillTransparent=t.isFillTransparent||!1,this.fillOpacity=t.fillOpacity||1,this.font=t.font||\"10px sans-serif\",this.textBaseline=t.textBaseline||\"alphabetic\",this.textAlign=t.textAlign||\"left\",this.lineWidth=t.lineWidth||1,this.lineJoin=t.lineJoin||\"miter\",this.lineCap=t.lineCap||\"butt\",this.path=t.path||[],this.transform=void 0!==t.transform?t.transform.clone():new M,this.globalCompositeOperation=t.globalCompositeOperation||\"normal\",this.globalAlpha=t.globalAlpha||1,this.clip_path=t.clip_path||[],this.currentPoint=t.currentPoint||new j,this.miterLimit=t.miterLimit||10,this.lastPoint=t.lastPoint||new j,this.ignoreClearRect=\"boolean\"!=typeof t.ignoreClearRect||t.ignoreClearRect,this};t.events.push([\"initialized\",function(){this.context2d=new n(this),l=this.internal.f2,this.internal.f3,i=this.internal.getCoordinateString,o=this.internal.getVerticalCoordinateString,h=this.internal.getHorizontalCoordinate,u=this.internal.getVerticalCoordinate}]);var n=function(t){Object.defineProperty(this,\"canvas\",{get:function(){return{parentNode:!1,style:!1}}}),Object.defineProperty(this,\"pdf\",{get:function(){return t}});var e=!1;Object.defineProperty(this,\"pageWrapXEnabled\",{get:function(){return e},set:function(t){e=Boolean(t)}});var n=!1;Object.defineProperty(this,\"pageWrapYEnabled\",{get:function(){return n},set:function(t){n=Boolean(t)}});var r=0;Object.defineProperty(this,\"posX\",{get:function(){return r},set:function(t){isNaN(t)||(r=t)}});var i=0;Object.defineProperty(this,\"posY\",{get:function(){return i},set:function(t){isNaN(t)||(i=t)}});var o=!1;Object.defineProperty(this,\"autoPaging\",{get:function(){return o},set:function(t){o=Boolean(t)}});var a=0;Object.defineProperty(this,\"lastBreak\",{get:function(){return a},set:function(t){a=t}});var s=[];Object.defineProperty(this,\"pageBreaks\",{get:function(){return s},set:function(t){s=t}});var l=new c;Object.defineProperty(this,\"ctx\",{get:function(){return l},set:function(t){t instanceof c&&(l=t)}}),Object.defineProperty(this,\"path\",{get:function(){return l.path},set:function(t){l.path=t}});var h=[];Object.defineProperty(this,\"ctxStack\",{get:function(){return h},set:function(t){h=t}}),Object.defineProperty(this,\"fillStyle\",{get:function(){return this.ctx.fillStyle},set:function(t){var e;e=f(t),this.ctx.fillStyle=e.style,this.ctx.isFillTransparent=0===e.a,this.ctx.fillOpacity=e.a,this.pdf.setFillColor(e.r,e.g,e.b,{a:e.a}),this.pdf.setTextColor(e.r,e.g,e.b,{a:e.a})}}),Object.defineProperty(this,\"strokeStyle\",{get:function(){return this.ctx.strokeStyle},set:function(t){var e=f(t);this.ctx.strokeStyle=e.style,this.ctx.isStrokeTransparent=0===e.a,this.ctx.strokeOpacity=e.a,0===e.a?this.pdf.setDrawColor(255,255,255):(e.a,this.pdf.setDrawColor(e.r,e.g,e.b))}}),Object.defineProperty(this,\"lineCap\",{get:function(){return this.ctx.lineCap},set:function(t){-1!==[\"butt\",\"round\",\"square\"].indexOf(t)&&(this.ctx.lineCap=t,this.pdf.setLineCap(t))}}),Object.defineProperty(this,\"lineWidth\",{get:function(){return this.ctx.lineWidth},set:function(t){isNaN(t)||(this.ctx.lineWidth=t,this.pdf.setLineWidth(t))}}),Object.defineProperty(this,\"lineJoin\",{get:function(){return this.ctx.lineJoin},set:function(t){-1!==[\"bevel\",\"round\",\"miter\"].indexOf(t)&&(this.ctx.lineJoin=t,this.pdf.setLineJoin(t))}}),Object.defineProperty(this,\"miterLimit\",{get:function(){return this.ctx.miterLimit},set:function(t){isNaN(t)||(this.ctx.miterLimit=t,this.pdf.setMiterLimit(t))}}),Object.defineProperty(this,\"textBaseline\",{get:function(){return this.ctx.textBaseline},set:function(t){this.ctx.textBaseline=t}}),Object.defineProperty(this,\"textAlign\",{get:function(){return this.ctx.textAlign},set:function(t){-1!==[\"right\",\"end\",\"center\",\"left\",\"start\"].indexOf(t)&&(this.ctx.textAlign=t)}}),Object.defineProperty(this,\"font\",{get:function(){return this.ctx.font},set:function(t){var e;if(this.ctx.font=t,null!==(e=/^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))(?:\\s*\\/\\s*(normal|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])))?\\s*([-_,\\\"\\'\\sa-z]+?)\\s*$/i.exec(t))){var n=e[1],r=(e[2],e[3]),i=e[4],o=e[5],a=e[6];i=\"px\"===o?Math.floor(parseFloat(i)):\"em\"===o?Math.floor(parseFloat(i)*this.pdf.getFontSize()):Math.floor(parseFloat(i)),this.pdf.setFontSize(i);var s=\"\";(\"bold\"===r||700<=parseInt(r,10)||\"bold\"===n)&&(s=\"bold\"),\"italic\"===n&&(s+=\"italic\"),0===s.length&&(s=\"normal\");for(var l=\"\",h=a.toLowerCase().replace(/\"|'/g,\"\").split(/\\s*,\\s*/),u={arial:\"Helvetica\",verdana:\"Helvetica\",helvetica:\"Helvetica\",\"sans-serif\":\"Helvetica\",fixed:\"Courier\",monospace:\"Courier\",terminal:\"Courier\",courier:\"Courier\",times:\"Times\",cursive:\"Times\",fantasy:\"Times\",serif:\"Times\"},c=0;c<h.length;c++){if(void 0!==this.pdf.internal.getFont(h[c],s,{noFallback:!0,disableWarning:!0})){l=h[c];break}if(\"bolditalic\"===s&&void 0!==this.pdf.internal.getFont(h[c],\"bold\",{noFallback:!0,disableWarning:!0}))l=h[c],s=\"bold\";else if(void 0!==this.pdf.internal.getFont(h[c],\"normal\",{noFallback:!0,disableWarning:!0})){l=h[c],s=\"normal\";break}}if(\"\"===l)for(c=0;c<h.length;c++)if(u[h[c]]){l=u[h[c]];break}l=\"\"===l?\"Times\":l,this.pdf.setFont(l,s)}}}),Object.defineProperty(this,\"globalCompositeOperation\",{get:function(){return this.ctx.globalCompositeOperation},set:function(t){this.ctx.globalCompositeOperation=t}}),Object.defineProperty(this,\"globalAlpha\",{get:function(){return this.ctx.globalAlpha},set:function(t){this.ctx.globalAlpha=t}}),Object.defineProperty(this,\"ignoreClearRect\",{get:function(){return this.ctx.ignoreClearRect},set:function(t){this.ctx.ignoreClearRect=Boolean(t)}})};n.prototype.fill=function(){r.call(this,\"fill\",!1)},n.prototype.stroke=function(){r.call(this,\"stroke\",!1)},n.prototype.beginPath=function(){this.path=[{type:\"begin\"}]},n.prototype.moveTo=function(t,e){if(isNaN(t)||isNaN(e))throw console.error(\"jsPDF.context2d.moveTo: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.moveTo\");var n=this.ctx.transform.applyToPoint(new j(t,e));this.path.push({type:\"mt\",x:n.x,y:n.y}),this.ctx.lastPoint=new j(t,e)},n.prototype.closePath=function(){var t=new j(0,0),e=0;for(e=this.path.length-1;-1!==e;e--)if(\"begin\"===this.path[e].type&&\"object\"===se(this.path[e+1])&&\"number\"==typeof this.path[e+1].x){t=new j(this.path[e+1].x,this.path[e+1].y),this.path.push({type:\"lt\",x:t.x,y:t.y});break}\"object\"===se(this.path[e+2])&&\"number\"==typeof this.path[e+2].x&&this.path.push(JSON.parse(JSON.stringify(this.path[e+2]))),this.path.push({type:\"close\"}),this.ctx.lastPoint=new j(t.x,t.y)},n.prototype.lineTo=function(t,e){if(isNaN(t)||isNaN(e))throw console.error(\"jsPDF.context2d.lineTo: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.lineTo\");var n=this.ctx.transform.applyToPoint(new j(t,e));this.path.push({type:\"lt\",x:n.x,y:n.y}),this.ctx.lastPoint=new j(n.x,n.y)},n.prototype.clip=function(){this.ctx.clip_path=JSON.parse(JSON.stringify(this.path)),r.call(this,null,!0)},n.prototype.quadraticCurveTo=function(t,e,n,r){if(isNaN(n)||isNaN(r)||isNaN(t)||isNaN(e))throw console.error(\"jsPDF.context2d.quadraticCurveTo: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.quadraticCurveTo\");var i=this.ctx.transform.applyToPoint(new j(n,r)),o=this.ctx.transform.applyToPoint(new j(t,e));this.path.push({type:\"qct\",x1:o.x,y1:o.y,x:i.x,y:i.y}),this.ctx.lastPoint=new j(i.x,i.y)},n.prototype.bezierCurveTo=function(t,e,n,r,i,o){if(isNaN(i)||isNaN(o)||isNaN(t)||isNaN(e)||isNaN(n)||isNaN(r))throw console.error(\"jsPDF.context2d.bezierCurveTo: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.bezierCurveTo\");var a=this.ctx.transform.applyToPoint(new j(i,o)),s=this.ctx.transform.applyToPoint(new j(t,e)),l=this.ctx.transform.applyToPoint(new j(n,r));this.path.push({type:\"bct\",x1:s.x,y1:s.y,x2:l.x,y2:l.y,x:a.x,y:a.y}),this.ctx.lastPoint=new j(a.x,a.y)},n.prototype.arc=function(t,e,n,r,i,o){if(isNaN(t)||isNaN(e)||isNaN(n)||isNaN(r)||isNaN(i))throw console.error(\"jsPDF.context2d.arc: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.arc\");if(o=Boolean(o),!this.ctx.transform.isIdentity){var a=this.ctx.transform.applyToPoint(new j(t,e));t=a.x,e=a.y;var s=this.ctx.transform.applyToPoint(new j(0,n)),l=this.ctx.transform.applyToPoint(new j(0,0));n=Math.sqrt(Math.pow(s.x-l.x,2)+Math.pow(s.y-l.y,2))}Math.abs(i-r)>=2*Math.PI&&(r=0,i=2*Math.PI),this.path.push({type:\"arc\",x:t,y:e,radius:n,startAngle:r,endAngle:i,counterclockwise:o})},n.prototype.arcTo=function(t,e,n,r,i){throw new Error(\"arcTo not implemented.\")},n.prototype.rect=function(t,e,n,r){if(isNaN(t)||isNaN(e)||isNaN(n)||isNaN(r))throw console.error(\"jsPDF.context2d.rect: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.rect\");this.moveTo(t,e),this.lineTo(t+n,e),this.lineTo(t+n,e+r),this.lineTo(t,e+r),this.lineTo(t,e),this.lineTo(t+n,e),this.lineTo(t,e)},n.prototype.fillRect=function(t,e,n,r){if(isNaN(t)||isNaN(e)||isNaN(n)||isNaN(r))throw console.error(\"jsPDF.context2d.fillRect: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.fillRect\");if(!N.call(this)){var i={};\"butt\"!==this.lineCap&&(i.lineCap=this.lineCap,this.lineCap=\"butt\"),\"miter\"!==this.lineJoin&&(i.lineJoin=this.lineJoin,this.lineJoin=\"miter\"),this.beginPath(),this.rect(t,e,n,r),this.fill(),i.hasOwnProperty(\"lineCap\")&&(this.lineCap=i.lineCap),i.hasOwnProperty(\"lineJoin\")&&(this.lineJoin=i.lineJoin)}},n.prototype.strokeRect=function(t,e,n,r){if(isNaN(t)||isNaN(e)||isNaN(n)||isNaN(r))throw console.error(\"jsPDF.context2d.strokeRect: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.strokeRect\");L.call(this)||(this.beginPath(),this.rect(t,e,n,r),this.stroke())},n.prototype.clearRect=function(t,e,n,r){if(isNaN(t)||isNaN(e)||isNaN(n)||isNaN(r))throw console.error(\"jsPDF.context2d.clearRect: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.clearRect\");this.ignoreClearRect||(this.fillStyle=\"#ffffff\",this.fillRect(t,e,n,r))},n.prototype.save=function(t){t=\"boolean\"!=typeof t||t;for(var e=this.pdf.internal.getCurrentPageInfo().pageNumber,n=0;n<this.pdf.internal.getNumberOfPages();n++)this.pdf.setPage(n+1),this.pdf.internal.out(\"q\");if(this.pdf.setPage(e),t){this.ctx.fontSize=this.pdf.internal.getFontSize();var r=new c(this.ctx);this.ctxStack.push(this.ctx),this.ctx=r}},n.prototype.restore=function(t){t=\"boolean\"!=typeof t||t;for(var e=this.pdf.internal.getCurrentPageInfo().pageNumber,n=0;n<this.pdf.internal.getNumberOfPages();n++)this.pdf.setPage(n+1),this.pdf.internal.out(\"Q\");this.pdf.setPage(e),t&&0!==this.ctxStack.length&&(this.ctx=this.ctxStack.pop(),this.fillStyle=this.ctx.fillStyle,this.strokeStyle=this.ctx.strokeStyle,this.font=this.ctx.font,this.lineCap=this.ctx.lineCap,this.lineWidth=this.ctx.lineWidth,this.lineJoin=this.ctx.lineJoin)},n.prototype.toDataURL=function(){throw new Error(\"toDataUrl not implemented.\")};var f=function(t){var e,n,r,i;if(!0===t.isCanvasGradient&&(t=t.getColor()),!t)return{r:0,g:0,b:0,a:0,style:t};if(/transparent|rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*0+\\s*\\)/.test(t))i=r=n=e=0;else{var o=/rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)/.exec(t);if(null!==o)e=parseInt(o[1]),n=parseInt(o[2]),r=parseInt(o[3]),i=1;else if(null!==(o=/rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*([\\d\\.]+)\\s*\\)/.exec(t)))e=parseInt(o[1]),n=parseInt(o[2]),r=parseInt(o[3]),i=parseFloat(o[4]);else{if(i=1,\"string\"==typeof t&&\"#\"!==t.charAt(0)){var a=new RGBColor(t);t=a.ok?a.toHex():\"#000000\"}4===t.length?(e=t.substring(1,2),e+=e,n=t.substring(2,3),n+=n,r=t.substring(3,4),r+=r):(e=t.substring(1,3),n=t.substring(3,5),r=t.substring(5,7)),e=parseInt(e,16),n=parseInt(n,16),r=parseInt(r,16)}}return{r:e,g:n,b:r,a:i,style:t}},N=function(){return this.ctx.isFillTransparent||0==this.globalAlpha},L=function(){return Boolean(this.ctx.isStrokeTransparent||0==this.globalAlpha)};n.prototype.fillText=function(t,e,n,r){if(isNaN(e)||isNaN(n)||\"string\"!=typeof t)throw console.error(\"jsPDF.context2d.fillText: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.fillText\");if(r=isNaN(r)?void 0:r,!N.call(this)){n=a.call(this,n);var i=B(this.ctx.transform.rotation),o=this.ctx.transform.scaleX;s.call(this,{text:t,x:e,y:n,scale:o,angle:i,align:this.textAlign,maxWidth:r})}},n.prototype.strokeText=function(t,e,n,r){if(isNaN(e)||isNaN(n)||\"string\"!=typeof t)throw console.error(\"jsPDF.context2d.strokeText: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.strokeText\");if(!L.call(this)){r=isNaN(r)?void 0:r,n=a.call(this,n);var i=B(this.ctx.transform.rotation),o=this.ctx.transform.scaleX;s.call(this,{text:t,x:e,y:n,scale:o,renderingMode:\"stroke\",angle:i,align:this.textAlign,maxWidth:r})}},n.prototype.measureText=function(t){if(\"string\"!=typeof t)throw console.error(\"jsPDF.context2d.measureText: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.measureText\");var e=this.pdf,n=this.pdf.internal.scaleFactor,r=e.internal.getFontSize(),i=e.getStringUnitWidth(t)*r/e.internal.scaleFactor;return new function(t){var e=(t=t||{}).width||0;return Object.defineProperty(this,\"width\",{get:function(){return e}}),this}({width:i*=Math.round(96*n/72*1e4)/1e4})},n.prototype.scale=function(t,e){if(isNaN(t)||isNaN(e))throw console.error(\"jsPDF.context2d.scale: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.scale\");var n=new M(t,0,0,e,0,0);this.ctx.transform=this.ctx.transform.multiply(n)},n.prototype.rotate=function(t){if(isNaN(t))throw console.error(\"jsPDF.context2d.rotate: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.rotate\");var e=new M(Math.cos(t),Math.sin(t),-Math.sin(t),Math.cos(t),0,0);this.ctx.transform=this.ctx.transform.multiply(e)},n.prototype.translate=function(t,e){if(isNaN(t)||isNaN(e))throw console.error(\"jsPDF.context2d.translate: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.translate\");var n=new M(1,0,0,1,t,e);this.ctx.transform=this.ctx.transform.multiply(n)},n.prototype.transform=function(t,e,n,r,i,o){if(isNaN(t)||isNaN(e)||isNaN(n)||isNaN(r)||isNaN(i)||isNaN(o))throw console.error(\"jsPDF.context2d.transform: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.transform\");var a=new M(t,e,n,r,i,o);this.ctx.transform=this.ctx.transform.multiply(a)},n.prototype.setTransform=function(t,e,n,r,i,o){t=isNaN(t)?1:t,e=isNaN(e)?0:e,n=isNaN(n)?0:n,r=isNaN(r)?1:r,i=isNaN(i)?0:i,o=isNaN(o)?0:o,this.ctx.transform=new M(t,e,n,r,i,o)},n.prototype.drawImage=function(t,e,n,r,i,o,a,s,l){var h=this.pdf.getImageProperties(t),u=1,c=1,f=1,p=1;void 0!==r&&void 0!==s&&(f=s/r,p=l/i,u=h.width/r*s/r,c=h.height/i*l/i),void 0===o&&(o=e,a=n,n=e=0),void 0!==r&&void 0===s&&(s=r,l=i),void 0===r&&void 0===s&&(s=h.width,l=h.height);var d=this.ctx.transform.decompose(),g=B(d.rotate.shx);d.scale.sx,d.scale.sy;for(var m,y=new M,v=((y=(y=(y=y.multiply(d.translate)).multiply(d.skew)).multiply(d.scale)).applyToPoint(new j(s,l)),y.applyToRectangle(new E(o-e*f,a-n*p,r*u,i*c))),w=F.call(this,v),b=[],x=0;x<w.length;x+=1)-1===b.indexOf(w[x])&&b.push(w[x]);if(b.sort(),this.autoPaging)for(var N=b[0],L=b[b.length-1],A=N;A<L+1;A++){if(this.pdf.setPage(A),0!==this.ctx.clip_path.length){var S=this.path;m=JSON.parse(JSON.stringify(this.ctx.clip_path)),this.path=P(m,this.posX,-1*this.pdf.internal.pageSize.height*(A-1)+this.posY),k.call(this,\"fill\",!0),this.path=S}var _=JSON.parse(JSON.stringify(v));_=P([_],this.posX,-1*this.pdf.internal.pageSize.height*(A-1)+this.posY)[0],this.pdf.addImage(t,\"jpg\",_.x,_.y,_.w,_.h,null,null,g)}else this.pdf.addImage(t,\"jpg\",v.x,v.y,v.w,v.h,null,null,g)};var F=function(t,e,n){var r=[];switch(e=e||this.pdf.internal.pageSize.width,n=n||this.pdf.internal.pageSize.height,t.type){default:case\"mt\":case\"lt\":r.push(Math.floor((t.y+this.posY)/n)+1);break;case\"arc\":r.push(Math.floor((t.y+this.posY-t.radius)/n)+1),r.push(Math.floor((t.y+this.posY+t.radius)/n)+1);break;case\"qct\":var i=w(this.ctx.lastPoint.x,this.ctx.lastPoint.y,t.x1,t.y1,t.x,t.y);r.push(Math.floor(i.y/n)+1),r.push(Math.floor((i.y+i.h)/n)+1);break;case\"bct\":var o=b(this.ctx.lastPoint.x,this.ctx.lastPoint.y,t.x1,t.y1,t.x2,t.y2,t.x,t.y);r.push(Math.floor(o.y/n)+1),r.push(Math.floor((o.y+o.h)/n)+1);break;case\"rect\":r.push(Math.floor((t.y+this.posY)/n)+1),r.push(Math.floor((t.y+t.h+this.posY)/n)+1)}for(var a=0;a<r.length;a+=1)for(;this.pdf.internal.getNumberOfPages()<r[a];)v.call(this);return r},v=function(){var t=this.fillStyle,e=this.strokeStyle,n=this.font,r=this.lineCap,i=this.lineWidth,o=this.lineJoin;this.pdf.addPage(),this.fillStyle=t,this.strokeStyle=e,this.font=n,this.lineCap=r,this.lineWidth=i,this.lineJoin=o},P=function(t,e,n){for(var r=0;r<t.length;r++)switch(t[r].type){case\"bct\":t[r].x2+=e,t[r].y2+=n;case\"qct\":t[r].x1+=e,t[r].y1+=n;case\"mt\":case\"lt\":case\"arc\":default:t[r].x+=e,t[r].y+=n}return t},r=function(t,e){for(var n,r,i=this.fillStyle,o=this.strokeStyle,a=(this.font,this.lineCap),s=this.lineWidth,l=this.lineJoin,h=JSON.parse(JSON.stringify(this.path)),u=JSON.parse(JSON.stringify(this.path)),c=[],f=0;f<u.length;f++)if(void 0!==u[f].x)for(var p=F.call(this,u[f]),d=0;d<p.length;d+=1)-1===c.indexOf(p[d])&&c.push(p[d]);for(f=0;f<c.length;f++)for(;this.pdf.internal.getNumberOfPages()<c[f];)v.call(this);if(c.sort(),this.autoPaging){var g=c[0],m=c[c.length-1];for(f=g;f<m+1;f++){if(this.pdf.setPage(f),this.fillStyle=i,this.strokeStyle=o,this.lineCap=a,this.lineWidth=s,this.lineJoin=l,0!==this.ctx.clip_path.length){var y=this.path;n=JSON.parse(JSON.stringify(this.ctx.clip_path)),this.path=P(n,this.posX,-1*this.pdf.internal.pageSize.height*(f-1)+this.posY),k.call(this,t,!0),this.path=y}r=JSON.parse(JSON.stringify(h)),this.path=P(r,this.posX,-1*this.pdf.internal.pageSize.height*(f-1)+this.posY),!1!==e&&0!==f||k.call(this,t,e)}}else k.call(this,t,e);this.path=h},k=function(t,e){if((\"stroke\"!==t||e||!L.call(this))&&(\"stroke\"===t||e||!N.call(this))){var n=[];this.ctx.globalAlpha;this.ctx.fillOpacity<1&&this.ctx.fillOpacity;for(var r,i=this.path,o=0;o<i.length;o++){var a=i[o];switch(a.type){case\"begin\":n.push({begin:!0});break;case\"close\":n.push({close:!0});break;case\"mt\":n.push({start:a,deltas:[],abs:[]});break;case\"lt\":var s=n.length;if(!isNaN(i[o-1].x)){var l=[a.x-i[o-1].x,a.y-i[o-1].y];if(0<s)for(;0<=s;s--)if(!0!==n[s-1].close&&!0!==n[s-1].begin){n[s-1].deltas.push(l),n[s-1].abs.push(a);break}}break;case\"bct\":l=[a.x1-i[o-1].x,a.y1-i[o-1].y,a.x2-i[o-1].x,a.y2-i[o-1].y,a.x-i[o-1].x,a.y-i[o-1].y];n[n.length-1].deltas.push(l);break;case\"qct\":var h=i[o-1].x+2/3*(a.x1-i[o-1].x),u=i[o-1].y+2/3*(a.y1-i[o-1].y),c=a.x+2/3*(a.x1-a.x),f=a.y+2/3*(a.y1-a.y),p=a.x,d=a.y;l=[h-i[o-1].x,u-i[o-1].y,c-i[o-1].x,f-i[o-1].y,p-i[o-1].x,d-i[o-1].y];n[n.length-1].deltas.push(l);break;case\"arc\":n.push({deltas:[],abs:[],arc:!0}),Array.isArray(n[n.length-1].abs)&&n[n.length-1].abs.push(a)}}r=e?null:\"stroke\"===t?\"stroke\":\"fill\";for(o=0;o<n.length;o++){if(n[o].arc)for(var g=n[o].abs,m=0;m<g.length;m++){var y=g[m];if(void 0!==y.startAngle){var v=B(y.startAngle),w=B(y.endAngle),b=y.x,x=y.y;A.call(this,b,x,y.radius,v,w,y.counterclockwise,r,e)}else I.call(this,y.x,y.y)}if(!n[o].arc&&!0!==n[o].close&&!0!==n[o].begin){b=n[o].start.x,x=n[o].start.y;C.call(this,n[o].deltas,b,x,null,null)}}r&&S.call(this,r),e&&_.call(this)}},a=function(t){var e=this.pdf.internal.getFontSize()/this.pdf.internal.scaleFactor,n=e*(this.pdf.internal.getLineHeightFactor()-1);switch(this.ctx.textBaseline){case\"bottom\":return t-n;case\"top\":return t+e-n;case\"hanging\":return t+e-2*n;case\"middle\":return t+e/2-n;case\"ideographic\":return t;case\"alphabetic\":default:return t}};n.prototype.createLinearGradient=function(){var t=function(){};return t.colorStops=[],t.addColorStop=function(t,e){this.colorStops.push([t,e])},t.getColor=function(){return 0===this.colorStops.length?\"#000000\":this.colorStops[0][1]},t.isCanvasGradient=!0,t},n.prototype.createPattern=function(){return this.createLinearGradient()},n.prototype.createRadialGradient=function(){return this.createLinearGradient()};var A=function(t,e,n,r,i,o,a,s){this.pdf.internal.scaleFactor;for(var l=y(r),h=y(i),u=g.call(this,n,l,h,o),c=0;c<u.length;c++){var f=u[c];0===c&&p.call(this,f.x1+t,f.y1+e),d.call(this,t,e,f.x2,f.y2,f.x3,f.y3,f.x4,f.y4)}s?_.call(this):S.call(this,a)},S=function(t){switch(t){case\"stroke\":this.pdf.internal.out(\"S\");break;case\"fill\":this.pdf.internal.out(\"f\")}},_=function(){this.pdf.clip()},p=function(t,e){this.pdf.internal.out(i(t)+\" \"+o(e)+\" m\")},s=function(t){var e;switch(t.align){case\"right\":case\"end\":e=\"right\";break;case\"center\":e=\"center\";break;case\"left\":case\"start\":default:e=\"left\"}var n=this.ctx.transform.applyToPoint(new j(t.x,t.y)),r=this.ctx.transform.decompose(),i=new M;i=(i=(i=i.multiply(r.translate)).multiply(r.skew)).multiply(r.scale);for(var o,a=this.pdf.getTextDimensions(t.text),s=this.ctx.transform.applyToRectangle(new E(t.x,t.y,a.w,a.h)),l=i.applyToRectangle(new E(t.x,t.y-a.h,a.w,a.h)),h=F.call(this,l),u=[],c=0;c<h.length;c+=1)-1===u.indexOf(h[c])&&u.push(h[c]);if(u.sort(),!0===this.autoPaging)for(var f=u[0],p=u[u.length-1],d=f;d<p+1;d++){if(this.pdf.setPage(d),0!==this.ctx.clip_path.length){var g=this.path;o=JSON.parse(JSON.stringify(this.ctx.clip_path)),this.path=P(o,this.posX,-1*this.pdf.internal.pageSize.height*(d-1)+this.posY),k.call(this,\"fill\",!0),this.path=g}var m=JSON.parse(JSON.stringify(s));if(m=P([m],this.posX,-1*this.pdf.internal.pageSize.height*(d-1)+this.posY)[0],.01<=t.scale){var y=this.pdf.internal.getFontSize();this.pdf.setFontSize(y*t.scale)}this.pdf.text(t.text,m.x,m.y,{angle:t.angle,align:e,renderingMode:t.renderingMode,maxWidth:t.maxWidth}),.01<=t.scale&&this.pdf.setFontSize(y)}else{if(.01<=t.scale){y=this.pdf.internal.getFontSize();this.pdf.setFontSize(y*t.scale)}this.pdf.text(t.text,n.x+this.posX,n.y+this.posY,{angle:t.angle,align:e,renderingMode:t.renderingMode,maxWidth:t.maxWidth}),.01<=t.scale&&this.pdf.setFontSize(y)}},I=function(t,e,n,r){n=n||0,r=r||0,this.pdf.internal.out(i(t+n)+\" \"+o(e+r)+\" l\")},C=function(t,e,n){return this.pdf.lines(t,e,n,null,null)},d=function(t,e,n,r,i,o,a,s){this.pdf.internal.out([l(h(n+t)),l(u(r+e)),l(h(i+t)),l(u(o+e)),l(h(a+t)),l(u(s+e)),\"c\"].join(\" \"))},g=function(t,e,n,r){var i=2*Math.PI,o=e;(o<i||i<o)&&(o%=i);var a=n;(a<i||i<a)&&(a%=i);for(var s=[],l=Math.PI/2,h=r?-1:1,u=e,c=Math.min(i,Math.abs(a-o));1e-5<c;){var f=u+h*Math.min(c,l);s.push(m.call(this,t,u,f)),c-=Math.abs(f-u),u=f}return s},m=function(t,e,n){var r=(n-e)/2,i=t*Math.cos(r),o=t*Math.sin(r),a=i,s=-o,l=a*a+s*s,h=l+a*i+s*o,u=4/3*(Math.sqrt(2*l*h)-h)/(a*o-s*i),c=a-u*s,f=s+u*a,p=c,d=-f,g=r+e,m=Math.cos(g),y=Math.sin(g);return{x1:t*Math.cos(e),y1:t*Math.sin(e),x2:c*m-f*y,y2:c*y+f*m,x3:p*m-d*y,y3:p*y+d*m,x4:t*Math.cos(n),y4:t*Math.sin(n)}},B=function(t){return 180*t/Math.PI},y=function(t){return t*Math.PI/180},w=function(t,e,n,r,i,o){var a=t+.5*(n-t),s=e+.5*(r-e),l=i+.5*(n-i),h=o+.5*(r-o),u=Math.min(t,i,a,l),c=Math.max(t,i,a,l),f=Math.min(e,o,s,h),p=Math.max(e,o,s,h);return new E(u,f,c-u,p-f)},b=function(t,e,n,r,i,o,a,s){for(var l,h,u,c,f,p,d,g,m,y,v,w,b,x=n-t,N=r-e,L=i-n,A=o-r,S=a-i,_=s-o,F=0;F<41;F++)g=(p=(h=t+(l=F/40)*x)+l*((c=n+l*L)-h))+l*(c+l*(i+l*S-c)-p),m=(d=(u=e+l*N)+l*((f=r+l*A)-u))+l*(f+l*(o+l*_-f)-d),b=0==F?(w=y=g,v=m):(y=Math.min(y,g),v=Math.min(v,m),w=Math.max(w,g),Math.max(b,m));return new E(Math.round(y),Math.round(v),Math.round(w-y),Math.round(b-v))},j=function(t,e){var n=t||0;Object.defineProperty(this,\"x\",{enumerable:!0,get:function(){return n},set:function(t){isNaN(t)||(n=parseFloat(t))}});var r=e||0;Object.defineProperty(this,\"y\",{enumerable:!0,get:function(){return r},set:function(t){isNaN(t)||(r=parseFloat(t))}});var i=\"pt\";return Object.defineProperty(this,\"type\",{enumerable:!0,get:function(){return i},set:function(t){i=t.toString()}}),this},E=function(t,e,n,r){j.call(this,t,e),this.type=\"rect\";var i=n||0;Object.defineProperty(this,\"w\",{enumerable:!0,get:function(){return i},set:function(t){isNaN(t)||(i=parseFloat(t))}});var o=r||0;return Object.defineProperty(this,\"h\",{enumerable:!0,get:function(){return o},set:function(t){isNaN(t)||(o=parseFloat(t))}}),this},M=function(t,e,n,r,i,o){var a=[];return Object.defineProperty(this,\"sx\",{get:function(){return a[0]},set:function(t){a[0]=Math.round(1e5*t)/1e5}}),Object.defineProperty(this,\"shy\",{get:function(){return a[1]},set:function(t){a[1]=Math.round(1e5*t)/1e5}}),Object.defineProperty(this,\"shx\",{get:function(){return a[2]},set:function(t){a[2]=Math.round(1e5*t)/1e5}}),Object.defineProperty(this,\"sy\",{get:function(){return a[3]},set:function(t){a[3]=Math.round(1e5*t)/1e5}}),Object.defineProperty(this,\"tx\",{get:function(){return a[4]},set:function(t){a[4]=Math.round(1e5*t)/1e5}}),Object.defineProperty(this,\"ty\",{get:function(){return a[5]},set:function(t){a[5]=Math.round(1e5*t)/1e5}}),Object.defineProperty(this,\"rotation\",{get:function(){return Math.atan2(this.shx,this.sx)}}),Object.defineProperty(this,\"scaleX\",{get:function(){return this.decompose().scale.sx}}),Object.defineProperty(this,\"scaleY\",{get:function(){return this.decompose().scale.sy}}),Object.defineProperty(this,\"isIdentity\",{get:function(){return 1===this.sx&&(0===this.shy&&(0===this.shx&&(1===this.sy&&(0===this.tx&&0===this.ty))))}}),this.sx=isNaN(t)?1:t,this.shy=isNaN(e)?0:e,this.shx=isNaN(n)?0:n,this.sy=isNaN(r)?1:r,this.tx=isNaN(i)?0:i,this.ty=isNaN(o)?0:o,this};M.prototype.multiply=function(t){var e=t.sx*this.sx+t.shy*this.shx,n=t.sx*this.shy+t.shy*this.sy,r=t.shx*this.sx+t.sy*this.shx,i=t.shx*this.shy+t.sy*this.sy,o=t.tx*this.sx+t.ty*this.shx+this.tx,a=t.tx*this.shy+t.ty*this.sy+this.ty;return new M(e,n,r,i,o,a)},M.prototype.decompose=function(){var t=this.sx,e=this.shy,n=this.shx,r=this.sy,i=this.tx,o=this.ty,a=Math.sqrt(t*t+e*e),s=(t/=a)*n+(e/=a)*r;n-=t*s,r-=e*s;var l=Math.sqrt(n*n+r*r);return s/=l,t*(r/=l)<e*(n/=l)&&(t=-t,e=-e,s=-s,a=-a),{scale:new M(a,0,0,l,0,0),translate:new M(1,0,0,1,i,o),rotate:new M(t,e,-e,t,0,0),skew:new M(1,0,s,1,0,0)}},M.prototype.applyToPoint=function(t){var e=t.x*this.sx+t.y*this.shx+this.tx,n=t.x*this.shy+t.y*this.sy+this.ty;return new j(e,n)},M.prototype.applyToRectangle=function(t){var e=this.applyToPoint(t),n=this.applyToPoint(new j(t.x+t.w,t.y+t.h));return new E(e.x,e.y,n.x-e.x,n.y-e.y)},M.prototype.clone=function(){var t=this.sx,e=this.shy,n=this.shx,r=this.sy,i=this.tx,o=this.ty;return new M(t,e,n,r,i,o)}}(lt.API,\"undefined\"!=typeof self&&self||\"undefined\"!=typeof window&&window||\"undefined\"!=typeof global&&global||Function('return typeof this === \"object\" && this.content')()||Function(\"return this\")()),\n/**\n * jsPDF filters PlugIn\n * Copyright (c) 2014 Aras Abbasi \n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\na=lt.API,o=function(t){var r,e,n,i,o,a,s,l,h,u;for(/[^\\x00-\\xFF]/.test(t),e=[],n=0,i=(t+=r=\"\\0\\0\\0\\0\".slice(t.length%4||4)).length;n<i;n+=4)0!==(o=(t.charCodeAt(n)<<24)+(t.charCodeAt(n+1)<<16)+(t.charCodeAt(n+2)<<8)+t.charCodeAt(n+3))?(a=(o=((o=((o=((o=(o-(u=o%85))/85)-(h=o%85))/85)-(l=o%85))/85)-(s=o%85))/85)%85,e.push(a+33,s+33,l+33,h+33,u+33)):e.push(122);return function(t,e){for(var n=r.length;0<n;n--)t.pop()}(e),String.fromCharCode.apply(String,e)+\"~>\"},s=function(t){var r,e,n,i,o,a=String,s=\"length\",l=\"charCodeAt\",h=\"slice\",u=\"replace\";for(t[h](-2),t=t[h](0,-2)[u](/\\s/g,\"\")[u](\"z\",\"!!!!!\"),n=[],i=0,o=(t+=r=\"uuuuu\"[h](t[s]%5||5))[s];i<o;i+=5)e=52200625*(t[l](i)-33)+614125*(t[l](i+1)-33)+7225*(t[l](i+2)-33)+85*(t[l](i+3)-33)+(t[l](i+4)-33),n.push(255&e>>24,255&e>>16,255&e>>8,255&e);return function(t,e){for(var n=r[s];0<n;n--)t.pop()}(n),a.fromCharCode.apply(a,n)},h=function(t){for(var e=\"\",n=0;n<t.length;n+=1)e+=(\"0\"+t.charCodeAt(n).toString(16)).slice(-2);return e+=\">\"},u=function(t){var e=new RegExp(/^([0-9A-Fa-f]{2})+$/);if(-1!==(t=t.replace(/\\s/g,\"\")).indexOf(\">\")&&(t=t.substr(0,t.indexOf(\">\"))),t.length%2&&(t+=\"0\"),!1===e.test(t))return\"\";for(var n=\"\",r=0;r<t.length;r+=2)n+=String.fromCharCode(\"0x\"+(t[r]+t[r+1]));return n},c=function(t,e){e=Object.assign({predictor:1,colors:1,bitsPerComponent:8,columns:1},e);for(var n,r,i=[],o=t.length;o--;)i[o]=t.charCodeAt(o);return n=a.adler32cs.from(t),(r=new Deflater(6)).append(new Uint8Array(i)),t=r.flush(),(i=new Uint8Array(t.length+6)).set(new Uint8Array([120,156])),i.set(t,2),i.set(new Uint8Array([255&n,n>>8&255,n>>16&255,n>>24&255]),t.length+2),t=String.fromCharCode.apply(null,i)},a.processDataByFilters=function(t,e){var n=0,r=t||\"\",i=[];for(\"string\"==typeof(e=e||[])&&(e=[e]),n=0;n<e.length;n+=1)switch(e[n]){case\"ASCII85Decode\":case\"/ASCII85Decode\":r=s(r),i.push(\"/ASCII85Encode\");break;case\"ASCII85Encode\":case\"/ASCII85Encode\":r=o(r),i.push(\"/ASCII85Decode\");break;case\"ASCIIHexDecode\":case\"/ASCIIHexDecode\":r=u(r),i.push(\"/ASCIIHexEncode\");break;case\"ASCIIHexEncode\":case\"/ASCIIHexEncode\":r=h(r),i.push(\"/ASCIIHexDecode\");break;case\"FlateEncode\":case\"/FlateEncode\":r=c(r),i.push(\"/FlateDecode\");break;default:throw'The filter: \"'+e[n]+'\" is not implemented'}return{data:r,reverseChain:i.reverse().join(\" \")}},(\n/**\n * jsPDF fileloading PlugIn\n * Copyright (c) 2018 Aras Abbasi (aras.abbasi@gmail.com)\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nr=lt.API).loadFile=function(t,e,n){var r;e=e||!0,n=n||function(){};try{r=function(t,e,n){var r=new XMLHttpRequest,i=[],o=0,a=function(t){var e=t.length,n=String.fromCharCode;for(o=0;o<e;o+=1)i.push(n(255&t.charCodeAt(o)));return i.join(\"\")};if(r.open(\"GET\",t,!e),r.overrideMimeType(\"text/plain; charset=x-user-defined\"),!1===e&&(r.onload=function(){return a(this.responseText)}),r.send(null),200===r.status)return e?a(r.responseText):void 0;console.warn('Unable to load file \"'+t+'\"')}(t,e)}catch(t){r=void 0}return r},r.loadImageFile=r.loadFile,\n/**\n * Copyright (c) 2018 Erik Koopmans\n * Released under the MIT License.\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\ni=lt.API,f=\"undefined\"!=typeof window&&window||\"undefined\"!=typeof global&&global,g=function(t){var e=se(t);return\"undefined\"===e?\"undefined\":\"string\"===e||t instanceof String?\"string\":\"number\"===e||t instanceof Number?\"number\":\"function\"===e||t instanceof Function?\"function\":t&&t.constructor===Array?\"array\":t&&1===t.nodeType?\"element\":\"object\"===e?\"object\":\"unknown\"},m=function(t,e){var n=document.createElement(t);if(e.className&&(n.className=e.className),e.innerHTML){n.innerHTML=e.innerHTML;for(var r=n.getElementsByTagName(\"script\"),i=r.length;0<i--;null)r[i].parentNode.removeChild(r[i])}for(var o in e.style)n.style[o]=e.style[o];return n},(((y=function t(e){var n=Object.assign(t.convert(Promise.resolve()),JSON.parse(JSON.stringify(t.template))),r=t.convert(Promise.resolve(),n);return r=(r=r.setProgress(1,t,1,[t])).set(e)}).prototype=Object.create(Promise.prototype)).constructor=y).convert=function(t,e){return t.__proto__=e||y.prototype,t},y.template={prop:{src:null,container:null,overlay:null,canvas:null,img:null,pdf:null,pageSize:null,callback:function(){}},progress:{val:0,state:null,n:0,stack:[]},opt:{filename:\"file.pdf\",margin:[0,0,0,0],enableLinks:!0,x:0,y:0,html2canvas:{},jsPDF:{}}},y.prototype.from=function(t,e){return this.then(function(){switch(e=e||function(t){switch(g(t)){case\"string\":return\"string\";case\"element\":return\"canvas\"===t.nodeName.toLowerCase?\"canvas\":\"element\";default:return\"unknown\"}}(t)){case\"string\":return this.set({src:m(\"div\",{innerHTML:t})});case\"element\":return this.set({src:t});case\"canvas\":return this.set({canvas:t});case\"img\":return this.set({img:t});default:return this.error(\"Unknown source type.\")}})},y.prototype.to=function(t){switch(t){case\"container\":return this.toContainer();case\"canvas\":return this.toCanvas();case\"img\":return this.toImg();case\"pdf\":return this.toPdf();default:return this.error(\"Invalid target.\")}},y.prototype.toContainer=function(){return this.thenList([function(){return this.prop.src||this.error(\"Cannot duplicate - no source HTML.\")},function(){return this.prop.pageSize||this.setPageSize()}]).then(function(){var t={position:\"relative\",display:\"inline-block\",width:Math.max(this.prop.src.clientWidth,this.prop.src.scrollWidth,this.prop.src.offsetWidth)+\"px\",left:0,right:0,top:0,margin:\"auto\",backgroundColor:\"white\"},e=function t(e,n){for(var r=3===e.nodeType?document.createTextNode(e.nodeValue):e.cloneNode(!1),i=e.firstChild;i;i=i.nextSibling)!0!==n&&1===i.nodeType&&\"SCRIPT\"===i.nodeName||r.appendChild(t(i,n));return 1===e.nodeType&&(\"CANVAS\"===e.nodeName?(r.width=e.width,r.height=e.height,r.getContext(\"2d\").drawImage(e,0,0)):\"TEXTAREA\"!==e.nodeName&&\"SELECT\"!==e.nodeName||(r.value=e.value),r.addEventListener(\"load\",function(){r.scrollTop=e.scrollTop,r.scrollLeft=e.scrollLeft},!0)),r}(this.prop.src,this.opt.html2canvas.javascriptEnabled);\"BODY\"===e.tagName&&(t.height=Math.max(document.body.scrollHeight,document.body.offsetHeight,document.documentElement.clientHeight,document.documentElement.scrollHeight,document.documentElement.offsetHeight)+\"px\"),this.prop.overlay=m(\"div\",{className:\"html2pdf__overlay\",style:{position:\"fixed\",overflow:\"hidden\",zIndex:1e3,left:\"-100000px\",right:0,bottom:0,top:0}}),this.prop.container=m(\"div\",{className:\"html2pdf__container\",style:t}),this.prop.container.appendChild(e),this.prop.container.firstChild.appendChild(m(\"div\",{style:{clear:\"both\",border:\"0 none transparent\",margin:0,padding:0,height:0}})),this.prop.container.style.float=\"none\",this.prop.overlay.appendChild(this.prop.container),document.body.appendChild(this.prop.overlay),this.prop.container.firstChild.style.position=\"relative\",this.prop.container.height=Math.max(this.prop.container.firstChild.clientHeight,this.prop.container.firstChild.scrollHeight,this.prop.container.firstChild.offsetHeight)+\"px\"})},y.prototype.toCanvas=function(){var t=[function(){return document.body.contains(this.prop.container)||this.toContainer()}];return this.thenList(t).then(function(){var t=Object.assign({},this.opt.html2canvas);if(delete t.onrendered,this.isHtml2CanvasLoaded())return html2canvas(this.prop.container,t)}).then(function(t){(this.opt.html2canvas.onrendered||function(){})(t),this.prop.canvas=t,document.body.removeChild(this.prop.overlay)})},y.prototype.toContext2d=function(){var t=[function(){return document.body.contains(this.prop.container)||this.toContainer()}];return this.thenList(t).then(function(){var t=this.opt.jsPDF,e=Object.assign({async:!0,allowTaint:!0,backgroundColor:\"#ffffff\",imageTimeout:15e3,logging:!0,proxy:null,removeContainer:!0,foreignObjectRendering:!1,useCORS:!1},this.opt.html2canvas);if(delete e.onrendered,t.context2d.autoPaging=!0,t.context2d.posX=this.opt.x,t.context2d.posY=this.opt.y,e.windowHeight=e.windowHeight||0,e.windowHeight=0==e.windowHeight?Math.max(this.prop.container.clientHeight,this.prop.container.scrollHeight,this.prop.container.offsetHeight):e.windowHeight,this.isHtml2CanvasLoaded())return html2canvas(this.prop.container,e)}).then(function(t){(this.opt.html2canvas.onrendered||function(){})(t),this.prop.canvas=t,document.body.removeChild(this.prop.overlay)})},y.prototype.toImg=function(){return this.thenList([function(){return this.prop.canvas||this.toCanvas()}]).then(function(){var t=this.prop.canvas.toDataURL(\"image/\"+this.opt.image.type,this.opt.image.quality);this.prop.img=document.createElement(\"img\"),this.prop.img.src=t})},y.prototype.toPdf=function(){return this.thenList([function(){return this.toContext2d()}]).then(function(){this.prop.pdf=this.prop.pdf||this.opt.jsPDF})},y.prototype.output=function(t,e,n){return\"img\"===(n=n||\"pdf\").toLowerCase()||\"image\"===n.toLowerCase()?this.outputImg(t,e):this.outputPdf(t,e)},y.prototype.outputPdf=function(t,e){return this.thenList([function(){return this.prop.pdf||this.toPdf()}]).then(function(){return this.prop.pdf.output(t,e)})},y.prototype.outputImg=function(t,e){return this.thenList([function(){return this.prop.img||this.toImg()}]).then(function(){switch(t){case void 0:case\"img\":return this.prop.img;case\"datauristring\":case\"dataurlstring\":return this.prop.img.src;case\"datauri\":case\"dataurl\":return document.location.href=this.prop.img.src;default:throw'Image output type \"'+t+'\" is not supported.'}})},y.prototype.isHtml2CanvasLoaded=function(){var t=void 0!==f.html2canvas;return t||console.error(\"html2canvas not loaded.\"),t},y.prototype.save=function(t){if(this.isHtml2CanvasLoaded())return this.thenList([function(){return this.prop.pdf||this.toPdf()}]).set(t?{filename:t}:null).then(function(){this.prop.pdf.save(this.opt.filename)})},y.prototype.doCallback=function(t){if(this.isHtml2CanvasLoaded())return this.thenList([function(){return this.prop.pdf||this.toPdf()}]).then(function(){this.prop.callback(this.prop.pdf)})},y.prototype.set=function(e){if(\"object\"!==g(e))return this;var t=Object.keys(e||{}).map(function(t){if(t in y.template.prop)return function(){this.prop[t]=e[t]};switch(t){case\"margin\":return this.setMargin.bind(this,e.margin);case\"jsPDF\":return function(){return this.opt.jsPDF=e.jsPDF,this.setPageSize()};case\"pageSize\":return this.setPageSize.bind(this,e.pageSize);default:return function(){this.opt[t]=e[t]}}},this);return this.then(function(){return this.thenList(t)})},y.prototype.get=function(e,n){return this.then(function(){var t=e in y.template.prop?this.prop[e]:this.opt[e];return n?n(t):t})},y.prototype.setMargin=function(t){return this.then(function(){switch(g(t)){case\"number\":t=[t,t,t,t];case\"array\":if(2===t.length&&(t=[t[0],t[1],t[0],t[1]]),4===t.length)break;default:return this.error(\"Invalid margin array.\")}this.opt.margin=t}).then(this.setPageSize)},y.prototype.setPageSize=function(t){function e(t,e){return Math.floor(t*e/72*96)}return this.then(function(){(t=t||lt.getPageSize(this.opt.jsPDF)).hasOwnProperty(\"inner\")||(t.inner={width:t.width-this.opt.margin[1]-this.opt.margin[3],height:t.height-this.opt.margin[0]-this.opt.margin[2]},t.inner.px={width:e(t.inner.width,t.k),height:e(t.inner.height,t.k)},t.inner.ratio=t.inner.height/t.inner.width),this.prop.pageSize=t})},y.prototype.setProgress=function(t,e,n,r){return null!=t&&(this.progress.val=t),null!=e&&(this.progress.state=e),null!=n&&(this.progress.n=n),null!=r&&(this.progress.stack=r),this.progress.ratio=this.progress.val/this.progress.state,this},y.prototype.updateProgress=function(t,e,n,r){return this.setProgress(t?this.progress.val+t:null,e||null,n?this.progress.n+n:null,r?this.progress.stack.concat(r):null)},y.prototype.then=function(t,e){var n=this;return this.thenCore(t,e,function(e,t){return n.updateProgress(null,null,1,[e]),Promise.prototype.then.call(this,function(t){return n.updateProgress(null,e),t}).then(e,t).then(function(t){return n.updateProgress(1),t})})},y.prototype.thenCore=function(t,e,n){n=n||Promise.prototype.then;var r=this;t&&(t=t.bind(r)),e&&(e=e.bind(r));var i=-1!==Promise.toString().indexOf(\"[native code]\")&&\"Promise\"===Promise.name?r:y.convert(Object.assign({},r),Promise.prototype),o=n.call(i,t,e);return y.convert(o,r.__proto__)},y.prototype.thenExternal=function(t,e){return Promise.prototype.then.call(this,t,e)},y.prototype.thenList=function(t){var e=this;return t.forEach(function(t){e=e.thenCore(t)}),e},y.prototype.catch=function(t){t&&(t=t.bind(this));var e=Promise.prototype.catch.call(this,t);return y.convert(e,this)},y.prototype.catchExternal=function(t){return Promise.prototype.catch.call(this,t)},y.prototype.error=function(t){return this.then(function(){throw new Error(t)})},y.prototype.using=y.prototype.set,y.prototype.saveAs=y.prototype.save,y.prototype.export=y.prototype.output,y.prototype.run=y.prototype.then,lt.getPageSize=function(t,e,n){if(\"object\"===se(t)){var r=t;t=r.orientation,e=r.unit||e,n=r.format||n}e=e||\"mm\",n=n||\"a4\",t=(\"\"+(t||\"P\")).toLowerCase();var i=(\"\"+n).toLowerCase(),o={a0:[2383.94,3370.39],a1:[1683.78,2383.94],a2:[1190.55,1683.78],a3:[841.89,1190.55],a4:[595.28,841.89],a5:[419.53,595.28],a6:[297.64,419.53],a7:[209.76,297.64],a8:[147.4,209.76],a9:[104.88,147.4],a10:[73.7,104.88],b0:[2834.65,4008.19],b1:[2004.09,2834.65],b2:[1417.32,2004.09],b3:[1000.63,1417.32],b4:[708.66,1000.63],b5:[498.9,708.66],b6:[354.33,498.9],b7:[249.45,354.33],b8:[175.75,249.45],b9:[124.72,175.75],b10:[87.87,124.72],c0:[2599.37,3676.54],c1:[1836.85,2599.37],c2:[1298.27,1836.85],c3:[918.43,1298.27],c4:[649.13,918.43],c5:[459.21,649.13],c6:[323.15,459.21],c7:[229.61,323.15],c8:[161.57,229.61],c9:[113.39,161.57],c10:[79.37,113.39],dl:[311.81,623.62],letter:[612,792],\"government-letter\":[576,756],legal:[612,1008],\"junior-legal\":[576,360],ledger:[1224,792],tabloid:[792,1224],\"credit-card\":[153,243]};switch(e){case\"pt\":var a=1;break;case\"mm\":a=72/25.4;break;case\"cm\":a=72/2.54;break;case\"in\":a=72;break;case\"px\":a=.75;break;case\"pc\":case\"em\":a=12;break;case\"ex\":a=6;break;default:throw\"Invalid unit: \"+e}if(o.hasOwnProperty(i))var s=o[i][1]/a,l=o[i][0]/a;else try{s=n[1],l=n[0]}catch(t){throw new Error(\"Invalid format: \"+n)}if(\"p\"===t||\"portrait\"===t){if(t=\"p\",s<l){var h=l;l=s,s=h}}else{if(\"l\"!==t&&\"landscape\"!==t)throw\"Invalid orientation: \"+t;t=\"l\",l<s&&(h=l,l=s,s=h)}return{width:l,height:s,unit:e,k:a}},i.html=function(t,e){(e=e||{}).callback=e.callback||function(){},e.html2canvas=e.html2canvas||{},e.html2canvas.canvas=e.html2canvas.canvas||this.canvas,e.jsPDF=e.jsPDF||this,e.jsPDF;var n=new y(e);return e.worker?n:n.from(t).doCallback()},lt.API.addJS=function(t){return b=t,this.internal.events.subscribe(\"postPutResources\",function(t){v=this.internal.newObject(),this.internal.out(\"<<\"),this.internal.out(\"/Names [(EmbeddedJS) \"+(v+1)+\" 0 R]\"),this.internal.out(\">>\"),this.internal.out(\"endobj\"),w=this.internal.newObject(),this.internal.out(\"<<\"),this.internal.out(\"/S /JavaScript\"),this.internal.out(\"/JS (\"+b+\")\"),this.internal.out(\">>\"),this.internal.out(\"endobj\")}),this.internal.events.subscribe(\"putCatalog\",function(){void 0!==v&&void 0!==w&&this.internal.out(\"/Names <</JavaScript \"+v+\" 0 R>>\")}),this},(\n/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nx=lt.API).events.push([\"postPutResources\",function(){var t=this,e=/^(\\d+) 0 obj$/;if(0<this.outline.root.children.length)for(var n=t.outline.render().split(/\\r\\n/),r=0;r<n.length;r++){var i=n[r],o=e.exec(i);if(null!=o){var a=o[1];t.internal.newObjectDeferredBegin(a,!1)}t.internal.write(i)}if(this.outline.createNamedDestinations){var s=this.internal.pages.length,l=[];for(r=0;r<s;r++){var h=t.internal.newObject();l.push(h);var u=t.internal.getPageInfo(r+1);t.internal.write(\"<< /D[\"+u.objId+\" 0 R /XYZ null null null]>> endobj\")}var c=t.internal.newObject();for(t.internal.write(\"<< /Names [ \"),r=0;r<l.length;r++)t.internal.write(\"(page_\"+(r+1)+\")\"+l[r]+\" 0 R\");t.internal.write(\" ] >>\",\"endobj\"),t.internal.newObject(),t.internal.write(\"<< /Dests \"+c+\" 0 R\"),t.internal.write(\">>\",\"endobj\")}}]),x.events.push([\"putCatalog\",function(){0<this.outline.root.children.length&&(this.internal.write(\"/Outlines\",this.outline.makeRef(this.outline.root)),this.outline.createNamedDestinations&&this.internal.write(\"/Names \"+namesOid+\" 0 R\"))}]),x.events.push([\"initialized\",function(){var a=this;a.outline={createNamedDestinations:!1,root:{children:[]}},a.outline.add=function(t,e,n){var r={title:e,options:n,children:[]};return null==t&&(t=this.root),t.children.push(r),r},a.outline.render=function(){return this.ctx={},this.ctx.val=\"\",this.ctx.pdf=a,this.genIds_r(this.root),this.renderRoot(this.root),this.renderItems(this.root),this.ctx.val},a.outline.genIds_r=function(t){t.id=a.internal.newObjectDeferred();for(var e=0;e<t.children.length;e++)this.genIds_r(t.children[e])},a.outline.renderRoot=function(t){this.objStart(t),this.line(\"/Type /Outlines\"),0<t.children.length&&(this.line(\"/First \"+this.makeRef(t.children[0])),this.line(\"/Last \"+this.makeRef(t.children[t.children.length-1]))),this.line(\"/Count \"+this.count_r({count:0},t)),this.objEnd()},a.outline.renderItems=function(t){this.ctx.pdf.internal.getCoordinateString;for(var e=this.ctx.pdf.internal.getVerticalCoordinateString,n=0;n<t.children.length;n++){var r=t.children[n];this.objStart(r),this.line(\"/Title \"+this.makeString(r.title)),this.line(\"/Parent \"+this.makeRef(t)),0<n&&this.line(\"/Prev \"+this.makeRef(t.children[n-1])),n<t.children.length-1&&this.line(\"/Next \"+this.makeRef(t.children[n+1])),0<r.children.length&&(this.line(\"/First \"+this.makeRef(r.children[0])),this.line(\"/Last \"+this.makeRef(r.children[r.children.length-1])));var i=this.count=this.count_r({count:0},r);if(0<i&&this.line(\"/Count \"+i),r.options&&r.options.pageNumber){var o=a.internal.getPageInfo(r.options.pageNumber);this.line(\"/Dest [\"+o.objId+\" 0 R /XYZ 0 \"+e(0)+\" 0]\")}this.objEnd()}for(n=0;n<t.children.length;n++)r=t.children[n],this.renderItems(r)},a.outline.line=function(t){this.ctx.val+=t+\"\\r\\n\"},a.outline.makeRef=function(t){return t.id+\" 0 R\"},a.outline.makeString=function(t){return\"(\"+a.internal.pdfEscape(t)+\")\"},a.outline.objStart=function(t){this.ctx.val+=\"\\r\\n\"+t.id+\" 0 obj\\r\\n<<\\r\\n\"},a.outline.objEnd=function(t){this.ctx.val+=\">> \\r\\nendobj\\r\\n\"},a.outline.count_r=function(t,e){for(var n=0;n<e.children.length;n++)t.count++,this.count_r(t,e.children[n]);return t.count}}]),\n/**\n * @license\n * \n * Copyright (c) 2014 James Robb, https://github.com/jamesbrobb\n *\n * \n * ====================================================================\n */\nI=lt.API,C=function(){var t=\"function\"==typeof Deflater;if(!t)throw new Error(\"requires deflate.js for compression\");return t},B=function(t,e,n,r){var i=5,o=E;switch(r){case I.image_compression.FAST:i=3,o=j;break;case I.image_compression.MEDIUM:i=6,o=M;break;case I.image_compression.SLOW:i=9,o=O}t=A(t,e,n,o);var a=new Uint8Array(N(i)),s=L(t),l=new Deflater(i),h=l.append(t),u=l.flush(),c=a.length+h.length+u.length,f=new Uint8Array(c+4);return f.set(a),f.set(h,a.length),f.set(u,a.length+h.length),f[c++]=s>>>24&255,f[c++]=s>>>16&255,f[c++]=s>>>8&255,f[c++]=255&s,I.arrayBufferToBinaryString(f)},N=function(t,e){var n=Math.LOG2E*Math.log(32768)-8<<4|8,r=n<<8;return r|=Math.min(3,(e-1&255)>>1)<<6,r|=0,[n,255&(r+=31-r%31)]},L=function(t,e){for(var n,r=1,i=0,o=t.length,a=0;0<o;){for(o-=n=e<o?e:o;i+=r+=t[a++],--n;);r%=65521,i%=65521}return(i<<16|r)>>>0},A=function(t,e,n,r){for(var i,o,a,s=t.length/e,l=new Uint8Array(t.length+s),h=T(),u=0;u<s;u++){if(a=u*e,i=t.subarray(a,a+e),r)l.set(r(i,n,o),a+u);else{for(var c=0,f=h.length,p=[];c<f;c++)p[c]=h[c](i,n,o);var d=R(p.concat());l.set(p[d],a+u)}o=i}return l},S=function(t,e,n){var r=Array.apply([],t);return r.unshift(0),r},j=function(t,e,n){var r,i=[],o=0,a=t.length;for(i[0]=1;o<a;o++)r=t[o-e]||0,i[o+1]=t[o]-r+256&255;return i},E=function(t,e,n){var r,i=[],o=0,a=t.length;for(i[0]=2;o<a;o++)r=n&&n[o]||0,i[o+1]=t[o]-r+256&255;return i},M=function(t,e,n){var r,i,o=[],a=0,s=t.length;for(o[0]=3;a<s;a++)r=t[a-e]||0,i=n&&n[a]||0,o[a+1]=t[a]+256-(r+i>>>1)&255;return o},O=function(t,e,n){var r,i,o,a,s=[],l=0,h=t.length;for(s[0]=4;l<h;l++)r=t[l-e]||0,i=n&&n[l]||0,o=n&&n[l-e]||0,a=q(r,i,o),s[l+1]=t[l]-a+256&255;return s},q=function(t,e,n){var r=t+e-n,i=Math.abs(r-t),o=Math.abs(r-e),a=Math.abs(r-n);return i<=o&&i<=a?t:o<=a?e:n},T=function(){return[S,j,E,M,O]},R=function(t){for(var e,n,r,i=0,o=t.length;i<o;)((e=D(t[i].slice(1)))<n||!n)&&(n=e,r=i),i++;return r},D=function(t){for(var e=0,n=t.length,r=0;e<n;)r+=Math.abs(t[e++]);return r},I.processPNG=function(t,e,n,r,i){var o,a,s,l,h,u,c=this.color_spaces.DEVICE_RGB,f=this.decode.FLATE_DECODE,p=8;if(this.isArrayBuffer(t)&&(t=new Uint8Array(t)),this.isArrayBufferView(t)){if(\"function\"!=typeof PNG||\"function\"!=typeof kt)throw new Error(\"PNG support requires png.js and zlib.js\");if(t=(o=new PNG(t)).imgData,p=o.bits,c=o.colorSpace,l=o.colors,-1!==[4,6].indexOf(o.colorType)){if(8===o.bits)for(var d,g=(_=32==o.pixelBitlength?new Uint32Array(o.decodePixels().buffer):16==o.pixelBitlength?new Uint16Array(o.decodePixels().buffer):new Uint8Array(o.decodePixels().buffer)).length,m=new Uint8Array(g*o.colors),y=new Uint8Array(g),v=o.pixelBitlength-o.bits,w=0,b=0;w<g;w++){for(x=_[w],d=0;d<v;)m[b++]=x>>>d&255,d+=o.bits;y[w]=x>>>d&255}if(16===o.bits){g=(_=new Uint32Array(o.decodePixels().buffer)).length,m=new Uint8Array(g*(32/o.pixelBitlength)*o.colors),y=new Uint8Array(g*(32/o.pixelBitlength));for(var x,N=1<o.colors,L=b=w=0;w<g;)x=_[w++],m[b++]=x>>>0&255,N&&(m[b++]=x>>>16&255,x=_[w++],m[b++]=x>>>0&255),y[L++]=x>>>16&255;p=8}r!==I.image_compression.NONE&&C()?(t=B(m,o.width*o.colors,o.colors,r),u=B(y,o.width,1,r)):(t=m,u=y,f=null)}if(3===o.colorType&&(c=this.color_spaces.INDEXED,h=o.palette,o.transparency.indexed)){var A=o.transparency.indexed,S=0;for(w=0,g=A.length;w<g;++w)S+=A[w];if((S/=255)==g-1&&-1!==A.indexOf(0))s=[A.indexOf(0)];else if(S!==g){var _=o.decodePixels();for(y=new Uint8Array(_.length),w=0,g=_.length;w<g;w++)y[w]=A[_[w]];u=B(y,o.width,1)}}var F=function(t){var e;switch(t){case I.image_compression.FAST:e=11;break;case I.image_compression.MEDIUM:e=13;break;case I.image_compression.SLOW:e=14;break;default:e=12}return e}(r);return a=f===this.decode.FLATE_DECODE?\"/Predictor \"+F+\" /Colors \"+l+\" /BitsPerComponent \"+p+\" /Columns \"+o.width:\"/Colors \"+l+\" /BitsPerComponent \"+p+\" /Columns \"+o.width,(this.isArrayBuffer(t)||this.isArrayBufferView(t))&&(t=this.arrayBufferToBinaryString(t)),(u&&this.isArrayBuffer(u)||this.isArrayBufferView(u))&&(u=this.arrayBufferToBinaryString(u)),this.createImageInfo(t,o.width,o.height,c,p,f,e,n,a,s,h,u,F)}throw new Error(\"Unsupported PNG image data, try using JPEG instead.\")},(\n/**\n * @license\n * Copyright (c) 2017 Aras Abbasi \n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nU=lt.API).processGIF89A=function(t,e,n,r,i){var o=new At(t),a=o.width,s=o.height,l=[];o.decodeAndBlitFrameRGBA(0,l);var h={data:l,width:a,height:s},u=new _t(100).encode(h,100);return U.processJPEG.call(this,u,e,n,r)},U.processGIF87A=U.processGIF89A,(\n/**\n * Copyright (c) 2018 Aras Abbasi \n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nz=lt.API).processBMP=function(t,e,n,r,i){var o=new Ft(t,!1),a=o.width,s=o.height,l={data:o.getData(),width:a,height:s},h=new _t(100).encode(l,100);return z.processJPEG.call(this,h,e,n,r)},lt.API.setLanguage=function(t){return void 0===this.internal.languageSettings&&(this.internal.languageSettings={},this.internal.languageSettings.isSubscribed=!1),void 0!=={af:\"Afrikaans\",sq:\"Albanian\",ar:\"Arabic (Standard)\",\"ar-DZ\":\"Arabic (Algeria)\",\"ar-BH\":\"Arabic (Bahrain)\",\"ar-EG\":\"Arabic (Egypt)\",\"ar-IQ\":\"Arabic (Iraq)\",\"ar-JO\":\"Arabic (Jordan)\",\"ar-KW\":\"Arabic (Kuwait)\",\"ar-LB\":\"Arabic (Lebanon)\",\"ar-LY\":\"Arabic (Libya)\",\"ar-MA\":\"Arabic (Morocco)\",\"ar-OM\":\"Arabic (Oman)\",\"ar-QA\":\"Arabic (Qatar)\",\"ar-SA\":\"Arabic (Saudi Arabia)\",\"ar-SY\":\"Arabic (Syria)\",\"ar-TN\":\"Arabic (Tunisia)\",\"ar-AE\":\"Arabic (U.A.E.)\",\"ar-YE\":\"Arabic (Yemen)\",an:\"Aragonese\",hy:\"Armenian\",as:\"Assamese\",ast:\"Asturian\",az:\"Azerbaijani\",eu:\"Basque\",be:\"Belarusian\",bn:\"Bengali\",bs:\"Bosnian\",br:\"Breton\",bg:\"Bulgarian\",my:\"Burmese\",ca:\"Catalan\",ch:\"Chamorro\",ce:\"Chechen\",zh:\"Chinese\",\"zh-HK\":\"Chinese (Hong Kong)\",\"zh-CN\":\"Chinese (PRC)\",\"zh-SG\":\"Chinese (Singapore)\",\"zh-TW\":\"Chinese (Taiwan)\",cv:\"Chuvash\",co:\"Corsican\",cr:\"Cree\",hr:\"Croatian\",cs:\"Czech\",da:\"Danish\",nl:\"Dutch (Standard)\",\"nl-BE\":\"Dutch (Belgian)\",en:\"English\",\"en-AU\":\"English (Australia)\",\"en-BZ\":\"English (Belize)\",\"en-CA\":\"English (Canada)\",\"en-IE\":\"English (Ireland)\",\"en-JM\":\"English (Jamaica)\",\"en-NZ\":\"English (New Zealand)\",\"en-PH\":\"English (Philippines)\",\"en-ZA\":\"English (South Africa)\",\"en-TT\":\"English (Trinidad & Tobago)\",\"en-GB\":\"English (United Kingdom)\",\"en-US\":\"English (United States)\",\"en-ZW\":\"English (Zimbabwe)\",eo:\"Esperanto\",et:\"Estonian\",fo:\"Faeroese\",fj:\"Fijian\",fi:\"Finnish\",fr:\"French (Standard)\",\"fr-BE\":\"French (Belgium)\",\"fr-CA\":\"French (Canada)\",\"fr-FR\":\"French (France)\",\"fr-LU\":\"French (Luxembourg)\",\"fr-MC\":\"French (Monaco)\",\"fr-CH\":\"French (Switzerland)\",fy:\"Frisian\",fur:\"Friulian\",gd:\"Gaelic (Scots)\",\"gd-IE\":\"Gaelic (Irish)\",gl:\"Galacian\",ka:\"Georgian\",de:\"German (Standard)\",\"de-AT\":\"German (Austria)\",\"de-DE\":\"German (Germany)\",\"de-LI\":\"German (Liechtenstein)\",\"de-LU\":\"German (Luxembourg)\",\"de-CH\":\"German (Switzerland)\",el:\"Greek\",gu:\"Gujurati\",ht:\"Haitian\",he:\"Hebrew\",hi:\"Hindi\",hu:\"Hungarian\",is:\"Icelandic\",id:\"Indonesian\",iu:\"Inuktitut\",ga:\"Irish\",it:\"Italian (Standard)\",\"it-CH\":\"Italian (Switzerland)\",ja:\"Japanese\",kn:\"Kannada\",ks:\"Kashmiri\",kk:\"Kazakh\",km:\"Khmer\",ky:\"Kirghiz\",tlh:\"Klingon\",ko:\"Korean\",\"ko-KP\":\"Korean (North Korea)\",\"ko-KR\":\"Korean (South Korea)\",la:\"Latin\",lv:\"Latvian\",lt:\"Lithuanian\",lb:\"Luxembourgish\",mk:\"FYRO Macedonian\",ms:\"Malay\",ml:\"Malayalam\",mt:\"Maltese\",mi:\"Maori\",mr:\"Marathi\",mo:\"Moldavian\",nv:\"Navajo\",ng:\"Ndonga\",ne:\"Nepali\",no:\"Norwegian\",nb:\"Norwegian (Bokmal)\",nn:\"Norwegian (Nynorsk)\",oc:\"Occitan\",or:\"Oriya\",om:\"Oromo\",fa:\"Persian\",\"fa-IR\":\"Persian/Iran\",pl:\"Polish\",pt:\"Portuguese\",\"pt-BR\":\"Portuguese (Brazil)\",pa:\"Punjabi\",\"pa-IN\":\"Punjabi (India)\",\"pa-PK\":\"Punjabi (Pakistan)\",qu:\"Quechua\",rm:\"Rhaeto-Romanic\",ro:\"Romanian\",\"ro-MO\":\"Romanian (Moldavia)\",ru:\"Russian\",\"ru-MO\":\"Russian (Moldavia)\",sz:\"Sami (Lappish)\",sg:\"Sango\",sa:\"Sanskrit\",sc:\"Sardinian\",sd:\"Sindhi\",si:\"Singhalese\",sr:\"Serbian\",sk:\"Slovak\",sl:\"Slovenian\",so:\"Somani\",sb:\"Sorbian\",es:\"Spanish\",\"es-AR\":\"Spanish (Argentina)\",\"es-BO\":\"Spanish (Bolivia)\",\"es-CL\":\"Spanish (Chile)\",\"es-CO\":\"Spanish (Colombia)\",\"es-CR\":\"Spanish (Costa Rica)\",\"es-DO\":\"Spanish (Dominican Republic)\",\"es-EC\":\"Spanish (Ecuador)\",\"es-SV\":\"Spanish (El Salvador)\",\"es-GT\":\"Spanish (Guatemala)\",\"es-HN\":\"Spanish (Honduras)\",\"es-MX\":\"Spanish (Mexico)\",\"es-NI\":\"Spanish (Nicaragua)\",\"es-PA\":\"Spanish (Panama)\",\"es-PY\":\"Spanish (Paraguay)\",\"es-PE\":\"Spanish (Peru)\",\"es-PR\":\"Spanish (Puerto Rico)\",\"es-ES\":\"Spanish (Spain)\",\"es-UY\":\"Spanish (Uruguay)\",\"es-VE\":\"Spanish (Venezuela)\",sx:\"Sutu\",sw:\"Swahili\",sv:\"Swedish\",\"sv-FI\":\"Swedish (Finland)\",\"sv-SV\":\"Swedish (Sweden)\",ta:\"Tamil\",tt:\"Tatar\",te:\"Teluga\",th:\"Thai\",tig:\"Tigre\",ts:\"Tsonga\",tn:\"Tswana\",tr:\"Turkish\",tk:\"Turkmen\",uk:\"Ukrainian\",hsb:\"Upper Sorbian\",ur:\"Urdu\",ve:\"Venda\",vi:\"Vietnamese\",vo:\"Volapuk\",wa:\"Walloon\",cy:\"Welsh\",xh:\"Xhosa\",ji:\"Yiddish\",zu:\"Zulu\"}[t]&&(this.internal.languageSettings.languageCode=t,!1===this.internal.languageSettings.isSubscribed&&(this.internal.events.subscribe(\"putCatalog\",function(){this.internal.write(\"/Lang (\"+this.internal.languageSettings.languageCode+\")\")}),this.internal.languageSettings.isSubscribed=!0)),this},\n/** @license\n * MIT license.\n * Copyright (c) 2012 Willow Systems Corporation, willow-systems.com\n * 2014 Diego Casorran, https://github.com/diegocr\n *\n * \n * ====================================================================\n */\nH=lt.API,W=H.getCharWidthsArray=function(t,e){var n,r,i,o=(e=e||{}).font||this.internal.getFont(),a=e.fontSize||this.internal.getFontSize(),s=e.charSpace||this.internal.getCharSpace(),l=e.widths?e.widths:o.metadata.Unicode.widths,h=l.fof?l.fof:1,u=e.kerning?e.kerning:o.metadata.Unicode.kerning,c=u.fof?u.fof:1,f=0,p=l[0]||h,d=[];for(n=0,r=t.length;n<r;n++)i=t.charCodeAt(n),\"function\"==typeof o.metadata.widthOfString?d.push((o.metadata.widthOfGlyph(o.metadata.characterToGlyph(i))+s*(1e3/a)||0)/1e3):d.push((l[i]||p)/h+(u[i]&&u[i][f]||0)/c),f=i;return d},V=H.getArraySum=function(t){for(var e=t.length,n=0;e;)n+=t[--e];return n},G=H.getStringUnitWidth=function(t,e){var n=(e=e||{}).fontSize||this.internal.getFontSize(),r=e.font||this.internal.getFont(),i=e.charSpace||this.internal.getCharSpace();return\"function\"==typeof r.metadata.widthOfString?r.metadata.widthOfString(t,n,i)/n:V(W.apply(this,arguments))},Y=function(t,e,n,r){for(var i=[],o=0,a=t.length,s=0;o!==a&&s+e[o]<n;)s+=e[o],o++;i.push(t.slice(0,o));var l=o;for(s=0;o!==a;)s+e[o]>r&&(i.push(t.slice(l,o)),s=0,l=o),s+=e[o],o++;return l!==o&&i.push(t.slice(l,o)),i},J=function(t,e,n){n||(n={});var r,i,o,a,s,l,h=[],u=[h],c=n.textIndent||0,f=0,p=0,d=t.split(\" \"),g=W.apply(this,[\" \",n])[0];if(l=-1===n.lineIndent?d[0].length+2:n.lineIndent||0){var m=Array(l).join(\" \"),y=[];d.map(function(t){1<(t=t.split(/\\s*\\n/)).length?y=y.concat(t.map(function(t,e){return(e&&t.length?\"\\n\":\"\")+t})):y.push(t[0])}),d=y,l=G.apply(this,[m,n])}for(o=0,a=d.length;o<a;o++){var v=0;if(r=d[o],l&&\"\\n\"==r[0]&&(r=r.substr(1),v=1),i=W.apply(this,[r,n]),e<c+f+(p=V(i))||v){if(e<p){for(s=Y.apply(this,[r,i,e-(c+f),e]),h.push(s.shift()),h=[s.pop()];s.length;)u.push([s.shift()]);p=V(i.slice(r.length-(h[0]?h[0].length:0)))}else h=[r];u.push(h),c=p+l,f=g}else h.push(r),c+=f+p,f=g}if(l)var w=function(t,e){return(e?m:\"\")+t.join(\" \")};else w=function(t){return t.join(\" \")};return u.map(w)},H.splitTextToSize=function(t,e,n){var r,i=(n=n||{}).fontSize||this.internal.getFontSize(),o=function(t){var e={0:1},n={};if(t.widths&&t.kerning)return{widths:t.widths,kerning:t.kerning};var r=this.internal.getFont(t.fontName,t.fontStyle),i=\"Unicode\";return r.metadata[i]?{widths:r.metadata[i].widths||e,kerning:r.metadata[i].kerning||n}:{font:r.metadata,fontSize:this.internal.getFontSize(),charSpace:this.internal.getCharSpace()}}.call(this,n);r=Array.isArray(t)?t:t.split(/\\r?\\n/);var a=1*this.internal.scaleFactor*e/i;o.textIndent=n.textIndent?1*n.textIndent*this.internal.scaleFactor/i:0,o.lineIndent=n.lineIndent;var s,l,h=[];for(s=0,l=r.length;s<l;s++)h=h.concat(J.apply(this,[r[s],a,o]));return h},\n/** @license\n jsPDF standard_fonts_metrics plugin\n * Copyright (c) 2012 Willow Systems Corporation, willow-systems.com\n * MIT license.\n * \n * ====================================================================\n */\nX=lt.API,Z={codePages:[\"WinAnsiEncoding\"],WinAnsiEncoding:(K=function(t){for(var e=\"klmnopqrstuvwxyz\",n={},r=0;r<e.length;r++)n[e[r]]=\"0123456789abcdef\"[r];var i,o,a,s,l,h={},u=1,c=h,f=[],p=\"\",d=\"\",g=t.length-1;for(r=1;r!=g;)l=t[r],r+=1,\"'\"==l?o=o?(s=o.join(\"\"),i):[]:o?o.push(l):\"{\"==l?(f.push([c,s]),c={},s=i):\"}\"==l?((a=f.pop())[0][a[1]]=c,s=i,c=a[0]):\"-\"==l?u=-1:s===i?n.hasOwnProperty(l)?(p+=n[l],s=parseInt(p,16)*u,u=1,p=\"\"):p+=l:n.hasOwnProperty(l)?(d+=n[l],c[s]=parseInt(d,16)*u,u=1,s=i,d=\"\"):d+=l;return h})(\"{19m8n201n9q201o9r201s9l201t9m201u8m201w9n201x9o201y8o202k8q202l8r202m9p202q8p20aw8k203k8t203t8v203u9v2cq8s212m9t15m8w15n9w2dw9s16k8u16l9u17s9z17x8y17y9y}\")},Q={Unicode:{Courier:Z,\"Courier-Bold\":Z,\"Courier-BoldOblique\":Z,\"Courier-Oblique\":Z,Helvetica:Z,\"Helvetica-Bold\":Z,\"Helvetica-BoldOblique\":Z,\"Helvetica-Oblique\":Z,\"Times-Roman\":Z,\"Times-Bold\":Z,\"Times-BoldItalic\":Z,\"Times-Italic\":Z}},$={Unicode:{\"Courier-Oblique\":K(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\"Times-BoldItalic\":K(\"{'widths'{k3o2q4ycx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2r202m2n2n3m2o3m2p5n202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5n4l4m4m4m4n4m4o4s4p4m4q4m4r4s4s4y4t2r4u3m4v4m4w3x4x5t4y4s4z4s5k3x5l4s5m4m5n3r5o3x5p4s5q4m5r5t5s4m5t3x5u3x5v2l5w1w5x2l5y3t5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q2l6r3m6s3r6t1w6u1w6v3m6w1w6x4y6y3r6z3m7k3m7l3m7m2r7n2r7o1w7p3r7q2w7r4m7s3m7t2w7u2r7v2n7w1q7x2n7y3t202l3mcl4mal2ram3man3mao3map3mar3mas2lat4uau1uav3maw3way4uaz2lbk2sbl3t'fof'6obo2lbp3tbq3mbr1tbs2lbu1ybv3mbz3mck4m202k3mcm4mcn4mco4mcp4mcq5ycr4mcs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz2w203k6o212m6o2dw2l2cq2l3t3m3u2l17s3x19m3m}'kerning'{cl{4qu5kt5qt5rs17ss5ts}201s{201ss}201t{cks4lscmscnscoscpscls2wu2yu201ts}201x{2wu2yu}2k{201ts}2w{4qx5kx5ou5qx5rs17su5tu}2x{17su5tu5ou}2y{4qx5kx5ou5qx5rs17ss5ts}'fof'-6ofn{17sw5tw5ou5qw5rs}7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qs}3v{17su5tu5os5qs}7p{17su5tu}ck{4qu5kt5qt5rs17ss5ts}4l{4qu5kt5qt5rs17ss5ts}cm{4qu5kt5qt5rs17ss5ts}cn{4qu5kt5qt5rs17ss5ts}co{4qu5kt5qt5rs17ss5ts}cp{4qu5kt5qt5rs17ss5ts}6l{4qu5ou5qw5rt17su5tu}5q{ckuclucmucnucoucpu4lu}5r{ckuclucmucnucoucpu4lu}7q{cksclscmscnscoscps4ls}6p{4qu5ou5qw5rt17sw5tw}ek{4qu5ou5qw5rt17su5tu}el{4qu5ou5qw5rt17su5tu}em{4qu5ou5qw5rt17su5tu}en{4qu5ou5qw5rt17su5tu}eo{4qu5ou5qw5rt17su5tu}ep{4qu5ou5qw5rt17su5tu}es{17ss5ts5qs4qu}et{4qu5ou5qw5rt17sw5tw}eu{4qu5ou5qw5rt17ss5ts}ev{17ss5ts5qs4qu}6z{17sw5tw5ou5qw5rs}fm{17sw5tw5ou5qw5rs}7n{201ts}fo{17sw5tw5ou5qw5rs}fp{17sw5tw5ou5qw5rs}fq{17sw5tw5ou5qw5rs}7r{cksclscmscnscoscps4ls}fs{17sw5tw5ou5qw5rs}ft{17su5tu}fu{17su5tu}fv{17su5tu}fw{17su5tu}fz{cksclscmscnscoscps4ls}}}\"),\"Helvetica-Bold\":K(\"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"),Courier:K(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\"Courier-BoldOblique\":K(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\"Times-Bold\":K(\"{'widths'{k3q2q5ncx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2l202m2n2n3m2o3m2p6o202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5x4l4s4m4m4n4s4o4s4p4m4q3x4r4y4s4y4t2r4u3m4v4y4w4m4x5y4y4s4z4y5k3x5l4y5m4s5n3r5o4m5p4s5q4s5r6o5s4s5t4s5u4m5v2l5w1w5x2l5y3u5z3m6k2l6l3m6m3r6n2w6o3r6p2w6q2l6r3m6s3r6t1w6u2l6v3r6w1w6x5n6y3r6z3m7k3r7l3r7m2w7n2r7o2l7p3r7q3m7r4s7s3m7t3m7u2w7v2r7w1q7x2r7y3o202l3mcl4sal2lam3man3mao3map3mar3mas2lat4uau1yav3maw3tay4uaz2lbk2sbl3t'fof'6obo2lbp3rbr1tbs2lbu2lbv3mbz3mck4s202k3mcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3rek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3m3u2l17s4s19m3m}'kerning'{cl{4qt5ks5ot5qy5rw17sv5tv}201t{cks4lscmscnscoscpscls4wv}2k{201ts}2w{4qu5ku7mu5os5qx5ru17su5tu}2x{17su5tu5ou5qs}2y{4qv5kv7mu5ot5qz5ru17su5tu}'fof'-6o7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qu}3v{17su5tu5os5qu}fu{17su5tu5ou5qu}7p{17su5tu5ou5qu}ck{4qt5ks5ot5qy5rw17sv5tv}4l{4qt5ks5ot5qy5rw17sv5tv}cm{4qt5ks5ot5qy5rw17sv5tv}cn{4qt5ks5ot5qy5rw17sv5tv}co{4qt5ks5ot5qy5rw17sv5tv}cp{4qt5ks5ot5qy5rw17sv5tv}6l{17st5tt5ou5qu}17s{ckuclucmucnucoucpu4lu4wu}5o{ckuclucmucnucoucpu4lu4wu}5q{ckzclzcmzcnzcozcpz4lz4wu}5r{ckxclxcmxcnxcoxcpx4lx4wu}5t{ckuclucmucnucoucpu4lu4wu}7q{ckuclucmucnucoucpu4lu}6p{17sw5tw5ou5qu}ek{17st5tt5qu}el{17st5tt5ou5qu}em{17st5tt5qu}en{17st5tt5qu}eo{17st5tt5qu}ep{17st5tt5ou5qu}es{17ss5ts5qu}et{17sw5tw5ou5qu}eu{17sw5tw5ou5qu}ev{17ss5ts5qu}6z{17sw5tw5ou5qu5rs}fm{17sw5tw5ou5qu5rs}fn{17sw5tw5ou5qu5rs}fo{17sw5tw5ou5qu5rs}fp{17sw5tw5ou5qu5rs}fq{17sw5tw5ou5qu5rs}7r{cktcltcmtcntcotcpt4lt5os}fs{17sw5tw5ou5qu5rs}ft{17su5tu5ou5qu}7m{5os}fv{17su5tu5ou5qu}fw{17su5tu5ou5qu}fz{cksclscmscnscoscps4ls}}}\"),Symbol:K(\"{'widths'{k3uaw4r19m3m2k1t2l2l202m2y2n3m2p5n202q6o3k3m2s2l2t2l2v3r2w1t3m3m2y1t2z1wbk2sbl3r'fof'6o3n3m3o3m3p3m3q3m3r3m3s3m3t3m3u1w3v1w3w3r3x3r3y3r3z2wbp3t3l3m5v2l5x2l5z3m2q4yfr3r7v3k7w1o7x3k}'kerning'{'fof'-6o}}\"),Helvetica:K(\"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\"),\"Helvetica-BoldOblique\":K(\"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"),ZapfDingbats:K(\"{'widths'{k4u2k1w'fof'6o}'kerning'{'fof'-6o}}\"),\"Courier-Bold\":K(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\"Times-Italic\":K(\"{'widths'{k3n2q4ycx2l201n3m201o5t201s2l201t2l201u2l201w3r201x3r201y3r2k1t2l2l202m2n2n3m2o3m2p5n202q5t2r1p2s2l2t2l2u3m2v4n2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w4n3x4n3y4n3z3m4k5w4l3x4m3x4n4m4o4s4p3x4q3x4r4s4s4s4t2l4u2w4v4m4w3r4x5n4y4m4z4s5k3x5l4s5m3x5n3m5o3r5p4s5q3x5r5n5s3x5t3r5u3r5v2r5w1w5x2r5y2u5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q1w6r3m6s3m6t1w6u1w6v2w6w1w6x4s6y3m6z3m7k3m7l3m7m2r7n2r7o1w7p3m7q2w7r4m7s2w7t2w7u2r7v2s7w1v7x2s7y3q202l3mcl3xal2ram3man3mao3map3mar3mas2lat4wau1vav3maw4nay4waz2lbk2sbl4n'fof'6obo2lbp3mbq3obr1tbs2lbu1zbv3mbz3mck3x202k3mcm3xcn3xco3xcp3xcq5tcr4mcs3xct3xcu3xcv3xcw2l2m2ucy2lcz2ldl4mdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr4nfs3mft3mfu3mfv3mfw3mfz2w203k6o212m6m2dw2l2cq2l3t3m3u2l17s3r19m3m}'kerning'{cl{5kt4qw}201s{201sw}201t{201tw2wy2yy6q-t}201x{2wy2yy}2k{201tw}2w{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}2x{17ss5ts5os}2y{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}'fof'-6o6t{17ss5ts5qs}7t{5os}3v{5qs}7p{17su5tu5qs}ck{5kt4qw}4l{5kt4qw}cm{5kt4qw}cn{5kt4qw}co{5kt4qw}cp{5kt4qw}6l{4qs5ks5ou5qw5ru17su5tu}17s{2ks}5q{ckvclvcmvcnvcovcpv4lv}5r{ckuclucmucnucoucpu4lu}5t{2ks}6p{4qs5ks5ou5qw5ru17su5tu}ek{4qs5ks5ou5qw5ru17su5tu}el{4qs5ks5ou5qw5ru17su5tu}em{4qs5ks5ou5qw5ru17su5tu}en{4qs5ks5ou5qw5ru17su5tu}eo{4qs5ks5ou5qw5ru17su5tu}ep{4qs5ks5ou5qw5ru17su5tu}es{5ks5qs4qs}et{4qs5ks5ou5qw5ru17su5tu}eu{4qs5ks5qw5ru17su5tu}ev{5ks5qs4qs}ex{17ss5ts5qs}6z{4qv5ks5ou5qw5ru17su5tu}fm{4qv5ks5ou5qw5ru17su5tu}fn{4qv5ks5ou5qw5ru17su5tu}fo{4qv5ks5ou5qw5ru17su5tu}fp{4qv5ks5ou5qw5ru17su5tu}fq{4qv5ks5ou5qw5ru17su5tu}7r{5os}fs{4qv5ks5ou5qw5ru17su5tu}ft{17su5tu5qs}fu{17su5tu5qs}fv{17su5tu5qs}fw{17su5tu5qs}}}\"),\"Times-Roman\":K(\"{'widths'{k3n2q4ycx2l201n3m201o6o201s2l201t2l201u2l201w2w201x2w201y2w2k1t2l2l202m2n2n3m2o3m2p5n202q6o2r1m2s2l2t2l2u3m2v3s2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v1w3w3s3x3s3y3s3z2w4k5w4l4s4m4m4n4m4o4s4p3x4q3r4r4s4s4s4t2l4u2r4v4s4w3x4x5t4y4s4z4s5k3r5l4s5m4m5n3r5o3x5p4s5q4s5r5y5s4s5t4s5u3x5v2l5w1w5x2l5y2z5z3m6k2l6l2w6m3m6n2w6o3m6p2w6q2l6r3m6s3m6t1w6u1w6v3m6w1w6x4y6y3m6z3m7k3m7l3m7m2l7n2r7o1w7p3m7q3m7r4s7s3m7t3m7u2w7v3k7w1o7x3k7y3q202l3mcl4sal2lam3man3mao3map3mar3mas2lat4wau1vav3maw3say4waz2lbk2sbl3s'fof'6obo2lbp3mbq2xbr1tbs2lbu1zbv3mbz2wck4s202k3mcm4scn4sco4scp4scq5tcr4mcs3xct3xcu3xcv3xcw2l2m2tcy2lcz2ldl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek2wel2wem2wen2weo2wep2weq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr3sfs3mft3mfu3mfv3mfw3mfz3m203k6o212m6m2dw2l2cq2l3t3m3u1w17s4s19m3m}'kerning'{cl{4qs5ku17sw5ou5qy5rw201ss5tw201ws}201s{201ss}201t{ckw4lwcmwcnwcowcpwclw4wu201ts}2k{201ts}2w{4qs5kw5os5qx5ru17sx5tx}2x{17sw5tw5ou5qu}2y{4qs5kw5os5qx5ru17sx5tx}'fof'-6o7t{ckuclucmucnucoucpu4lu5os5rs}3u{17su5tu5qs}3v{17su5tu5qs}7p{17sw5tw5qs}ck{4qs5ku17sw5ou5qy5rw201ss5tw201ws}4l{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cm{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cn{4qs5ku17sw5ou5qy5rw201ss5tw201ws}co{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cp{4qs5ku17sw5ou5qy5rw201ss5tw201ws}6l{17su5tu5os5qw5rs}17s{2ktclvcmvcnvcovcpv4lv4wuckv}5o{ckwclwcmwcnwcowcpw4lw4wu}5q{ckyclycmycnycoycpy4ly4wu5ms}5r{cktcltcmtcntcotcpt4lt4ws}5t{2ktclvcmvcnvcovcpv4lv4wuckv}7q{cksclscmscnscoscps4ls}6p{17su5tu5qw5rs}ek{5qs5rs}el{17su5tu5os5qw5rs}em{17su5tu5os5qs5rs}en{17su5qs5rs}eo{5qs5rs}ep{17su5tu5os5qw5rs}es{5qs}et{17su5tu5qw5rs}eu{17su5tu5qs5rs}ev{5qs}6z{17sv5tv5os5qx5rs}fm{5os5qt5rs}fn{17sv5tv5os5qx5rs}fo{17sv5tv5os5qx5rs}fp{5os5qt5rs}fq{5os5qt5rs}7r{ckuclucmucnucoucpu4lu5os}fs{17sv5tv5os5qx5rs}ft{17ss5ts5qs}fu{17sw5tw5qs}fv{17sw5tw5qs}fw{17ss5ts5qs}fz{ckuclucmucnucoucpu4lu5os5rs}}}\"),\"Helvetica-Oblique\":K(\"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\")}},X.events.push([\"addFont\",function(t){var e,n,r,i=t.font,o=\"Unicode\";(e=$[o][i.postScriptName])&&((n=i.metadata[o]?i.metadata[o]:i.metadata[o]={}).widths=e.widths,n.kerning=e.kerning),(r=Q[o][i.postScriptName])&&((n=i.metadata[o]?i.metadata[o]:i.metadata[o]={}).encoding=r).codePages&&r.codePages.length&&(i.encoding=r.codePages[0])}]),\n/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\ntt=lt,\"undefined\"!=typeof self&&self||\"undefined\"!=typeof global&&global||\"undefined\"!=typeof window&&window||Function(\"return this\")(),tt.API.events.push([\"addFont\",function(t){var e=t.font,n=t.instance;if(void 0!==n&&n.existsFileInVFS(e.postScriptName)){var r=n.getFileFromVFS(e.postScriptName);if(\"string\"!=typeof r)throw new Error(\"Font is not stored as string-data in vFS, import fonts or remove declaration doc.addFont('\"+e.postScriptName+\"').\");e.metadata=tt.API.TTFFont.open(e.postScriptName,e.fontName,r,e.encoding),e.metadata.Unicode=e.metadata.Unicode||{encoding:{},kerning:{},widths:[]},e.metadata.glyIdsUsed=[0]}else if(!1===e.isStandardFont)throw new Error(\"Font does not exist in vFS, import fonts or remove declaration doc.addFont('\"+e.postScriptName+\"').\")}]),(\n/** @license\n * Copyright (c) 2012 Willow Systems Corporation, willow-systems.com\n * \n * \n * ====================================================================\n */\net=lt.API).addSvg=function(t,e,n,r,i){if(void 0===e||void 0===n)throw new Error(\"addSVG needs values for 'x' and 'y'\");function o(t){for(var e=parseFloat(t[1]),n=parseFloat(t[2]),r=[],i=3,o=t.length;i<o;)\"c\"===t[i]?(r.push([parseFloat(t[i+1]),parseFloat(t[i+2]),parseFloat(t[i+3]),parseFloat(t[i+4]),parseFloat(t[i+5]),parseFloat(t[i+6])]),i+=7):\"l\"===t[i]?(r.push([parseFloat(t[i+1]),parseFloat(t[i+2])]),i+=3):i+=1;return[e,n,r]}var a,s,l,h,u,c,f,p,d=(h=document,p=h.createElement(\"iframe\"),u=\".jsPDF_sillysvg_iframe {display:none;position:absolute;}\",(f=(c=h).createElement(\"style\")).type=\"text/css\",f.styleSheet?f.styleSheet.cssText=u:f.appendChild(c.createTextNode(u)),c.getElementsByTagName(\"head\")[0].appendChild(f),p.name=\"childframe\",p.setAttribute(\"width\",0),p.setAttribute(\"height\",0),p.setAttribute(\"frameborder\",\"0\"),p.setAttribute(\"scrolling\",\"no\"),p.setAttribute(\"seamless\",\"seamless\"),p.setAttribute(\"class\",\"jsPDF_sillysvg_iframe\"),h.body.appendChild(p),p),g=(a=t,(l=((s=d).contentWindow||s.contentDocument).document).write(a),l.close(),l.getElementsByTagName(\"svg\")[0]),m=[1,1],y=parseFloat(g.getAttribute(\"width\")),v=parseFloat(g.getAttribute(\"height\"));y&&v&&(r&&i?m=[r/y,i/v]:r?m=[r/y,r/y]:i&&(m=[i/v,i/v]));var w,b,x,N,L=g.childNodes;for(w=0,b=L.length;w<b;w++)(x=L[w]).tagName&&\"PATH\"===x.tagName.toUpperCase()&&((N=o(x.getAttribute(\"d\").split(\" \")))[0]=N[0]*m[0]+e,N[1]=N[1]*m[1]+n,this.lines.call(this,N[2],N[0],N[1],m));return this},et.addSVG=et.addSvg,et.addSvgAsImage=function(t,e,n,r,i,o,a,s){if(isNaN(e)||isNaN(n))throw console.error(\"jsPDF.addSvgAsImage: Invalid coordinates\",arguments),new Error(\"Invalid coordinates passed to jsPDF.addSvgAsImage\");if(isNaN(r)||isNaN(i))throw console.error(\"jsPDF.addSvgAsImage: Invalid measurements\",arguments),new Error(\"Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage\");var l=document.createElement(\"canvas\");l.width=r,l.height=i;var h=l.getContext(\"2d\");return h.fillStyle=\"#fff\",h.fillRect(0,0,l.width,l.height),canvg(l,t,{ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0,ignoreClear:!0}),this.addImage(l.toDataURL(\"image/jpeg\",1),e,n,r,i,a,s),this},lt.API.putTotalPages=function(t){var e,n=0;n=parseInt(this.internal.getFont().id.substr(1),10)<15?(e=new RegExp(t,\"g\"),this.internal.getNumberOfPages()):(e=new RegExp(this.pdfEscape16(t,this.internal.getFont()),\"g\"),this.pdfEscape16(this.internal.getNumberOfPages()+\"\",this.internal.getFont()));for(var r=1;r<=this.internal.getNumberOfPages();r++)for(var i=0;i<this.internal.pages[r].length;i++)this.internal.pages[r][i]=this.internal.pages[r][i].replace(e,n);return this},lt.API.viewerPreferences=function(t,e){var n;t=t||{},e=e||!1;var r,i,o={HideToolbar:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideMenubar:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideWindowUI:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},FitWindow:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},CenterWindow:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},DisplayDocTitle:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.4},NonFullScreenPageMode:{defaultValue:\"UseNone\",value:\"UseNone\",type:\"name\",explicitSet:!1,valueSet:[\"UseNone\",\"UseOutlines\",\"UseThumbs\",\"UseOC\"],pdfVersion:1.3},Direction:{defaultValue:\"L2R\",value:\"L2R\",type:\"name\",explicitSet:!1,valueSet:[\"L2R\",\"R2L\"],pdfVersion:1.3},ViewArea:{defaultValue:\"CropBox\",value:\"CropBox\",type:\"name\",explicitSet:!1,valueSet:[\"MediaBox\",\"CropBox\",\"TrimBox\",\"BleedBox\",\"ArtBox\"],pdfVersion:1.4},ViewClip:{defaultValue:\"CropBox\",value:\"CropBox\",type:\"name\",explicitSet:!1,valueSet:[\"MediaBox\",\"CropBox\",\"TrimBox\",\"BleedBox\",\"ArtBox\"],pdfVersion:1.4},PrintArea:{defaultValue:\"CropBox\",value:\"CropBox\",type:\"name\",explicitSet:!1,valueSet:[\"MediaBox\",\"CropBox\",\"TrimBox\",\"BleedBox\",\"ArtBox\"],pdfVersion:1.4},PrintClip:{defaultValue:\"CropBox\",value:\"CropBox\",type:\"name\",explicitSet:!1,valueSet:[\"MediaBox\",\"CropBox\",\"TrimBox\",\"BleedBox\",\"ArtBox\"],pdfVersion:1.4},PrintScaling:{defaultValue:\"AppDefault\",value:\"AppDefault\",type:\"name\",explicitSet:!1,valueSet:[\"AppDefault\",\"None\"],pdfVersion:1.6},Duplex:{defaultValue:\"\",value:\"none\",type:\"name\",explicitSet:!1,valueSet:[\"Simplex\",\"DuplexFlipShortEdge\",\"DuplexFlipLongEdge\",\"none\"],pdfVersion:1.7},PickTrayByPDFSize:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.7},PrintPageRange:{defaultValue:\"\",value:\"\",type:\"array\",explicitSet:!1,valueSet:null,pdfVersion:1.7},NumCopies:{defaultValue:1,value:1,type:\"integer\",explicitSet:!1,valueSet:null,pdfVersion:1.7}},a=Object.keys(o),s=[],l=0,h=0,u=0,c=!0;function f(t,e){var n,r=!1;for(n=0;n<t.length;n+=1)t[n]===e&&(r=!0);return r}if(void 0===this.internal.viewerpreferences&&(this.internal.viewerpreferences={},this.internal.viewerpreferences.configuration=JSON.parse(JSON.stringify(o)),this.internal.viewerpreferences.isSubscribed=!1),n=this.internal.viewerpreferences.configuration,\"reset\"===t||!0===e){var p=a.length;for(u=0;u<p;u+=1)n[a[u]].value=n[a[u]].defaultValue,n[a[u]].explicitSet=!1}if(\"object\"===se(t))for(r in t)if(i=t[r],f(a,r)&&void 0!==i){if(\"boolean\"===n[r].type&&\"boolean\"==typeof i)n[r].value=i;else if(\"name\"===n[r].type&&f(n[r].valueSet,i))n[r].value=i;else if(\"integer\"===n[r].type&&Number.isInteger(i))n[r].value=i;else if(\"array\"===n[r].type){for(l=0;l<i.length;l+=1)if(c=!0,1===i[l].length&&\"number\"==typeof i[l][0])s.push(String(i[l]-1));else if(1<i[l].length){for(h=0;h<i[l].length;h+=1)\"number\"!=typeof i[l][h]&&(c=!1);!0===c&&s.push([i[l][0]-1,i[l][1]-1].join(\" \"))}n[r].value=\"[\"+s.join(\" \")+\"]\"}else n[r].value=n[r].defaultValue;n[r].explicitSet=!0}return!1===this.internal.viewerpreferences.isSubscribed&&(this.internal.events.subscribe(\"putCatalog\",function(){var t,e=[];for(t in n)!0===n[t].explicitSet&&(\"name\"===n[t].type?e.push(\"/\"+t+\" /\"+n[t].value):e.push(\"/\"+t+\" \"+n[t].value));0!==e.length&&this.internal.write(\"/ViewerPreferences\\n<<\\n\"+e.join(\"\\n\")+\"\\n>>\")}),this.internal.viewerpreferences.isSubscribed=!0),this.internal.viewerpreferences.configuration=n,this},\n/** ==================================================================== \n * jsPDF XMP metadata plugin\n * Copyright (c) 2016 Jussi Utunen, u-jussi@suomi24.fi\n * \n * \n * ====================================================================\n */\nnt=lt.API,ot=it=rt=\"\",nt.addMetadata=function(t,e){return it=e||\"http://jspdf.default.namespaceuri/\",rt=t,this.internal.events.subscribe(\"postPutResources\",function(){if(rt){var t='<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"><rdf:Description rdf:about=\"\" xmlns:jspdf=\"'+it+'\"><jspdf:metadata>',e=unescape(encodeURIComponent('<x:xmpmeta xmlns:x=\"adobe:ns:meta/\">')),n=unescape(encodeURIComponent(t)),r=unescape(encodeURIComponent(rt)),i=unescape(encodeURIComponent(\"</jspdf:metadata></rdf:Description></rdf:RDF>\")),o=unescape(encodeURIComponent(\"</x:xmpmeta>\")),a=n.length+r.length+i.length+e.length+o.length;ot=this.internal.newObject(),this.internal.write(\"<< /Type /Metadata /Subtype /XML /Length \"+a+\" >>\"),this.internal.write(\"stream\"),this.internal.write(e+n+r+i+o),this.internal.write(\"endstream\"),this.internal.write(\"endobj\")}else ot=\"\"}),this.internal.events.subscribe(\"putCatalog\",function(){ot&&this.internal.write(\"/Metadata \"+ot+\" 0 R\")}),this},function(f,t){var e=f.API;var m=e.pdfEscape16=function(t,e){for(var n,r=e.metadata.Unicode.widths,i=[\"\",\"0\",\"00\",\"000\",\"0000\"],o=[\"\"],a=0,s=t.length;a<s;++a){if(n=e.metadata.characterToGlyph(t.charCodeAt(a)),e.metadata.glyIdsUsed.push(n),e.metadata.toUnicode[n]=t.charCodeAt(a),-1==r.indexOf(n)&&(r.push(n),r.push([parseInt(e.metadata.widthOfGlyph(n),10)])),\"0\"==n)return o.join(\"\");n=n.toString(16),o.push(i[4-n.length],n)}return o.join(\"\")},p=function(t){var e,n,r,i,o,a,s;for(o=\"/CIDInit /ProcSet findresource begin\\n12 dict begin\\nbegincmap\\n/CIDSystemInfo <<\\n /Registry (Adobe)\\n /Ordering (UCS)\\n /Supplement 0\\n>> def\\n/CMapName /Adobe-Identity-UCS def\\n/CMapType 2 def\\n1 begincodespacerange\\n<0000><ffff>\\nendcodespacerange\",r=[],a=0,s=(n=Object.keys(t).sort(function(t,e){return t-e})).length;a<s;a++)e=n[a],100<=r.length&&(o+=\"\\n\"+r.length+\" beginbfchar\\n\"+r.join(\"\\n\")+\"\\nendbfchar\",r=[]),i=(\"0000\"+t[e].toString(16)).slice(-4),e=(\"0000\"+(+e).toString(16)).slice(-4),r.push(\"<\"+e+\"><\"+i+\">\");return r.length&&(o+=\"\\n\"+r.length+\" beginbfchar\\n\"+r.join(\"\\n\")+\"\\nendbfchar\\n\"),o+=\"endcmap\\nCMapName currentdict /CMap defineresource pop\\nend\\nend\"};e.events.push([\"putFont\",function(t){!function(t,e,n,r){if(t.metadata instanceof f.API.TTFFont&&\"Identity-H\"===t.encoding){for(var i=t.metadata.Unicode.widths,o=t.metadata.subset.encode(t.metadata.glyIdsUsed,1),a=\"\",s=0;s<o.length;s++)a+=String.fromCharCode(o[s]);var l=n();r({data:a,addLength1:!0}),e(\"endobj\");var h=n();r({data:p(t.metadata.toUnicode),addLength1:!0}),e(\"endobj\");var u=n();e(\"<<\"),e(\"/Type /FontDescriptor\"),e(\"/FontName /\"+t.fontName),e(\"/FontFile2 \"+l+\" 0 R\"),e(\"/FontBBox \"+f.API.PDFObject.convert(t.metadata.bbox)),e(\"/Flags \"+t.metadata.flags),e(\"/StemV \"+t.metadata.stemV),e(\"/ItalicAngle \"+t.metadata.italicAngle),e(\"/Ascent \"+t.metadata.ascender),e(\"/Descent \"+t.metadata.decender),e(\"/CapHeight \"+t.metadata.capHeight),e(\">>\"),e(\"endobj\");var c=n();e(\"<<\"),e(\"/Type /Font\"),e(\"/BaseFont /\"+t.fontName),e(\"/FontDescriptor \"+u+\" 0 R\"),e(\"/W \"+f.API.PDFObject.convert(i)),e(\"/CIDToGIDMap /Identity\"),e(\"/DW 1000\"),e(\"/Subtype /CIDFontType2\"),e(\"/CIDSystemInfo\"),e(\"<<\"),e(\"/Supplement 0\"),e(\"/Registry (Adobe)\"),e(\"/Ordering (\"+t.encoding+\")\"),e(\">>\"),e(\">>\"),e(\"endobj\"),t.objectNumber=n(),e(\"<<\"),e(\"/Type /Font\"),e(\"/Subtype /Type0\"),e(\"/ToUnicode \"+h+\" 0 R\"),e(\"/BaseFont /\"+t.fontName),e(\"/Encoding /\"+t.encoding),e(\"/DescendantFonts [\"+c+\" 0 R]\"),e(\">>\"),e(\"endobj\"),t.isAlreadyPutted=!0}}(t.font,t.out,t.newObject,t.putStream)}]);e.events.push([\"putFont\",function(t){!function(t,e,n,r){if(t.metadata instanceof f.API.TTFFont&&\"WinAnsiEncoding\"===t.encoding){t.metadata.Unicode.widths;for(var i=t.metadata.rawData,o=\"\",a=0;a<i.length;a++)o+=String.fromCharCode(i[a]);var s=n();r({data:o,addLength1:!0}),e(\"endobj\");var l=n();r({data:p(t.metadata.toUnicode),addLength1:!0}),e(\"endobj\");var h=n();for(e(\"<<\"),e(\"/Descent \"+t.metadata.decender),e(\"/CapHeight \"+t.metadata.capHeight),e(\"/StemV \"+t.metadata.stemV),e(\"/Type /FontDescriptor\"),e(\"/FontFile2 \"+s+\" 0 R\"),e(\"/Flags 96\"),e(\"/FontBBox \"+f.API.PDFObject.convert(t.metadata.bbox)),e(\"/FontName /\"+t.fontName),e(\"/ItalicAngle \"+t.metadata.italicAngle),e(\"/Ascent \"+t.metadata.ascender),e(\">>\"),e(\"endobj\"),t.objectNumber=n(),a=0;a<t.metadata.hmtx.widths.length;a++)t.metadata.hmtx.widths[a]=parseInt(t.metadata.hmtx.widths[a]*(1e3/t.metadata.head.unitsPerEm));e(\"<</Subtype/TrueType/Type/Font/ToUnicode \"+l+\" 0 R/BaseFont/\"+t.fontName+\"/FontDescriptor \"+h+\" 0 R/Encoding/\"+t.encoding+\" /FirstChar 29 /LastChar 255 /Widths \"+f.API.PDFObject.convert(t.metadata.hmtx.widths)+\">>\"),e(\"endobj\"),t.isAlreadyPutted=!0}}(t.font,t.out,t.newObject,t.putStream)}]);var h=function(t){var e,n,r=t.text||\"\",i=t.x,o=t.y,a=t.options||{},s=t.mutex||{},l=s.pdfEscape,h=s.activeFontKey,u=s.fonts,c=(s.activeFontSize,\"\"),f=0,p=\"\",d=u[n=h].encoding;if(\"Identity-H\"!==u[n].encoding)return{text:r,x:i,y:o,options:a,mutex:s};for(p=r,n=h,\"[object Array]\"===Object.prototype.toString.call(r)&&(p=r[0]),f=0;f<p.length;f+=1)u[n].metadata.hasOwnProperty(\"cmap\")&&(e=u[n].metadata.cmap.unicode.codeMap[p[f].charCodeAt(0)]),e?c+=p[f]:p[f].charCodeAt(0)<256&&u[n].metadata.hasOwnProperty(\"Unicode\")?c+=p[f]:c+=\"\";var g=\"\";return parseInt(n.slice(1))<14||\"WinAnsiEncoding\"===d?g=function(t){for(var e=\"\",n=0;n<t.length;n++)e+=\"\"+t.charCodeAt(n).toString(16);return e}(l(c,n)):\"Identity-H\"===d&&(g=m(c,u[n])),s.isHex=!0,{text:g,x:i,y:o,options:a,mutex:s}};e.events.push([\"postProcessText\",function(t){var e=t.text||\"\",n=t.x,r=t.y,i=t.options,o=t.mutex,a=(i.lang,[]),s={text:e,x:n,y:r,options:i,mutex:o};if(\"[object Array]\"===Object.prototype.toString.call(e)){var l=0;for(l=0;l<e.length;l+=1)\"[object Array]\"===Object.prototype.toString.call(e[l])&&3===e[l].length?a.push([h(Object.assign({},s,{text:e[l][0]})).text,e[l][1],e[l][2]]):a.push(h(Object.assign({},s,{text:e[l]})).text);t.text=a}else t.text=h(Object.assign({},s,{text:e})).text}])}(lt,\"undefined\"!=typeof self&&self||\"undefined\"!=typeof global&&global||\"undefined\"!=typeof window&&window||Function(\"return this\")()),at=lt.API,st=function(t){return void 0!==t&&(void 0===t.vFS&&(t.vFS={}),!0)},at.existsFileInVFS=function(t){return!!st(this.internal)&&void 0!==this.internal.vFS[t]},at.addFileToVFS=function(t,e){return st(this.internal),this.internal.vFS[t]=e,this},at.getFileFromVFS=function(t){return st(this.internal),void 0!==this.internal.vFS[t]?this.internal.vFS[t]:null},lt.API.addHTML=function(t,d,g,s,m){if(\"undefined\"==typeof html2canvas&&\"undefined\"==typeof rasterizeHTML)throw new Error(\"You need either https://github.com/niklasvh/html2canvas or https://github.com/cburgmer/rasterizeHTML.js\");\"number\"!=typeof d&&(s=d,m=g),\"function\"==typeof s&&(m=s,s=null),\"function\"!=typeof m&&(m=function(){});var e=this.internal,y=e.scaleFactor,v=e.pageSize.getWidth(),w=e.pageSize.getHeight();if((s=s||{}).onrendered=function(l){d=parseInt(d)||0,g=parseInt(g)||0;var t=s.dim||{},h=Object.assign({top:0,right:0,bottom:0,left:0,useFor:\"content\"},s.margin),e=t.h||Math.min(w,l.height/y),u=t.w||Math.min(v,l.width/y)-d,c=s.format||\"JPEG\",f=s.imageCompression||\"SLOW\";if(l.height>w-h.top-h.bottom&&s.pagesplit){var p=function(t,e,n,r,i){var o=document.createElement(\"canvas\");o.height=i,o.width=r;var a=o.getContext(\"2d\");return a.mozImageSmoothingEnabled=!1,a.webkitImageSmoothingEnabled=!1,a.msImageSmoothingEnabled=!1,a.imageSmoothingEnabled=!1,a.fillStyle=s.backgroundColor||\"#ffffff\",a.fillRect(0,0,r,i),a.drawImage(t,e,n,r,i,0,0,r,i),o},n=function(){for(var t,e,n=0,r=0,i={},o=!1;;){var a;if(r=0,i.top=0!==n?h.top:g,i.left=0!==n?h.left:d,o=(v-h.left-h.right)*y<l.width,\"content\"===h.useFor?0===n?(t=Math.min((v-h.left)*y,l.width),e=Math.min((w-h.top)*y,l.height-n)):(t=Math.min(v*y,l.width),e=Math.min(w*y,l.height-n),i.top=0):(t=Math.min((v-h.left-h.right)*y,l.width),e=Math.min((w-h.bottom-h.top)*y,l.height-n)),o)for(;;){\"content\"===h.useFor&&(0===r?t=Math.min((v-h.left)*y,l.width):(t=Math.min(v*y,l.width-r),i.left=0));var s=[a=p(l,r,n,t,e),i.left,i.top,a.width/y,a.height/y,c,null,f];if(this.addImage.apply(this,s),(r+=t)>=l.width)break;this.addPage()}else s=[a=p(l,0,n,t,e),i.left,i.top,a.width/y,a.height/y,c,null,f],this.addImage.apply(this,s);if((n+=e)>=l.height)break;this.addPage()}m(u,n,null,s)}.bind(this);if(\"CANVAS\"===l.nodeName){var r=new Image;r.onload=n,r.src=l.toDataURL(\"image/png\"),l=r}else n()}else{var i=Math.random().toString(35),o=[l,d,g,u,e,c,i,f];this.addImage.apply(this,o),m(u,e,i,o)}}.bind(this),\"undefined\"!=typeof html2canvas&&!s.rstz)return html2canvas(t,s);if(\"undefined\"==typeof rasterizeHTML)return null;var n=\"drawDocument\";return\"string\"==typeof t&&(n=/^http/.test(t)?\"drawURL\":\"drawHTML\"),s.width=s.width||v*y,rasterizeHTML[n](t,void 0,s).then(function(t){s.onrendered(t.image)},function(t){m(null,t)})},\n/**\n * jsPDF fromHTML plugin. BETA stage. API subject to change. Needs browser\n * Copyright (c) 2012 Willow Systems Corporation, willow-systems.com\n * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n * 2014 Diego Casorran, https://github.com/diegocr\n * 2014 Daniel Husar, https://github.com/danielhusar\n * 2014 Wolfgang Gassler, https://github.com/woolfg\n * 2014 Steven Spungin, https://github.com/flamenco\n *\n * @license\n * \n * ====================================================================\n */\nfunction(t){var P,k,i,a,s,l,h,u,I,w,f,c,p,n,C,B,d,g,m,j;P=function(){return function(t){return e.prototype=t,new e};function e(){}}(),w=function(t){var e,n,r,i,o,a,s;for(n=0,r=t.length,e=void 0,a=i=!1;!i&&n!==r;)(e=t[n]=t[n].trimLeft())&&(i=!0),n++;for(n=r-1;r&&!a&&-1!==n;)(e=t[n]=t[n].trimRight())&&(a=!0),n--;for(o=/\\s+$/g,s=!0,n=0;n!==r;)\"\\u2028\"!=t[n]&&(e=t[n].replace(/\\s+/g,\" \"),s&&(e=e.trimLeft()),e&&(s=o.test(e)),t[n]=e),n++;return t},c=function(t){var e,n,r;for(e=void 0,n=(r=t.split(\",\")).shift();!e&&n;)e=i[n.trim().toLowerCase()],n=r.shift();return e},p=function(t){var e;return-1<(t=\"auto\"===t?\"0px\":t).indexOf(\"em\")&&!isNaN(Number(t.replace(\"em\",\"\")))&&(t=18.719*Number(t.replace(\"em\",\"\"))+\"px\"),-1<t.indexOf(\"pt\")&&!isNaN(Number(t.replace(\"pt\",\"\")))&&(t=1.333*Number(t.replace(\"pt\",\"\"))+\"px\"),void 0,16,(e=n[t])?e:void 0!==(e={\"xx-small\":9,\"x-small\":11,small:13,medium:16,large:19,\"x-large\":23,\"xx-large\":28,auto:0}[t])?n[t]=e/16:(e=parseFloat(t))?n[t]=e/16:(e=t.match(/([\\d\\.]+)(px)/),Array.isArray(e)&&3===e.length?n[t]=parseFloat(e[1])/16:n[t]=1)},I=function(t){var e,n,r,i,o;return o=t,i=document.defaultView&&document.defaultView.getComputedStyle?document.defaultView.getComputedStyle(o,null):o.currentStyle?o.currentStyle:o.style,n=void 0,(e={})[\"font-family\"]=c((r=function(t){return t=t.replace(/-\\D/g,function(t){return t.charAt(1).toUpperCase()}),i[t]})(\"font-family\"))||\"times\",e[\"font-style\"]=a[r(\"font-style\")]||\"normal\",e[\"text-align\"]=s[r(\"text-align\")]||\"left\",\"bold\"===(n=l[r(\"font-weight\")]||\"normal\")&&(\"normal\"===e[\"font-style\"]?e[\"font-style\"]=n:e[\"font-style\"]=n+e[\"font-style\"]),e[\"font-size\"]=p(r(\"font-size\"))||1,e[\"line-height\"]=p(r(\"line-height\"))||1,e.display=\"inline\"===r(\"display\")?\"inline\":\"block\",n=\"block\"===e.display,e[\"margin-top\"]=n&&p(r(\"margin-top\"))||0,e[\"margin-bottom\"]=n&&p(r(\"margin-bottom\"))||0,e[\"padding-top\"]=n&&p(r(\"padding-top\"))||0,e[\"padding-bottom\"]=n&&p(r(\"padding-bottom\"))||0,e[\"margin-left\"]=n&&p(r(\"margin-left\"))||0,e[\"margin-right\"]=n&&p(r(\"margin-right\"))||0,e[\"padding-left\"]=n&&p(r(\"padding-left\"))||0,e[\"padding-right\"]=n&&p(r(\"padding-right\"))||0,e[\"page-break-before\"]=r(\"page-break-before\")||\"auto\",e.float=h[r(\"cssFloat\")]||\"none\",e.clear=u[r(\"clear\")]||\"none\",e.color=r(\"color\"),e},C=function(t,e,n){var r,i,o,a,s;if(o=!1,a=i=void 0,r=n[\"#\"+t.id])if(\"function\"==typeof r)o=r(t,e);else for(i=0,a=r.length;!o&&i!==a;)o=r[i](t,e),i++;if(r=n[t.nodeName],!o&&r)if(\"function\"==typeof r)o=r(t,e);else for(i=0,a=r.length;!o&&i!==a;)o=r[i](t,e),i++;for(s=\"string\"==typeof t.className?t.className.split(\" \"):[],i=0;i<s.length;i++)if(r=n[\".\"+s[i]],!o&&r)if(\"function\"==typeof r)o=r(t,e);else for(i=0,a=r.length;!o&&i!==a;)o=r[i](t,e),i++;return o},j=function(t,e){var n,r,i,o,a,s,l,h,u;for(n=[],r=[],i=0,u=t.rows[0].cells.length,l=t.clientWidth;i<u;)h=t.rows[0].cells[i],r[i]={name:h.textContent.toLowerCase().replace(/\\s+/g,\"\"),prompt:h.textContent.replace(/\\r?\\n/g,\"\"),width:h.clientWidth/l*e.pdf.internal.pageSize.getWidth()},i++;for(i=1;i<t.rows.length;){for(s=t.rows[i],a={},o=0;o<s.cells.length;)a[r[o].name]=s.cells[o].textContent.replace(/\\r?\\n/g,\"\"),o++;n.push(a),i++}return{rows:n,headers:r}};var E={SCRIPT:1,STYLE:1,NOSCRIPT:1,OBJECT:1,EMBED:1,SELECT:1},M=1;k=function(t,i,e){var n,r,o,a,s,l,h,u;for(r=t.childNodes,n=void 0,(s=\"block\"===(o=I(t)).display)&&(i.setBlockBoundary(),i.setBlockStyle(o)),a=0,l=r.length;a<l;){if(\"object\"===se(n=r[a])){if(i.executeWatchFunctions(n),1===n.nodeType&&\"HEADER\"===n.nodeName){var c=n,f=i.pdf.margins_doc.top;i.pdf.internal.events.subscribe(\"addPage\",function(t){i.y=f,k(c,i,e),i.pdf.margins_doc.top=i.y+10,i.y+=10},!1)}if(8===n.nodeType&&\"#comment\"===n.nodeName)~n.textContent.indexOf(\"ADD_PAGE\")&&(i.pdf.addPage(),i.y=i.pdf.margins_doc.top);else if(1!==n.nodeType||E[n.nodeName])if(3===n.nodeType){var p=n.nodeValue;if(n.nodeValue&&\"LI\"===n.parentNode.nodeName)if(\"OL\"===n.parentNode.parentNode.nodeName)p=M+++\". \"+p;else{var d=o[\"font-size\"],g=(3-.75*d)*i.pdf.internal.scaleFactor,m=.75*d*i.pdf.internal.scaleFactor,y=1.74*d/i.pdf.internal.scaleFactor;u=function(t,e){this.pdf.circle(t+g,e+m,y,\"FD\")}}16&n.ownerDocument.body.compareDocumentPosition(n)&&i.addText(p,o)}else\"string\"==typeof n&&i.addText(n,o);else{var v;if(\"IMG\"===n.nodeName){var w=n.getAttribute(\"src\");v=B[i.pdf.sHashCode(w)||w]}if(v){i.pdf.internal.pageSize.getHeight()-i.pdf.margins_doc.bottom<i.y+n.height&&i.y>i.pdf.margins_doc.top&&(i.pdf.addPage(),i.y=i.pdf.margins_doc.top,i.executeWatchFunctions(n));var b=I(n),x=i.x,N=12/i.pdf.internal.scaleFactor,L=(b[\"margin-left\"]+b[\"padding-left\"])*N,A=(b[\"margin-right\"]+b[\"padding-right\"])*N,S=(b[\"margin-top\"]+b[\"padding-top\"])*N,_=(b[\"margin-bottom\"]+b[\"padding-bottom\"])*N;void 0!==b.float&&\"right\"===b.float?x+=i.settings.width-n.width-A:x+=L,i.pdf.addImage(v,x,i.y+S,n.width,n.height),v=void 0,\"right\"===b.float||\"left\"===b.float?(i.watchFunctions.push(function(t,e,n,r){return i.y>=e?(i.x+=t,i.settings.width+=n,!0):!!(r&&1===r.nodeType&&!E[r.nodeName]&&i.x+r.width>i.pdf.margins_doc.left+i.pdf.margins_doc.width)&&(i.x+=t,i.y=e,i.settings.width+=n,!0)}.bind(this,\"left\"===b.float?-n.width-L-A:0,i.y+n.height+S+_,n.width)),i.watchFunctions.push(function(t,e,n){return!(i.y<t&&e===i.pdf.internal.getNumberOfPages())||1===n.nodeType&&\"both\"===I(n).clear&&(i.y=t,!0)}.bind(this,i.y+n.height,i.pdf.internal.getNumberOfPages())),i.settings.width-=n.width+L+A,\"left\"===b.float&&(i.x+=n.width+L+A)):i.y+=n.height+S+_}else if(\"TABLE\"===n.nodeName)h=j(n,i),i.y+=10,i.pdf.table(i.x,i.y,h.rows,h.headers,{autoSize:!1,printHeaders:e.printHeaders,margins:i.pdf.margins_doc,css:I(n)}),i.y=i.pdf.lastCellPos.y+i.pdf.lastCellPos.h+20;else if(\"OL\"===n.nodeName||\"UL\"===n.nodeName)M=1,C(n,i,e)||k(n,i,e),i.y+=10;else if(\"LI\"===n.nodeName){var F=i.x;i.x+=20/i.pdf.internal.scaleFactor,i.y+=3,C(n,i,e)||k(n,i,e),i.x=F}else\"BR\"===n.nodeName?(i.y+=o[\"font-size\"]*i.pdf.internal.scaleFactor,i.addText(\"\\u2028\",P(o))):C(n,i,e)||k(n,i,e)}}a++}if(e.outY=i.y,s)return i.setBlockBoundary(u)},B={},d=function(t,o,e,n){var a,r=t.getElementsByTagName(\"img\"),i=r.length,s=0;function l(){o.pdf.internal.events.publish(\"imagesLoaded\"),n(a)}function h(e,n,r){if(e){var i=new Image;a=++s,i.crossOrigin=\"\",i.onerror=i.onload=function(){if(i.complete&&(0===i.src.indexOf(\"data:image/\")&&(i.width=n||i.width||0,i.height=r||i.height||0),i.width+i.height)){var t=o.pdf.sHashCode(e)||e;B[t]=B[t]||i}--s||l()},i.src=e}}for(;i--;)h(r[i].getAttribute(\"src\"),r[i].width,r[i].height);return s||l()},g=function(t,o,a){var s=t.getElementsByTagName(\"footer\");if(0<s.length){s=s[0];var e=o.pdf.internal.write,n=o.y;o.pdf.internal.write=function(){},k(s,o,a);var l=Math.ceil(o.y-n)+5;o.y=n,o.pdf.internal.write=e,o.pdf.margins_doc.bottom+=l;for(var r=function(t){var e=void 0!==t?t.pageNumber:1,n=o.y;o.y=o.pdf.internal.pageSize.getHeight()-o.pdf.margins_doc.bottom,o.pdf.margins_doc.bottom-=l;for(var r=s.getElementsByTagName(\"span\"),i=0;i<r.length;++i)-1<(\" \"+r[i].className+\" \").replace(/[\\n\\t]/g,\" \").indexOf(\" pageCounter \")&&(r[i].innerHTML=e),-1<(\" \"+r[i].className+\" \").replace(/[\\n\\t]/g,\" \").indexOf(\" totalPages \")&&(r[i].innerHTML=\"###jsPDFVarTotalPages###\");k(s,o,a),o.pdf.margins_doc.bottom+=l,o.y=n},i=s.getElementsByTagName(\"span\"),h=0;h<i.length;++h)-1<(\" \"+i[h].className+\" \").replace(/[\\n\\t]/g,\" \").indexOf(\" totalPages \")&&o.pdf.internal.events.subscribe(\"htmlRenderingFinished\",o.pdf.putTotalPages.bind(o.pdf,\"###jsPDFVarTotalPages###\"),!0);o.pdf.internal.events.subscribe(\"addPage\",r,!1),r(),E.FOOTER=1}},m=function(t,e,n,r,i,o){if(!e)return!1;var a,s,l,h;\"string\"==typeof e||e.parentNode||(e=\"\"+e.innerHTML),\"string\"==typeof e&&(a=e.replace(/<\\/?script[^>]*?>/gi,\"\"),h=\"jsPDFhtmlText\"+Date.now().toString()+(1e3*Math.random()).toFixed(0),(l=document.createElement(\"div\")).style.cssText=\"position: absolute !important;clip: rect(1px 1px 1px 1px); /* IE6, IE7 */clip: rect(1px, 1px, 1px, 1px);padding:0 !important;border:0 !important;height: 1px !important;width: 1px !important; top:auto;left:-100px;overflow: hidden;\",l.innerHTML='<iframe style=\"height:1px;width:1px\" name=\"'+h+'\" />',document.body.appendChild(l),(s=window.frames[h]).document.open(),s.document.writeln(a),s.document.close(),e=s.document.body);var u,c=new f(t,n,r,i);return d.call(this,e,c,i.elementHandlers,function(t){g(e,c,i.elementHandlers),k(e,c,i.elementHandlers),c.pdf.internal.events.publish(\"htmlRenderingFinished\"),u=c.dispose(),\"function\"==typeof o?o(u):t&&console.error(\"jsPDF Warning: rendering issues? provide a callback to fromHTML!\")}),u||{x:c.x,y:c.y}},(f=function(t,e,n,r){return this.pdf=t,this.x=e,this.y=n,this.settings=r,this.watchFunctions=[],this.init(),this}).prototype.init=function(){return this.paragraph={text:[],style:[]},this.pdf.internal.write(\"q\")},f.prototype.dispose=function(){return this.pdf.internal.write(\"Q\"),{x:this.x,y:this.y,ready:!0}},f.prototype.executeWatchFunctions=function(t){var e=!1,n=[];if(0<this.watchFunctions.length){for(var r=0;r<this.watchFunctions.length;++r)!0===this.watchFunctions[r](t)?e=!0:n.push(this.watchFunctions[r]);this.watchFunctions=n}return e},f.prototype.splitFragmentsIntoLines=function(t,e){var n,r,i,o,a,s,l,h,u,c,f,p,d,g;for(12,c=this.pdf.internal.scaleFactor,o={},s=l=h=g=a=i=u=r=void 0,p=[f=[]],n=0,d=this.settings.width;t.length;)if(a=t.shift(),g=e.shift(),a)if((i=o[(r=g[\"font-family\"])+(u=g[\"font-style\"])])||(i=this.pdf.internal.getFont(r,u).metadata.Unicode,o[r+u]=i),h={widths:i.widths,kerning:i.kerning,fontSize:12*g[\"font-size\"],textIndent:n},l=this.pdf.getStringUnitWidth(a,h)*h.fontSize/c,\"\\u2028\"==a)f=[],p.push(f);else if(d<n+l){for(s=this.pdf.splitTextToSize(a,d,h),f.push([s.shift(),g]);s.length;)f=[[s.shift(),g]],p.push(f);n=this.pdf.getStringUnitWidth(f[0][0],h)*h.fontSize/c}else f.push([a,g]),n+=l;if(void 0!==g[\"text-align\"]&&(\"center\"===g[\"text-align\"]||\"right\"===g[\"text-align\"]||\"justify\"===g[\"text-align\"]))for(var m=0;m<p.length;++m){var y=this.pdf.getStringUnitWidth(p[m][0][0],h)*h.fontSize/c;0<m&&(p[m][0][1]=P(p[m][0][1]));var v=d-y;if(\"right\"===g[\"text-align\"])p[m][0][1][\"margin-left\"]=v;else if(\"center\"===g[\"text-align\"])p[m][0][1][\"margin-left\"]=v/2;else if(\"justify\"===g[\"text-align\"]){var w=p[m][0][0].split(\" \").length-1;p[m][0][1][\"word-spacing\"]=v/w,m===p.length-1&&(p[m][0][1][\"word-spacing\"]=0)}}return p},f.prototype.RenderTextFragment=function(t,e){var n,r;r=0,this.pdf.internal.pageSize.getHeight()-this.pdf.margins_doc.bottom<this.y+this.pdf.internal.getFontSize()&&(this.pdf.internal.write(\"ET\",\"Q\"),this.pdf.addPage(),this.y=this.pdf.margins_doc.top,this.pdf.internal.write(\"q\",\"BT\",this.getPdfColor(e.color),this.pdf.internal.getCoordinateString(this.x),this.pdf.internal.getVerticalCoordinateString(this.y),\"Td\"),r=Math.max(r,e[\"line-height\"],e[\"font-size\"]),this.pdf.internal.write(0,(-12*r).toFixed(2),\"Td\")),n=this.pdf.internal.getFont(e[\"font-family\"],e[\"font-style\"]);var i=this.getPdfColor(e.color);i!==this.lastTextColor&&(this.pdf.internal.write(i),this.lastTextColor=i),void 0!==e[\"word-spacing\"]&&0<e[\"word-spacing\"]&&this.pdf.internal.write(e[\"word-spacing\"].toFixed(2),\"Tw\"),this.pdf.internal.write(\"/\"+n.id,(12*e[\"font-size\"]).toFixed(2),\"Tf\",\"(\"+this.pdf.internal.pdfEscape(t)+\") Tj\"),void 0!==e[\"word-spacing\"]&&this.pdf.internal.write(0,\"Tw\")},f.prototype.getPdfColor=function(t){var e,n,r,i=/rgb\\s*\\(\\s*(\\d+),\\s*(\\d+),\\s*(\\d+\\s*)\\)/.exec(t);if(null!=i)e=parseInt(i[1]),n=parseInt(i[2]),r=parseInt(i[3]);else{if(\"string\"==typeof t&&\"#\"!=t.charAt(0)){var o=new RGBColor(t);t=o.ok?o.toHex():\"#000000\"}e=t.substring(1,3),e=parseInt(e,16),n=t.substring(3,5),n=parseInt(n,16),r=t.substring(5,7),r=parseInt(r,16)}if(\"string\"==typeof e&&/^#[0-9A-Fa-f]{6}$/.test(e)){var a=parseInt(e.substr(1),16);e=a>>16&255,n=a>>8&255,r=255&a}var s=this.f3;return 0===e&&0===n&&0===r||void 0===n?s(e/255)+\" g\":[s(e/255),s(n/255),s(r/255),\"rg\"].join(\" \")},f.prototype.f3=function(t){return t.toFixed(3)},f.prototype.renderParagraph=function(t){var e,n,r,i,o,a,s,l,h,u,c,f,p;if(r=w(this.paragraph.text),f=this.paragraph.style,e=this.paragraph.blockstyle,this.paragraph.priorblockstyle||{},this.paragraph={text:[],style:[],blockstyle:{},priorblockstyle:e},r.join(\"\").trim()){s=this.splitFragmentsIntoLines(r,f),l=a=void 0,n=12/this.pdf.internal.scaleFactor,this.priorMarginBottom=this.priorMarginBottom||0,c=(Math.max((e[\"margin-top\"]||0)-this.priorMarginBottom,0)+(e[\"padding-top\"]||0))*n,u=((e[\"margin-bottom\"]||0)+(e[\"padding-bottom\"]||0))*n,this.priorMarginBottom=e[\"margin-bottom\"]||0,\"always\"===e[\"page-break-before\"]&&(this.pdf.addPage(),this.y=0,c=((e[\"margin-top\"]||0)+(e[\"padding-top\"]||0))*n),h=this.pdf.internal.write,o=i=void 0,this.y+=c,h(\"q\",\"BT 0 g\",this.pdf.internal.getCoordinateString(this.x),this.pdf.internal.getVerticalCoordinateString(this.y),\"Td\");for(var d=0;s.length;){for(i=l=0,o=(a=s.shift()).length;i!==o;)a[i][0].trim()&&(l=Math.max(l,a[i][1][\"line-height\"],a[i][1][\"font-size\"]),p=7*a[i][1][\"font-size\"]),i++;var g=0,m=0;for(void 0!==a[0][1][\"margin-left\"]&&0<a[0][1][\"margin-left\"]&&(g=(m=this.pdf.internal.getCoordinateString(a[0][1][\"margin-left\"]))-d,d=m),h(g+Math.max(e[\"margin-left\"]||0,0)*n,(-12*l).toFixed(2),\"Td\"),i=0,o=a.length;i!==o;)a[i][0]&&this.RenderTextFragment(a[i][0],a[i][1]),i++;if(this.y+=l*n,this.executeWatchFunctions(a[0][1])&&0<s.length){var y=[],v=[];s.forEach(function(t){for(var e=0,n=t.length;e!==n;)t[e][0]&&(y.push(t[e][0]+\" \"),v.push(t[e][1])),++e}),s=this.splitFragmentsIntoLines(w(y),v),h(\"ET\",\"Q\"),h(\"q\",\"BT 0 g\",this.pdf.internal.getCoordinateString(this.x),this.pdf.internal.getVerticalCoordinateString(this.y),\"Td\")}}return t&&\"function\"==typeof t&&t.call(this,this.x-9,this.y-p/2),h(\"ET\",\"Q\"),this.y+=u}},f.prototype.setBlockBoundary=function(t){return this.renderParagraph(t)},f.prototype.setBlockStyle=function(t){return this.paragraph.blockstyle=t},f.prototype.addText=function(t,e){return this.paragraph.text.push(t),this.paragraph.style.push(e)},i={helvetica:\"helvetica\",\"sans-serif\":\"helvetica\",\"times new roman\":\"times\",serif:\"times\",times:\"times\",monospace:\"courier\",courier:\"courier\"},l={100:\"normal\",200:\"normal\",300:\"normal\",400:\"normal\",500:\"bold\",600:\"bold\",700:\"bold\",800:\"bold\",900:\"bold\",normal:\"normal\",bold:\"bold\",bolder:\"bold\",lighter:\"normal\"},a={normal:\"normal\",italic:\"italic\",oblique:\"italic\"},s={left:\"left\",right:\"right\",center:\"center\",justify:\"justify\"},h={none:\"none\",right:\"right\",left:\"left\"},u={none:\"none\",both:\"both\"},n={normal:1},t.fromHTML=function(t,e,n,r,i,o){return this.margins_doc=o||{top:0,bottom:0},r||(r={}),r.elementHandlers||(r.elementHandlers={}),m(this,t,isNaN(e)?4:e,isNaN(n)?4:n,r,i)}}(lt.API),lt.API,(\"undefined\"!=typeof window&&window||\"undefined\"!=typeof global&&global).html2pdf=function(t,a,e){var n=a.canvas;if(n){var r,i;if((n.pdf=a).annotations={_nameMap:[],createAnnotation:function(t,e){var n,r=a.context2d._wrapX(e.left),i=a.context2d._wrapY(e.top),o=(a.context2d._page(e.top),t.indexOf(\"#\"));n=0<=o?{name:t.substring(o+1)}:{url:t},a.link(r,i,e.right-e.left,e.bottom-e.top,n)},setName:function(t,e){var n=a.context2d._wrapX(e.left),r=a.context2d._wrapY(e.top),i=a.context2d._page(e.top);this._nameMap[t]={page:i,x:n,y:r}}},n.annotations=a.annotations,a.context2d._pageBreakAt=function(t){this.pageBreaks.push(t)},a.context2d._gotoPage=function(t){for(;a.internal.getNumberOfPages()<t;)a.addPage();a.setPage(t)},\"string\"==typeof t){t=t.replace(/<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi,\"\");var o,s,l=document.createElement(\"iframe\");document.body.appendChild(l),null!=(o=l.contentDocument)&&null!=o||(o=l.contentWindow.document),o.open(),o.write(t),o.close(),r=o.body,s=o.body||{},t=o.documentElement||{},i=Math.max(s.scrollHeight,s.offsetHeight,t.clientHeight,t.scrollHeight,t.offsetHeight)}else s=(r=t).body||{},i=Math.max(s.scrollHeight,s.offsetHeight,t.clientHeight,t.scrollHeight,t.offsetHeight);var h={async:!0,allowTaint:!0,backgroundColor:\"#ffffff\",canvas:n,imageTimeout:15e3,logging:!0,proxy:null,removeContainer:!0,foreignObjectRendering:!1,useCORS:!1,windowHeight:i=a.internal.pageSize.getHeight(),scrollY:i};a.context2d.pageWrapYEnabled=!0,a.context2d.pageWrapY=a.internal.pageSize.getHeight(),html2canvas(r,h).then(function(t){e&&(l&&l.parentElement.removeChild(l),e(a))})}else alert(\"jsPDF canvas plugin not installed\")},window.tmp=html2pdf,function(f){var r=f.BlobBuilder||f.WebKitBlobBuilder||f.MSBlobBuilder||f.MozBlobBuilder;f.URL=f.URL||f.webkitURL||function(t,e){return(e=document.createElement(\"a\")).href=t,e};var n=f.Blob,p=URL.createObjectURL,d=URL.revokeObjectURL,o=f.Symbol&&f.Symbol.toStringTag,t=!1,e=!1,g=!!f.ArrayBuffer,i=r&&r.prototype.append&&r.prototype.getBlob;try{t=2===new Blob([\"ä\"]).size,e=2===new Blob([new Uint8Array([1,2])]).size}catch(t){}function a(t){return t.map(function(t){if(t.buffer instanceof ArrayBuffer){var e=t.buffer;if(t.byteLength!==e.byteLength){var n=new Uint8Array(t.byteLength);n.set(new Uint8Array(e,t.byteOffset,t.byteLength)),e=n.buffer}return e}return t})}function s(t,e){e=e||{};var n=new r;return a(t).forEach(function(t){n.append(t)}),e.type?n.getBlob(e.type):n.getBlob()}function l(t,e){return new n(a(t),e||{})}if(f.Blob&&(s.prototype=Blob.prototype,l.prototype=Blob.prototype),o)try{File.prototype[o]=\"File\",Blob.prototype[o]=\"Blob\",FileReader.prototype[o]=\"FileReader\"}catch(t){}function h(){var t=!!f.ActiveXObject||\"-ms-scroll-limit\"in document.documentElement.style&&\"-ms-ime-align\"in document.documentElement.style,e=f.XMLHttpRequest&&f.XMLHttpRequest.prototype.send;t&&e&&(XMLHttpRequest.prototype.send=function(t){t instanceof Blob&&this.setRequestHeader(\"Content-Type\",t.type),e.call(this,t)});try{new File([],\"\")}catch(t){try{var n=new Function('class File extends Blob {constructor(chunks, name, opts) {opts = opts || {};super(chunks, opts || {});this.name = name;this.lastModifiedDate = opts.lastModified ? new Date(opts.lastModified) : new Date;this.lastModified = +this.lastModifiedDate;}};return new File([], \"\"), File')();f.File=n}catch(t){n=function(t,e,n){var r=new Blob(t,n),i=n&&void 0!==n.lastModified?new Date(n.lastModified):new Date;return r.name=e,r.lastModifiedDate=i,r.lastModified=+i,r.toString=function(){return\"[object File]\"},o&&(r[o]=\"File\"),r};f.File=n}}}t?(h(),f.Blob=e?f.Blob:l):i?(h(),f.Blob=s):function(){function a(t){for(var e=[],n=0;n<t.length;n++){var r=t.charCodeAt(n);r<128?e.push(r):r<2048?e.push(192|r>>6,128|63&r):r<55296||57344<=r?e.push(224|r>>12,128|r>>6&63,128|63&r):(n++,r=65536+((1023&r)<<10|1023&t.charCodeAt(n)),e.push(240|r>>18,128|r>>12&63,128|r>>6&63,128|63&r))}return e}function e(t){var e,n,r,i,o,a;for(e=\"\",r=t.length,n=0;n<r;)switch((i=t[n++])>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:e+=String.fromCharCode(i);break;case 12:case 13:o=t[n++],e+=String.fromCharCode((31&i)<<6|63&o);break;case 14:o=t[n++],a=t[n++],e+=String.fromCharCode((15&i)<<12|(63&o)<<6|(63&a)<<0)}return e}function s(t){for(var e=new Array(t.byteLength),n=new Uint8Array(t),r=e.length;r--;)e[r]=n[r];return e}function n(t){for(var e=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\",n=[],r=0;r<t.length;r+=3){var i=t[r],o=r+1<t.length,a=o?t[r+1]:0,s=r+2<t.length,l=s?t[r+2]:0,h=i>>2,u=(3&i)<<4|a>>4,c=(15&a)<<2|l>>6,f=63&l;s||(f=64,o||(c=64)),n.push(e[h],e[u],e[c],e[f])}return n.join(\"\")}var t=Object.create||function(t){function e(){}return e.prototype=t,new e};if(g)var r=[\"[object Int8Array]\",\"[object Uint8Array]\",\"[object Uint8ClampedArray]\",\"[object Int16Array]\",\"[object Uint16Array]\",\"[object Int32Array]\",\"[object Uint32Array]\",\"[object Float32Array]\",\"[object Float64Array]\"],l=ArrayBuffer.isView||function(t){return t&&-1<r.indexOf(Object.prototype.toString.call(t))};function h(t,e){for(var n=0,r=(t=t||[]).length;n<r;n++){var i=t[n];i instanceof h?t[n]=i._buffer:\"string\"==typeof i?t[n]=a(i):g&&(ArrayBuffer.prototype.isPrototypeOf(i)||l(i))?t[n]=s(i):g&&(o=i)&&DataView.prototype.isPrototypeOf(o)?t[n]=s(i.buffer):t[n]=a(String(i))}var o;this._buffer=[].concat.apply([],t),this.size=this._buffer.length,this.type=e&&e.type||\"\"}function i(t,e,n){var r=h.call(this,t,n=n||{})||this;return r.name=e,r.lastModifiedDate=n.lastModified?new Date(n.lastModified):new Date,r.lastModified=+r.lastModifiedDate,r}if(h.prototype.slice=function(t,e,n){return new h([this._buffer.slice(t||0,e||this._buffer.length)],{type:n})},h.prototype.toString=function(){return\"[object Blob]\"},(i.prototype=t(h.prototype)).constructor=i,Object.setPrototypeOf)Object.setPrototypeOf(i,h);else try{i.__proto__=h}catch(t){}function o(){if(!(this instanceof o))throw new TypeError(\"Failed to construct 'FileReader': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");var n=document.createDocumentFragment();this.addEventListener=n.addEventListener,this.dispatchEvent=function(t){var e=this[\"on\"+t.type];\"function\"==typeof e&&e(t),n.dispatchEvent(t)},this.removeEventListener=n.removeEventListener}function u(t,e,n){if(!(e instanceof h))throw new TypeError(\"Failed to execute '\"+n+\"' on 'FileReader': parameter 1 is not of type 'Blob'.\");t.result=\"\",setTimeout(function(){this.readyState=o.LOADING,t.dispatchEvent(new Event(\"load\")),t.dispatchEvent(new Event(\"loadend\"))})}i.prototype.toString=function(){return\"[object File]\"},o.EMPTY=0,o.LOADING=1,o.DONE=2,o.prototype.error=null,o.prototype.onabort=null,o.prototype.onerror=null,o.prototype.onload=null,o.prototype.onloadend=null,o.prototype.onloadstart=null,o.prototype.onprogress=null,o.prototype.readAsDataURL=function(t){u(this,t,\"readAsDataURL\"),this.result=\"data:\"+t.type+\";base64,\"+n(t._buffer)},o.prototype.readAsText=function(t){u(this,t,\"readAsText\"),this.result=e(t._buffer)},o.prototype.readAsArrayBuffer=function(t){u(this,t,\"readAsText\"),this.result=t._buffer.slice()},o.prototype.abort=function(){},URL.createObjectURL=function(t){return t instanceof h?\"data:\"+t.type+\";base64,\"+n(t._buffer):p.call(URL,t)},URL.revokeObjectURL=function(t){d&&d.call(URL,t)};var c=f.XMLHttpRequest&&f.XMLHttpRequest.prototype.send;c&&(XMLHttpRequest.prototype.send=function(t){t instanceof h?(this.setRequestHeader(\"Content-Type\",t.type),c.call(this,e(t._buffer))):c.call(this,t)}),f.FileReader=o,f.File=i,f.Blob=h}()}(\"undefined\"!=typeof self&&self||\"undefined\"!=typeof window&&window||\"undefined\"!=typeof global&&global||Function('return typeof this === \"object\" && this.content')()||Function(\"return this\")());var ht,ut,ct,ft,pt,dt,gt,mt,yt,vt,wt,bt,xt,Nt,Lt,le=le||function(s){if(!(void 0===s||\"undefined\"!=typeof navigator&&/MSIE [1-9]\\./.test(navigator.userAgent))){var t=s.document,l=function(){return s.URL||s.webkitURL||s},h=t.createElementNS(\"http://www.w3.org/1999/xhtml\",\"a\"),u=\"download\"in h,c=/constructor/i.test(s.HTMLElement)||s.safari,f=/CriOS\\/[\\d]+/.test(navigator.userAgent),p=s.setImmediate||s.setTimeout,d=function(t){p(function(){throw t},0)},g=function(t){setTimeout(function(){\"string\"==typeof t?l().revokeObjectURL(t):t.remove()},4e4)},m=function(t){return/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(t.type)?new Blob([String.fromCharCode(65279),t],{type:t.type}):t},r=function(t,n,e){e||(t=m(t));var r,i=this,o=\"application/octet-stream\"===t.type,a=function(){!function(t,e,n){for(var r=(e=[].concat(e)).length;r--;){var i=t[\"on\"+e[r]];if(\"function\"==typeof i)try{i.call(t,n||t)}catch(t){d(t)}}}(i,\"writestart progress write writeend\".split(\" \"))};if(i.readyState=i.INIT,u)return r=l().createObjectURL(t),void p(function(){var t,e;h.href=r,h.download=n,t=h,e=new MouseEvent(\"click\"),t.dispatchEvent(e),a(),g(r),i.readyState=i.DONE},0);!function(){if((f||o&&c)&&s.FileReader){var e=new FileReader;return e.onloadend=function(){var t=f?e.result:e.result.replace(/^data:[^;]*;/,\"data:attachment/file;\");s.open(t,\"_blank\")||(s.location.href=t),t=void 0,i.readyState=i.DONE,a()},e.readAsDataURL(t),i.readyState=i.INIT}r||(r=l().createObjectURL(t)),o?s.location.href=r:s.open(r,\"_blank\")||(s.location.href=r);i.readyState=i.DONE,a(),g(r)}()},e=r.prototype;return\"undefined\"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(t,e,n){return e=e||t.name||\"download\",n||(t=m(t)),navigator.msSaveOrOpenBlob(t,e)}:(e.abort=function(){},e.readyState=e.INIT=0,e.WRITING=1,e.DONE=2,e.error=e.onwritestart=e.onprogress=e.onwrite=e.onabort=e.onerror=e.onwriteend=null,function(t,e,n){return new r(t,e||t.name||\"download\",n)})}}(\"undefined\"!=typeof self&&self||\"undefined\"!=typeof window&&window||void 0);function At(x){var t=0;if(71!==x[t++]||73!==x[t++]||70!==x[t++]||56!==x[t++]||56!=(x[t++]+1&253)||97!==x[t++])throw\"Invalid GIF 87a/89a header.\";var N=x[t++]|x[t++]<<8,e=x[t++]|x[t++]<<8,n=x[t++],r=n>>7,i=1<<(7&n)+1;x[t++];x[t++];var o=null;r&&(o=t,t+=3*i);var a=!0,s=[],l=0,h=null,u=0,c=null;for(this.width=N,this.height=e;a&&t<x.length;)switch(x[t++]){case 33:switch(x[t++]){case 255:if(11!==x[t]||78==x[t+1]&&69==x[t+2]&&84==x[t+3]&&83==x[t+4]&&67==x[t+5]&&65==x[t+6]&&80==x[t+7]&&69==x[t+8]&&50==x[t+9]&&46==x[t+10]&&48==x[t+11]&&3==x[t+12]&&1==x[t+13]&&0==x[t+16])t+=14,c=x[t++]|x[t++]<<8,t++;else for(t+=12;;){if(0===(A=x[t++]))break;t+=A}break;case 249:if(4!==x[t++]||0!==x[t+4])throw\"Invalid graphics extension block.\";var f=x[t++];l=x[t++]|x[t++]<<8,h=x[t++],0==(1&f)&&(h=null),u=f>>2&7,t++;break;case 254:for(;;){if(0===(A=x[t++]))break;t+=A}break;default:throw\"Unknown graphic control label: 0x\"+x[t-1].toString(16)}break;case 44:var p=x[t++]|x[t++]<<8,d=x[t++]|x[t++]<<8,g=x[t++]|x[t++]<<8,m=x[t++]|x[t++]<<8,y=x[t++],v=y>>6&1,w=o,b=!1;if(y>>7){b=!0;w=t,t+=3*(1<<(7&y)+1)}var L=t;for(t++;;){var A;if(0===(A=x[t++]))break;t+=A}s.push({x:p,y:d,width:g,height:m,has_local_palette:b,palette_offset:w,data_offset:L,data_length:t-L,transparent_index:h,interlaced:!!v,delay:l,disposal:u});break;case 59:a=!1;break;default:throw\"Unknown gif block: 0x\"+x[t-1].toString(16)}this.numFrames=function(){return s.length},this.loopCount=function(){return c},this.frameInfo=function(t){if(t<0||t>=s.length)throw\"Frame index out of range.\";return s[t]},this.decodeAndBlitFrameBGRA=function(t,e){var n=this.frameInfo(t),r=n.width*n.height,i=new Uint8Array(r);St(x,n.data_offset,i,r);var o=n.palette_offset,a=n.transparent_index;null===a&&(a=256);var s=n.width,l=N-s,h=s,u=4*(n.y*N+n.x),c=4*((n.y+n.height)*N+n.x),f=u,p=4*l;!0===n.interlaced&&(p+=4*(s+l)*7);for(var d=8,g=0,m=i.length;g<m;++g){var y=i[g];if(0===h&&(h=s,c<=(f+=p)&&(p=l+4*(s+l)*(d-1),f=u+(s+l)*(d<<1),d>>=1)),y===a)f+=4;else{var v=x[o+3*y],w=x[o+3*y+1],b=x[o+3*y+2];e[f++]=b,e[f++]=w,e[f++]=v,e[f++]=255}--h}},this.decodeAndBlitFrameRGBA=function(t,e){var n=this.frameInfo(t),r=n.width*n.height,i=new Uint8Array(r);St(x,n.data_offset,i,r);var o=n.palette_offset,a=n.transparent_index;null===a&&(a=256);var s=n.width,l=N-s,h=s,u=4*(n.y*N+n.x),c=4*((n.y+n.height)*N+n.x),f=u,p=4*l;!0===n.interlaced&&(p+=4*(s+l)*7);for(var d=8,g=0,m=i.length;g<m;++g){var y=i[g];if(0===h&&(h=s,c<=(f+=p)&&(p=l+4*(s+l)*(d-1),f=u+(s+l)*(d<<1),d>>=1)),y===a)f+=4;else{var v=x[o+3*y],w=x[o+3*y+1],b=x[o+3*y+2];e[f++]=v,e[f++]=w,e[f++]=b,e[f++]=255}--h}}}function St(t,e,n,r){for(var i=t[e++],o=1<<i,a=o+1,s=a+1,l=i+1,h=(1<<l)-1,u=0,c=0,f=0,p=t[e++],d=new Int32Array(4096),g=null;;){for(;u<16&&0!==p;)c|=t[e++]<<u,u+=8,1===p?p=t[e++]:--p;if(u<l)break;var m=c&h;if(c>>=l,u-=l,m!==o){if(m===a)break;for(var y=m<s?m:g,v=0,w=y;o<w;)w=d[w]>>8,++v;var b=w;if(r<f+v+(y!==m?1:0))return void console.log(\"Warning, gif stream longer than expected.\");n[f++]=b;var x=f+=v;for(y!==m&&(n[f++]=b),w=y;v--;)w=d[w],n[--x]=255&w,w>>=8;null!==g&&s<4096&&(d[s++]=g<<8|b,h+1<=s&&l<12&&(++l,h=h<<1|1)),g=m}else s=a+1,h=(1<<(l=i+1))-1,g=null}return f!==r&&console.log(\"Warning, gif stream shorter than expected.\"),n}try{exports.GifWriter=function(y,t,e,n){var v=0,r=void 0===(n=void 0===n?{}:n).loop?null:n.loop,w=void 0===n.palette?null:n.palette;if(t<=0||e<=0||65535<t||65535<e)throw\"Width/Height invalid.\";function b(t){var e=t.length;if(e<2||256<e||e&e-1)throw\"Invalid code/color length, must be power of 2 and 2 .. 256.\";return e}y[v++]=71,y[v++]=73,y[v++]=70,y[v++]=56,y[v++]=57,y[v++]=97;var i=0,o=0;if(null!==w){for(var a=b(w);a>>=1;)++i;if(a=1<<i,--i,void 0!==n.background){if(a<=(o=n.background))throw\"Background index out of range.\";if(0===o)throw\"Background index explicitly passed as 0.\"}}if(y[v++]=255&t,y[v++]=t>>8&255,y[v++]=255&e,y[v++]=e>>8&255,y[v++]=(null!==w?128:0)|i,y[v++]=o,y[v++]=0,null!==w)for(var s=0,l=w.length;s<l;++s){var h=w[s];y[v++]=h>>16&255,y[v++]=h>>8&255,y[v++]=255&h}if(null!==r){if(r<0||65535<r)throw\"Loop count invalid.\";y[v++]=33,y[v++]=255,y[v++]=11,y[v++]=78,y[v++]=69,y[v++]=84,y[v++]=83,y[v++]=67,y[v++]=65,y[v++]=80,y[v++]=69,y[v++]=50,y[v++]=46,y[v++]=48,y[v++]=3,y[v++]=1,y[v++]=255&r,y[v++]=r>>8&255,y[v++]=0}var x=!1;this.addFrame=function(t,e,n,r,i,o){if(!0===x&&(--v,x=!1),o=void 0===o?{}:o,t<0||e<0||65535<t||65535<e)throw\"x/y invalid.\";if(n<=0||r<=0||65535<n||65535<r)throw\"Width/Height invalid.\";if(i.length<n*r)throw\"Not enough pixels for the frame size.\";var a=!0,s=o.palette;if(null==s&&(a=!1,s=w),null==s)throw\"Must supply either a local or global palette.\";for(var l=b(s),h=0;l>>=1;)++h;l=1<<h;var u=void 0===o.delay?0:o.delay,c=void 0===o.disposal?0:o.disposal;if(c<0||3<c)throw\"Disposal out of range.\";var f=!1,p=0;if(void 0!==o.transparent&&null!==o.transparent&&(f=!0,(p=o.transparent)<0||l<=p))throw\"Transparent color index.\";if((0!==c||f||0!==u)&&(y[v++]=33,y[v++]=249,y[v++]=4,y[v++]=c<<2|(!0===f?1:0),y[v++]=255&u,y[v++]=u>>8&255,y[v++]=p,y[v++]=0),y[v++]=44,y[v++]=255&t,y[v++]=t>>8&255,y[v++]=255&e,y[v++]=e>>8&255,y[v++]=255&n,y[v++]=n>>8&255,y[v++]=255&r,y[v++]=r>>8&255,y[v++]=!0===a?128|h-1:0,!0===a)for(var d=0,g=s.length;d<g;++d){var m=s[d];y[v++]=m>>16&255,y[v++]=m>>8&255,y[v++]=255&m}v=function(e,n,t,r){e[n++]=t;var i=n++,o=1<<t,a=o-1,s=o+1,l=s+1,h=t+1,u=0,c=0;function f(t){for(;t<=u;)e[n++]=255&c,c>>=8,u-=8,n===i+256&&(e[i]=255,i=n++)}function p(t){c|=t<<u,u+=h,f(8)}var d=r[0]&a,g={};p(o);for(var m=1,y=r.length;m<y;++m){var v=r[m]&a,w=d<<8|v,b=g[w];if(void 0===b){for(c|=d<<u,u+=h;8<=u;)e[n++]=255&c,c>>=8,u-=8,n===i+256&&(e[i]=255,i=n++);4096===l?(p(o),l=s+1,h=t+1,g={}):(1<<h<=l&&++h,g[w]=l++),d=v}else d=b}return p(d),p(s),f(1),i+1===n?e[i]=0:(e[i]=n-i-1,e[n++]=0),n}(y,v,h<2?2:h,i)},this.end=function(){return!1===x&&(y[v++]=59,x=!0),v}},exports.GifReader=At}catch(t){}\n/*\n Copyright (c) 2008, Adobe Systems Incorporated\n All rights reserved.\n\n Redistribution and use in source and binary forms, with or without \n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright notice, \n this list of conditions and the following disclaimer.\n \n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the \n documentation and/or other materials provided with the distribution.\n \n * Neither the name of Adobe Systems Incorporated nor the names of its \n contributors may be used to endorse or promote products derived from \n this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\n IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\n THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR \n CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\nfunction _t(t){var N,L,A,S,e,c=Math.floor,_=new Array(64),F=new Array(64),P=new Array(64),k=new Array(64),y=new Array(65535),v=new Array(65535),Z=new Array(64),w=new Array(64),I=[],C=0,B=7,j=new Array(64),E=new Array(64),M=new Array(64),n=new Array(256),O=new Array(2048),b=[0,1,5,6,14,15,27,28,2,4,7,13,16,26,29,42,3,8,12,17,25,30,41,43,9,11,18,24,31,40,44,53,10,19,23,32,39,45,52,54,20,22,33,38,46,51,55,60,21,34,37,47,50,56,59,61,35,36,48,49,57,58,62,63],q=[0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0],T=[0,1,2,3,4,5,6,7,8,9,10,11],R=[0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,125],D=[1,2,3,0,4,17,5,18,33,49,65,6,19,81,97,7,34,113,20,50,129,145,161,8,35,66,177,193,21,82,209,240,36,51,98,114,130,9,10,22,23,24,25,26,37,38,39,40,41,42,52,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,225,226,227,228,229,230,231,232,233,234,241,242,243,244,245,246,247,248,249,250],U=[0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0],z=[0,1,2,3,4,5,6,7,8,9,10,11],H=[0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,119],W=[0,1,2,3,17,4,5,33,49,6,18,65,81,7,97,113,19,34,50,129,8,20,66,145,161,177,193,9,35,51,82,240,21,98,114,209,10,22,36,52,225,37,241,23,24,25,26,38,39,40,41,42,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,130,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,226,227,228,229,230,231,232,233,234,242,243,244,245,246,247,248,249,250];function r(t,e){for(var n=0,r=0,i=new Array,o=1;o<=16;o++){for(var a=1;a<=t[o];a++)i[e[r]]=[],i[e[r]][0]=n,i[e[r]][1]=o,r++,n++;n*=2}return i}function V(t){for(var e=t[0],n=t[1]-1;0<=n;)e&1<<n&&(C|=1<<B),n--,--B<0&&(255==C?(G(255),G(0)):G(C),B=7,C=0)}function G(t){I.push(t)}function Y(t){G(t>>8&255),G(255&t)}function J(t,e,n,r,i){for(var o,a=i[0],s=i[240],l=function(t,e){var n,r,i,o,a,s,l,h,u,c,f=0;for(u=0;u<8;++u){n=t[f],r=t[f+1],i=t[f+2],o=t[f+3],a=t[f+4],s=t[f+5],l=t[f+6];var p=n+(h=t[f+7]),d=n-h,g=r+l,m=r-l,y=i+s,v=i-s,w=o+a,b=o-a,x=p+w,N=p-w,L=g+y,A=g-y;t[f]=x+L,t[f+4]=x-L;var S=.707106781*(A+N);t[f+2]=N+S,t[f+6]=N-S;var _=.382683433*((x=b+v)-(A=m+d)),F=.5411961*x+_,P=1.306562965*A+_,k=.707106781*(L=v+m),I=d+k,C=d-k;t[f+5]=C+F,t[f+3]=C-F,t[f+1]=I+P,t[f+7]=I-P,f+=8}for(u=f=0;u<8;++u){n=t[f],r=t[f+8],i=t[f+16],o=t[f+24],a=t[f+32],s=t[f+40],l=t[f+48];var B=n+(h=t[f+56]),j=n-h,E=r+l,M=r-l,O=i+s,q=i-s,T=o+a,R=o-a,D=B+T,U=B-T,z=E+O,H=E-O;t[f]=D+z,t[f+32]=D-z;var W=.707106781*(H+U);t[f+16]=U+W,t[f+48]=U-W;var V=.382683433*((D=R+q)-(H=M+j)),G=.5411961*D+V,Y=1.306562965*H+V,J=.707106781*(z=q+M),X=j+J,K=j-J;t[f+40]=K+G,t[f+24]=K-G,t[f+8]=X+Y,t[f+56]=X-Y,f++}for(u=0;u<64;++u)c=t[u]*e[u],Z[u]=0<c?c+.5|0:c-.5|0;return Z}(t,e),h=0;h<64;++h)w[b[h]]=l[h];var u=w[0]-n;n=w[0],0==u?V(r[0]):(V(r[v[o=32767+u]]),V(y[o]));for(var c=63;0<c&&0==w[c];c--);if(0==c)return V(a),n;for(var f,p=1;p<=c;){for(var d=p;0==w[p]&&p<=c;++p);var g=p-d;if(16<=g){f=g>>4;for(var m=1;m<=f;++m)V(s);g&=15}o=32767+w[p],V(i[(g<<4)+v[o]]),V(y[o]),p++}return 63!=c&&V(a),n}function X(t){if(t<=0&&(t=1),100<t&&(t=100),e!=t){(function(t){for(var e=[16,11,10,16,24,40,51,61,12,12,14,19,26,58,60,55,14,13,16,24,40,57,69,56,14,17,22,29,51,87,80,62,18,22,37,56,68,109,103,77,24,35,55,64,81,104,113,92,49,64,78,87,103,121,120,101,72,92,95,98,112,100,103,99],n=0;n<64;n++){var r=c((e[n]*t+50)/100);r<1?r=1:255<r&&(r=255),_[b[n]]=r}for(var i=[17,18,24,47,99,99,99,99,18,21,26,66,99,99,99,99,24,26,56,99,99,99,99,99,47,66,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99],o=0;o<64;o++){var a=c((i[o]*t+50)/100);a<1?a=1:255<a&&(a=255),F[b[o]]=a}for(var s=[1,1.387039845,1.306562965,1.175875602,1,.785694958,.5411961,.275899379],l=0,h=0;h<8;h++)for(var u=0;u<8;u++)P[l]=1/(_[b[l]]*s[h]*s[u]*8),k[l]=1/(F[b[l]]*s[h]*s[u]*8),l++})(t<50?Math.floor(5e3/t):Math.floor(200-2*t)),e=t}}this.encode=function(t,e){var n,r;(new Date).getTime();e&&X(e),I=new Array,C=0,B=7,Y(65496),Y(65504),Y(16),G(74),G(70),G(73),G(70),G(0),G(1),G(1),G(0),Y(1),Y(1),G(0),G(0),function(){Y(65499),Y(132),G(0);for(var t=0;t<64;t++)G(_[t]);G(1);for(var e=0;e<64;e++)G(F[e])}(),n=t.width,r=t.height,Y(65472),Y(17),G(8),Y(r),Y(n),G(3),G(1),G(17),G(0),G(2),G(17),G(1),G(3),G(17),G(1),function(){Y(65476),Y(418),G(0);for(var t=0;t<16;t++)G(q[t+1]);for(var e=0;e<=11;e++)G(T[e]);G(16);for(var n=0;n<16;n++)G(R[n+1]);for(var r=0;r<=161;r++)G(D[r]);G(1);for(var i=0;i<16;i++)G(U[i+1]);for(var o=0;o<=11;o++)G(z[o]);G(17);for(var a=0;a<16;a++)G(H[a+1]);for(var s=0;s<=161;s++)G(W[s])}(),Y(65498),Y(12),G(3),G(1),G(0),G(2),G(17),G(3),G(17),G(0),G(63),G(0);var i=0,o=0,a=0;C=0,B=7,this.encode.displayName=\"_encode_\";for(var s,l,h,u,c,f,p,d,g,m=t.data,y=t.width,v=t.height,w=4*y,b=0;b<v;){for(s=0;s<w;){for(f=c=w*b+s,p=-1,g=d=0;g<64;g++)f=c+(d=g>>3)*w+(p=4*(7&g)),v<=b+d&&(f-=w*(b+1+d-v)),w<=s+p&&(f-=s+p-w+4),l=m[f++],h=m[f++],u=m[f++],j[g]=(O[l]+O[h+256>>0]+O[u+512>>0]>>16)-128,E[g]=(O[l+768>>0]+O[h+1024>>0]+O[u+1280>>0]>>16)-128,M[g]=(O[l+1280>>0]+O[h+1536>>0]+O[u+1792>>0]>>16)-128;i=J(j,P,i,N,A),o=J(E,k,o,L,S),a=J(M,k,a,L,S),s+=32}b+=8}if(0<=B){var x=[];x[1]=B+1,x[0]=(1<<B+1)-1,V(x)}return Y(65497),new Uint8Array(I)},function(){(new Date).getTime();t||(t=50),function(){for(var t=String.fromCharCode,e=0;e<256;e++)n[e]=t(e)}(),N=r(q,T),L=r(U,z),A=r(R,D),S=r(H,W),function(){for(var t=1,e=2,n=1;n<=15;n++){for(var r=t;r<e;r++)v[32767+r]=n,y[32767+r]=[],y[32767+r][1]=n,y[32767+r][0]=r;for(var i=-(e-1);i<=-t;i++)v[32767+i]=n,y[32767+i]=[],y[32767+i][1]=n,y[32767+i][0]=e-1+i;t<<=1,e<<=1}}(),function(){for(var t=0;t<256;t++)O[t]=19595*t,O[t+256>>0]=38470*t,O[t+512>>0]=7471*t+32768,O[t+768>>0]=-11059*t,O[t+1024>>0]=-21709*t,O[t+1280>>0]=32768*t+8421375,O[t+1536>>0]=-27439*t,O[t+1792>>0]=-5329*t}(),X(t),(new Date).getTime()}()}function Ft(t,e){if(this.pos=0,this.buffer=t,this.datav=new DataView(t.buffer),this.is_with_alpha=!!e,this.bottom_up=!0,this.flag=String.fromCharCode(this.buffer[0])+String.fromCharCode(this.buffer[1]),this.pos+=2,-1===[\"BM\",\"BA\",\"CI\",\"CP\",\"IC\",\"PT\"].indexOf(this.flag))throw new Error(\"Invalid BMP File\");this.parseHeader(),this.parseBGR()}window.tmp=At,lt.API.adler32cs=(dt=\"function\"==typeof ArrayBuffer&&\"function\"==typeof Uint8Array,gt=null,mt=function(){if(!dt)return function(){return!1};try{var t={};\"function\"==typeof t.Buffer&&(gt=t.Buffer)}catch(t){}return function(t){return t instanceof ArrayBuffer||null!==gt&&t instanceof gt}}(),yt=null!==gt?function(t){return new gt(t,\"utf8\").toString(\"binary\")}:function(t){return unescape(encodeURIComponent(t))},vt=function(t,e){for(var n=65535&t,r=t>>>16,i=0,o=e.length;i<o;i++)n=(n+(255&e.charCodeAt(i)))%65521,r=(r+n)%65521;return(r<<16|n)>>>0},wt=function(t,e){for(var n=65535&t,r=t>>>16,i=0,o=e.length;i<o;i++)n=(n+e[i])%65521,r=(r+n)%65521;return(r<<16|n)>>>0},xt=(bt={}).Adler32=(((pt=(ft=function(t){if(!(this instanceof ft))throw new TypeError(\"Constructor cannot called be as a function.\");if(!isFinite(t=null==t?1:+t))throw new Error(\"First arguments needs to be a finite number.\");this.checksum=t>>>0}).prototype={}).constructor=ft).from=((ht=function(t){if(!(this instanceof ft))throw new TypeError(\"Constructor cannot called be as a function.\");if(null==t)throw new Error(\"First argument needs to be a string.\");this.checksum=vt(1,t.toString())}).prototype=pt,ht),ft.fromUtf8=((ut=function(t){if(!(this instanceof ft))throw new TypeError(\"Constructor cannot called be as a function.\");if(null==t)throw new Error(\"First argument needs to be a string.\");var e=yt(t.toString());this.checksum=vt(1,e)}).prototype=pt,ut),dt&&(ft.fromBuffer=((ct=function(t){if(!(this instanceof ft))throw new TypeError(\"Constructor cannot called be as a function.\");if(!mt(t))throw new Error(\"First argument needs to be ArrayBuffer.\");var e=new Uint8Array(t);return this.checksum=wt(1,e)}).prototype=pt,ct)),pt.update=function(t){if(null==t)throw new Error(\"First argument needs to be a string.\");return t=t.toString(),this.checksum=vt(this.checksum,t)},pt.updateUtf8=function(t){if(null==t)throw new Error(\"First argument needs to be a string.\");var e=yt(t.toString());return this.checksum=vt(this.checksum,e)},dt&&(pt.updateBuffer=function(t){if(!mt(t))throw new Error(\"First argument needs to be ArrayBuffer.\");var e=new Uint8Array(t);return this.checksum=wt(this.checksum,e)}),pt.clone=function(){return new xt(this.checksum)},ft),bt.from=function(t){if(null==t)throw new Error(\"First argument needs to be a string.\");return vt(1,t.toString())},bt.fromUtf8=function(t){if(null==t)throw new Error(\"First argument needs to be a string.\");var e=yt(t.toString());return vt(1,e)},dt&&(bt.fromBuffer=function(t){if(!mt(t))throw new Error(\"First argument need to be ArrayBuffer.\");var e=new Uint8Array(t);return wt(1,e)}),bt),function(t){t.__bidiEngine__=t.prototype.__bidiEngine__=function(t){var d,g,c,f,i,o,a,s=e,m=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],y=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],v={L:0,R:1,EN:2,AN:3,N:4,B:5,S:6},l={0:0,5:1,6:2,7:3,32:4,251:5,254:6,255:7},h=[\"(\",\")\",\"(\",\"<\",\">\",\"<\",\"[\",\"]\",\"[\",\"{\",\"}\",\"{\",\"«\",\"»\",\"«\",\"‹\",\"›\",\"‹\",\"⁅\",\"⁆\",\"⁅\",\"⁽\",\"⁾\",\"⁽\",\"₍\",\"₎\",\"₍\",\"≤\",\"≥\",\"≤\",\"〈\",\"〉\",\"〈\",\"﹙\",\"﹚\",\"﹙\",\"﹛\",\"﹜\",\"﹛\",\"﹝\",\"﹞\",\"﹝\",\"﹤\",\"﹥\",\"﹤\"],u=new RegExp(/^([1-4|9]|1[0-9]|2[0-9]|3[0168]|4[04589]|5[012]|7[78]|159|16[0-9]|17[0-2]|21[569]|22[03489]|250)$/),w=!1,b=0;this.__bidiEngine__={};var x=function(t){var e=t.charCodeAt(),n=e>>8,r=l[n];return void 0!==r?s[256*r+(255&e)]:252===n||253===n?\"AL\":u.test(n)?\"L\":8===n?\"R\":\"N\"},p=function(t){for(var e,n=0;n<t.length;n++){if(\"L\"===(e=x(t.charAt(n))))return!1;if(\"R\"===e)return!0}return!1},N=function(t,e,n,r){var i,o,a,s,l=e[r];switch(l){case\"L\":case\"R\":w=!1;break;case\"N\":case\"AN\":break;case\"EN\":w&&(l=\"AN\");break;case\"AL\":w=!0,l=\"R\";break;case\"WS\":l=\"N\";break;case\"CS\":r<1||r+1>=e.length||\"EN\"!==(i=n[r-1])&&\"AN\"!==i||\"EN\"!==(o=e[r+1])&&\"AN\"!==o?l=\"N\":w&&(o=\"AN\"),l=o===i?o:\"N\";break;case\"ES\":l=\"EN\"===(i=0<r?n[r-1]:\"B\")&&r+1<e.length&&\"EN\"===e[r+1]?\"EN\":\"N\";break;case\"ET\":if(0<r&&\"EN\"===n[r-1]){l=\"EN\";break}if(w){l=\"N\";break}for(a=r+1,s=e.length;a<s&&\"ET\"===e[a];)a++;l=a<s&&\"EN\"===e[a]?\"EN\":\"N\";break;case\"NSM\":if(c&&!f){for(s=e.length,a=r+1;a<s&&\"NSM\"===e[a];)a++;if(a<s){var h=t[r],u=1425<=h&&h<=2303||64286===h;if(i=e[a],u&&(\"R\"===i||\"AL\"===i)){l=\"R\";break}}}l=r<1||\"B\"===(i=e[r-1])?\"N\":n[r-1];break;case\"B\":d=!(w=!1),l=b;break;case\"S\":g=!0,l=\"N\";break;case\"LRE\":case\"RLE\":case\"LRO\":case\"RLO\":case\"PDF\":w=!1;break;case\"BN\":l=\"N\"}return l},L=function(t,e,n){var r=t.split(\"\");return n&&A(r,n,{hiLevel:b}),r.reverse(),e&&e.reverse(),r.join(\"\")},A=function(t,e,n){var r,i,o,a,s,l=-1,h=t.length,u=0,c=[],f=b?y:m,p=[];for(g=d=w=!1,i=0;i<h;i++)p[i]=x(t[i]);for(o=0;o<h;o++){if(s=u,c[o]=N(t,p,c,o),r=240&(u=f[s][v[c[o]]]),u&=15,e[o]=a=f[u][5],0<r)if(16===r){for(i=l;i<o;i++)e[i]=1;l=-1}else l=-1;if(f[u][6])-1===l&&(l=o);else if(-1<l){for(i=l;i<o;i++)e[i]=a;l=-1}\"B\"===p[o]&&(e[o]=0),n.hiLevel|=a}g&&function(t,e,n){for(var r=0;r<n;r++)if(\"S\"===t[r]){e[r]=b;for(var i=r-1;0<=i&&\"WS\"===t[i];i--)e[i]=b}}(p,e,h)},S=function(t,e,n,r,i){if(!(i.hiLevel<t)){if(1===t&&1===b&&!d)return e.reverse(),void(n&&n.reverse());for(var o,a,s,l,h=e.length,u=0;u<h;){if(r[u]>=t){for(s=u+1;s<h&&r[s]>=t;)s++;for(l=u,a=s-1;l<a;l++,a--)o=e[l],e[l]=e[a],e[a]=o,n&&(o=n[l],n[l]=n[a],n[a]=o);u=s}u++}}},_=function(t,e,n){var r=t.split(\"\"),i={hiLevel:b};return n||(n=[]),A(r,n,i),function(t,e,n){if(0!==n.hiLevel&&a)for(var r,i=0;i<t.length;i++)1===e[i]&&0<=(r=h.indexOf(t[i]))&&(t[i]=h[r+1])}(r,n,i),S(2,r,e,n,i),S(1,r,e,n,i),r.join(\"\")};return this.__bidiEngine__.doBidiReorder=function(t,e,n){if(function(t,e){if(e)for(var n=0;n<t.length;n++)e[n]=n;void 0===f&&(f=p(t)),void 0===o&&(o=p(t))}(t,e),c||!i||o)if(c&&i&&f^o)b=f?1:0,t=L(t,e,n);else if(!c&&i&&o)b=f?1:0,t=_(t,e,n),t=L(t,e);else if(!c||f||i||o){if(c&&!i&&f^o)t=L(t,e),t=f?(b=0,_(t,e,n)):(b=1,t=_(t,e,n),L(t,e));else if(c&&f&&!i&&o)b=1,t=_(t,e,n),t=L(t,e);else if(!c&&!i&&f^o){var r=a;f?(b=1,t=_(t,e,n),b=0,a=!1,t=_(t,e,n),a=r):(b=0,t=_(t,e,n),t=L(t,e),a=!(b=1),t=_(t,e,n),a=r,t=L(t,e))}}else b=0,t=_(t,e,n);else b=f?1:0,t=_(t,e,n);return t},this.__bidiEngine__.setOptions=function(t){t&&(c=t.isInputVisual,i=t.isOutputVisual,f=t.isInputRtl,o=t.isOutputRtl,a=t.isSymmetricSwapping)},this.__bidiEngine__.setOptions(t),this.__bidiEngine__};var e=[\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"S\",\"B\",\"S\",\"WS\",\"B\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"B\",\"B\",\"B\",\"S\",\"WS\",\"N\",\"N\",\"ET\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"ES\",\"CS\",\"ES\",\"CS\",\"CS\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"CS\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"B\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"CS\",\"N\",\"ET\",\"ET\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"L\",\"N\",\"N\",\"BN\",\"N\",\"N\",\"ET\",\"ET\",\"EN\",\"EN\",\"N\",\"L\",\"N\",\"N\",\"N\",\"EN\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"ET\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"R\",\"NSM\",\"R\",\"NSM\",\"NSM\",\"R\",\"NSM\",\"NSM\",\"R\",\"NSM\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"N\",\"N\",\"N\",\"N\",\"N\",\"R\",\"R\",\"R\",\"R\",\"R\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"N\",\"N\",\"AL\",\"ET\",\"ET\",\"AL\",\"CS\",\"AL\",\"N\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AL\",\"AL\",\"N\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"ET\",\"AN\",\"AN\",\"AL\",\"AL\",\"AL\",\"NSM\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AN\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AL\",\"AL\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"N\",\"AL\",\"AL\",\"NSM\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"N\",\"N\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AL\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"R\",\"R\",\"N\",\"N\",\"N\",\"N\",\"R\",\"N\",\"N\",\"N\",\"N\",\"N\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"BN\",\"BN\",\"BN\",\"L\",\"R\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"WS\",\"B\",\"LRE\",\"RLE\",\"PDF\",\"LRO\",\"RLO\",\"CS\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"CS\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"WS\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"N\",\"LRI\",\"RLI\",\"FSI\",\"PDI\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"EN\",\"L\",\"N\",\"N\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"ES\",\"ES\",\"N\",\"N\",\"N\",\"L\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"ES\",\"ES\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"R\",\"NSM\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"ES\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"N\",\"R\",\"R\",\"R\",\"R\",\"R\",\"N\",\"R\",\"N\",\"R\",\"R\",\"N\",\"R\",\"R\",\"N\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"CS\",\"N\",\"CS\",\"N\",\"N\",\"CS\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"ET\",\"N\",\"N\",\"ES\",\"ES\",\"N\",\"N\",\"N\",\"N\",\"N\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"N\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"N\",\"N\",\"BN\",\"N\",\"N\",\"N\",\"ET\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"ES\",\"CS\",\"ES\",\"CS\",\"CS\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"CS\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\"],o=new t.__bidiEngine__({isInputVisual:!0});t.API.events.push([\"postProcessText\",function(t){var e=t.text,n=(t.x,t.y,t.options||{}),r=(t.mutex,n.lang,[]);if(\"[object Array]\"===Object.prototype.toString.call(e)){var i=0;for(r=[],i=0;i<e.length;i+=1)\"[object Array]\"===Object.prototype.toString.call(e[i])?r.push([o.doBidiReorder(e[i][0]),e[i][1],e[i][2]]):r.push([o.doBidiReorder(e[i])]);t.text=r}else t.text=o.doBidiReorder(e)}])}(lt),window.tmp=_t,Ft.prototype.parseHeader=function(){if(this.fileSize=this.datav.getUint32(this.pos,!0),this.pos+=4,this.reserved=this.datav.getUint32(this.pos,!0),this.pos+=4,this.offset=this.datav.getUint32(this.pos,!0),this.pos+=4,this.headerSize=this.datav.getUint32(this.pos,!0),this.pos+=4,this.width=this.datav.getUint32(this.pos,!0),this.pos+=4,this.height=this.datav.getInt32(this.pos,!0),this.pos+=4,this.planes=this.datav.getUint16(this.pos,!0),this.pos+=2,this.bitPP=this.datav.getUint16(this.pos,!0),this.pos+=2,this.compress=this.datav.getUint32(this.pos,!0),this.pos+=4,this.rawSize=this.datav.getUint32(this.pos,!0),this.pos+=4,this.hr=this.datav.getUint32(this.pos,!0),this.pos+=4,this.vr=this.datav.getUint32(this.pos,!0),this.pos+=4,this.colors=this.datav.getUint32(this.pos,!0),this.pos+=4,this.importantColors=this.datav.getUint32(this.pos,!0),this.pos+=4,16===this.bitPP&&this.is_with_alpha&&(this.bitPP=15),this.bitPP<15){var t=0===this.colors?1<<this.bitPP:this.colors;this.palette=new Array(t);for(var e=0;e<t;e++){var n=this.datav.getUint8(this.pos++,!0),r=this.datav.getUint8(this.pos++,!0),i=this.datav.getUint8(this.pos++,!0),o=this.datav.getUint8(this.pos++,!0);this.palette[e]={red:i,green:r,blue:n,quad:o}}}this.height<0&&(this.height*=-1,this.bottom_up=!1)},Ft.prototype.parseBGR=function(){this.pos=this.offset;try{var t=\"bit\"+this.bitPP,e=this.width*this.height*4;this.data=new Uint8Array(e),this[t]()}catch(t){console.log(\"bit decode error:\"+t)}},Ft.prototype.bit1=function(){var t=Math.ceil(this.width/8),e=t%4,n=0<=this.height?this.height-1:-this.height;for(n=this.height-1;0<=n;n--){for(var r=this.bottom_up?n:this.height-1-n,i=0;i<t;i++)for(var o=this.datav.getUint8(this.pos++,!0),a=r*this.width*4+8*i*4,s=0;s<8&&8*i+s<this.width;s++){var l=this.palette[o>>7-s&1];this.data[a+4*s]=l.blue,this.data[a+4*s+1]=l.green,this.data[a+4*s+2]=l.red,this.data[a+4*s+3]=255}0!=e&&(this.pos+=4-e)}},Ft.prototype.bit4=function(){for(var t=Math.ceil(this.width/2),e=t%4,n=this.height-1;0<=n;n--){for(var r=this.bottom_up?n:this.height-1-n,i=0;i<t;i++){var o=this.datav.getUint8(this.pos++,!0),a=r*this.width*4+2*i*4,s=o>>4,l=15&o,h=this.palette[s];if(this.data[a]=h.blue,this.data[a+1]=h.green,this.data[a+2]=h.red,this.data[a+3]=255,2*i+1>=this.width)break;h=this.palette[l],this.data[a+4]=h.blue,this.data[a+4+1]=h.green,this.data[a+4+2]=h.red,this.data[a+4+3]=255}0!=e&&(this.pos+=4-e)}},Ft.prototype.bit8=function(){for(var t=this.width%4,e=this.height-1;0<=e;e--){for(var n=this.bottom_up?e:this.height-1-e,r=0;r<this.width;r++){var i=this.datav.getUint8(this.pos++,!0),o=n*this.width*4+4*r;if(i<this.palette.length){var a=this.palette[i];this.data[o]=a.red,this.data[o+1]=a.green,this.data[o+2]=a.blue,this.data[o+3]=255}else this.data[o]=255,this.data[o+1]=255,this.data[o+2]=255,this.data[o+3]=255}0!=t&&(this.pos+=4-t)}},Ft.prototype.bit15=function(){for(var t=this.width%3,e=parseInt(\"11111\",2),n=this.height-1;0<=n;n--){for(var r=this.bottom_up?n:this.height-1-n,i=0;i<this.width;i++){var o=this.datav.getUint16(this.pos,!0);this.pos+=2;var a=(o&e)/e*255|0,s=(o>>5&e)/e*255|0,l=(o>>10&e)/e*255|0,h=o>>15?255:0,u=r*this.width*4+4*i;this.data[u]=l,this.data[u+1]=s,this.data[u+2]=a,this.data[u+3]=h}this.pos+=t}},Ft.prototype.bit16=function(){for(var t=this.width%3,e=parseInt(\"11111\",2),n=parseInt(\"111111\",2),r=this.height-1;0<=r;r--){for(var i=this.bottom_up?r:this.height-1-r,o=0;o<this.width;o++){var a=this.datav.getUint16(this.pos,!0);this.pos+=2;var s=(a&e)/e*255|0,l=(a>>5&n)/n*255|0,h=(a>>11)/e*255|0,u=i*this.width*4+4*o;this.data[u]=h,this.data[u+1]=l,this.data[u+2]=s,this.data[u+3]=255}this.pos+=t}},Ft.prototype.bit24=function(){for(var t=this.height-1;0<=t;t--){for(var e=this.bottom_up?t:this.height-1-t,n=0;n<this.width;n++){var r=this.datav.getUint8(this.pos++,!0),i=this.datav.getUint8(this.pos++,!0),o=this.datav.getUint8(this.pos++,!0),a=e*this.width*4+4*n;this.data[a]=o,this.data[a+1]=i,this.data[a+2]=r,this.data[a+3]=255}this.pos+=this.width%4}},Ft.prototype.bit32=function(){for(var t=this.height-1;0<=t;t--)for(var e=this.bottom_up?t:this.height-1-t,n=0;n<this.width;n++){var r=this.datav.getUint8(this.pos++,!0),i=this.datav.getUint8(this.pos++,!0),o=this.datav.getUint8(this.pos++,!0),a=this.datav.getUint8(this.pos++,!0),s=e*this.width*4+4*n;this.data[s]=o,this.data[s+1]=i,this.data[s+2]=r,this.data[s+3]=a}},Ft.prototype.getData=function(){return this.data},window.tmp=Ft,\n/*\n Copyright (c) 2013 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\nfunction(t){var d=15,g=573,e=[0,1,2,3,4,4,5,5,6,6,6,6,7,7,7,7,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,0,0,16,17,18,18,19,19,20,20,20,20,21,21,21,21,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29];function ct(){var p=this;function l(t,e){for(var n=0;n|=1&t,t>>>=1,n<<=1,0<--e;);return n>>>1}p.build_tree=function(t){var e,n,r,i=p.dyn_tree,o=p.stat_desc.static_tree,a=p.stat_desc.elems,s=-1;for(t.heap_len=0,t.heap_max=g,e=0;e<a;e++)0!==i[2*e]?(t.heap[++t.heap_len]=s=e,t.depth[e]=0):i[2*e+1]=0;for(;t.heap_len<2;)i[2*(r=t.heap[++t.heap_len]=s<2?++s:0)]=1,t.depth[r]=0,t.opt_len--,o&&(t.static_len-=o[2*r+1]);for(p.max_code=s,e=Math.floor(t.heap_len/2);1<=e;e--)t.pqdownheap(i,e);for(r=a;e=t.heap[1],t.heap[1]=t.heap[t.heap_len--],t.pqdownheap(i,1),n=t.heap[1],t.heap[--t.heap_max]=e,t.heap[--t.heap_max]=n,i[2*r]=i[2*e]+i[2*n],t.depth[r]=Math.max(t.depth[e],t.depth[n])+1,i[2*e+1]=i[2*n+1]=r,t.heap[1]=r++,t.pqdownheap(i,1),2<=t.heap_len;);t.heap[--t.heap_max]=t.heap[1],function(t){var e,n,r,i,o,a,s=p.dyn_tree,l=p.stat_desc.static_tree,h=p.stat_desc.extra_bits,u=p.stat_desc.extra_base,c=p.stat_desc.max_length,f=0;for(i=0;i<=d;i++)t.bl_count[i]=0;for(s[2*t.heap[t.heap_max]+1]=0,e=t.heap_max+1;e<g;e++)c<(i=s[2*s[2*(n=t.heap[e])+1]+1]+1)&&(i=c,f++),s[2*n+1]=i,n>p.max_code||(t.bl_count[i]++,o=0,u<=n&&(o=h[n-u]),a=s[2*n],t.opt_len+=a*(i+o),l&&(t.static_len+=a*(l[2*n+1]+o)));if(0!==f){do{for(i=c-1;0===t.bl_count[i];)i--;t.bl_count[i]--,t.bl_count[i+1]+=2,t.bl_count[c]--,f-=2}while(0<f);for(i=c;0!==i;i--)for(n=t.bl_count[i];0!==n;)(r=t.heap[--e])>p.max_code||(s[2*r+1]!=i&&(t.opt_len+=(i-s[2*r+1])*s[2*r],s[2*r+1]=i),n--)}}(t),function(t,e,n){var r,i,o,a=[],s=0;for(r=1;r<=d;r++)a[r]=s=s+n[r-1]<<1;for(i=0;i<=e;i++)0!==(o=t[2*i+1])&&(t[2*i]=l(a[o]++,o))}(i,p.max_code,t.bl_count)}}function ft(t,e,n,r,i){this.static_tree=t,this.extra_bits=e,this.extra_base=n,this.elems=r,this.max_length=i}ct._length_code=[0,1,2,3,4,5,6,7,8,8,9,9,10,10,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28],ct.base_length=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],ct.base_dist=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],ct.d_code=function(t){return t<256?e[t]:e[256+(t>>>7)]},ct.extra_lbits=[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],ct.extra_dbits=[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],ct.extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],ct.bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],ft.static_ltree=[12,8,140,8,76,8,204,8,44,8,172,8,108,8,236,8,28,8,156,8,92,8,220,8,60,8,188,8,124,8,252,8,2,8,130,8,66,8,194,8,34,8,162,8,98,8,226,8,18,8,146,8,82,8,210,8,50,8,178,8,114,8,242,8,10,8,138,8,74,8,202,8,42,8,170,8,106,8,234,8,26,8,154,8,90,8,218,8,58,8,186,8,122,8,250,8,6,8,134,8,70,8,198,8,38,8,166,8,102,8,230,8,22,8,150,8,86,8,214,8,54,8,182,8,118,8,246,8,14,8,142,8,78,8,206,8,46,8,174,8,110,8,238,8,30,8,158,8,94,8,222,8,62,8,190,8,126,8,254,8,1,8,129,8,65,8,193,8,33,8,161,8,97,8,225,8,17,8,145,8,81,8,209,8,49,8,177,8,113,8,241,8,9,8,137,8,73,8,201,8,41,8,169,8,105,8,233,8,25,8,153,8,89,8,217,8,57,8,185,8,121,8,249,8,5,8,133,8,69,8,197,8,37,8,165,8,101,8,229,8,21,8,149,8,85,8,213,8,53,8,181,8,117,8,245,8,13,8,141,8,77,8,205,8,45,8,173,8,109,8,237,8,29,8,157,8,93,8,221,8,61,8,189,8,125,8,253,8,19,9,275,9,147,9,403,9,83,9,339,9,211,9,467,9,51,9,307,9,179,9,435,9,115,9,371,9,243,9,499,9,11,9,267,9,139,9,395,9,75,9,331,9,203,9,459,9,43,9,299,9,171,9,427,9,107,9,363,9,235,9,491,9,27,9,283,9,155,9,411,9,91,9,347,9,219,9,475,9,59,9,315,9,187,9,443,9,123,9,379,9,251,9,507,9,7,9,263,9,135,9,391,9,71,9,327,9,199,9,455,9,39,9,295,9,167,9,423,9,103,9,359,9,231,9,487,9,23,9,279,9,151,9,407,9,87,9,343,9,215,9,471,9,55,9,311,9,183,9,439,9,119,9,375,9,247,9,503,9,15,9,271,9,143,9,399,9,79,9,335,9,207,9,463,9,47,9,303,9,175,9,431,9,111,9,367,9,239,9,495,9,31,9,287,9,159,9,415,9,95,9,351,9,223,9,479,9,63,9,319,9,191,9,447,9,127,9,383,9,255,9,511,9,0,7,64,7,32,7,96,7,16,7,80,7,48,7,112,7,8,7,72,7,40,7,104,7,24,7,88,7,56,7,120,7,4,7,68,7,36,7,100,7,20,7,84,7,52,7,116,7,3,8,131,8,67,8,195,8,35,8,163,8,99,8,227,8],ft.static_dtree=[0,5,16,5,8,5,24,5,4,5,20,5,12,5,28,5,2,5,18,5,10,5,26,5,6,5,22,5,14,5,30,5,1,5,17,5,9,5,25,5,5,5,21,5,13,5,29,5,3,5,19,5,11,5,27,5,7,5,23,5],ft.static_l_desc=new ft(ft.static_ltree,ct.extra_lbits,257,286,d),ft.static_d_desc=new ft(ft.static_dtree,ct.extra_dbits,0,30,d),ft.static_bl_desc=new ft(null,ct.extra_blbits,0,19,7);function n(t,e,n,r,i){this.good_length=t,this.max_lazy=e,this.nice_length=n,this.max_chain=r,this.func=i}var pt=[new n(0,0,0,0,0),new n(4,4,8,4,1),new n(4,5,16,8,1),new n(4,6,32,32,1),new n(4,4,16,16,2),new n(8,16,32,32,2),new n(8,16,128,128,2),new n(8,32,128,256,2),new n(32,128,258,1024,2),new n(32,258,258,4096,2)],dt=[\"need dictionary\",\"stream end\",\"\",\"\",\"stream error\",\"data error\",\"\",\"buffer error\",\"\",\"\"];function gt(t,e,n,r){var i=t[2*e],o=t[2*n];return i<o||i==o&&r[e]<=r[n]}function r(){var l,h,u,c,f,p,d,g,i,m,y,v,w,a,b,x,N,L,A,S,_,F,P,k,I,C,B,j,E,M,s,O,q,T,R,D,U,o,z,H,W,V=this,G=new ct,Y=new ct,J=new ct;function X(){var t;for(t=0;t<286;t++)s[2*t]=0;for(t=0;t<30;t++)O[2*t]=0;for(t=0;t<19;t++)q[2*t]=0;s[512]=1,V.opt_len=V.static_len=0,D=o=0}function K(t,e){var n,r,i=-1,o=t[1],a=0,s=7,l=4;for(0===o&&(s=138,l=3),t[2*(e+1)+1]=65535,n=0;n<=e;n++)r=o,o=t[2*(n+1)+1],++a<s&&r==o||(a<l?q[2*r]+=a:0!==r?(r!=i&&q[2*r]++,q[32]++):a<=10?q[34]++:q[36]++,i=r,l=(a=0)===o?(s=138,3):r==o?(s=6,3):(s=7,4))}function Z(t){V.pending_buf[V.pending++]=t}function Q(t){Z(255&t),Z(t>>>8&255)}function $(t,e){var n,r=e;16-r<W?(Q(H|=(n=t)<<W&65535),H=n>>>16-W,W+=r-16):(H|=t<<W&65535,W+=r)}function tt(t,e){var n=2*t;$(65535&e[n],65535&e[n+1])}function et(t,e){var n,r,i=-1,o=t[1],a=0,s=7,l=4;for(0===o&&(s=138,l=3),n=0;n<=e;n++)if(r=o,o=t[2*(n+1)+1],!(++a<s&&r==o)){if(a<l)for(;tt(r,q),0!=--a;);else 0!==r?(r!=i&&(tt(r,q),a--),tt(16,q),$(a-3,2)):a<=10?(tt(17,q),$(a-3,3)):(tt(18,q),$(a-11,7));i=r,l=(a=0)===o?(s=138,3):r==o?(s=6,3):(s=7,4)}}function nt(){16==W?(Q(H),W=H=0):8<=W&&(Z(255&H),H>>>=8,W-=8)}function rt(t,e){var n,r,i;if(V.pending_buf[U+2*D]=t>>>8&255,V.pending_buf[U+2*D+1]=255&t,V.pending_buf[T+D]=255&e,D++,0===t?s[2*e]++:(o++,t--,s[2*(ct._length_code[e]+256+1)]++,O[2*ct.d_code(t)]++),0==(8191&D)&&2<B){for(n=8*D,r=_-N,i=0;i<30;i++)n+=O[2*i]*(5+ct.extra_dbits[i]);if(n>>>=3,o<Math.floor(D/2)&&n<Math.floor(r/2))return!0}return D==R-1}function it(t,e){var n,r,i,o,a=0;if(0!==D)for(;n=V.pending_buf[U+2*a]<<8&65280|255&V.pending_buf[U+2*a+1],r=255&V.pending_buf[T+a],a++,0===n?tt(r,t):(tt((i=ct._length_code[r])+256+1,t),0!==(o=ct.extra_lbits[i])&&$(r-=ct.base_length[i],o),tt(i=ct.d_code(--n),e),0!==(o=ct.extra_dbits[i])&&$(n-=ct.base_dist[i],o)),a<D;);tt(256,t),z=t[513]}function ot(){8<W?Q(H):0<W&&Z(255&H),W=H=0}function at(t,e,n){var r,i,o;$(0+(n?1:0),3),r=t,i=e,o=!0,ot(),z=8,o&&(Q(i),Q(~i)),V.pending_buf.set(g.subarray(r,r+i),V.pending),V.pending+=i}function e(t,e,n){var r,i,o=0;0<B?(G.build_tree(V),Y.build_tree(V),o=function(){var t;for(K(s,G.max_code),K(O,Y.max_code),J.build_tree(V),t=18;3<=t&&0===q[2*ct.bl_order[t]+1];t--);return V.opt_len+=3*(t+1)+5+5+4,t}(),r=V.opt_len+3+7>>>3,(i=V.static_len+3+7>>>3)<=r&&(r=i)):r=i=e+5,e+4<=r&&-1!=t?at(t,e,n):i==r?($(2+(n?1:0),3),it(ft.static_ltree,ft.static_dtree)):($(4+(n?1:0),3),function(t,e,n){var r;for($(t-257,5),$(e-1,5),$(n-4,4),r=0;r<n;r++)$(q[2*ct.bl_order[r]+1],3);et(s,t-1),et(O,e-1)}(G.max_code+1,Y.max_code+1,o+1),it(s,O)),X(),n&&ot()}function st(t){e(0<=N?N:-1,_-N,t),N=_,l.flush_pending()}function lt(){var t,e,n,r;do{if(0===(r=i-P-_)&&0===_&&0===P)r=f;else if(-1==r)r--;else if(f+f-262<=_){for(g.set(g.subarray(f,f+f),0),F-=f,_-=f,N-=f,n=t=w;e=65535&y[--n],y[n]=f<=e?e-f:0,0!=--t;);for(n=t=f;e=65535&m[--n],m[n]=f<=e?e-f:0,0!=--t;);r+=f}if(0===l.avail_in)return;t=l.read_buf(g,_+P,r),3<=(P+=t)&&(v=((v=255&g[_])<<x^255&g[_+1])&b)}while(P<262&&0!==l.avail_in)}function ht(t){var e,n,r=I,i=_,o=k,a=f-262<_?_-(f-262):0,s=M,l=d,h=_+258,u=g[i+o-1],c=g[i+o];E<=k&&(r>>=2),P<s&&(s=P);do{if(g[(e=t)+o]==c&&g[e+o-1]==u&&g[e]==g[i]&&g[++e]==g[i+1]){i+=2,e++;do{}while(g[++i]==g[++e]&&g[++i]==g[++e]&&g[++i]==g[++e]&&g[++i]==g[++e]&&g[++i]==g[++e]&&g[++i]==g[++e]&&g[++i]==g[++e]&&g[++i]==g[++e]&&i<h);if(n=258-(h-i),i=h-258,o<n){if(F=t,s<=(o=n))break;u=g[i+o-1],c=g[i+o]}}}while((t=65535&m[t&l])>a&&0!=--r);return o<=P?o:P}function ut(t){return t.total_in=t.total_out=0,t.msg=null,V.pending=0,V.pending_out=0,h=113,c=0,G.dyn_tree=s,G.stat_desc=ft.static_l_desc,Y.dyn_tree=O,Y.stat_desc=ft.static_d_desc,J.dyn_tree=q,J.stat_desc=ft.static_bl_desc,W=H=0,z=8,X(),function(){var t;for(i=2*f,t=y[w-1]=0;t<w-1;t++)y[t]=0;C=pt[B].max_lazy,E=pt[B].good_length,M=pt[B].nice_length,I=pt[B].max_chain,L=k=2,v=S=P=N=_=0}(),0}V.depth=[],V.bl_count=[],V.heap=[],s=[],O=[],q=[],V.pqdownheap=function(t,e){for(var n=V.heap,r=n[e],i=e<<1;i<=V.heap_len&&(i<V.heap_len&>(t,n[i+1],n[i],V.depth)&&i++,!gt(t,r,n[i],V.depth));)n[e]=n[i],e=i,i<<=1;n[e]=r},V.deflateInit=function(t,e,n,r,i,o){return r||(r=8),i||(i=8),o||(o=0),t.msg=null,-1==e&&(e=6),i<1||9<i||8!=r||n<9||15<n||e<0||9<e||o<0||2<o?-2:(t.dstate=V,d=(f=1<<(p=n))-1,b=(w=1<<(a=i+7))-1,x=Math.floor((a+3-1)/3),g=new Uint8Array(2*f),m=[],y=[],R=1<<i+6,V.pending_buf=new Uint8Array(4*R),u=4*R,U=Math.floor(R/2),T=3*R,B=e,j=o,ut(t))},V.deflateEnd=function(){return 42!=h&&113!=h&&666!=h?-2:(V.pending_buf=null,g=m=y=null,V.dstate=null,113==h?-3:0)},V.deflateParams=function(t,e,n){var r=0;return-1==e&&(e=6),e<0||9<e||n<0||2<n?-2:(pt[B].func!=pt[e].func&&0!==t.total_in&&(r=t.deflate(1)),B!=e&&(C=pt[B=e].max_lazy,E=pt[B].good_length,M=pt[B].nice_length,I=pt[B].max_chain),j=n,r)},V.deflateSetDictionary=function(t,e,n){var r,i=n,o=0;if(!e||42!=h)return-2;if(i<3)return 0;for(f-262<i&&(o=n-(i=f-262)),g.set(e.subarray(o,o+i),0),N=_=i,v=((v=255&g[0])<<x^255&g[1])&b,r=0;r<=i-3;r++)v=(v<<x^255&g[r+2])&b,m[r&d]=y[v],y[v]=r;return 0},V.deflate=function(t,e){var n,r,i,o,a,s;if(4<e||e<0)return-2;if(!t.next_out||!t.next_in&&0!==t.avail_in||666==h&&4!=e)return t.msg=dt[4],-2;if(0===t.avail_out)return t.msg=dt[7],-5;if(l=t,o=c,c=e,42==h&&(r=8+(p-8<<4)<<8,3<(i=(B-1&255)>>1)&&(i=3),r|=i<<6,0!==_&&(r|=32),h=113,Z((s=r+=31-r%31)>>8&255),Z(255&s)),0!==V.pending){if(l.flush_pending(),0===l.avail_out)return c=-1,0}else if(0===l.avail_in&&e<=o&&4!=e)return l.msg=dt[7],-5;if(666==h&&0!==l.avail_in)return t.msg=dt[7],-5;if(0!==l.avail_in||0!==P||0!=e&&666!=h){switch(a=-1,pt[B].func){case 0:a=function(t){var e,n=65535;for(u-5<n&&(n=u-5);;){if(P<=1){if(lt(),0===P&&0==t)return 0;if(0===P)break}if(_+=P,e=N+n,((P=0)===_||e<=_)&&(P=_-e,_=e,st(!1),0===l.avail_out))return 0;if(f-262<=_-N&&(st(!1),0===l.avail_out))return 0}return st(4==t),0===l.avail_out?4==t?2:0:4==t?3:1}(e);break;case 1:a=function(t){for(var e,n=0;;){if(P<262){if(lt(),P<262&&0==t)return 0;if(0===P)break}if(3<=P&&(v=(v<<x^255&g[_+2])&b,n=65535&y[v],m[_&d]=y[v],y[v]=_),0!==n&&(_-n&65535)<=f-262&&2!=j&&(L=ht(n)),3<=L)if(e=rt(_-F,L-3),P-=L,L<=C&&3<=P){for(L--;v=(v<<x^255&g[++_+2])&b,n=65535&y[v],m[_&d]=y[v],y[v]=_,0!=--L;);_++}else _+=L,L=0,v=((v=255&g[_])<<x^255&g[_+1])&b;else e=rt(0,255&g[_]),P--,_++;if(e&&(st(!1),0===l.avail_out))return 0}return st(4==t),0===l.avail_out?4==t?2:0:4==t?3:1}(e);break;case 2:a=function(t){for(var e,n,r=0;;){if(P<262){if(lt(),P<262&&0==t)return 0;if(0===P)break}if(3<=P&&(v=(v<<x^255&g[_+2])&b,r=65535&y[v],m[_&d]=y[v],y[v]=_),k=L,A=F,L=2,0!==r&&k<C&&(_-r&65535)<=f-262&&(2!=j&&(L=ht(r)),L<=5&&(1==j||3==L&&4096<_-F)&&(L=2)),3<=k&&L<=k){for(n=_+P-3,e=rt(_-1-A,k-3),P-=k-1,k-=2;++_<=n&&(v=(v<<x^255&g[_+2])&b,r=65535&y[v],m[_&d]=y[v],y[v]=_),0!=--k;);if(S=0,L=2,_++,e&&(st(!1),0===l.avail_out))return 0}else if(0!==S){if((e=rt(0,255&g[_-1]))&&st(!1),_++,P--,0===l.avail_out)return 0}else S=1,_++,P--}return 0!==S&&(e=rt(0,255&g[_-1]),S=0),st(4==t),0===l.avail_out?4==t?2:0:4==t?3:1}(e)}if(2!=a&&3!=a||(h=666),0==a||2==a)return 0===l.avail_out&&(c=-1),0;if(1==a){if(1==e)$(2,3),tt(256,ft.static_ltree),nt(),1+z+10-W<9&&($(2,3),tt(256,ft.static_ltree),nt()),z=7;else if(at(0,0,!1),3==e)for(n=0;n<w;n++)y[n]=0;if(l.flush_pending(),0===l.avail_out)return c=-1,0}}return 4!=e?0:1}}function i(){this.next_in_index=0,this.next_out_index=0,this.avail_in=0,this.total_in=0,this.avail_out=0,this.total_out=0}i.prototype={deflateInit:function(t,e){return this.dstate=new r,e||(e=d),this.dstate.deflateInit(this,t,e)},deflate:function(t){return this.dstate?this.dstate.deflate(this,t):-2},deflateEnd:function(){if(!this.dstate)return-2;var t=this.dstate.deflateEnd();return this.dstate=null,t},deflateParams:function(t,e){return this.dstate?this.dstate.deflateParams(this,t,e):-2},deflateSetDictionary:function(t,e){return this.dstate?this.dstate.deflateSetDictionary(this,t,e):-2},read_buf:function(t,e,n){var r=this.avail_in;return n<r&&(r=n),0===r?0:(this.avail_in-=r,t.set(this.next_in.subarray(this.next_in_index,this.next_in_index+r),e),this.next_in_index+=r,this.total_in+=r,r)},flush_pending:function(){var t=this,e=t.dstate.pending;e>t.avail_out&&(e=t.avail_out),0!==e&&(t.next_out.set(t.dstate.pending_buf.subarray(t.dstate.pending_out,t.dstate.pending_out+e),t.next_out_index),t.next_out_index+=e,t.dstate.pending_out+=e,t.total_out+=e,t.avail_out-=e,t.dstate.pending-=e,0===t.dstate.pending&&(t.dstate.pending_out=0))}};var o=t.zip||t;o.Deflater=o._jzlib_Deflater=function(t){var s=new i,l=new Uint8Array(512),e=t?t.level:-1;void 0===e&&(e=-1),s.deflateInit(e),s.next_out=l,this.append=function(t,e){var n,r=[],i=0,o=0,a=0;if(t.length){s.next_in_index=0,s.next_in=t,s.avail_in=t.length;do{if(s.next_out_index=0,s.avail_out=512,0!=s.deflate(0))throw new Error(\"deflating: \"+s.msg);s.next_out_index&&(512==s.next_out_index?r.push(new Uint8Array(l)):r.push(new Uint8Array(l.subarray(0,s.next_out_index)))),a+=s.next_out_index,e&&0<s.next_in_index&&s.next_in_index!=i&&(e(s.next_in_index),i=s.next_in_index)}while(0<s.avail_in||0===s.avail_out);return n=new Uint8Array(a),r.forEach(function(t){n.set(t,o),o+=t.length}),n}},this.flush=function(){var t,e,n=[],r=0,i=0;do{if(s.next_out_index=0,s.avail_out=512,1!=(t=s.deflate(4))&&0!=t)throw new Error(\"deflating: \"+s.msg);0<512-s.avail_out&&n.push(new Uint8Array(l.subarray(0,s.next_out_index))),i+=s.next_out_index}while(0<s.avail_in||0===s.avail_out);return s.deflateEnd(),e=new Uint8Array(i),n.forEach(function(t){e.set(t,r),r+=t.length}),e}}}(\"undefined\"!=typeof self&&self||\"undefined\"!=typeof window&&window||\"undefined\"!=typeof global&&global||Function('return typeof this === \"object\" && this.content')()||Function(\"return this\")()),(\"undefined\"!=typeof self&&self||\"undefined\"!=typeof window&&window||\"undefined\"!=typeof global&&global||Function('return typeof this === \"object\" && this.content')()||Function(\"return this\")()).RGBColor=function(t){var e;t=t||\"\",this.ok=!1,\"#\"==t.charAt(0)&&(t=t.substr(1,6)),t=(t=t.replace(/ /g,\"\")).toLowerCase();var n={aliceblue:\"f0f8ff\",antiquewhite:\"faebd7\",aqua:\"00ffff\",aquamarine:\"7fffd4\",azure:\"f0ffff\",beige:\"f5f5dc\",bisque:\"ffe4c4\",black:\"000000\",blanchedalmond:\"ffebcd\",blue:\"0000ff\",blueviolet:\"8a2be2\",brown:\"a52a2a\",burlywood:\"deb887\",cadetblue:\"5f9ea0\",chartreuse:\"7fff00\",chocolate:\"d2691e\",coral:\"ff7f50\",cornflowerblue:\"6495ed\",cornsilk:\"fff8dc\",crimson:\"dc143c\",cyan:\"00ffff\",darkblue:\"00008b\",darkcyan:\"008b8b\",darkgoldenrod:\"b8860b\",darkgray:\"a9a9a9\",darkgreen:\"006400\",darkkhaki:\"bdb76b\",darkmagenta:\"8b008b\",darkolivegreen:\"556b2f\",darkorange:\"ff8c00\",darkorchid:\"9932cc\",darkred:\"8b0000\",darksalmon:\"e9967a\",darkseagreen:\"8fbc8f\",darkslateblue:\"483d8b\",darkslategray:\"2f4f4f\",darkturquoise:\"00ced1\",darkviolet:\"9400d3\",deeppink:\"ff1493\",deepskyblue:\"00bfff\",dimgray:\"696969\",dodgerblue:\"1e90ff\",feldspar:\"d19275\",firebrick:\"b22222\",floralwhite:\"fffaf0\",forestgreen:\"228b22\",fuchsia:\"ff00ff\",gainsboro:\"dcdcdc\",ghostwhite:\"f8f8ff\",gold:\"ffd700\",goldenrod:\"daa520\",gray:\"808080\",green:\"008000\",greenyellow:\"adff2f\",honeydew:\"f0fff0\",hotpink:\"ff69b4\",indianred:\"cd5c5c\",indigo:\"4b0082\",ivory:\"fffff0\",khaki:\"f0e68c\",lavender:\"e6e6fa\",lavenderblush:\"fff0f5\",lawngreen:\"7cfc00\",lemonchiffon:\"fffacd\",lightblue:\"add8e6\",lightcoral:\"f08080\",lightcyan:\"e0ffff\",lightgoldenrodyellow:\"fafad2\",lightgrey:\"d3d3d3\",lightgreen:\"90ee90\",lightpink:\"ffb6c1\",lightsalmon:\"ffa07a\",lightseagreen:\"20b2aa\",lightskyblue:\"87cefa\",lightslateblue:\"8470ff\",lightslategray:\"778899\",lightsteelblue:\"b0c4de\",lightyellow:\"ffffe0\",lime:\"00ff00\",limegreen:\"32cd32\",linen:\"faf0e6\",magenta:\"ff00ff\",maroon:\"800000\",mediumaquamarine:\"66cdaa\",mediumblue:\"0000cd\",mediumorchid:\"ba55d3\",mediumpurple:\"9370d8\",mediumseagreen:\"3cb371\",mediumslateblue:\"7b68ee\",mediumspringgreen:\"00fa9a\",mediumturquoise:\"48d1cc\",mediumvioletred:\"c71585\",midnightblue:\"191970\",mintcream:\"f5fffa\",mistyrose:\"ffe4e1\",moccasin:\"ffe4b5\",navajowhite:\"ffdead\",navy:\"000080\",oldlace:\"fdf5e6\",olive:\"808000\",olivedrab:\"6b8e23\",orange:\"ffa500\",orangered:\"ff4500\",orchid:\"da70d6\",palegoldenrod:\"eee8aa\",palegreen:\"98fb98\",paleturquoise:\"afeeee\",palevioletred:\"d87093\",papayawhip:\"ffefd5\",peachpuff:\"ffdab9\",peru:\"cd853f\",pink:\"ffc0cb\",plum:\"dda0dd\",powderblue:\"b0e0e6\",purple:\"800080\",red:\"ff0000\",rosybrown:\"bc8f8f\",royalblue:\"4169e1\",saddlebrown:\"8b4513\",salmon:\"fa8072\",sandybrown:\"f4a460\",seagreen:\"2e8b57\",seashell:\"fff5ee\",sienna:\"a0522d\",silver:\"c0c0c0\",skyblue:\"87ceeb\",slateblue:\"6a5acd\",slategray:\"708090\",snow:\"fffafa\",springgreen:\"00ff7f\",steelblue:\"4682b4\",tan:\"d2b48c\",teal:\"008080\",thistle:\"d8bfd8\",tomato:\"ff6347\",turquoise:\"40e0d0\",violet:\"ee82ee\",violetred:\"d02090\",wheat:\"f5deb3\",white:\"ffffff\",whitesmoke:\"f5f5f5\",yellow:\"ffff00\",yellowgreen:\"9acd32\"};for(var r in n)t==r&&(t=n[r]);for(var i=[{re:/^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,example:[\"rgb(123, 234, 45)\",\"rgb(255,234,245)\"],process:function(t){return[parseInt(t[1]),parseInt(t[2]),parseInt(t[3])]}},{re:/^(\\w{2})(\\w{2})(\\w{2})$/,example:[\"#00ff00\",\"336699\"],process:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/^(\\w{1})(\\w{1})(\\w{1})$/,example:[\"#fb0\",\"f0f\"],process:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}}],o=0;o<i.length;o++){var a=i[o].re,s=i[o].process,l=a.exec(t);l&&(e=s(l),this.r=e[0],this.g=e[1],this.b=e[2],this.ok=!0)}this.r=this.r<0||isNaN(this.r)?0:255<this.r?255:this.r,this.g=this.g<0||isNaN(this.g)?0:255<this.g?255:this.g,this.b=this.b<0||isNaN(this.b)?0:255<this.b?255:this.b,this.toRGB=function(){return\"rgb(\"+this.r+\", \"+this.g+\", \"+this.b+\")\"},this.toHex=function(){var t=this.r.toString(16),e=this.g.toString(16),n=this.b.toString(16);return 1==t.length&&(t=\"0\"+t),1==e.length&&(e=\"0\"+e),1==n.length&&(n=\"0\"+n),\"#\"+t+e+n}},function(t){var n=\"+\".charCodeAt(0),r=\"/\".charCodeAt(0),i=\"0\".charCodeAt(0),o=\"a\".charCodeAt(0),a=\"A\".charCodeAt(0),s=\"-\".charCodeAt(0),l=\"_\".charCodeAt(0),u=function(t){var e=t.charCodeAt(0);return e===n||e===s?62:e===r||e===l?63:e<i?-1:e<i+10?e-i+26+26:e<a+26?e-a:e<o+26?e-o+26:void 0};t.API.TTFFont=function(){function i(t,e,n){var r;if(this.rawData=t,r=this.contents=new J(t),this.contents.pos=4,\"ttcf\"===r.readString(4)){if(!e)throw new Error(\"Must specify a font name for TTC files.\");throw new Error(\"Font \"+e+\" not found in TTC file.\")}r.pos=0,this.parse(),this.subset=new P(this),this.registerTTF()}return i.open=function(t,e,n,r){if(\"string\"!=typeof n)throw new Error(\"Invalid argument supplied in TTFFont.open\");return new i(function(t){var e,n,r,i,o,a;if(0<t.length%4)throw new Error(\"Invalid string. Length must be a multiple of 4\");var s=t.length;o=\"=\"===t.charAt(s-2)?2:\"=\"===t.charAt(s-1)?1:0,a=new Uint8Array(3*t.length/4-o),r=0<o?t.length-4:t.length;var l=0;function h(t){a[l++]=t}for(n=e=0;e<r;e+=4,n+=3)h((16711680&(i=u(t.charAt(e))<<18|u(t.charAt(e+1))<<12|u(t.charAt(e+2))<<6|u(t.charAt(e+3))))>>16),h((65280&i)>>8),h(255&i);return 2===o?h(255&(i=u(t.charAt(e))<<2|u(t.charAt(e+1))>>4)):1===o&&(h((i=u(t.charAt(e))<<10|u(t.charAt(e+1))<<4|u(t.charAt(e+2))>>2)>>8&255),h(255&i)),a}(n),e,r)},i.prototype.parse=function(){return this.directory=new e(this.contents),this.head=new p(this),this.name=new b(this),this.cmap=new y(this),this.toUnicode=new Map,this.hhea=new g(this),this.maxp=new x(this),this.hmtx=new N(this),this.post=new v(this),this.os2=new m(this),this.loca=new F(this),this.glyf=new A(this),this.ascender=this.os2.exists&&this.os2.ascender||this.hhea.ascender,this.decender=this.os2.exists&&this.os2.decender||this.hhea.decender,this.lineGap=this.os2.exists&&this.os2.lineGap||this.hhea.lineGap,this.bbox=[this.head.xMin,this.head.yMin,this.head.xMax,this.head.yMax]},i.prototype.registerTTF=function(){var i,t,e,n,r;if(this.scaleFactor=1e3/this.head.unitsPerEm,this.bbox=function(){var t,e,n,r;for(r=[],t=0,e=(n=this.bbox).length;t<e;t++)i=n[t],r.push(Math.round(i*this.scaleFactor));return r}.call(this),this.stemV=0,this.post.exists?(e=255&(n=this.post.italic_angle),!0&(t=n>>16)&&(t=-(1+(65535^t))),this.italicAngle=+(t+\".\"+e)):this.italicAngle=0,this.ascender=Math.round(this.ascender*this.scaleFactor),this.decender=Math.round(this.decender*this.scaleFactor),this.lineGap=Math.round(this.lineGap*this.scaleFactor),this.capHeight=this.os2.exists&&this.os2.capHeight||this.ascender,this.xHeight=this.os2.exists&&this.os2.xHeight||0,this.familyClass=(this.os2.exists&&this.os2.familyClass||0)>>8,this.isSerif=1===(r=this.familyClass)||2===r||3===r||4===r||5===r||7===r,this.isScript=10===this.familyClass,this.flags=0,this.post.isFixedPitch&&(this.flags|=1),this.isSerif&&(this.flags|=2),this.isScript&&(this.flags|=8),0!==this.italicAngle&&(this.flags|=64),this.flags|=32,!this.cmap.unicode)throw new Error(\"No unicode cmap for font\")},i.prototype.characterToGlyph=function(t){var e;return(null!=(e=this.cmap.unicode)?e.codeMap[t]:void 0)||0},i.prototype.widthOfGlyph=function(t){var e;return e=1e3/this.head.unitsPerEm,this.hmtx.forGlyph(t).advance*e},i.prototype.widthOfString=function(t,e,n){var r,i,o,a,s;for(i=a=o=0,s=(t=\"\"+t).length;0<=s?a<s:s<a;i=0<=s?++a:--a)r=t.charCodeAt(i),o+=this.widthOfGlyph(this.characterToGlyph(r))+n*(1e3/e)||0;return o*(e/1e3)},i.prototype.lineHeight=function(t,e){var n;return null==e&&(e=!1),n=e?this.lineGap:0,(this.ascender+n-this.decender)/1e3*t},i}();var h,J=function(){function t(t){this.data=null!=t?t:[],this.pos=0,this.length=this.data.length}return t.prototype.readByte=function(){return this.data[this.pos++]},t.prototype.writeByte=function(t){return this.data[this.pos++]=t},t.prototype.readUInt32=function(){return 16777216*this.readByte()+(this.readByte()<<16)+(this.readByte()<<8)+this.readByte()},t.prototype.writeUInt32=function(t){return this.writeByte(t>>>24&255),this.writeByte(t>>16&255),this.writeByte(t>>8&255),this.writeByte(255&t)},t.prototype.readInt32=function(){var t;return 2147483648<=(t=this.readUInt32())?t-4294967296:t},t.prototype.writeInt32=function(t){return t<0&&(t+=4294967296),this.writeUInt32(t)},t.prototype.readUInt16=function(){return this.readByte()<<8|this.readByte()},t.prototype.writeUInt16=function(t){return this.writeByte(t>>8&255),this.writeByte(255&t)},t.prototype.readInt16=function(){var t;return 32768<=(t=this.readUInt16())?t-65536:t},t.prototype.writeInt16=function(t){return t<0&&(t+=65536),this.writeUInt16(t)},t.prototype.readString=function(t){var e,n,r;for(n=[],e=r=0;0<=t?r<t:t<r;e=0<=t?++r:--r)n[e]=String.fromCharCode(this.readByte());return n.join(\"\")},t.prototype.writeString=function(t){var e,n,r,i;for(i=[],e=n=0,r=t.length;0<=r?n<r:r<n;e=0<=r?++n:--n)i.push(this.writeByte(t.charCodeAt(e)));return i},t.prototype.readShort=function(){return this.readInt16()},t.prototype.writeShort=function(t){return this.writeInt16(t)},t.prototype.readLongLong=function(){var t,e,n,r,i,o,a,s;return t=this.readByte(),e=this.readByte(),n=this.readByte(),r=this.readByte(),i=this.readByte(),o=this.readByte(),a=this.readByte(),s=this.readByte(),128&t?-1*(72057594037927940*(255^t)+281474976710656*(255^e)+1099511627776*(255^n)+4294967296*(255^r)+16777216*(255^i)+65536*(255^o)+256*(255^a)+(255^s)+1):72057594037927940*t+281474976710656*e+1099511627776*n+4294967296*r+16777216*i+65536*o+256*a+s},t.prototype.writeLongLong=function(t){var e,n;return e=Math.floor(t/4294967296),n=4294967295&t,this.writeByte(e>>24&255),this.writeByte(e>>16&255),this.writeByte(e>>8&255),this.writeByte(255&e),this.writeByte(n>>24&255),this.writeByte(n>>16&255),this.writeByte(n>>8&255),this.writeByte(255&n)},t.prototype.readInt=function(){return this.readInt32()},t.prototype.writeInt=function(t){return this.writeInt32(t)},t.prototype.read=function(t){var e,n;for(e=[],n=0;0<=t?n<t:t<n;0<=t?++n:--n)e.push(this.readByte());return e},t.prototype.write=function(t){var e,n,r,i;for(i=[],n=0,r=t.length;n<r;n++)e=t[n],i.push(this.writeByte(e));return i},t}(),e=function(){var d;function t(t){var e,n,r;for(this.scalarType=t.readInt(),this.tableCount=t.readShort(),this.searchRange=t.readShort(),this.entrySelector=t.readShort(),this.rangeShift=t.readShort(),this.tables={},n=0,r=this.tableCount;0<=r?n<r:r<n;0<=r?++n:--n)e={tag:t.readString(4),checksum:t.readInt(),offset:t.readInt(),length:t.readInt()},this.tables[e.tag]=e}return t.prototype.encode=function(t){var e,n,r,i,o,a,s,l,h,u,c,f,p;for(p in c=Object.keys(t).length,a=Math.log(2),h=16*Math.floor(Math.log(c)/a),i=Math.floor(h/a),l=16*c-h,(n=new J).writeInt(this.scalarType),n.writeShort(c),n.writeShort(h),n.writeShort(i),n.writeShort(l),r=16*c,s=n.pos+r,o=null,f=[],t)for(u=t[p],n.writeString(p),n.writeInt(d(u)),n.writeInt(s),n.writeInt(u.length),f=f.concat(u),\"head\"===p&&(o=s),s+=u.length;s%4;)f.push(0),s++;return n.write(f),e=2981146554-d(n.data),n.pos=o+8,n.writeUInt32(e),n.data},d=function(t){var e,n,r,i;for(t=L.call(t);t.length%4;)t.push(0);for(n=new J(t),r=e=0,i=t.length;r<i;r+=4)e+=n.readUInt32();return 4294967295&e},t}(),c={}.hasOwnProperty,f=function(t,e){for(var n in e)c.call(e,n)&&(t[n]=e[n]);function r(){this.constructor=t}return r.prototype=e.prototype,t.prototype=new r,t.__super__=e.prototype,t};h=function(){function t(t){var e;this.file=t,e=this.file.directory.tables[this.tag],this.exists=!!e,e&&(this.offset=e.offset,this.length=e.length,this.parse(this.file.contents))}return t.prototype.parse=function(){},t.prototype.encode=function(){},t.prototype.raw=function(){return this.exists?(this.file.contents.pos=this.offset,this.file.contents.read(this.length)):null},t}();var p=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return f(e,h),e.prototype.tag=\"head\",e.prototype.parse=function(t){return t.pos=this.offset,this.version=t.readInt(),this.revision=t.readInt(),this.checkSumAdjustment=t.readInt(),this.magicNumber=t.readInt(),this.flags=t.readShort(),this.unitsPerEm=t.readShort(),this.created=t.readLongLong(),this.modified=t.readLongLong(),this.xMin=t.readShort(),this.yMin=t.readShort(),this.xMax=t.readShort(),this.yMax=t.readShort(),this.macStyle=t.readShort(),this.lowestRecPPEM=t.readShort(),this.fontDirectionHint=t.readShort(),this.indexToLocFormat=t.readShort(),this.glyphDataFormat=t.readShort()},e.prototype.encode=function(t){var e;return(e=new J).writeInt(this.version),e.writeInt(this.revision),e.writeInt(this.checkSumAdjustment),e.writeInt(this.magicNumber),e.writeShort(this.flags),e.writeShort(this.unitsPerEm),e.writeLongLong(this.created),e.writeLongLong(this.modified),e.writeShort(this.xMin),e.writeShort(this.yMin),e.writeShort(this.xMax),e.writeShort(this.yMax),e.writeShort(this.macStyle),e.writeShort(this.lowestRecPPEM),e.writeShort(this.fontDirectionHint),e.writeShort(t),e.writeShort(this.glyphDataFormat),e.data},e}(),d=function(){function t(n,t){var e,r,i,o,a,s,l,h,u,c,f,p,d,g,m,y,v,w;switch(this.platformID=n.readUInt16(),this.encodingID=n.readShort(),this.offset=t+n.readInt(),u=n.pos,n.pos=this.offset,this.format=n.readUInt16(),this.length=n.readUInt16(),this.language=n.readUInt16(),this.isUnicode=3===this.platformID&&1===this.encodingID&&4===this.format||0===this.platformID&&4===this.format,this.codeMap={},this.format){case 0:for(s=m=0;m<256;s=++m)this.codeMap[s]=n.readByte();break;case 4:for(f=n.readUInt16(),c=f/2,n.pos+=6,i=function(){var t,e;for(e=[],s=t=0;0<=c?t<c:c<t;s=0<=c?++t:--t)e.push(n.readUInt16());return e}(),n.pos+=2,d=function(){var t,e;for(e=[],s=t=0;0<=c?t<c:c<t;s=0<=c?++t:--t)e.push(n.readUInt16());return e}(),l=function(){var t,e;for(e=[],s=t=0;0<=c?t<c:c<t;s=0<=c?++t:--t)e.push(n.readUInt16());return e}(),h=function(){var t,e;for(e=[],s=t=0;0<=c?t<c:c<t;s=0<=c?++t:--t)e.push(n.readUInt16());return e}(),r=(this.length-n.pos+this.offset)/2,a=function(){var t,e;for(e=[],s=t=0;0<=r?t<r:r<t;s=0<=r?++t:--t)e.push(n.readUInt16());return e}(),s=y=0,w=i.length;y<w;s=++y)for(g=i[s],e=v=p=d[s];p<=g?v<=g:g<=v;e=p<=g?++v:--v)0===h[s]?o=e+l[s]:0!==(o=a[h[s]/2+(e-p)-(c-s)]||0)&&(o+=l[s]),this.codeMap[e]=65535&o}n.pos=u}return t.encode=function(t,e){var n,r,i,o,a,s,l,h,u,c,f,p,d,g,m,y,v,w,b,x,N,L,A,S,_,F,P,k,I,C,B,j,E,M,O,q,T,R,D,U,z,H,W,V,G,Y;switch(k=new J,o=Object.keys(t).sort(function(t,e){return t-e}),e){case\"macroman\":for(d=0,g=function(){var t,e;for(e=[],p=t=0;t<256;p=++t)e.push(0);return e}(),y={0:0},i={},I=0,E=o.length;I<E;I++)null==y[W=t[r=o[I]]]&&(y[W]=++d),i[r]={old:t[r],new:y[t[r]]},g[r]=y[t[r]];return k.writeUInt16(1),k.writeUInt16(0),k.writeUInt32(12),k.writeUInt16(0),k.writeUInt16(262),k.writeUInt16(0),k.write(g),{charMap:i,subtable:k.data,maxGlyphID:d+1};case\"unicode\":for(F=[],u=[],y={},n={},m=l=null,C=v=0,M=o.length;C<M;C++)null==y[b=t[r=o[C]]]&&(y[b]=++v),n[r]={old:b,new:y[b]},a=y[b]-r,null!=m&&a===l||(m&&u.push(m),F.push(r),l=a),m=r;for(m&&u.push(m),u.push(65535),F.push(65535),S=2*(A=F.length),L=2*Math.pow(Math.log(A)/Math.LN2,2),c=Math.log(L/2)/Math.LN2,N=2*A-L,s=[],x=[],f=[],p=B=0,O=F.length;B<O;p=++B){if(_=F[p],h=u[p],65535===_){s.push(0),x.push(0);break}if(32768<=_-(P=n[_].new))for(s.push(0),x.push(2*(f.length+A-p)),r=j=_;_<=h?j<=h:h<=j;r=_<=h?++j:--j)f.push(n[r].new);else s.push(P-_),x.push(0)}for(k.writeUInt16(3),k.writeUInt16(1),k.writeUInt32(12),k.writeUInt16(4),k.writeUInt16(16+8*A+2*f.length),k.writeUInt16(0),k.writeUInt16(S),k.writeUInt16(L),k.writeUInt16(c),k.writeUInt16(N),z=0,q=u.length;z<q;z++)r=u[z],k.writeUInt16(r);for(k.writeUInt16(0),H=0,T=F.length;H<T;H++)r=F[H],k.writeUInt16(r);for(V=0,R=s.length;V<R;V++)a=s[V],k.writeUInt16(a);for(G=0,D=x.length;G<D;G++)w=x[G],k.writeUInt16(w);for(Y=0,U=f.length;Y<U;Y++)d=f[Y],k.writeUInt16(d);return{charMap:n,subtable:k.data,maxGlyphID:v+1}}},t}(),y=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return f(e,h),e.prototype.tag=\"cmap\",e.prototype.parse=function(t){var e,n,r;for(t.pos=this.offset,this.version=t.readUInt16(),n=t.readUInt16(),this.tables=[],this.unicode=null,r=0;0<=n?r<n:n<r;0<=n?++r:--r)e=new d(t,this.offset),this.tables.push(e),e.isUnicode&&null==this.unicode&&(this.unicode=e);return!0},e.encode=function(t,e){var n,r;return null==e&&(e=\"macroman\"),n=d.encode(t,e),(r=new J).writeUInt16(0),r.writeUInt16(1),n.table=r.data.concat(n.subtable),n},e}(),g=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return f(e,h),e.prototype.tag=\"hhea\",e.prototype.parse=function(t){return t.pos=this.offset,this.version=t.readInt(),this.ascender=t.readShort(),this.decender=t.readShort(),this.lineGap=t.readShort(),this.advanceWidthMax=t.readShort(),this.minLeftSideBearing=t.readShort(),this.minRightSideBearing=t.readShort(),this.xMaxExtent=t.readShort(),this.caretSlopeRise=t.readShort(),this.caretSlopeRun=t.readShort(),this.caretOffset=t.readShort(),t.pos+=8,this.metricDataFormat=t.readShort(),this.numberOfMetrics=t.readUInt16()},e}(),m=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return f(e,h),e.prototype.tag=\"OS/2\",e.prototype.parse=function(n){if(n.pos=this.offset,this.version=n.readUInt16(),this.averageCharWidth=n.readShort(),this.weightClass=n.readUInt16(),this.widthClass=n.readUInt16(),this.type=n.readShort(),this.ySubscriptXSize=n.readShort(),this.ySubscriptYSize=n.readShort(),this.ySubscriptXOffset=n.readShort(),this.ySubscriptYOffset=n.readShort(),this.ySuperscriptXSize=n.readShort(),this.ySuperscriptYSize=n.readShort(),this.ySuperscriptXOffset=n.readShort(),this.ySuperscriptYOffset=n.readShort(),this.yStrikeoutSize=n.readShort(),this.yStrikeoutPosition=n.readShort(),this.familyClass=n.readShort(),this.panose=function(){var t,e;for(e=[],t=0;t<10;++t)e.push(n.readByte());return e}(),this.charRange=function(){var t,e;for(e=[],t=0;t<4;++t)e.push(n.readInt());return e}(),this.vendorID=n.readString(4),this.selection=n.readShort(),this.firstCharIndex=n.readShort(),this.lastCharIndex=n.readShort(),0<this.version&&(this.ascent=n.readShort(),this.descent=n.readShort(),this.lineGap=n.readShort(),this.winAscent=n.readShort(),this.winDescent=n.readShort(),this.codePageRange=function(){var t,e;for(e=[],t=0;t<2;++t)e.push(n.readInt());return e}(),1<this.version))return this.xHeight=n.readShort(),this.capHeight=n.readShort(),this.defaultChar=n.readShort(),this.breakChar=n.readShort(),this.maxContext=n.readShort()},e}(),v=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return f(e,h),e.prototype.tag=\"post\",e.prototype.parse=function(r){var t,e,n,i;switch(r.pos=this.offset,this.format=r.readInt(),this.italicAngle=r.readInt(),this.underlinePosition=r.readShort(),this.underlineThickness=r.readShort(),this.isFixedPitch=r.readInt(),this.minMemType42=r.readInt(),this.maxMemType42=r.readInt(),this.minMemType1=r.readInt(),this.maxMemType1=r.readInt(),this.format){case 65536:break;case 131072:for(e=r.readUInt16(),this.glyphNameIndex=[],n=0;0<=e?n<e:e<n;0<=e?++n:--n)this.glyphNameIndex.push(r.readUInt16());for(this.names=[],i=[];r.pos<this.offset+this.length;)t=r.readByte(),i.push(this.names.push(r.readString(t)));return i;case 151552:return e=r.readUInt16(),this.offsets=r.read(e);case 196608:break;case 262144:return this.map=function(){var t,e,n;for(n=[],t=0,e=this.file.maxp.numGlyphs;0<=e?t<e:e<t;0<=e?++t:--t)n.push(r.readUInt32());return n}.call(this)}},e}(),w=function(t,e){this.raw=t,this.length=t.length,this.platformID=e.platformID,this.encodingID=e.encodingID,this.languageID=e.languageID},b=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return f(e,h),e.prototype.tag=\"name\",e.prototype.parse=function(t){var e,n,r,i,o,a,s,l,h,u,c,f;for(t.pos=this.offset,t.readShort(),e=t.readShort(),a=t.readShort(),n=[],i=h=0;0<=e?h<e:e<h;i=0<=e?++h:--h)n.push({platformID:t.readShort(),encodingID:t.readShort(),languageID:t.readShort(),nameID:t.readShort(),length:t.readShort(),offset:this.offset+a+t.readShort()});for(s={},i=u=0,c=n.length;u<c;i=++u)r=n[i],t.pos=r.offset,l=t.readString(r.length),o=new w(l,r),null==s[f=r.nameID]&&(s[f]=[]),s[r.nameID].push(o);this.strings=s,this.copyright=s[0],this.fontFamily=s[1],this.fontSubfamily=s[2],this.uniqueSubfamily=s[3],this.fontName=s[4],this.version=s[5];try{this.postscriptName=s[6][0].raw.replace(/[\\x00-\\x19\\x80-\\xff]/g,\"\")}catch(t){this.postscriptName=s[4][0].raw.replace(/[\\x00-\\x19\\x80-\\xff]/g,\"\")}return this.trademark=s[7],this.manufacturer=s[8],this.designer=s[9],this.description=s[10],this.vendorUrl=s[11],this.designerUrl=s[12],this.license=s[13],this.licenseUrl=s[14],this.preferredFamily=s[15],this.preferredSubfamily=s[17],this.compatibleFull=s[18],this.sampleText=s[19]},e}(),x=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return f(e,h),e.prototype.tag=\"maxp\",e.prototype.parse=function(t){return t.pos=this.offset,this.version=t.readInt(),this.numGlyphs=t.readUInt16(),this.maxPoints=t.readUInt16(),this.maxContours=t.readUInt16(),this.maxCompositePoints=t.readUInt16(),this.maxComponentContours=t.readUInt16(),this.maxZones=t.readUInt16(),this.maxTwilightPoints=t.readUInt16(),this.maxStorage=t.readUInt16(),this.maxFunctionDefs=t.readUInt16(),this.maxInstructionDefs=t.readUInt16(),this.maxStackElements=t.readUInt16(),this.maxSizeOfInstructions=t.readUInt16(),this.maxComponentElements=t.readUInt16(),this.maxComponentDepth=t.readUInt16()},e}(),N=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return f(e,h),e.prototype.tag=\"hmtx\",e.prototype.parse=function(n){var t,r,i,e,o,a,s;for(n.pos=this.offset,this.metrics=[],e=0,a=this.file.hhea.numberOfMetrics;0<=a?e<a:a<e;0<=a?++e:--e)this.metrics.push({advance:n.readUInt16(),lsb:n.readInt16()});for(r=this.file.maxp.numGlyphs-this.file.hhea.numberOfMetrics,this.leftSideBearings=function(){var t,e;for(e=[],t=0;0<=r?t<r:r<t;0<=r?++t:--t)e.push(n.readInt16());return e}(),this.widths=function(){var t,e,n,r;for(r=[],t=0,e=(n=this.metrics).length;t<e;t++)i=n[t],r.push(i.advance);return r}.call(this),t=this.widths[this.widths.length-1],s=[],o=0;0<=r?o<r:r<o;0<=r?++o:--o)s.push(this.widths.push(t));return s},e.prototype.forGlyph=function(t){return t in this.metrics?this.metrics[t]:{advance:this.metrics[this.metrics.length-1].advance,lsb:this.leftSideBearings[t-this.metrics.length]}},e}(),L=[].slice,A=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return f(e,h),e.prototype.tag=\"glyf\",e.prototype.parse=function(t){return this.cache={}},e.prototype.glyphFor=function(t){var e,n,r,i,o,a,s,l,h,u;return(t=t)in this.cache?this.cache[t]:(i=this.file.loca,e=this.file.contents,n=i.indexOf(t),0===(r=i.lengthOf(t))?this.cache[t]=null:(e.pos=this.offset+n,o=(a=new J(e.read(r))).readShort(),l=a.readShort(),u=a.readShort(),s=a.readShort(),h=a.readShort(),this.cache[t]=-1===o?new _(a,l,u,s,h):new S(a,o,l,u,s,h),this.cache[t]))},e.prototype.encode=function(t,e,n){var r,i,o,a,s;for(o=[],i=[],a=0,s=e.length;a<s;a++)r=t[e[a]],i.push(o.length),r&&(o=o.concat(r.encode(n)));return i.push(o.length),{table:o,offsets:i}},e}(),S=function(){function t(t,e,n,r,i,o){this.raw=t,this.numberOfContours=e,this.xMin=n,this.yMin=r,this.xMax=i,this.yMax=o,this.compound=!1}return t.prototype.encode=function(){return this.raw.data},t}(),_=function(){function t(t,e,n,r,i){var o,a;for(this.raw=t,this.xMin=e,this.yMin=n,this.xMax=r,this.yMax=i,this.compound=!0,this.glyphIDs=[],this.glyphOffsets=[],o=this.raw;a=o.readShort(),this.glyphOffsets.push(o.pos),this.glyphIDs.push(o.readShort()),32&a;)o.pos+=1&a?4:2,128&a?o.pos+=8:64&a?o.pos+=4:8&a&&(o.pos+=2)}return 1,8,32,64,128,t.prototype.encode=function(t){var e,n,r,i,o;for(n=new J(L.call(this.raw.data)),e=r=0,i=(o=this.glyphIDs).length;r<i;e=++r)o[e],n.pos=this.glyphOffsets[e];return n.data},t}(),F=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return f(e,h),e.prototype.tag=\"loca\",e.prototype.parse=function(r){var t;return r.pos=this.offset,t=this.file.head.indexToLocFormat,this.offsets=0===t?function(){var t,e,n;for(n=[],t=0,e=this.length;t<e;t+=2)n.push(2*r.readUInt16());return n}.call(this):function(){var t,e,n;for(n=[],t=0,e=this.length;t<e;t+=4)n.push(r.readUInt32());return n}.call(this)},e.prototype.indexOf=function(t){return this.offsets[t]},e.prototype.lengthOf=function(t){return this.offsets[t+1]-this.offsets[t]},e.prototype.encode=function(t,e){for(var n=new Uint32Array(this.offsets.length),r=0,i=0,o=0;o<n.length;++o)if(n[o]=r,i<e.length&&e[i]==o){++i,n[o]=r;var a=this.offsets[o],s=this.offsets[o+1]-a;0<s&&(r+=s)}for(var l=new Array(4*n.length),h=0;h<n.length;++h)l[4*h+3]=255&n[h],l[4*h+2]=(65280&n[h])>>8,l[4*h+1]=(16711680&n[h])>>16,l[4*h]=(4278190080&n[h])>>24;return l},e}(),P=function(){function t(t){this.font=t,this.subset={},this.unicodes={},this.next=33}return t.prototype.generateCmap=function(){var t,e,n,r,i;for(e in r=this.font.cmap.tables[0].codeMap,t={},i=this.subset)n=i[e],t[e]=r[n];return t},t.prototype.glyphsFor=function(t){var e,n,r,i,o,a,s;for(r={},o=0,a=t.length;o<a;o++)r[i=t[o]]=this.font.glyf.glyphFor(i);for(i in e=[],r)(null!=(n=r[i])?n.compound:void 0)&&e.push.apply(e,n.glyphIDs);if(0<e.length)for(i in s=this.glyphsFor(e))n=s[i],r[i]=n;return r},t.prototype.encode=function(t,e){var n,r,i,o,a,s,l,h,u,c,f,p,d,g,m;for(r in n=y.encode(this.generateCmap(),\"unicode\"),o=this.glyphsFor(t),f={0:0},m=n.charMap)f[(s=m[r]).old]=s.new;for(p in c=n.maxGlyphID,o)p in f||(f[p]=c++);return h=function(t){var e,n;for(e in n={},t)n[t[e]]=e;return n}(f),u=Object.keys(h).sort(function(t,e){return t-e}),d=function(){var t,e,n;for(n=[],t=0,e=u.length;t<e;t++)a=u[t],n.push(h[a]);return n}(),i=this.font.glyf.encode(o,d,f),l=this.font.loca.encode(i.offsets,d),g={cmap:this.font.cmap.raw(),glyf:i.table,loca:l,hmtx:this.font.hmtx.raw(),hhea:this.font.hhea.raw(),maxp:this.font.maxp.raw(),post:this.font.post.raw(),name:this.font.name.raw(),head:this.font.head.encode(e)},this.font.os2.exists&&(g[\"OS/2\"]=this.font.os2.raw()),this.font.directory.encode(g)},t}();t.API.PDFObject=function(){var o;function a(){}return o=function(t,e){return(Array(e+1).join(\"0\")+t).slice(-e)},a.convert=function(r){var i,t,e,n;if(Array.isArray(r))return\"[\"+function(){var t,e,n;for(n=[],t=0,e=r.length;t<e;t++)i=r[t],n.push(a.convert(i));return n}().join(\" \")+\"]\";if(\"string\"==typeof r)return\"/\"+r;if(null!=r?r.isString:void 0)return\"(\"+r+\")\";if(r instanceof Date)return\"(D:\"+o(r.getUTCFullYear(),4)+o(r.getUTCMonth(),2)+o(r.getUTCDate(),2)+o(r.getUTCHours(),2)+o(r.getUTCMinutes(),2)+o(r.getUTCSeconds(),2)+\"Z)\";if(\"[object Object]\"!=={}.toString.call(r))return\"\"+r;for(t in e=[\"<<\"],r)n=r[t],e.push(\"/\"+t+\" \"+a.convert(n));return e.push(\">>\"),e.join(\"\\n\")},a}()}(lt),\n/*\n # PNG.js\n # Copyright (c) 2011 Devon Govett\n # MIT LICENSE\n # \n # \n */\nNt=\"undefined\"!=typeof self&&self||\"undefined\"!=typeof window&&window||\"undefined\"!=typeof global&&global||Function('return typeof this === \"object\" && this.content')()||Function(\"return this\")(),Lt=function(){var h,n,r;function i(t){var e,n,r,i,o,a,s,l,h,u,c,f,p,d;for(this.data=t,this.pos=8,this.palette=[],this.imgData=[],this.transparency={},this.animation=null,this.text={},a=null;;){switch(e=this.readUInt32(),h=function(){var t,e;for(e=[],t=0;t<4;++t)e.push(String.fromCharCode(this.data[this.pos++]));return e}.call(this).join(\"\")){case\"IHDR\":this.width=this.readUInt32(),this.height=this.readUInt32(),this.bits=this.data[this.pos++],this.colorType=this.data[this.pos++],this.compressionMethod=this.data[this.pos++],this.filterMethod=this.data[this.pos++],this.interlaceMethod=this.data[this.pos++];break;case\"acTL\":this.animation={numFrames:this.readUInt32(),numPlays:this.readUInt32()||1/0,frames:[]};break;case\"PLTE\":this.palette=this.read(e);break;case\"fcTL\":a&&this.animation.frames.push(a),this.pos+=4,a={width:this.readUInt32(),height:this.readUInt32(),xOffset:this.readUInt32(),yOffset:this.readUInt32()},o=this.readUInt16(),i=this.readUInt16()||100,a.delay=1e3*o/i,a.disposeOp=this.data[this.pos++],a.blendOp=this.data[this.pos++],a.data=[];break;case\"IDAT\":case\"fdAT\":for(\"fdAT\"===h&&(this.pos+=4,e-=4),t=(null!=a?a.data:void 0)||this.imgData,f=0;0<=e?f<e:e<f;0<=e?++f:--f)t.push(this.data[this.pos++]);break;case\"tRNS\":switch(this.transparency={},this.colorType){case 3:if(r=this.palette.length/3,this.transparency.indexed=this.read(e),this.transparency.indexed.length>r)throw new Error(\"More transparent colors than palette size\");if(0<(u=r-this.transparency.indexed.length))for(p=0;0<=u?p<u:u<p;0<=u?++p:--p)this.transparency.indexed.push(255);break;case 0:this.transparency.grayscale=this.read(e)[0];break;case 2:this.transparency.rgb=this.read(e)}break;case\"tEXt\":s=(c=this.read(e)).indexOf(0),l=String.fromCharCode.apply(String,c.slice(0,s)),this.text[l]=String.fromCharCode.apply(String,c.slice(s+1));break;case\"IEND\":return a&&this.animation.frames.push(a),this.colors=function(){switch(this.colorType){case 0:case 3:case 4:return 1;case 2:case 6:return 3}}.call(this),this.hasAlphaChannel=4===(d=this.colorType)||6===d,n=this.colors+(this.hasAlphaChannel?1:0),this.pixelBitlength=this.bits*n,this.colorSpace=function(){switch(this.colors){case 1:return\"DeviceGray\";case 3:return\"DeviceRGB\"}}.call(this),void(this.imgData=new Uint8Array(this.imgData));default:this.pos+=e}if(this.pos+=4,this.pos>this.data.length)throw new Error(\"Incomplete or corrupt PNG file\")}}i.load=function(t,e,n){var r;return\"function\"==typeof e&&(n=e),(r=new XMLHttpRequest).open(\"GET\",t,!0),r.responseType=\"arraybuffer\",r.onload=function(){var t;return t=new i(new Uint8Array(r.response||r.mozResponseArrayBuffer)),\"function\"==typeof(null!=e?e.getContext:void 0)&&t.render(e),\"function\"==typeof n?n(t):void 0},r.send(null)},i.prototype.read=function(t){var e,n;for(n=[],e=0;0<=t?e<t:t<e;0<=t?++e:--e)n.push(this.data[this.pos++]);return n},i.prototype.readUInt32=function(){return this.data[this.pos++]<<24|this.data[this.pos++]<<16|this.data[this.pos++]<<8|this.data[this.pos++]},i.prototype.readUInt16=function(){return this.data[this.pos++]<<8|this.data[this.pos++]},i.prototype.decodePixels=function(C){var B=this.pixelBitlength/8,j=new Uint8Array(this.width*this.height*B),E=0,M=this;if(null==C&&(C=this.imgData),0===C.length)return new Uint8Array(0);function t(t,e,n,r){var i,o,a,s,l,h,u,c,f,p,d,g,m,y,v,w,b,x,N,L,A,S=Math.ceil((M.width-t)/n),_=Math.ceil((M.height-e)/r),F=M.width==S&&M.height==_;for(y=B*S,g=F?j:new Uint8Array(y*_),h=C.length,o=m=0;m<_&&E<h;){switch(C[E++]){case 0:for(s=b=0;b<y;s=b+=1)g[o++]=C[E++];break;case 1:for(s=x=0;x<y;s=x+=1)i=C[E++],l=s<B?0:g[o-B],g[o++]=(i+l)%256;break;case 2:for(s=N=0;N<y;s=N+=1)i=C[E++],a=(s-s%B)/B,v=m&&g[(m-1)*y+a*B+s%B],g[o++]=(v+i)%256;break;case 3:for(s=L=0;L<y;s=L+=1)i=C[E++],a=(s-s%B)/B,l=s<B?0:g[o-B],v=m&&g[(m-1)*y+a*B+s%B],g[o++]=(i+Math.floor((l+v)/2))%256;break;case 4:for(s=A=0;A<y;s=A+=1)i=C[E++],a=(s-s%B)/B,l=s<B?0:g[o-B],0===m?v=w=0:(v=g[(m-1)*y+a*B+s%B],w=a&&g[(m-1)*y+(a-1)*B+s%B]),u=l+v-w,c=Math.abs(u-l),p=Math.abs(u-v),d=Math.abs(u-w),f=c<=p&&c<=d?l:p<=d?v:w,g[o++]=(i+f)%256;break;default:throw new Error(\"Invalid filter algorithm: \"+C[E-1])}if(!F){var P=((e+m*r)*M.width+t)*B,k=m*y;for(s=0;s<S;s+=1){for(var I=0;I<B;I+=1)j[P++]=g[k++];P+=(n-1)*B}}m++}}return C=(C=new kt(C)).getBytes(),1==M.interlaceMethod?(t(0,0,8,8),t(4,0,8,8),t(0,4,4,8),t(2,0,4,4),t(0,2,2,4),t(1,0,2,2),t(0,1,1,2)):t(0,0,1,1),j},i.prototype.decodePalette=function(){var t,e,n,r,i,o,a,s,l;for(n=this.palette,o=this.transparency.indexed||[],i=new Uint8Array((o.length||0)+n.length),r=0,n.length,e=a=t=0,s=n.length;a<s;e=a+=3)i[r++]=n[e],i[r++]=n[e+1],i[r++]=n[e+2],i[r++]=null!=(l=o[t++])?l:255;return i},i.prototype.copyToImageData=function(t,e){var n,r,i,o,a,s,l,h,u,c,f;if(r=this.colors,u=null,n=this.hasAlphaChannel,this.palette.length&&(u=null!=(f=this._decodedPalette)?f:this._decodedPalette=this.decodePalette(),r=4,n=!0),h=(i=t.data||t).length,a=u||e,o=s=0,1===r)for(;o<h;)l=u?4*e[o/4]:s,c=a[l++],i[o++]=c,i[o++]=c,i[o++]=c,i[o++]=n?a[l++]:255,s=l;else for(;o<h;)l=u?4*e[o/4]:s,i[o++]=a[l++],i[o++]=a[l++],i[o++]=a[l++],i[o++]=n?a[l++]:255,s=l},i.prototype.decode=function(){var t;return t=new Uint8Array(this.width*this.height*4),this.copyToImageData(t,this.decodePixels()),t};try{n=Nt.document.createElement(\"canvas\"),r=n.getContext(\"2d\")}catch(t){return-1}return h=function(t){var e;return r.width=t.width,r.height=t.height,r.clearRect(0,0,t.width,t.height),r.putImageData(t,0,0),(e=new Image).src=n.toDataURL(),e},i.prototype.decodeFrames=function(t){var e,n,r,i,o,a,s,l;if(this.animation){for(l=[],n=o=0,a=(s=this.animation.frames).length;o<a;n=++o)e=s[n],r=t.createImageData(e.width,e.height),i=this.decodePixels(new Uint8Array(e.data)),this.copyToImageData(r,i),e.imageData=r,l.push(e.image=h(r));return l}},i.prototype.renderFrame=function(t,e){var n,r,i;return n=(r=this.animation.frames)[e],i=r[e-1],0===e&&t.clearRect(0,0,this.width,this.height),1===(null!=i?i.disposeOp:void 0)?t.clearRect(i.xOffset,i.yOffset,i.width,i.height):2===(null!=i?i.disposeOp:void 0)&&t.putImageData(i.imageData,i.xOffset,i.yOffset),0===n.blendOp&&t.clearRect(n.xOffset,n.yOffset,n.width,n.height),t.drawImage(n.image,n.xOffset,n.yOffset)},i.prototype.animate=function(n){var r,i,o,a,s,t,l=this;return i=0,t=this.animation,a=t.numFrames,o=t.frames,s=t.numPlays,(r=function(){var t,e;if(t=i++%a,e=o[t],l.renderFrame(n,t),1<a&&i/a<s)return l.animation._timeout=setTimeout(r,e.delay)})()},i.prototype.stopAnimation=function(){var t;return clearTimeout(null!=(t=this.animation)?t._timeout:void 0)},i.prototype.render=function(t){var e,n;return t._png&&t._png.stopAnimation(),t._png=this,t.width=this.width,t.height=this.height,e=t.getContext(\"2d\"),this.animation?(this.decodeFrames(e),this.animate(e)):(n=e.createImageData(this.width,this.height),this.copyToImageData(n,this.decodePixels()),e.putImageData(n,0,0))},i}(),Nt.PNG=Lt;\n/*\n * Extracted from pdf.js\n * https://github.com/andreasgal/pdf.js\n *\n * Copyright (c) 2011 Mozilla Foundation\n *\n * Contributors: Andreas Gal <gal@mozilla.com>\n * Chris G Jones <cjones@mozilla.com>\n * Shaon Barman <shaon.barman@gmail.com>\n * Vivien Nicolas <21@vingtetun.org>\n * Justin D'Arcangelo <justindarc@gmail.com>\n * Yury Delendik\n *\n * \n */\nvar Pt=function(){function t(){this.pos=0,this.bufferLength=0,this.eof=!1,this.buffer=null}return t.prototype={ensureBuffer:function(t){var e=this.buffer,n=e?e.byteLength:0;if(t<n)return e;for(var r=512;r<t;)r<<=1;for(var i=new Uint8Array(r),o=0;o<n;++o)i[o]=e[o];return this.buffer=i},getByte:function(){for(var t=this.pos;this.bufferLength<=t;){if(this.eof)return null;this.readBlock()}return this.buffer[this.pos++]},getBytes:function(t){var e=this.pos;if(t){this.ensureBuffer(e+t);for(var n=e+t;!this.eof&&this.bufferLength<n;)this.readBlock();var r=this.bufferLength;r<n&&(n=r)}else{for(;!this.eof;)this.readBlock();n=this.bufferLength}return this.pos=n,this.buffer.subarray(e,n)},lookChar:function(){for(var t=this.pos;this.bufferLength<=t;){if(this.eof)return null;this.readBlock()}return String.fromCharCode(this.buffer[this.pos])},getChar:function(){for(var t=this.pos;this.bufferLength<=t;){if(this.eof)return null;this.readBlock()}return String.fromCharCode(this.buffer[this.pos++])},makeSubStream:function(t,e,n){for(var r=t+e;this.bufferLength<=r&&!this.eof;)this.readBlock();return new Stream(this.buffer,t,e,n)},skip:function(t){t||(t=1),this.pos+=t},reset:function(){this.pos=0}},t}(),kt=function(){if(\"undefined\"!=typeof Uint32Array){var k=new Uint32Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),I=new Uint32Array([3,4,5,6,7,8,9,10,65547,65549,65551,65553,131091,131095,131099,131103,196643,196651,196659,196667,262211,262227,262243,262259,327811,327843,327875,327907,258,258,258]),C=new Uint32Array([1,2,3,4,65541,65543,131081,131085,196625,196633,262177,262193,327745,327777,393345,393409,459009,459137,524801,525057,590849,591361,657409,658433,724993,727041,794625,798721,868353,876545]),B=[new Uint32Array([459008,524368,524304,524568,459024,524400,524336,590016,459016,524384,524320,589984,524288,524416,524352,590048,459012,524376,524312,589968,459028,524408,524344,590032,459020,524392,524328,59e4,524296,524424,524360,590064,459010,524372,524308,524572,459026,524404,524340,590024,459018,524388,524324,589992,524292,524420,524356,590056,459014,524380,524316,589976,459030,524412,524348,590040,459022,524396,524332,590008,524300,524428,524364,590072,459009,524370,524306,524570,459025,524402,524338,590020,459017,524386,524322,589988,524290,524418,524354,590052,459013,524378,524314,589972,459029,524410,524346,590036,459021,524394,524330,590004,524298,524426,524362,590068,459011,524374,524310,524574,459027,524406,524342,590028,459019,524390,524326,589996,524294,524422,524358,590060,459015,524382,524318,589980,459031,524414,524350,590044,459023,524398,524334,590012,524302,524430,524366,590076,459008,524369,524305,524569,459024,524401,524337,590018,459016,524385,524321,589986,524289,524417,524353,590050,459012,524377,524313,589970,459028,524409,524345,590034,459020,524393,524329,590002,524297,524425,524361,590066,459010,524373,524309,524573,459026,524405,524341,590026,459018,524389,524325,589994,524293,524421,524357,590058,459014,524381,524317,589978,459030,524413,524349,590042,459022,524397,524333,590010,524301,524429,524365,590074,459009,524371,524307,524571,459025,524403,524339,590022,459017,524387,524323,589990,524291,524419,524355,590054,459013,524379,524315,589974,459029,524411,524347,590038,459021,524395,524331,590006,524299,524427,524363,590070,459011,524375,524311,524575,459027,524407,524343,590030,459019,524391,524327,589998,524295,524423,524359,590062,459015,524383,524319,589982,459031,524415,524351,590046,459023,524399,524335,590014,524303,524431,524367,590078,459008,524368,524304,524568,459024,524400,524336,590017,459016,524384,524320,589985,524288,524416,524352,590049,459012,524376,524312,589969,459028,524408,524344,590033,459020,524392,524328,590001,524296,524424,524360,590065,459010,524372,524308,524572,459026,524404,524340,590025,459018,524388,524324,589993,524292,524420,524356,590057,459014,524380,524316,589977,459030,524412,524348,590041,459022,524396,524332,590009,524300,524428,524364,590073,459009,524370,524306,524570,459025,524402,524338,590021,459017,524386,524322,589989,524290,524418,524354,590053,459013,524378,524314,589973,459029,524410,524346,590037,459021,524394,524330,590005,524298,524426,524362,590069,459011,524374,524310,524574,459027,524406,524342,590029,459019,524390,524326,589997,524294,524422,524358,590061,459015,524382,524318,589981,459031,524414,524350,590045,459023,524398,524334,590013,524302,524430,524366,590077,459008,524369,524305,524569,459024,524401,524337,590019,459016,524385,524321,589987,524289,524417,524353,590051,459012,524377,524313,589971,459028,524409,524345,590035,459020,524393,524329,590003,524297,524425,524361,590067,459010,524373,524309,524573,459026,524405,524341,590027,459018,524389,524325,589995,524293,524421,524357,590059,459014,524381,524317,589979,459030,524413,524349,590043,459022,524397,524333,590011,524301,524429,524365,590075,459009,524371,524307,524571,459025,524403,524339,590023,459017,524387,524323,589991,524291,524419,524355,590055,459013,524379,524315,589975,459029,524411,524347,590039,459021,524395,524331,590007,524299,524427,524363,590071,459011,524375,524311,524575,459027,524407,524343,590031,459019,524391,524327,589999,524295,524423,524359,590063,459015,524383,524319,589983,459031,524415,524351,590047,459023,524399,524335,590015,524303,524431,524367,590079]),9],j=[new Uint32Array([327680,327696,327688,327704,327684,327700,327692,327708,327682,327698,327690,327706,327686,327702,327694,0,327681,327697,327689,327705,327685,327701,327693,327709,327683,327699,327691,327707,327687,327703,327695,0]),5];return(t.prototype=Object.create(Pt.prototype)).getBits=function(t){for(var e,n=this.codeSize,r=this.codeBuf,i=this.bytes,o=this.bytesPos;n<t;)void 0===(e=i[o++])&&E(\"Bad encoding in flate stream\"),r|=e<<n,n+=8;return e=r&(1<<t)-1,this.codeBuf=r>>t,this.codeSize=n-=t,this.bytesPos=o,e},t.prototype.getCode=function(t){for(var e=t[0],n=t[1],r=this.codeSize,i=this.codeBuf,o=this.bytes,a=this.bytesPos;r<n;){var s;void 0===(s=o[a++])&&E(\"Bad encoding in flate stream\"),i|=s<<r,r+=8}var l=e[i&(1<<n)-1],h=l>>16,u=65535&l;return(0==r||r<h||0==h)&&E(\"Bad encoding in flate stream\"),this.codeBuf=i>>h,this.codeSize=r-h,this.bytesPos=a,u},t.prototype.generateHuffmanTable=function(t){for(var e=t.length,n=0,r=0;r<e;++r)t[r]>n&&(n=t[r]);for(var i=1<<n,o=new Uint32Array(i),a=1,s=0,l=2;a<=n;++a,s<<=1,l<<=1)for(var h=0;h<e;++h)if(t[h]==a){var u=0,c=s;for(r=0;r<a;++r)u=u<<1|1&c,c>>=1;for(r=u;r<i;r+=l)o[r]=a<<16|h;++s}return[o,n]},t.prototype.readBlock=function(){function t(t,e,n,r,i){for(var o=t.getBits(n)+r;0<o--;)e[l++]=i}var e=this.getBits(3);if(1&e&&(this.eof=!0),0!=(e>>=1)){var n,r;if(1==e)n=B,r=j;else if(2==e){for(var i=this.getBits(5)+257,o=this.getBits(5)+1,a=this.getBits(4)+4,s=Array(k.length),l=0;l<a;)s[k[l++]]=this.getBits(3);for(var h=this.generateHuffmanTable(s),u=0,c=(l=0,i+o),f=new Array(c);l<c;){var p=this.getCode(h);16==p?t(this,f,2,3,u):17==p?t(this,f,3,3,u=0):18==p?t(this,f,7,11,u=0):f[l++]=u=p}n=this.generateHuffmanTable(f.slice(0,i)),r=this.generateHuffmanTable(f.slice(i,c))}else E(\"Unknown block type in flate stream\");for(var d=(_=this.buffer)?_.length:0,g=this.bufferLength;;){var m=this.getCode(n);if(m<256)d<=g+1&&(d=(_=this.ensureBuffer(g+1)).length),_[g++]=m;else{if(256==m)return void(this.bufferLength=g);var y=(m=I[m-=257])>>16;0<y&&(y=this.getBits(y));u=(65535&m)+y;m=this.getCode(r),0<(y=(m=C[m])>>16)&&(y=this.getBits(y));var v=(65535&m)+y;d<=g+u&&(d=(_=this.ensureBuffer(g+u)).length);for(var w=0;w<u;++w,++g)_[g]=_[g-v]}}}else{var b,x=this.bytes,N=this.bytesPos;void 0===(b=x[N++])&&E(\"Bad block header in flate stream\");var L=b;void 0===(b=x[N++])&&E(\"Bad block header in flate stream\"),L|=b<<8,void 0===(b=x[N++])&&E(\"Bad block header in flate stream\");var A=b;void 0===(b=x[N++])&&E(\"Bad block header in flate stream\"),(A|=b<<8)!=(65535&~L)&&E(\"Bad uncompressed block length in flate stream\"),this.codeBuf=0,this.codeSize=0;var S=this.bufferLength,_=this.ensureBuffer(S+L),F=S+L;this.bufferLength=F;for(var P=S;P<F;++P){if(void 0===(b=x[N++])){this.eof=!0;break}_[P]=b}this.bytesPos=N}},t}function E(t){throw new Error(t)}function t(t){var e=0,n=t[e++],r=t[e++];-1!=n&&-1!=r||E(\"Invalid header in flate stream\"),8!=(15&n)&&E(\"Unknown compression method in flate stream\"),((n<<8)+r)%31!=0&&E(\"Bad FCHECK in flate stream\"),32&r&&E(\"FDICT bit set in flate stream\"),this.bytes=t,this.bytesPos=2,this.codeSize=0,this.codeBuf=0,Pt.call(this)}}();window.tmp=kt});try{module.exports=jsPDF}catch(t){}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/jspdf/dist/jspdf.min.js?");
|
|
2156
|
+
|
|
2157
|
+
/***/ }),
|
|
2158
|
+
|
|
2137
2159
|
/***/ "./node_modules/lodash.get/index.js":
|
|
2138
2160
|
/*!******************************************!*\
|
|
2139
2161
|
!*** ./node_modules/lodash.get/index.js ***!
|
|
@@ -2145,6 +2167,41 @@ eval("/* WEBPACK VAR INJECTION */(function(global) {/**\n * lodash (Custom Build
|
|
|
2145
2167
|
|
|
2146
2168
|
/***/ }),
|
|
2147
2169
|
|
|
2170
|
+
/***/ "./node_modules/rgbcolor/index.js":
|
|
2171
|
+
/*!****************************************!*\
|
|
2172
|
+
!*** ./node_modules/rgbcolor/index.js ***!
|
|
2173
|
+
\****************************************/
|
|
2174
|
+
/*! no static exports found */
|
|
2175
|
+
/***/ (function(module, exports) {
|
|
2176
|
+
|
|
2177
|
+
eval("/*\n\tBased on rgbcolor.js by Stoyan Stefanov <sstoo@gmail.com>\n\thttp://www.phpied.com/rgb-color-parser-in-javascript/\n*/\n\nmodule.exports = function(color_string) {\n this.ok = false;\n this.alpha = 1.0;\n\n // strip any leading #\n if (color_string.charAt(0) == '#') { // remove # if any\n color_string = color_string.substr(1,6);\n }\n\n color_string = color_string.replace(/ /g,'');\n color_string = color_string.toLowerCase();\n\n // before getting into regexps, try simple matches\n // and overwrite the input\n var simple_colors = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dodgerblue: '1e90ff',\n feldspar: 'd19275',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred : 'cd5c5c',\n indigo : '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgrey: 'd3d3d3',\n lightgreen: '90ee90',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslateblue: '8470ff',\n lightslategray: '778899',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '00ff00',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'ff00ff',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370d8',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'd87093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '663399',\n red: 'ff0000',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n violetred: 'd02090',\n wheat: 'f5deb3',\n white: 'ffffff',\n whitesmoke: 'f5f5f5',\n yellow: 'ffff00',\n yellowgreen: '9acd32'\n };\n color_string = simple_colors[color_string] || color_string;\n // emd of simple type-in colors\n\n // array of color definition objects\n var color_defs = [\n {\n re: /^rgba\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3}),\\s*((?:\\d?\\.)?\\d)\\)$/,\n example: ['rgba(123, 234, 45, 0.8)', 'rgba(255,234,245,1.0)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3]),\n parseFloat(bits[4])\n ];\n }\n },\n {\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\n example: ['rgb(123, 234, 45)', 'rgb(255,234,245)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3])\n ];\n }\n },\n {\n re: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n example: ['#00ff00', '336699'],\n process: function (bits){\n return [\n parseInt(bits[1], 16),\n parseInt(bits[2], 16),\n parseInt(bits[3], 16)\n ];\n }\n },\n {\n re: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n example: ['#fb0', 'f0f'],\n process: function (bits){\n return [\n parseInt(bits[1] + bits[1], 16),\n parseInt(bits[2] + bits[2], 16),\n parseInt(bits[3] + bits[3], 16)\n ];\n }\n }\n ];\n\n // search through the definitions to find a match\n for (var i = 0; i < color_defs.length; i++) {\n var re = color_defs[i].re;\n var processor = color_defs[i].process;\n var bits = re.exec(color_string);\n if (bits) {\n var channels = processor(bits);\n this.r = channels[0];\n this.g = channels[1];\n this.b = channels[2];\n if (channels.length > 3) {\n this.alpha = channels[3];\n }\n this.ok = true;\n }\n\n }\n\n // validate/cleanup values\n this.r = (this.r < 0 || isNaN(this.r)) ? 0 : ((this.r > 255) ? 255 : this.r);\n this.g = (this.g < 0 || isNaN(this.g)) ? 0 : ((this.g > 255) ? 255 : this.g);\n this.b = (this.b < 0 || isNaN(this.b)) ? 0 : ((this.b > 255) ? 255 : this.b);\n this.alpha = (this.alpha < 0) ? 0 : ((this.alpha > 1.0 || isNaN(this.alpha)) ? 1.0 : this.alpha);\n\n // some getters\n this.toRGB = function () {\n return 'rgb(' + this.r + ', ' + this.g + ', ' + this.b + ')';\n }\n this.toRGBA = function () {\n return 'rgba(' + this.r + ', ' + this.g + ', ' + this.b + ', ' + this.alpha + ')';\n }\n this.toHex = function () {\n var r = this.r.toString(16);\n var g = this.g.toString(16);\n var b = this.b.toString(16);\n if (r.length == 1) r = '0' + r;\n if (g.length == 1) g = '0' + g;\n if (b.length == 1) b = '0' + b;\n return '#' + r + g + b;\n }\n\n // help\n this.getHelpXML = function () {\n\n var examples = new Array();\n // add regexps\n for (var i = 0; i < color_defs.length; i++) {\n var example = color_defs[i].example;\n for (var j = 0; j < example.length; j++) {\n examples[examples.length] = example[j];\n }\n }\n // add type-in colors\n for (var sc in simple_colors) {\n examples[examples.length] = sc;\n }\n\n var xml = document.createElement('ul');\n xml.setAttribute('id', 'rgbcolor-examples');\n for (var i = 0; i < examples.length; i++) {\n try {\n var list_item = document.createElement('li');\n var list_color = new RGBColor(examples[i]);\n var example_div = document.createElement('div');\n example_div.style.cssText =\n 'margin: 3px; '\n + 'border: 1px solid black; '\n + 'background:' + list_color.toHex() + '; '\n + 'color:' + list_color.toHex()\n ;\n example_div.appendChild(document.createTextNode('test'));\n var list_item_value = document.createTextNode(\n ' ' + examples[i] + ' -> ' + list_color.toRGB() + ' -> ' + list_color.toHex()\n );\n list_item.appendChild(example_div);\n list_item.appendChild(list_item_value);\n xml.appendChild(list_item);\n\n } catch(e){}\n }\n return xml;\n\n }\n\n}\n\n\n//# sourceURL=webpack:///./node_modules/rgbcolor/index.js?");
|
|
2178
|
+
|
|
2179
|
+
/***/ }),
|
|
2180
|
+
|
|
2181
|
+
/***/ "./node_modules/save-svg-as-png/lib/saveSvgAsPng.js":
|
|
2182
|
+
/*!**********************************************************!*\
|
|
2183
|
+
!*** ./node_modules/save-svg-as-png/lib/saveSvgAsPng.js ***!
|
|
2184
|
+
\**********************************************************/
|
|
2185
|
+
/*! no static exports found */
|
|
2186
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
2187
|
+
|
|
2188
|
+
"use strict";
|
|
2189
|
+
eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;\n\n(function () {\n var out$ = typeof exports != 'undefined' && exports || \"function\" != 'undefined' && {} || this || window;\n if (true) !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n return out$;\n }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n out$.default = out$;\n\n var xmlNs = 'http://www.w3.org/2000/xmlns/';\n var xhtmlNs = 'http://www.w3.org/1999/xhtml';\n var svgNs = 'http://www.w3.org/2000/svg';\n var doctype = '<?xml version=\"1.0\" standalone=\"no\"?><!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\" [<!ENTITY nbsp \" \">]>';\n var urlRegex = /url\\([\"']?(.+?)[\"']?\\)/;\n var fontFormats = {\n woff2: 'font/woff2',\n woff: 'font/woff',\n otf: 'application/x-font-opentype',\n ttf: 'application/x-font-ttf',\n eot: 'application/vnd.ms-fontobject',\n sfnt: 'application/font-sfnt',\n svg: 'image/svg+xml'\n };\n\n var isElement = function isElement(obj) {\n return obj instanceof HTMLElement || obj instanceof SVGElement;\n };\n var requireDomNode = function requireDomNode(el) {\n if (!isElement(el)) throw new Error('an HTMLElement or SVGElement is required; got ' + el);\n };\n var requireDomNodePromise = function requireDomNodePromise(el) {\n return new Promise(function (resolve, reject) {\n if (isElement(el)) resolve(el);else reject(new Error('an HTMLElement or SVGElement is required; got ' + el));\n });\n };\n var isExternal = function isExternal(url) {\n return url && url.lastIndexOf('http', 0) === 0 && url.lastIndexOf(window.location.host) === -1;\n };\n\n var getFontMimeTypeFromUrl = function getFontMimeTypeFromUrl(fontUrl) {\n var formats = Object.keys(fontFormats).filter(function (extension) {\n return fontUrl.indexOf('.' + extension) > 0;\n }).map(function (extension) {\n return fontFormats[extension];\n });\n if (formats) return formats[0];\n console.error('Unknown font format for ' + fontUrl + '. Fonts may not be working correctly.');\n return 'application/octet-stream';\n };\n\n var arrayBufferToBase64 = function arrayBufferToBase64(buffer) {\n var binary = '';\n var bytes = new Uint8Array(buffer);\n for (var i = 0; i < bytes.byteLength; i++) {\n binary += String.fromCharCode(bytes[i]);\n }return window.btoa(binary);\n };\n\n var getDimension = function getDimension(el, clone, dim) {\n var v = el.viewBox && el.viewBox.baseVal && el.viewBox.baseVal[dim] || clone.getAttribute(dim) !== null && !clone.getAttribute(dim).match(/%$/) && parseInt(clone.getAttribute(dim)) || el.getBoundingClientRect()[dim] || parseInt(clone.style[dim]) || parseInt(window.getComputedStyle(el).getPropertyValue(dim));\n return typeof v === 'undefined' || v === null || isNaN(parseFloat(v)) ? 0 : v;\n };\n\n var getDimensions = function getDimensions(el, clone, width, height) {\n if (el.tagName === 'svg') return {\n width: width || getDimension(el, clone, 'width'),\n height: height || getDimension(el, clone, 'height')\n };else if (el.getBBox) {\n var _el$getBBox = el.getBBox(),\n x = _el$getBBox.x,\n y = _el$getBBox.y,\n _width = _el$getBBox.width,\n _height = _el$getBBox.height;\n\n return {\n width: x + _width,\n height: y + _height\n };\n }\n };\n\n var reEncode = function reEncode(data) {\n return decodeURIComponent(encodeURIComponent(data).replace(/%([0-9A-F]{2})/g, function (match, p1) {\n var c = String.fromCharCode('0x' + p1);\n return c === '%' ? '%25' : c;\n }));\n };\n\n var uriToBlob = function uriToBlob(uri) {\n var byteString = window.atob(uri.split(',')[1]);\n var mimeString = uri.split(',')[0].split(':')[1].split(';')[0];\n var buffer = new ArrayBuffer(byteString.length);\n var intArray = new Uint8Array(buffer);\n for (var i = 0; i < byteString.length; i++) {\n intArray[i] = byteString.charCodeAt(i);\n }\n return new Blob([buffer], { type: mimeString });\n };\n\n var query = function query(el, selector) {\n if (!selector) return;\n try {\n return el.querySelector(selector) || el.parentNode && el.parentNode.querySelector(selector);\n } catch (err) {\n console.warn('Invalid CSS selector \"' + selector + '\"', err);\n }\n };\n\n var detectCssFont = function detectCssFont(rule, href) {\n // Match CSS font-face rules to external links.\n // @font-face {\n // src: local('Abel'), url(https://fonts.gstatic.com/s/abel/v6/UzN-iejR1VoXU2Oc-7LsbvesZW2xOQ-xsNqO47m55DA.woff2);\n // }\n var match = rule.cssText.match(urlRegex);\n var url = match && match[1] || '';\n if (!url || url.match(/^data:/) || url === 'about:blank') return;\n var fullUrl = url.startsWith('../') ? href + '/../' + url : url.startsWith('./') ? href + '/.' + url : url;\n return {\n text: rule.cssText,\n format: getFontMimeTypeFromUrl(fullUrl),\n url: fullUrl\n };\n };\n\n var inlineImages = function inlineImages(el) {\n return Promise.all(Array.from(el.querySelectorAll('image')).map(function (image) {\n var href = image.getAttributeNS('http://www.w3.org/1999/xlink', 'href') || image.getAttribute('href');\n if (!href) return Promise.resolve(null);\n if (isExternal(href)) {\n href += (href.indexOf('?') === -1 ? '?' : '&') + 't=' + new Date().valueOf();\n }\n return new Promise(function (resolve, reject) {\n var canvas = document.createElement('canvas');\n var img = new Image();\n img.crossOrigin = 'anonymous';\n img.src = href;\n img.onerror = function () {\n return reject(new Error('Could not load ' + href));\n };\n img.onload = function () {\n canvas.width = img.width;\n canvas.height = img.height;\n canvas.getContext('2d').drawImage(img, 0, 0);\n image.setAttributeNS('http://www.w3.org/1999/xlink', 'href', canvas.toDataURL('image/png'));\n resolve(true);\n };\n });\n }));\n };\n\n var cachedFonts = {};\n var inlineFonts = function inlineFonts(fonts) {\n return Promise.all(fonts.map(function (font) {\n return new Promise(function (resolve, reject) {\n if (cachedFonts[font.url]) return resolve(cachedFonts[font.url]);\n\n var req = new XMLHttpRequest();\n req.addEventListener('load', function () {\n // TODO: it may also be worth it to wait until fonts are fully loaded before\n // attempting to rasterize them. (e.g. use https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet)\n var fontInBase64 = arrayBufferToBase64(req.response);\n var fontUri = font.text.replace(urlRegex, 'url(\"data:' + font.format + ';base64,' + fontInBase64 + '\")') + '\\n';\n cachedFonts[font.url] = fontUri;\n resolve(fontUri);\n });\n req.addEventListener('error', function (e) {\n console.warn('Failed to load font from: ' + font.url, e);\n cachedFonts[font.url] = null;\n resolve(null);\n });\n req.addEventListener('abort', function (e) {\n console.warn('Aborted loading font from: ' + font.url, e);\n resolve(null);\n });\n req.open('GET', font.url);\n req.responseType = 'arraybuffer';\n req.send();\n });\n })).then(function (fontCss) {\n return fontCss.filter(function (x) {\n return x;\n }).join('');\n });\n };\n\n var cachedRules = null;\n var styleSheetRules = function styleSheetRules() {\n if (cachedRules) return cachedRules;\n return cachedRules = Array.from(document.styleSheets).map(function (sheet) {\n try {\n return { rules: sheet.cssRules, href: sheet.href };\n } catch (e) {\n console.warn('Stylesheet could not be loaded: ' + sheet.href, e);\n return {};\n }\n });\n };\n\n var inlineCss = function inlineCss(el, options) {\n var _ref = options || {},\n selectorRemap = _ref.selectorRemap,\n modifyStyle = _ref.modifyStyle,\n modifyCss = _ref.modifyCss,\n fonts = _ref.fonts;\n\n var generateCss = modifyCss || function (selector, properties) {\n var sel = selectorRemap ? selectorRemap(selector) : selector;\n var props = modifyStyle ? modifyStyle(properties) : properties;\n return sel + '{' + props + '}\\n';\n };\n var css = [];\n var detectFonts = typeof fonts === 'undefined';\n var fontList = fonts || [];\n styleSheetRules().forEach(function (_ref2) {\n var rules = _ref2.rules,\n href = _ref2.href;\n\n if (!rules) return;\n Array.from(rules).forEach(function (rule) {\n if (typeof rule.style != 'undefined') {\n if (query(el, rule.selectorText)) css.push(generateCss(rule.selectorText, rule.style.cssText));else if (detectFonts && rule.cssText.match(/^@font-face/)) {\n var font = detectCssFont(rule, href);\n if (font) fontList.push(font);\n } else css.push(rule.cssText);\n }\n });\n });\n\n return inlineFonts(fontList).then(function (fontCss) {\n return css.join('\\n') + fontCss;\n });\n };\n\n var downloadOptions = function downloadOptions() {\n if (!navigator.msSaveOrOpenBlob && !('download' in document.createElement('a'))) {\n return { popup: window.open() };\n }\n };\n\n out$.prepareSvg = function (el, options, done) {\n requireDomNode(el);\n\n var _ref3 = options || {},\n _ref3$left = _ref3.left,\n left = _ref3$left === undefined ? 0 : _ref3$left,\n _ref3$top = _ref3.top,\n top = _ref3$top === undefined ? 0 : _ref3$top,\n w = _ref3.width,\n h = _ref3.height,\n _ref3$scale = _ref3.scale,\n scale = _ref3$scale === undefined ? 1 : _ref3$scale,\n _ref3$responsive = _ref3.responsive,\n responsive = _ref3$responsive === undefined ? false : _ref3$responsive;\n\n return inlineImages(el).then(function () {\n var clone = el.cloneNode(true);\n clone.style.backgroundColor = (options || {}).backgroundColor || el.style.backgroundColor;\n\n var _getDimensions = getDimensions(el, clone, w, h),\n width = _getDimensions.width,\n height = _getDimensions.height;\n\n if (el.tagName !== 'svg') {\n if (el.getBBox) {\n if (clone.getAttribute('transform') != null) {\n clone.setAttribute('transform', clone.getAttribute('transform').replace(/translate\\(.*?\\)/, ''));\n }\n var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.appendChild(clone);\n clone = svg;\n } else {\n console.error('Attempted to render non-SVG element', el);\n return;\n }\n }\n\n clone.setAttribute('version', '1.1');\n clone.setAttribute('viewBox', [left, top, width, height].join(' '));\n if (!clone.getAttribute('xmlns')) clone.setAttributeNS(xmlNs, 'xmlns', svgNs);\n if (!clone.getAttribute('xmlns:xlink')) clone.setAttributeNS(xmlNs, 'xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n if (responsive) {\n clone.removeAttribute('width');\n clone.removeAttribute('height');\n clone.setAttribute('preserveAspectRatio', 'xMinYMin meet');\n } else {\n clone.setAttribute('width', width * scale);\n clone.setAttribute('height', height * scale);\n }\n\n Array.from(clone.querySelectorAll('foreignObject > *')).forEach(function (foreignObject) {\n foreignObject.setAttributeNS(xmlNs, 'xmlns', foreignObject.tagName === 'svg' ? svgNs : xhtmlNs);\n });\n\n return inlineCss(el, options).then(function (css) {\n var style = document.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = '<![CDATA[\\n' + css + '\\n]]>';\n\n var defs = document.createElement('defs');\n defs.appendChild(style);\n clone.insertBefore(defs, clone.firstChild);\n\n var outer = document.createElement('div');\n outer.appendChild(clone);\n var src = outer.innerHTML.replace(/NS\\d+:href/gi, 'xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href');\n\n if (typeof done === 'function') done(src, width, height);else return { src: src, width: width, height: height };\n });\n });\n };\n\n out$.svgAsDataUri = function (el, options, done) {\n requireDomNode(el);\n return out$.prepareSvg(el, options).then(function (_ref4) {\n var src = _ref4.src,\n width = _ref4.width,\n height = _ref4.height;\n\n var svgXml = 'data:image/svg+xml;base64,' + window.btoa(reEncode(doctype + src));\n if (typeof done === 'function') {\n done(svgXml, width, height);\n }\n return svgXml;\n });\n };\n\n out$.svgAsPngUri = function (el, options, done) {\n requireDomNode(el);\n\n var _ref5 = options || {},\n _ref5$encoderType = _ref5.encoderType,\n encoderType = _ref5$encoderType === undefined ? 'image/png' : _ref5$encoderType,\n _ref5$encoderOptions = _ref5.encoderOptions,\n encoderOptions = _ref5$encoderOptions === undefined ? 0.8 : _ref5$encoderOptions,\n canvg = _ref5.canvg;\n\n var convertToPng = function convertToPng(_ref6) {\n var src = _ref6.src,\n width = _ref6.width,\n height = _ref6.height;\n\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n var pixelRatio = window.devicePixelRatio || 1;\n\n canvas.width = width * pixelRatio;\n canvas.height = height * pixelRatio;\n canvas.style.width = canvas.width + 'px';\n canvas.style.height = canvas.height + 'px';\n context.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n\n if (canvg) canvg(canvas, src);else context.drawImage(src, 0, 0);\n\n var png = void 0;\n try {\n png = canvas.toDataURL(encoderType, encoderOptions);\n } catch (e) {\n if (typeof SecurityError !== 'undefined' && e instanceof SecurityError || e.name === 'SecurityError') {\n console.error('Rendered SVG images cannot be downloaded in this browser.');\n return;\n } else throw e;\n }\n if (typeof done === 'function') done(png, canvas.width, canvas.height);\n return Promise.resolve(png);\n };\n\n if (canvg) return out$.prepareSvg(el, options).then(convertToPng);else return out$.svgAsDataUri(el, options).then(function (uri) {\n return new Promise(function (resolve, reject) {\n var image = new Image();\n image.onload = function () {\n return resolve(convertToPng({\n src: image,\n width: image.width,\n height: image.height\n }));\n };\n image.onerror = function () {\n reject('There was an error loading the data URI as an image on the following SVG\\n' + window.atob(uri.slice(26)) + 'Open the following link to see browser\\'s diagnosis\\n' + uri);\n };\n image.src = uri;\n });\n });\n };\n\n out$.download = function (name, uri, options) {\n if (navigator.msSaveOrOpenBlob) navigator.msSaveOrOpenBlob(uriToBlob(uri), name);else {\n var saveLink = document.createElement('a');\n if ('download' in saveLink) {\n saveLink.download = name;\n saveLink.style.display = 'none';\n document.body.appendChild(saveLink);\n try {\n var blob = uriToBlob(uri);\n var url = URL.createObjectURL(blob);\n saveLink.href = url;\n saveLink.onclick = function () {\n return requestAnimationFrame(function () {\n return URL.revokeObjectURL(url);\n });\n };\n } catch (e) {\n console.error(e);\n console.warn('Error while getting object URL. Falling back to string URL.');\n saveLink.href = uri;\n }\n saveLink.click();\n document.body.removeChild(saveLink);\n } else if (options && options.popup) {\n options.popup.document.title = name;\n options.popup.location.replace(uri);\n }\n }\n };\n\n out$.saveSvg = function (el, name, options) {\n var downloadOpts = downloadOptions(); // don't inline, can't be async\n return requireDomNodePromise(el).then(function (el) {\n return out$.svgAsDataUri(el, options || {});\n }).then(function (uri) {\n return out$.download(name, uri, downloadOpts);\n });\n };\n\n out$.saveSvgAsPng = function (el, name, options) {\n var downloadOpts = downloadOptions(); // don't inline, can't be async\n return requireDomNodePromise(el).then(function (el) {\n return out$.svgAsPngUri(el, options || {});\n }).then(function (uri) {\n return out$.download(name, uri, downloadOpts);\n });\n };\n})();\n\n//# sourceURL=webpack:///./node_modules/save-svg-as-png/lib/saveSvgAsPng.js?");
|
|
2190
|
+
|
|
2191
|
+
/***/ }),
|
|
2192
|
+
|
|
2193
|
+
/***/ "./node_modules/stackblur-canvas/dist/stackblur-es.js":
|
|
2194
|
+
/*!************************************************************!*\
|
|
2195
|
+
!*** ./node_modules/stackblur-canvas/dist/stackblur-es.js ***!
|
|
2196
|
+
\************************************************************/
|
|
2197
|
+
/*! exports provided: BlurStack, image, canvasRGBA, canvasRGB, imageDataRGBA, imageDataRGB */
|
|
2198
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2199
|
+
|
|
2200
|
+
"use strict";
|
|
2201
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BlurStack\", function() { return BlurStack; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"image\", function() { return processImage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"canvasRGBA\", function() { return processCanvasRGBA; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"canvasRGB\", function() { return processCanvasRGB; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"imageDataRGBA\", function() { return processImageDataRGBA; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"imageDataRGB\", function() { return processImageDataRGB; });\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\n/**\n* StackBlur - a fast almost Gaussian Blur For Canvas\n*\n* In case you find this class useful - especially in commercial projects -\n* I am not totally unhappy for a small donation to my PayPal account\n* mario@quasimondo.de\n*\n* Or support me on flattr:\n* {@link https://flattr.com/thing/72791/StackBlur-a-fast-almost-Gaussian-Blur-Effect-for-CanvasJavascript}\n* @module StackBlur\n* @version 0.5\n* @author Mario Klingemann\n* Contact: mario@quasimondo.com\n* Website: {@link http://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html}\n* Twitter: @quasimondo\n*\n* @copyright (c) 2010 Mario Klingemann\n*\n* Permission is hereby granted, free of charge, to any person\n* obtaining a copy of this software and associated documentation\n* files (the \"Software\"), to deal in the Software without\n* restriction, including without limitation the rights to use,\n* copy, modify, merge, publish, distribute, sublicense, and/or sell\n* copies of the Software, and to permit persons to whom the\n* Software is furnished to do so, subject to the following\n* conditions:\n*\n* The above copyright notice and this permission notice shall be\n* included in all copies or substantial portions of the Software.\n*\n* THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n* OTHER DEALINGS IN THE SOFTWARE.\n*/\nvar mulTable = [512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512, 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512, 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456, 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512, 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328, 320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456, 446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335, 329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512, 505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405, 399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328, 324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, 268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, 451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, 385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, 332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292, 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259];\nvar shgTable = [9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24];\n/**\n * @param {string|HTMLImageElement} img\n * @param {string|HTMLCanvasElement} canvas\n * @param {Float} radius\n * @param {boolean} blurAlphaChannel\n * @returns {undefined}\n */\n\nfunction processImage(img, canvas, radius, blurAlphaChannel) {\n if (typeof img === 'string') {\n img = document.getElementById(img);\n }\n\n if (!img || !('naturalWidth' in img)) {\n return;\n }\n\n var w = img.naturalWidth;\n var h = img.naturalHeight;\n\n if (typeof canvas === 'string') {\n canvas = document.getElementById(canvas);\n }\n\n if (!canvas || !('getContext' in canvas)) {\n return;\n }\n\n canvas.style.width = w + 'px';\n canvas.style.height = h + 'px';\n canvas.width = w;\n canvas.height = h;\n var context = canvas.getContext('2d');\n context.clearRect(0, 0, w, h);\n context.drawImage(img, 0, 0);\n\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n if (blurAlphaChannel) {\n processCanvasRGBA(canvas, 0, 0, w, h, radius);\n } else {\n processCanvasRGB(canvas, 0, 0, w, h, radius);\n }\n}\n/**\n * @param {string|HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @throws {Error|TypeError}\n * @returns {ImageData} See {@link https://html.spec.whatwg.org/multipage/canvas.html#imagedata}\n */\n\n\nfunction getImageDataFromCanvas(canvas, topX, topY, width, height) {\n if (typeof canvas === 'string') {\n canvas = document.getElementById(canvas);\n }\n\n if (!canvas || _typeof(canvas) !== 'object' || !('getContext' in canvas)) {\n throw new TypeError('Expecting canvas with `getContext` method in processCanvasRGB(A) calls!');\n }\n\n var context = canvas.getContext('2d');\n\n try {\n return context.getImageData(topX, topY, width, height);\n } catch (e) {\n throw new Error('unable to access image data: ' + e);\n }\n}\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {undefined}\n */\n\n\nfunction processCanvasRGBA(canvas, topX, topY, width, height, radius) {\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n radius |= 0;\n var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\n imageData = processImageDataRGBA(imageData, topX, topY, width, height, radius);\n canvas.getContext('2d').putImageData(imageData, topX, topY);\n}\n/**\n * @param {ImageData} imageData\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {ImageData}\n */\n\n\nfunction processImageDataRGBA(imageData, topX, topY, width, height, radius) {\n var pixels = imageData.data;\n var x, y, i, p, yp, yi, yw, rSum, gSum, bSum, aSum, rOutSum, gOutSum, bOutSum, aOutSum, rInSum, gInSum, bInSum, aInSum, pr, pg, pb, pa, rbs;\n var div = 2 * radius + 1; // const w4 = width << 2;\n\n var widthMinus1 = width - 1;\n var heightMinus1 = height - 1;\n var radiusPlus1 = radius + 1;\n var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n var stackStart = new BlurStack();\n var stack = stackStart;\n var stackEnd;\n\n for (i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n\n stack.next = stackStart;\n var stackIn = null;\n var stackOut = null;\n yw = yi = 0;\n var mulSum = mulTable[radius];\n var shgSum = shgTable[radius];\n\n for (y = 0; y < height; y++) {\n rInSum = gInSum = bInSum = aInSum = rSum = gSum = bSum = aSum = 0;\n rOutSum = radiusPlus1 * (pr = pixels[yi]);\n gOutSum = radiusPlus1 * (pg = pixels[yi + 1]);\n bOutSum = radiusPlus1 * (pb = pixels[yi + 2]);\n aOutSum = radiusPlus1 * (pa = pixels[yi + 3]);\n rSum += sumFactor * pr;\n gSum += sumFactor * pg;\n bSum += sumFactor * pb;\n aSum += sumFactor * pa;\n stack = stackStart;\n\n for (i = 0; i < radiusPlus1; i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n\n for (i = 1; i < radiusPlus1; i++) {\n p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2);\n rSum += (stack.r = pr = pixels[p]) * (rbs = radiusPlus1 - i);\n gSum += (stack.g = pg = pixels[p + 1]) * rbs;\n bSum += (stack.b = pb = pixels[p + 2]) * rbs;\n aSum += (stack.a = pa = pixels[p + 3]) * rbs;\n rInSum += pr;\n gInSum += pg;\n bInSum += pb;\n aInSum += pa;\n stack = stack.next;\n }\n\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (x = 0; x < width; x++) {\n pixels[yi + 3] = pa = aSum * mulSum >> shgSum;\n\n if (pa !== 0) {\n pa = 255 / pa;\n pixels[yi] = (rSum * mulSum >> shgSum) * pa;\n pixels[yi + 1] = (gSum * mulSum >> shgSum) * pa;\n pixels[yi + 2] = (bSum * mulSum >> shgSum) * pa;\n } else {\n pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;\n }\n\n rSum -= rOutSum;\n gSum -= gOutSum;\n bSum -= bOutSum;\n aSum -= aOutSum;\n rOutSum -= stackIn.r;\n gOutSum -= stackIn.g;\n bOutSum -= stackIn.b;\n aOutSum -= stackIn.a;\n p = yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1) << 2;\n rInSum += stackIn.r = pixels[p];\n gInSum += stackIn.g = pixels[p + 1];\n bInSum += stackIn.b = pixels[p + 2];\n aInSum += stackIn.a = pixels[p + 3];\n rSum += rInSum;\n gSum += gInSum;\n bSum += bInSum;\n aSum += aInSum;\n stackIn = stackIn.next;\n rOutSum += pr = stackOut.r;\n gOutSum += pg = stackOut.g;\n bOutSum += pb = stackOut.b;\n aOutSum += pa = stackOut.a;\n rInSum -= pr;\n gInSum -= pg;\n bInSum -= pb;\n aInSum -= pa;\n stackOut = stackOut.next;\n yi += 4;\n }\n\n yw += width;\n }\n\n for (x = 0; x < width; x++) {\n gInSum = bInSum = aInSum = rInSum = gSum = bSum = aSum = rSum = 0;\n yi = x << 2;\n rOutSum = radiusPlus1 * (pr = pixels[yi]);\n gOutSum = radiusPlus1 * (pg = pixels[yi + 1]);\n bOutSum = radiusPlus1 * (pb = pixels[yi + 2]);\n aOutSum = radiusPlus1 * (pa = pixels[yi + 3]);\n rSum += sumFactor * pr;\n gSum += sumFactor * pg;\n bSum += sumFactor * pb;\n aSum += sumFactor * pa;\n stack = stackStart;\n\n for (i = 0; i < radiusPlus1; i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n\n yp = width;\n\n for (i = 1; i <= radius; i++) {\n yi = yp + x << 2;\n rSum += (stack.r = pr = pixels[yi]) * (rbs = radiusPlus1 - i);\n gSum += (stack.g = pg = pixels[yi + 1]) * rbs;\n bSum += (stack.b = pb = pixels[yi + 2]) * rbs;\n aSum += (stack.a = pa = pixels[yi + 3]) * rbs;\n rInSum += pr;\n gInSum += pg;\n bInSum += pb;\n aInSum += pa;\n stack = stack.next;\n\n if (i < heightMinus1) {\n yp += width;\n }\n }\n\n yi = x;\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (y = 0; y < height; y++) {\n p = yi << 2;\n pixels[p + 3] = pa = aSum * mulSum >> shgSum;\n\n if (pa > 0) {\n pa = 255 / pa;\n pixels[p] = (rSum * mulSum >> shgSum) * pa;\n pixels[p + 1] = (gSum * mulSum >> shgSum) * pa;\n pixels[p + 2] = (bSum * mulSum >> shgSum) * pa;\n } else {\n pixels[p] = pixels[p + 1] = pixels[p + 2] = 0;\n }\n\n rSum -= rOutSum;\n gSum -= gOutSum;\n bSum -= bOutSum;\n aSum -= aOutSum;\n rOutSum -= stackIn.r;\n gOutSum -= stackIn.g;\n bOutSum -= stackIn.b;\n aOutSum -= stackIn.a;\n p = x + ((p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width << 2;\n rSum += rInSum += stackIn.r = pixels[p];\n gSum += gInSum += stackIn.g = pixels[p + 1];\n bSum += bInSum += stackIn.b = pixels[p + 2];\n aSum += aInSum += stackIn.a = pixels[p + 3];\n stackIn = stackIn.next;\n rOutSum += pr = stackOut.r;\n gOutSum += pg = stackOut.g;\n bOutSum += pb = stackOut.b;\n aOutSum += pa = stackOut.a;\n rInSum -= pr;\n gInSum -= pg;\n bInSum -= pb;\n aInSum -= pa;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n\n return imageData;\n}\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {undefined}\n */\n\n\nfunction processCanvasRGB(canvas, topX, topY, width, height, radius) {\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n radius |= 0;\n var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\n imageData = processImageDataRGB(imageData, topX, topY, width, height, radius);\n canvas.getContext('2d').putImageData(imageData, topX, topY);\n}\n/**\n * @param {ImageData} imageData\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {ImageData}\n */\n\n\nfunction processImageDataRGB(imageData, topX, topY, width, height, radius) {\n var pixels = imageData.data;\n var x, y, i, p, yp, yi, yw, rSum, gSum, bSum, rOutSum, gOutSum, bOutSum, rInSum, gInSum, bInSum, pr, pg, pb, rbs;\n var div = 2 * radius + 1; // const w4 = width << 2;\n\n var widthMinus1 = width - 1;\n var heightMinus1 = height - 1;\n var radiusPlus1 = radius + 1;\n var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n var stackStart = new BlurStack();\n var stack = stackStart;\n var stackEnd;\n\n for (i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n\n stack.next = stackStart;\n var stackIn = null;\n var stackOut = null;\n yw = yi = 0;\n var mulSum = mulTable[radius];\n var shgSum = shgTable[radius];\n\n for (y = 0; y < height; y++) {\n rInSum = gInSum = bInSum = rSum = gSum = bSum = 0;\n rOutSum = radiusPlus1 * (pr = pixels[yi]);\n gOutSum = radiusPlus1 * (pg = pixels[yi + 1]);\n bOutSum = radiusPlus1 * (pb = pixels[yi + 2]);\n rSum += sumFactor * pr;\n gSum += sumFactor * pg;\n bSum += sumFactor * pb;\n stack = stackStart;\n\n for (i = 0; i < radiusPlus1; i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack = stack.next;\n }\n\n for (i = 1; i < radiusPlus1; i++) {\n p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2);\n rSum += (stack.r = pr = pixels[p]) * (rbs = radiusPlus1 - i);\n gSum += (stack.g = pg = pixels[p + 1]) * rbs;\n bSum += (stack.b = pb = pixels[p + 2]) * rbs;\n rInSum += pr;\n gInSum += pg;\n bInSum += pb;\n stack = stack.next;\n }\n\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (x = 0; x < width; x++) {\n pixels[yi] = rSum * mulSum >> shgSum;\n pixels[yi + 1] = gSum * mulSum >> shgSum;\n pixels[yi + 2] = bSum * mulSum >> shgSum;\n rSum -= rOutSum;\n gSum -= gOutSum;\n bSum -= bOutSum;\n rOutSum -= stackIn.r;\n gOutSum -= stackIn.g;\n bOutSum -= stackIn.b;\n p = yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1) << 2;\n rInSum += stackIn.r = pixels[p];\n gInSum += stackIn.g = pixels[p + 1];\n bInSum += stackIn.b = pixels[p + 2];\n rSum += rInSum;\n gSum += gInSum;\n bSum += bInSum;\n stackIn = stackIn.next;\n rOutSum += pr = stackOut.r;\n gOutSum += pg = stackOut.g;\n bOutSum += pb = stackOut.b;\n rInSum -= pr;\n gInSum -= pg;\n bInSum -= pb;\n stackOut = stackOut.next;\n yi += 4;\n }\n\n yw += width;\n }\n\n for (x = 0; x < width; x++) {\n gInSum = bInSum = rInSum = gSum = bSum = rSum = 0;\n yi = x << 2;\n rOutSum = radiusPlus1 * (pr = pixels[yi]);\n gOutSum = radiusPlus1 * (pg = pixels[yi + 1]);\n bOutSum = radiusPlus1 * (pb = pixels[yi + 2]);\n rSum += sumFactor * pr;\n gSum += sumFactor * pg;\n bSum += sumFactor * pb;\n stack = stackStart;\n\n for (i = 0; i < radiusPlus1; i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack = stack.next;\n }\n\n yp = width;\n\n for (i = 1; i <= radius; i++) {\n yi = yp + x << 2;\n rSum += (stack.r = pr = pixels[yi]) * (rbs = radiusPlus1 - i);\n gSum += (stack.g = pg = pixels[yi + 1]) * rbs;\n bSum += (stack.b = pb = pixels[yi + 2]) * rbs;\n rInSum += pr;\n gInSum += pg;\n bInSum += pb;\n stack = stack.next;\n\n if (i < heightMinus1) {\n yp += width;\n }\n }\n\n yi = x;\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (y = 0; y < height; y++) {\n p = yi << 2;\n pixels[p] = rSum * mulSum >> shgSum;\n pixels[p + 1] = gSum * mulSum >> shgSum;\n pixels[p + 2] = bSum * mulSum >> shgSum;\n rSum -= rOutSum;\n gSum -= gOutSum;\n bSum -= bOutSum;\n rOutSum -= stackIn.r;\n gOutSum -= stackIn.g;\n bOutSum -= stackIn.b;\n p = x + ((p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width << 2;\n rSum += rInSum += stackIn.r = pixels[p];\n gSum += gInSum += stackIn.g = pixels[p + 1];\n bSum += bInSum += stackIn.b = pixels[p + 2];\n stackIn = stackIn.next;\n rOutSum += pr = stackOut.r;\n gOutSum += pg = stackOut.g;\n bOutSum += pb = stackOut.b;\n rInSum -= pr;\n gInSum -= pg;\n bInSum -= pb;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n\n return imageData;\n}\n/**\n *\n */\n\n\nvar BlurStack = function BlurStack() {\n _classCallCheck(this, BlurStack);\n\n this.r = 0;\n this.g = 0;\n this.b = 0;\n this.a = 0;\n this.next = null;\n};\n\n\n\n\n//# sourceURL=webpack:///./node_modules/stackblur-canvas/dist/stackblur-es.js?");
|
|
2202
|
+
|
|
2203
|
+
/***/ }),
|
|
2204
|
+
|
|
2148
2205
|
/***/ "./node_modules/webpack/buildin/global.js":
|
|
2149
2206
|
/*!***********************************!*\
|
|
2150
2207
|
!*** (webpack)/buildin/global.js ***!
|
|
@@ -2156,27 +2213,39 @@ eval("var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\tr
|
|
|
2156
2213
|
|
|
2157
2214
|
/***/ }),
|
|
2158
2215
|
|
|
2216
|
+
/***/ "./web-client/public/js/api/grnsight-api.js":
|
|
2217
|
+
/*!**************************************************!*\
|
|
2218
|
+
!*** ./web-client/public/js/api/grnsight-api.js ***!
|
|
2219
|
+
\**************************************************/
|
|
2220
|
+
/*! exports provided: queryExpressionDatabase, queryNetworkDatabase, uploadCustomWorkbook */
|
|
2221
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2222
|
+
|
|
2223
|
+
"use strict";
|
|
2224
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"queryExpressionDatabase\", function() { return queryExpressionDatabase; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"queryNetworkDatabase\", function() { return queryNetworkDatabase; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"uploadCustomWorkbook\", function() { return uploadCustomWorkbook; });\n/* harmony import */ var _setup_load_and_import_handlers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../setup-load-and-import-handlers */ \"./web-client/public/js/setup-load-and-import-handlers.js\");\n\n\n// Expression DB Access Functions\nconst buildExpressionTimepointsString = function (selection) {\n let timepoints = \"\";\n selection.timepoints.forEach(x => timepoints += (x + \",\"));\n return timepoints.substring(0, timepoints.length - 1);\n};\nconst buildExpressionGeneQuery = function (workbookGenes) {\n let genes = \"\";\n workbookGenes.forEach(x => genes += (x.name + \",\"));\n return genes.substring(0, genes.length - 1);\n};\n\nconst buildExpressionURL = function (selection, genes) {\n const baseQuery = `expressiondb?dataset=${selection.dataset}&genes=${buildExpressionGeneQuery(genes)}`;\n return selection.timepoints ?\n `${baseQuery}&timepoints=${buildExpressionTimepointsString(selection)}` :\n baseQuery;\n};\n\nconst responseExpressionData = (formData, queryURL) => {\n return new Promise(function (resolve) {\n const uploadRoute = queryURL;\n const fullUrl = [ $(\".service-root\").val(), uploadRoute ].join(\"/\");\n (formData ?\n $.ajax({\n url: fullUrl,\n data: formData,\n processData: false,\n contentType: false,\n type: \"GET\",\n crossDomain: true\n }) :\n $.getJSON(fullUrl)\n ).done((expressionData) => {\n resolve(expressionData);\n }).error(console.log(\"Error in accessing expression database. Result may just be loading.\"));\n });\n};\n\nconst queryExpressionDatabase = (query) => {\n let queryURL = buildExpressionURL({dataset: query.dataset}, query.genes);\n return responseExpressionData(\"\", queryURL);\n};\n\n// Network DB Access Functions\n\nconst buildNetworkGenesQuery = (genes) => {\n let result = \"\";\n for (let gene in genes) {\n result += `${gene},`;\n }\n return result.substring(0, result.length - 1);\n};\n\nconst buildNetworkURL = function (queryType, queryInfo) {\n let baseQuery = `networkdb?type=${queryType}`;\n if (queryInfo !== null) {\n for (let header in queryInfo) {\n if (header === \"genes\") {\n baseQuery += `&${header}=${buildNetworkGenesQuery(queryInfo[header])}`;\n } else {\n baseQuery += `&${header}=${queryInfo[header]}`;\n }\n }\n }\n return baseQuery;\n};\n\nconst responseNetworkData = (formData, queryURL) => {\n return new Promise(function (resolve) {\n const uploadRoute = queryURL;\n const fullUrl = [ $(\".service-root\").val(), uploadRoute ].join(\"/\");\n (formData ?\n $.ajax({\n url: fullUrl,\n data: formData,\n processData: false,\n contentType: false,\n type: \"GET\",\n crossDomain: true\n }) :\n $.getJSON(fullUrl)\n ).done((networkData) => {\n resolve(networkData);\n }).error(console.log(\"Error in accessing network database. Result may just be loading.\"));\n });\n};\n\nconst queryNetworkDatabase = (query) => {\n let queryURL = buildNetworkURL(query.type, query.info);\n return responseNetworkData(\"\", queryURL);\n};\n\n// Upload Custom Workbook Functions\nconst buildCustomWorkbookURL = (name, genes, links) => {\n let baseQuery = `upload-custom-workbook?name=${name}`;\n let genesString = \"\";\n let linksString = \"\";\n let genesByIndex = {};\n let i = 0;\n for (let gene in genes) {\n genesString += `${genes[gene]},`;\n genesByIndex[gene] = i;\n i++;\n }\n for (let regulator in links) {\n for (let target of links[regulator]) {\n linksString += `${genesByIndex[regulator]}->${genesByIndex[target]},`;\n }\n }\n baseQuery += `&genes=${genesString.substring(0, genesString.length - 1)}`;\n baseQuery += `&links=${linksString.substring(0, linksString.length - 1)}`;\n return baseQuery;\n};\n\nconst uploadCustomWorkbook = (workbook, grnState) => {\n let queryURL = buildCustomWorkbookURL(workbook.name, workbook.genes, workbook.links);\n return Object(_setup_load_and_import_handlers__WEBPACK_IMPORTED_MODULE_0__[\"responseCustomWorkbookData\"])(grnState, queryURL, workbook.name);\n};\n\n\n\n\n//# sourceURL=webpack:///./web-client/public/js/api/grnsight-api.js?");
|
|
2225
|
+
|
|
2226
|
+
/***/ }),
|
|
2227
|
+
|
|
2159
2228
|
/***/ "./web-client/public/js/constants.js":
|
|
2160
2229
|
/*!*******************************************!*\
|
|
2161
2230
|
!*** ./web-client/public/js/constants.js ***!
|
|
2162
2231
|
\*******************************************/
|
|
2163
|
-
/*! exports provided: GREY_EDGES_DASHED_MENU, GREY_EDGES_DASHED_SIDEBAR, UNWEIGHTED_DEMO_ID, UNWEIGHTED_DEMO_PATH, UNWEIGHTED_DEMO_NAME, WEIGHTED_DEMO_ID, WEIGHTED_DEMO_PATH, WEIGHTED_DEMO_NAME, SCHADE_INPUT_ID, SCHADE_INPUT_PATH, SCHADE_INPUT_NAME, SCHADE_OUTPUT_ID, SCHADE_OUTPUT_PATH, SCHADE_OUTPUT_NAME, DEMO_INFORMATION, MIN_EDGE_WEIGHT_NORMALIZATION, MAX_EDGE_WEIGHT_NORMALIZATION, DEFAULT_ZOOM_VALUE, GREY_EDGE_THRESHOLD_MENU, GREY_EDGE_THRESHOLD_SLIDER_SIDEBAR, GREY_EDGE_THRESHOLD_TEXT_SIDEBAR, SET_NORMALIZATION_MENU, SET_NORMALIZATION_SIDEBAR, SET_NORMALIZATION_SIDEBAR_VALUE, RESET_NORMALIZATION_MENU, RESET_NORMALIZATION_SIDEBAR, WEIGHTS_SHOW_MOUSE_OVER_MENU, WEIGHTS_SHOW_ALWAYS_MENU, WEIGHTS_HIDE_MENU, WEIGHTS_SHOW_MOUSE_OVER_SIDE, WEIGHTS_SHOW_ALWAYS_SIDE, WEIGHTS_HIDE_SIDE, WEIGHTS_SHOW_MOUSE_OVER_CLASS, WEIGHTS_SHOW_ALWAYS_CLASS, WEIGHTS_HIDE_CLASS, SHOW_WEIGHTS_MOUSEOVER, SHOW_ALL_WEIGHTS, HIDE_ALL_WEIGHTS, COLOR_EDGES,
|
|
2232
|
+
/*! exports provided: HOST_SITE, FILE_NAME, GREY_EDGES_DASHED_MENU, GREY_EDGES_DASHED_SIDEBAR, CREATE_NETWORK_CLASS, CREATE_NETWORK_MODAL, UNWEIGHTED_DEMO_ID, UNWEIGHTED_DEMO_PATH, UNWEIGHTED_DEMO_NAME, WEIGHTED_DEMO_ID, WEIGHTED_DEMO_PATH, WEIGHTED_DEMO_NAME, SCHADE_INPUT_ID, SCHADE_INPUT_PATH, SCHADE_INPUT_NAME, SCHADE_OUTPUT_ID, SCHADE_OUTPUT_PATH, SCHADE_OUTPUT_NAME, EXPORT_TO_EXCEL, EXPORT_TO_UNWEIGHTED_SIF, EXPORT_TO_WEIGHTED_SIF, EXPORT_TO_UNWEIGHTED_GML, EXPORT_TO_WEIGHTED_GML, EXPORT_TO_PNG, EXPORT_TO_SVG, EXPORT_TO_PDF, EXPORT_WEIGHTED_CLASS, EXPRESSION_SOURCE, DEMO_INFORMATION, MIN_EDGE_WEIGHT_NORMALIZATION, MAX_EDGE_WEIGHT_NORMALIZATION, DEFAULT_ZOOM_VALUE, GREY_EDGE_THRESHOLD_MENU, GREY_EDGE_THRESHOLD_SLIDER_SIDEBAR, GREY_EDGE_THRESHOLD_TEXT_SIDEBAR, SET_NORMALIZATION_MENU, SET_NORMALIZATION_SIDEBAR, SET_NORMALIZATION_SIDEBAR_VALUE, RESET_NORMALIZATION_MENU, RESET_NORMALIZATION_SIDEBAR, WEIGHTS_SHOW_MOUSE_OVER_MENU, WEIGHTS_SHOW_ALWAYS_MENU, WEIGHTS_HIDE_MENU, WEIGHTS_SHOW_MOUSE_OVER_SIDE, WEIGHTS_SHOW_ALWAYS_SIDE, WEIGHTS_HIDE_SIDE, WEIGHTS_SHOW_MOUSE_OVER_CLASS, WEIGHTS_SHOW_ALWAYS_CLASS, WEIGHTS_HIDE_CLASS, SHOW_WEIGHTS_MOUSEOVER, SHOW_ALL_WEIGHTS, HIDE_ALL_WEIGHTS, COLOR_EDGES, ACTIVE_COLOR_OPTION, COLOR_EDGES_MENU, COLOR_EDGES_SIDEBAR, GRAVITY_LENGTH_WITHOUT_ZERO, LOCK_SLIDERS_CLASS, LOCK_SLIDERS_BUTTON, LOCK_SLIDERS_MENU, RESET_SLIDERS_CLASS, RESET_SLIDERS_SIDEBAR, RESET_SLIDERS_MENU, UNDO_SLIDERS_RESET_CLASS, UNDO_SLIDERS_RESET_ID, UNDO_SLIDERS_RESET_MENU, UNDO_SLIDERS_RESET_SIDEBAR, LINK_DIST_CLASS, LINK_DIST_SLIDER_SIDEBAR, LINK_DIST_VALUE, LINK_DIST_MENU, LINK_DIST_DEFAULT_VALUE, CHARGE_CLASS, CHARGE_SLIDER_SIDEBAR, CHARGE_VALUE, CHARGE_MENU, CHARGE_DEFAULT_VALUE, GRID_LAYOUT, FORCE_GRAPH, FORCE_GRAPH_BUTTON, GRID_LAYOUT_BUTTON, FORCE_GRAPH_MENU, GRID_LAYOUT_MENU, MINIMUM_MAX_LOG_FOLD_CHANGE, MAXIMUM_MAX_LOG_FOLD_CHANGE, DEFAULT_MAX_LOG_FOLD_CHANGE, MAX_NUM_CHARACTERS_DROPDOWN, LAYOUT_SIDEBAR_PANEL, EDGE_WEIGHT_MENU_CLASS, EDGE_WEIGHT_SIDEBAR, EDGE_WEIGHT_SIDEBAR_HEADER_LINK, EXPRESSION_DB_MENU, EXPRESSION_DB_MENU_HEADER_LINK, EXPRESSION_DB_SIDEBAR_PANEL, EXPRESSION_DB_LOADER, EXPRESSION_DB_LOADER_TEXT, DATA_SET_SELECT, NODE_COLORING_MENU, NODE_COLORING_MENU_CLASS, NODE_COLORING_SIDEBAR_PANEL, NODE_COLORING_SIDEBAR_HEADER_LINK, NODE_COLORING_SIDEBAR_BODY, DATA_SIDEBAR_BODY, NODE_COLORING_SIDEBAR_HEADER, NODE_COLORING_TOGGLE_SIDEBAR, AVG_REPLICATE_VALS_BOTTOM_SIDEBAR, AVG_REPLICATE_VALS_TOP_SIDEBAR, AVG_REPLICATE_VALS_TOP_MENU, AVG_REPLICATE_VALS_BOTTOM_MENU, NODE_COLORING_TOGGLE_MENU, NODE_COLORING_TOGGLE_CLASS, LOG_FOLD_CHANGE_MAX_VALUE_CLASS, LOG_FOLD_CHANGE_MAX_VALUE_HEADER, LOG_FOLD_CHANGE_MAX_VALUE_SIDEBAR_INPUT, LOG_FOLD_CHANGE_MAX_VALUE_SIDEBAR_BUTTON, LOG_FOLD_CHANGE_MAX_VALUE_MENU, ENDS_IN_EXPRESSION_REGEXP, TOP_DATASET_SELECTION_MENU, TOP_DATASET_SELECTION_SIDEBAR, BOTTOM_DATASET_SELECTION_MENU, BOTTOM_DATASET_SELECTION_SIDEBAR, SPECIES_IDENTIFIED_NAME, SPECIES_DISPLAY, SPECIES_BUTTON_YEAST, SPECIES_BUTTON_HUMAN, SPECIES_BUTTON_FLY, SPECIES_BUTTON_NEMATODE, SPECIES_BUTTON_MOUSE, SPECIES_BUTTON_CRESS, NODE_COLORING_USING_EXPRESSION_DATA, ZOOM_CONTROL, ZOOM_DISPLAY_MAXIMUM_SELECTOR, ZOOM_DISPLAY_MAXIMUM_VALUE, ZOOM_DISPLAY_MINIMUM_SELECTOR, ZOOM_DISPLAY_MINIMUM_VALUE, ZOOM_DISPLAY_MIDDLE, ZOOM_ADAPTIVE_MAX_SCALE, ZOOM_SLIDER, ZOOM_INPUT, ZOOM_PERCENT, VIEWPORT_INIT, VIEWPORT_FIT, VIEWPORT_S, VIEWPORT_M, VIEWPORT_L, VIEWPORT_SIZE_S_DROPDOWN, VIEWPORT_SIZE_M_DROPDOWN, VIEWPORT_SIZE_L_DROPDOWN, VIEWPORT_SIZE_FIT_DROPDOWN, VIEWPORT_SIZE_S_SIDEBAR, VIEWPORT_SIZE_M_SIDEBAR, VIEWPORT_SIZE_L_SIDEBAR, VIEWPORT_SIZE_FIT_SIDEBAR, VIEWPORT_OPTION_CLASS, VIEWPORT_OPTION_CLASS_SIDEBAR */
|
|
2164
2233
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2165
2234
|
|
|
2166
2235
|
"use strict";
|
|
2167
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GREY_EDGES_DASHED_MENU\", function() { return GREY_EDGES_DASHED_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GREY_EDGES_DASHED_SIDEBAR\", function() { return GREY_EDGES_DASHED_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UNWEIGHTED_DEMO_ID\", function() { return UNWEIGHTED_DEMO_ID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UNWEIGHTED_DEMO_PATH\", function() { return UNWEIGHTED_DEMO_PATH; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UNWEIGHTED_DEMO_NAME\", function() { return UNWEIGHTED_DEMO_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WEIGHTED_DEMO_ID\", function() { return WEIGHTED_DEMO_ID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WEIGHTED_DEMO_PATH\", function() { return WEIGHTED_DEMO_PATH; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WEIGHTED_DEMO_NAME\", function() { return WEIGHTED_DEMO_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SCHADE_INPUT_ID\", function() { return SCHADE_INPUT_ID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SCHADE_INPUT_PATH\", function() { return SCHADE_INPUT_PATH; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SCHADE_INPUT_NAME\", function() { return SCHADE_INPUT_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SCHADE_OUTPUT_ID\", function() { return SCHADE_OUTPUT_ID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SCHADE_OUTPUT_PATH\", function() { return SCHADE_OUTPUT_PATH; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SCHADE_OUTPUT_NAME\", function() { return SCHADE_OUTPUT_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DEMO_INFORMATION\", function() { return DEMO_INFORMATION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MIN_EDGE_WEIGHT_NORMALIZATION\", function() { return MIN_EDGE_WEIGHT_NORMALIZATION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MAX_EDGE_WEIGHT_NORMALIZATION\", function() { return MAX_EDGE_WEIGHT_NORMALIZATION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_ZOOM_VALUE\", function() { return DEFAULT_ZOOM_VALUE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GREY_EDGE_THRESHOLD_MENU\", function() { return GREY_EDGE_THRESHOLD_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GREY_EDGE_THRESHOLD_SLIDER_SIDEBAR\", function() { return GREY_EDGE_THRESHOLD_SLIDER_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GREY_EDGE_THRESHOLD_TEXT_SIDEBAR\", function() { return GREY_EDGE_THRESHOLD_TEXT_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SET_NORMALIZATION_MENU\", function() { return SET_NORMALIZATION_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SET_NORMALIZATION_SIDEBAR\", function() { return SET_NORMALIZATION_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SET_NORMALIZATION_SIDEBAR_VALUE\", function() { return SET_NORMALIZATION_SIDEBAR_VALUE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RESET_NORMALIZATION_MENU\", function() { return RESET_NORMALIZATION_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RESET_NORMALIZATION_SIDEBAR\", function() { return RESET_NORMALIZATION_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WEIGHTS_SHOW_MOUSE_OVER_MENU\", function() { return WEIGHTS_SHOW_MOUSE_OVER_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WEIGHTS_SHOW_ALWAYS_MENU\", function() { return WEIGHTS_SHOW_ALWAYS_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WEIGHTS_HIDE_MENU\", function() { return WEIGHTS_HIDE_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WEIGHTS_SHOW_MOUSE_OVER_SIDE\", function() { return WEIGHTS_SHOW_MOUSE_OVER_SIDE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WEIGHTS_SHOW_ALWAYS_SIDE\", function() { return WEIGHTS_SHOW_ALWAYS_SIDE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WEIGHTS_HIDE_SIDE\", function() { return WEIGHTS_HIDE_SIDE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WEIGHTS_SHOW_MOUSE_OVER_CLASS\", function() { return WEIGHTS_SHOW_MOUSE_OVER_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WEIGHTS_SHOW_ALWAYS_CLASS\", function() { return WEIGHTS_SHOW_ALWAYS_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WEIGHTS_HIDE_CLASS\", function() { return WEIGHTS_HIDE_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SHOW_WEIGHTS_MOUSEOVER\", function() { return SHOW_WEIGHTS_MOUSEOVER; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SHOW_ALL_WEIGHTS\", function() { return SHOW_ALL_WEIGHTS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HIDE_ALL_WEIGHTS\", function() { return HIDE_ALL_WEIGHTS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"COLOR_EDGES\", function() { return COLOR_EDGES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BLACK_EDGES\", function() { return BLACK_EDGES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ACTIVE_COLOR_OPTION\", function() { return ACTIVE_COLOR_OPTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GRAVITY_LENGTH_WITHOUT_ZERO\", function() { return GRAVITY_LENGTH_WITHOUT_ZERO; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LOCK_SLIDERS_CLASS\", function() { return LOCK_SLIDERS_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LOCK_SLIDERS_BUTTON\", function() { return LOCK_SLIDERS_BUTTON; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LOCK_SLIDERS_MENU\", function() { return LOCK_SLIDERS_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RESET_SLIDERS_CLASS\", function() { return RESET_SLIDERS_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RESET_SLIDERS_SIDEBAR\", function() { return RESET_SLIDERS_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RESET_SLIDERS_MENU\", function() { return RESET_SLIDERS_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UNDO_SLIDERS_RESET_CLASS\", function() { return UNDO_SLIDERS_RESET_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UNDO_SLIDERS_RESET_ID\", function() { return UNDO_SLIDERS_RESET_ID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UNDO_SLIDERS_RESET_MENU\", function() { return UNDO_SLIDERS_RESET_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UNDO_SLIDERS_RESET_SIDEBAR\", function() { return UNDO_SLIDERS_RESET_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LINK_DIST_CLASS\", function() { return LINK_DIST_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LINK_DIST_SLIDER_SIDEBAR\", function() { return LINK_DIST_SLIDER_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LINK_DIST_VALUE\", function() { return LINK_DIST_VALUE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LINK_DIST_MENU\", function() { return LINK_DIST_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LINK_DIST_DEFAULT_VALUE\", function() { return LINK_DIST_DEFAULT_VALUE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CHARGE_CLASS\", function() { return CHARGE_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CHARGE_SLIDER_SIDEBAR\", function() { return CHARGE_SLIDER_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CHARGE_VALUE\", function() { return CHARGE_VALUE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CHARGE_MENU\", function() { return CHARGE_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CHARGE_DEFAULT_VALUE\", function() { return CHARGE_DEFAULT_VALUE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GRID_LAYOUT\", function() { return GRID_LAYOUT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FORCE_GRAPH\", function() { return FORCE_GRAPH; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GRID_LAYOUT_BUTTON\", function() { return GRID_LAYOUT_BUTTON; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FORCE_GRAPH_CLASS\", function() { return FORCE_GRAPH_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GRID_LAYOUT_CLASS\", function() { return GRID_LAYOUT_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MINIMUM_MAX_LOG_FOLD_CHANGE\", function() { return MINIMUM_MAX_LOG_FOLD_CHANGE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MAXIMUM_MAX_LOG_FOLD_CHANGE\", function() { return MAXIMUM_MAX_LOG_FOLD_CHANGE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_MAX_LOG_FOLD_CHANGE\", function() { return DEFAULT_MAX_LOG_FOLD_CHANGE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MAX_NUM_CHARACTERS_DROPDOWN\", function() { return MAX_NUM_CHARACTERS_DROPDOWN; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NODE_COLORING_MENU\", function() { return NODE_COLORING_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NODE_COLORING_MENU_CLASS\", function() { return NODE_COLORING_MENU_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NODE_COLORING_TOGGLE_SIDEBAR\", function() { return NODE_COLORING_TOGGLE_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AVG_REPLICATE_VALS_BOTTOM_SIDEBAR\", function() { return AVG_REPLICATE_VALS_BOTTOM_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AVG_REPLICATE_VALS_TOP_SIDEBAR\", function() { return AVG_REPLICATE_VALS_TOP_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AVG_REPLICATE_VALS_TOP_MENU\", function() { return AVG_REPLICATE_VALS_TOP_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AVG_REPLICATE_VALS_BOTTOM_MENU\", function() { return AVG_REPLICATE_VALS_BOTTOM_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NODE_COLORING_TOGGLE_MENU\", function() { return NODE_COLORING_TOGGLE_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NODE_COLORING_TOGGLE_CLASS\", function() { return NODE_COLORING_TOGGLE_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LOG_FOLD_CHANGE_MAX_VALUE_CLASS\", function() { return LOG_FOLD_CHANGE_MAX_VALUE_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LOG_FOLD_CHANGE_MAX_VALUE_SIDEBAR_INPUT\", function() { return LOG_FOLD_CHANGE_MAX_VALUE_SIDEBAR_INPUT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LOG_FOLD_CHANGE_MAX_VALUE_SIDEBAR_BUTTON\", function() { return LOG_FOLD_CHANGE_MAX_VALUE_SIDEBAR_BUTTON; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LOG_FOLD_CHANGE_MAX_VALUE_MENU\", function() { return LOG_FOLD_CHANGE_MAX_VALUE_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ENDS_IN_EXPRESSION_REGEXP\", function() { return ENDS_IN_EXPRESSION_REGEXP; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TOP_DATASET_SELECTION_MENU\", function() { return TOP_DATASET_SELECTION_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TOP_DATASET_SELECTION_SIDEBAR\", function() { return TOP_DATASET_SELECTION_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BOTTOM_DATASET_SELECTION_MENU\", function() { return BOTTOM_DATASET_SELECTION_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BOTTOM_DATASET_SELECTION_SIDEBAR\", function() { return BOTTOM_DATASET_SELECTION_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ZOOM_CONTROL\", function() { return ZOOM_CONTROL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ZOOM_SLIDER\", function() { return ZOOM_SLIDER; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ZOOM_INPUT\", function() { return ZOOM_INPUT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ZOOM_PERCENT\", function() { return ZOOM_PERCENT; });\nconst GREY_EDGES_DASHED_MENU = \"#grey-edges-dashed-menu\";\nconst GREY_EDGES_DASHED_SIDEBAR = \"#dashedGrayLineButton\";\n\nconst UNWEIGHTED_DEMO_ID = \"#unweighted\";\nconst UNWEIGHTED_DEMO_PATH = \"demo/unweighted\";\nconst UNWEIGHTED_DEMO_NAME = \"Demo #1: Unweighted GRN (21 genes, 50 edges)\";\nconst WEIGHTED_DEMO_ID = \"#weighted\";\nconst WEIGHTED_DEMO_PATH = \"demo/weighted\";\nconst WEIGHTED_DEMO_NAME = \"Demo #2: Weighted GRN (21 genes, 50 edges, Dahlquist Lab unpublished data)\";\nconst SCHADE_INPUT_ID = \"#schadeInput\";\nconst SCHADE_INPUT_PATH = \"demo/schadeInput\";\nconst SCHADE_INPUT_NAME = \"Demo #3: Unweighted GRN (21 genes, 31 edges)\";\nconst SCHADE_OUTPUT_ID = \"#schadeOutput\";\nconst SCHADE_OUTPUT_PATH = \"demo/schadeOutput\";\nconst SCHADE_OUTPUT_NAME = \"Demo #4: Weighted GRN (21 genes, 31 edges, Schade et al. 2004 data)\";\n\nconst DEMO_INFORMATION = [\n [ WEIGHTED_DEMO_ID, WEIGHTED_DEMO_PATH, WEIGHTED_DEMO_NAME ],\n [ UNWEIGHTED_DEMO_ID, UNWEIGHTED_DEMO_PATH, UNWEIGHTED_DEMO_NAME ],\n [ SCHADE_INPUT_ID, SCHADE_INPUT_PATH, SCHADE_INPUT_NAME ],\n [ SCHADE_OUTPUT_ID, SCHADE_OUTPUT_PATH, SCHADE_OUTPUT_NAME ]\n];\n\nconst MIN_EDGE_WEIGHT_NORMALIZATION = 0.0001;\nconst MAX_EDGE_WEIGHT_NORMALIZATION = 1000;\n\nconst DEFAULT_ZOOM_VALUE = 4;\n\nconst GREY_EDGE_THRESHOLD_MENU = \"#gray-edge-threshold-menu\";\nconst GREY_EDGE_THRESHOLD_SLIDER_SIDEBAR = \"#grayThresholdInput\";\nconst GREY_EDGE_THRESHOLD_TEXT_SIDEBAR = \"#grayThresholdValue\";\n\nconst SET_NORMALIZATION_MENU = \"#edge-weight-normalization-factor-menu\";\nconst SET_NORMALIZATION_SIDEBAR = \"#normalization-button\";\nconst SET_NORMALIZATION_SIDEBAR_VALUE = \"#normalization-max\";\nconst RESET_NORMALIZATION_MENU = \"#reset-normalization-factor-menu\";\nconst RESET_NORMALIZATION_SIDEBAR = \"#resetNormalizationButton\";\n\nconst WEIGHTS_SHOW_MOUSE_OVER_MENU = \"#weightsMouseOverMenu\";\nconst WEIGHTS_SHOW_ALWAYS_MENU = \"#weightsAlwaysMenu\";\nconst WEIGHTS_HIDE_MENU = \"#weightsNeverMenu\";\nconst WEIGHTS_SHOW_MOUSE_OVER_SIDE = \"#weightsMouseOverSide\";\nconst WEIGHTS_SHOW_ALWAYS_SIDE = \"#weightsAlwaysSide\";\nconst WEIGHTS_HIDE_SIDE = \"#weightsNeverSide\";\nconst WEIGHTS_SHOW_MOUSE_OVER_CLASS = \".weightsMouseOver\";\nconst WEIGHTS_SHOW_ALWAYS_CLASS = \".weightsAlways\";\nconst WEIGHTS_HIDE_CLASS = \".weightsNever\";\n\nconst SHOW_WEIGHTS_MOUSEOVER = \"showWeightsMouseover\";\nconst SHOW_ALL_WEIGHTS = \"showAllWeights\";\nconst HIDE_ALL_WEIGHTS = \"hideAllWeights\";\n\nconst COLOR_EDGES = \"#colorEdges\";\nconst BLACK_EDGES = \"#blackEdges\";\nconst ACTIVE_COLOR_OPTION = \"active\";\n\nconst GRAVITY_LENGTH_WITHOUT_ZERO = 3;\nconst LOCK_SLIDERS_CLASS = \".lockSliders\";\nconst LOCK_SLIDERS_BUTTON = \"#lockSlidersButton\";\nconst LOCK_SLIDERS_MENU = \"#lockSlidersMenu\";\nconst RESET_SLIDERS_CLASS = \".resetSliders\";\nconst RESET_SLIDERS_SIDEBAR = \"#resetSlidersButton\";\nconst RESET_SLIDERS_MENU = \"#resetSlidersMenu\";\nconst UNDO_SLIDERS_RESET_CLASS = \".undoSliderReset\";\nconst UNDO_SLIDERS_RESET_ID = \"#undoReset\";\nconst UNDO_SLIDERS_RESET_MENU = \"#undoResetMenu\";\nconst UNDO_SLIDERS_RESET_SIDEBAR = \"#undoResetButton\";\n\nconst LINK_DIST_CLASS = \"#link-distance\";\nconst LINK_DIST_SLIDER_SIDEBAR = \"#linkDistInput\";\nconst LINK_DIST_VALUE = \"#linkDistVal\";\nconst LINK_DIST_MENU = \"#link-distance-menu\";\nconst LINK_DIST_DEFAULT_VALUE = 500;\nconst CHARGE_CLASS = \"#charge\";\nconst CHARGE_SLIDER_SIDEBAR = \"#chargeInput\";\nconst CHARGE_VALUE = \"#chargeVal\";\nconst CHARGE_MENU = \"#charge-menu\";\nconst CHARGE_DEFAULT_VALUE = -50;\n\nconst GRID_LAYOUT = \"GRID_LAYOUT\";\nconst FORCE_GRAPH = \"FORCE_GRAPH\";\nconst GRID_LAYOUT_BUTTON = \"#gridLayoutButton\";\nconst FORCE_GRAPH_CLASS = \"#forceGraph\";\nconst GRID_LAYOUT_CLASS = \"#gridLayout\";\n\nconst MINIMUM_MAX_LOG_FOLD_CHANGE = 0;\nconst MAXIMUM_MAX_LOG_FOLD_CHANGE = 100;\nconst DEFAULT_MAX_LOG_FOLD_CHANGE = 3;\nconst MAX_NUM_CHARACTERS_DROPDOWN = 24;\nconst NODE_COLORING_MENU = \".node-coloring\";\nconst NODE_COLORING_MENU_CLASS = \".node-coloring-menu\";\nconst NODE_COLORING_TOGGLE_SIDEBAR = \"#nodeColoringToggle\";\nconst AVG_REPLICATE_VALS_BOTTOM_SIDEBAR = \"#averageDataBottom\";\nconst AVG_REPLICATE_VALS_TOP_SIDEBAR = \"#averageDataTop\";\nconst AVG_REPLICATE_VALS_TOP_MENU = \"#averageDataTopMenu\";\nconst AVG_REPLICATE_VALS_BOTTOM_MENU = \"#averageDataBottomMenu\";\nconst NODE_COLORING_TOGGLE_MENU = \"#node-coloring-toggle-menu\";\nconst NODE_COLORING_TOGGLE_CLASS = \".nodeColoringToggle\";\nconst LOG_FOLD_CHANGE_MAX_VALUE_CLASS = \".logFoldChangeMaxValue\";\nconst LOG_FOLD_CHANGE_MAX_VALUE_SIDEBAR_INPUT = \"#log-fold-change-max-value-sidebar\";\nconst LOG_FOLD_CHANGE_MAX_VALUE_SIDEBAR_BUTTON = \"#log-fold-change-button\";\nconst LOG_FOLD_CHANGE_MAX_VALUE_MENU = \"#log-fold-change-max-value-menu\";\nconst ENDS_IN_EXPRESSION_REGEXP = /expression$/;\nconst TOP_DATASET_SELECTION_MENU = \"#topDatasetDropdownMenu\";\nconst TOP_DATASET_SELECTION_SIDEBAR = \"#dataset-top\";\nconst BOTTOM_DATASET_SELECTION_MENU = \"#bottomDatasetDropdownMenu\";\nconst BOTTOM_DATASET_SELECTION_SIDEBAR = \"#dataset-bottom\";\n\nconst ZOOM_CONTROL = \".zoom\";\nconst ZOOM_SLIDER = \"#zoomSlider\";\nconst ZOOM_INPUT = \"#zoomInput\";\nconst ZOOM_PERCENT = \"#zoomPercent\";\n\n\n//# sourceURL=webpack:///./web-client/public/js/constants.js?");
|
|
2236
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HOST_SITE\", function() { return HOST_SITE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILE_NAME\", function() { return FILE_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GREY_EDGES_DASHED_MENU\", function() { return GREY_EDGES_DASHED_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GREY_EDGES_DASHED_SIDEBAR\", function() { return GREY_EDGES_DASHED_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CREATE_NETWORK_CLASS\", function() { return CREATE_NETWORK_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CREATE_NETWORK_MODAL\", function() { return CREATE_NETWORK_MODAL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UNWEIGHTED_DEMO_ID\", function() { return UNWEIGHTED_DEMO_ID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UNWEIGHTED_DEMO_PATH\", function() { return UNWEIGHTED_DEMO_PATH; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UNWEIGHTED_DEMO_NAME\", function() { return UNWEIGHTED_DEMO_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WEIGHTED_DEMO_ID\", function() { return WEIGHTED_DEMO_ID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WEIGHTED_DEMO_PATH\", function() { return WEIGHTED_DEMO_PATH; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WEIGHTED_DEMO_NAME\", function() { return WEIGHTED_DEMO_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SCHADE_INPUT_ID\", function() { return SCHADE_INPUT_ID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SCHADE_INPUT_PATH\", function() { return SCHADE_INPUT_PATH; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SCHADE_INPUT_NAME\", function() { return SCHADE_INPUT_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SCHADE_OUTPUT_ID\", function() { return SCHADE_OUTPUT_ID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SCHADE_OUTPUT_PATH\", function() { return SCHADE_OUTPUT_PATH; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SCHADE_OUTPUT_NAME\", function() { return SCHADE_OUTPUT_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EXPORT_TO_EXCEL\", function() { return EXPORT_TO_EXCEL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EXPORT_TO_UNWEIGHTED_SIF\", function() { return EXPORT_TO_UNWEIGHTED_SIF; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EXPORT_TO_WEIGHTED_SIF\", function() { return EXPORT_TO_WEIGHTED_SIF; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EXPORT_TO_UNWEIGHTED_GML\", function() { return EXPORT_TO_UNWEIGHTED_GML; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EXPORT_TO_WEIGHTED_GML\", function() { return EXPORT_TO_WEIGHTED_GML; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EXPORT_TO_PNG\", function() { return EXPORT_TO_PNG; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EXPORT_TO_SVG\", function() { return EXPORT_TO_SVG; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EXPORT_TO_PDF\", function() { return EXPORT_TO_PDF; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EXPORT_WEIGHTED_CLASS\", function() { return EXPORT_WEIGHTED_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EXPRESSION_SOURCE\", function() { return EXPRESSION_SOURCE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DEMO_INFORMATION\", function() { return DEMO_INFORMATION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MIN_EDGE_WEIGHT_NORMALIZATION\", function() { return MIN_EDGE_WEIGHT_NORMALIZATION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MAX_EDGE_WEIGHT_NORMALIZATION\", function() { return MAX_EDGE_WEIGHT_NORMALIZATION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_ZOOM_VALUE\", function() { return DEFAULT_ZOOM_VALUE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GREY_EDGE_THRESHOLD_MENU\", function() { return GREY_EDGE_THRESHOLD_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GREY_EDGE_THRESHOLD_SLIDER_SIDEBAR\", function() { return GREY_EDGE_THRESHOLD_SLIDER_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GREY_EDGE_THRESHOLD_TEXT_SIDEBAR\", function() { return GREY_EDGE_THRESHOLD_TEXT_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SET_NORMALIZATION_MENU\", function() { return SET_NORMALIZATION_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SET_NORMALIZATION_SIDEBAR\", function() { return SET_NORMALIZATION_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SET_NORMALIZATION_SIDEBAR_VALUE\", function() { return SET_NORMALIZATION_SIDEBAR_VALUE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RESET_NORMALIZATION_MENU\", function() { return RESET_NORMALIZATION_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RESET_NORMALIZATION_SIDEBAR\", function() { return RESET_NORMALIZATION_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WEIGHTS_SHOW_MOUSE_OVER_MENU\", function() { return WEIGHTS_SHOW_MOUSE_OVER_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WEIGHTS_SHOW_ALWAYS_MENU\", function() { return WEIGHTS_SHOW_ALWAYS_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WEIGHTS_HIDE_MENU\", function() { return WEIGHTS_HIDE_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WEIGHTS_SHOW_MOUSE_OVER_SIDE\", function() { return WEIGHTS_SHOW_MOUSE_OVER_SIDE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WEIGHTS_SHOW_ALWAYS_SIDE\", function() { return WEIGHTS_SHOW_ALWAYS_SIDE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WEIGHTS_HIDE_SIDE\", function() { return WEIGHTS_HIDE_SIDE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WEIGHTS_SHOW_MOUSE_OVER_CLASS\", function() { return WEIGHTS_SHOW_MOUSE_OVER_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WEIGHTS_SHOW_ALWAYS_CLASS\", function() { return WEIGHTS_SHOW_ALWAYS_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WEIGHTS_HIDE_CLASS\", function() { return WEIGHTS_HIDE_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SHOW_WEIGHTS_MOUSEOVER\", function() { return SHOW_WEIGHTS_MOUSEOVER; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SHOW_ALL_WEIGHTS\", function() { return SHOW_ALL_WEIGHTS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HIDE_ALL_WEIGHTS\", function() { return HIDE_ALL_WEIGHTS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"COLOR_EDGES\", function() { return COLOR_EDGES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ACTIVE_COLOR_OPTION\", function() { return ACTIVE_COLOR_OPTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"COLOR_EDGES_MENU\", function() { return COLOR_EDGES_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"COLOR_EDGES_SIDEBAR\", function() { return COLOR_EDGES_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GRAVITY_LENGTH_WITHOUT_ZERO\", function() { return GRAVITY_LENGTH_WITHOUT_ZERO; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LOCK_SLIDERS_CLASS\", function() { return LOCK_SLIDERS_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LOCK_SLIDERS_BUTTON\", function() { return LOCK_SLIDERS_BUTTON; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LOCK_SLIDERS_MENU\", function() { return LOCK_SLIDERS_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RESET_SLIDERS_CLASS\", function() { return RESET_SLIDERS_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RESET_SLIDERS_SIDEBAR\", function() { return RESET_SLIDERS_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RESET_SLIDERS_MENU\", function() { return RESET_SLIDERS_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UNDO_SLIDERS_RESET_CLASS\", function() { return UNDO_SLIDERS_RESET_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UNDO_SLIDERS_RESET_ID\", function() { return UNDO_SLIDERS_RESET_ID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UNDO_SLIDERS_RESET_MENU\", function() { return UNDO_SLIDERS_RESET_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UNDO_SLIDERS_RESET_SIDEBAR\", function() { return UNDO_SLIDERS_RESET_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LINK_DIST_CLASS\", function() { return LINK_DIST_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LINK_DIST_SLIDER_SIDEBAR\", function() { return LINK_DIST_SLIDER_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LINK_DIST_VALUE\", function() { return LINK_DIST_VALUE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LINK_DIST_MENU\", function() { return LINK_DIST_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LINK_DIST_DEFAULT_VALUE\", function() { return LINK_DIST_DEFAULT_VALUE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CHARGE_CLASS\", function() { return CHARGE_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CHARGE_SLIDER_SIDEBAR\", function() { return CHARGE_SLIDER_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CHARGE_VALUE\", function() { return CHARGE_VALUE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CHARGE_MENU\", function() { return CHARGE_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CHARGE_DEFAULT_VALUE\", function() { return CHARGE_DEFAULT_VALUE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GRID_LAYOUT\", function() { return GRID_LAYOUT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FORCE_GRAPH\", function() { return FORCE_GRAPH; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FORCE_GRAPH_BUTTON\", function() { return FORCE_GRAPH_BUTTON; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GRID_LAYOUT_BUTTON\", function() { return GRID_LAYOUT_BUTTON; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FORCE_GRAPH_MENU\", function() { return FORCE_GRAPH_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GRID_LAYOUT_MENU\", function() { return GRID_LAYOUT_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MINIMUM_MAX_LOG_FOLD_CHANGE\", function() { return MINIMUM_MAX_LOG_FOLD_CHANGE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MAXIMUM_MAX_LOG_FOLD_CHANGE\", function() { return MAXIMUM_MAX_LOG_FOLD_CHANGE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_MAX_LOG_FOLD_CHANGE\", function() { return DEFAULT_MAX_LOG_FOLD_CHANGE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MAX_NUM_CHARACTERS_DROPDOWN\", function() { return MAX_NUM_CHARACTERS_DROPDOWN; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LAYOUT_SIDEBAR_PANEL\", function() { return LAYOUT_SIDEBAR_PANEL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EDGE_WEIGHT_MENU_CLASS\", function() { return EDGE_WEIGHT_MENU_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EDGE_WEIGHT_SIDEBAR\", function() { return EDGE_WEIGHT_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EDGE_WEIGHT_SIDEBAR_HEADER_LINK\", function() { return EDGE_WEIGHT_SIDEBAR_HEADER_LINK; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EXPRESSION_DB_MENU\", function() { return EXPRESSION_DB_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EXPRESSION_DB_MENU_HEADER_LINK\", function() { return EXPRESSION_DB_MENU_HEADER_LINK; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EXPRESSION_DB_SIDEBAR_PANEL\", function() { return EXPRESSION_DB_SIDEBAR_PANEL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EXPRESSION_DB_LOADER\", function() { return EXPRESSION_DB_LOADER; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EXPRESSION_DB_LOADER_TEXT\", function() { return EXPRESSION_DB_LOADER_TEXT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DATA_SET_SELECT\", function() { return DATA_SET_SELECT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NODE_COLORING_MENU\", function() { return NODE_COLORING_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NODE_COLORING_MENU_CLASS\", function() { return NODE_COLORING_MENU_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NODE_COLORING_SIDEBAR_PANEL\", function() { return NODE_COLORING_SIDEBAR_PANEL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NODE_COLORING_SIDEBAR_HEADER_LINK\", function() { return NODE_COLORING_SIDEBAR_HEADER_LINK; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NODE_COLORING_SIDEBAR_BODY\", function() { return NODE_COLORING_SIDEBAR_BODY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DATA_SIDEBAR_BODY\", function() { return DATA_SIDEBAR_BODY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NODE_COLORING_SIDEBAR_HEADER\", function() { return NODE_COLORING_SIDEBAR_HEADER; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NODE_COLORING_TOGGLE_SIDEBAR\", function() { return NODE_COLORING_TOGGLE_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AVG_REPLICATE_VALS_BOTTOM_SIDEBAR\", function() { return AVG_REPLICATE_VALS_BOTTOM_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AVG_REPLICATE_VALS_TOP_SIDEBAR\", function() { return AVG_REPLICATE_VALS_TOP_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AVG_REPLICATE_VALS_TOP_MENU\", function() { return AVG_REPLICATE_VALS_TOP_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AVG_REPLICATE_VALS_BOTTOM_MENU\", function() { return AVG_REPLICATE_VALS_BOTTOM_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NODE_COLORING_TOGGLE_MENU\", function() { return NODE_COLORING_TOGGLE_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NODE_COLORING_TOGGLE_CLASS\", function() { return NODE_COLORING_TOGGLE_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LOG_FOLD_CHANGE_MAX_VALUE_CLASS\", function() { return LOG_FOLD_CHANGE_MAX_VALUE_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LOG_FOLD_CHANGE_MAX_VALUE_HEADER\", function() { return LOG_FOLD_CHANGE_MAX_VALUE_HEADER; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LOG_FOLD_CHANGE_MAX_VALUE_SIDEBAR_INPUT\", function() { return LOG_FOLD_CHANGE_MAX_VALUE_SIDEBAR_INPUT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LOG_FOLD_CHANGE_MAX_VALUE_SIDEBAR_BUTTON\", function() { return LOG_FOLD_CHANGE_MAX_VALUE_SIDEBAR_BUTTON; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LOG_FOLD_CHANGE_MAX_VALUE_MENU\", function() { return LOG_FOLD_CHANGE_MAX_VALUE_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ENDS_IN_EXPRESSION_REGEXP\", function() { return ENDS_IN_EXPRESSION_REGEXP; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TOP_DATASET_SELECTION_MENU\", function() { return TOP_DATASET_SELECTION_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TOP_DATASET_SELECTION_SIDEBAR\", function() { return TOP_DATASET_SELECTION_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BOTTOM_DATASET_SELECTION_MENU\", function() { return BOTTOM_DATASET_SELECTION_MENU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BOTTOM_DATASET_SELECTION_SIDEBAR\", function() { return BOTTOM_DATASET_SELECTION_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SPECIES_IDENTIFIED_NAME\", function() { return SPECIES_IDENTIFIED_NAME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SPECIES_DISPLAY\", function() { return SPECIES_DISPLAY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SPECIES_BUTTON_YEAST\", function() { return SPECIES_BUTTON_YEAST; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SPECIES_BUTTON_HUMAN\", function() { return SPECIES_BUTTON_HUMAN; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SPECIES_BUTTON_FLY\", function() { return SPECIES_BUTTON_FLY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SPECIES_BUTTON_NEMATODE\", function() { return SPECIES_BUTTON_NEMATODE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SPECIES_BUTTON_MOUSE\", function() { return SPECIES_BUTTON_MOUSE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SPECIES_BUTTON_CRESS\", function() { return SPECIES_BUTTON_CRESS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NODE_COLORING_USING_EXPRESSION_DATA\", function() { return NODE_COLORING_USING_EXPRESSION_DATA; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ZOOM_CONTROL\", function() { return ZOOM_CONTROL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ZOOM_DISPLAY_MAXIMUM_SELECTOR\", function() { return ZOOM_DISPLAY_MAXIMUM_SELECTOR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ZOOM_DISPLAY_MAXIMUM_VALUE\", function() { return ZOOM_DISPLAY_MAXIMUM_VALUE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ZOOM_DISPLAY_MINIMUM_SELECTOR\", function() { return ZOOM_DISPLAY_MINIMUM_SELECTOR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ZOOM_DISPLAY_MINIMUM_VALUE\", function() { return ZOOM_DISPLAY_MINIMUM_VALUE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ZOOM_DISPLAY_MIDDLE\", function() { return ZOOM_DISPLAY_MIDDLE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ZOOM_ADAPTIVE_MAX_SCALE\", function() { return ZOOM_ADAPTIVE_MAX_SCALE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ZOOM_SLIDER\", function() { return ZOOM_SLIDER; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ZOOM_INPUT\", function() { return ZOOM_INPUT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ZOOM_PERCENT\", function() { return ZOOM_PERCENT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VIEWPORT_INIT\", function() { return VIEWPORT_INIT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VIEWPORT_FIT\", function() { return VIEWPORT_FIT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VIEWPORT_S\", function() { return VIEWPORT_S; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VIEWPORT_M\", function() { return VIEWPORT_M; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VIEWPORT_L\", function() { return VIEWPORT_L; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VIEWPORT_SIZE_S_DROPDOWN\", function() { return VIEWPORT_SIZE_S_DROPDOWN; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VIEWPORT_SIZE_M_DROPDOWN\", function() { return VIEWPORT_SIZE_M_DROPDOWN; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VIEWPORT_SIZE_L_DROPDOWN\", function() { return VIEWPORT_SIZE_L_DROPDOWN; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VIEWPORT_SIZE_FIT_DROPDOWN\", function() { return VIEWPORT_SIZE_FIT_DROPDOWN; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VIEWPORT_SIZE_S_SIDEBAR\", function() { return VIEWPORT_SIZE_S_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VIEWPORT_SIZE_M_SIDEBAR\", function() { return VIEWPORT_SIZE_M_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VIEWPORT_SIZE_L_SIDEBAR\", function() { return VIEWPORT_SIZE_L_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VIEWPORT_SIZE_FIT_SIDEBAR\", function() { return VIEWPORT_SIZE_FIT_SIDEBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VIEWPORT_OPTION_CLASS\", function() { return VIEWPORT_OPTION_CLASS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VIEWPORT_OPTION_CLASS_SIDEBAR\", function() { return VIEWPORT_OPTION_CLASS_SIDEBAR; });\nconst HOST_SITE = \"https://dondi.github.io\";\n\nconst FILE_NAME = \"#fileName\";\n\nconst GREY_EDGES_DASHED_MENU = \"#grey-edges-dashed-menu\";\nconst GREY_EDGES_DASHED_SIDEBAR = \"#dashedGrayLineButton\";\n\nconst CREATE_NETWORK_CLASS = \".create-network\";\nconst CREATE_NETWORK_MODAL = \"#createNetworkModal\";\n\nconst UNWEIGHTED_DEMO_ID = \".unweighted\";\nconst UNWEIGHTED_DEMO_PATH = \"demo/unweighted\";\nconst UNWEIGHTED_DEMO_NAME = \"Demo #1: Unweighted GRN (15 genes, 28 edges)\";\nconst WEIGHTED_DEMO_ID = \".weighted\";\nconst WEIGHTED_DEMO_PATH = \"demo/weighted\";\nconst WEIGHTED_DEMO_NAME = \"Demo #2: Weighted GRN (15 genes, 28 edges, Dahlquist Lab unpublished data)\";\nconst SCHADE_INPUT_ID = \".schadeInput\";\nconst SCHADE_INPUT_PATH = \"demo/schadeInput\";\nconst SCHADE_INPUT_NAME = \"Demo #3: Unweighted GRN (21 genes, 31 edges)\";\nconst SCHADE_OUTPUT_ID = \".schadeOutput\";\nconst SCHADE_OUTPUT_PATH = \"demo/schadeOutput\";\nconst SCHADE_OUTPUT_NAME = \"Demo #4: Weighted GRN (21 genes, 31 edges, Schade et al. 2004 data)\";\n\nconst EXPORT_TO_EXCEL = \"#exportAsExcelWkbk\";\nconst EXPORT_TO_UNWEIGHTED_SIF = \"#exportAsUnweightedSif\";\nconst EXPORT_TO_WEIGHTED_SIF = \"#exportAsWeightedSif\";\nconst EXPORT_TO_UNWEIGHTED_GML = \"#exportAsUnweightedGraphMl\";\nconst EXPORT_TO_WEIGHTED_GML = \"#exportAsWeightedGraphMl\";\nconst EXPORT_TO_PNG = \"#exportAsPng\";\nconst EXPORT_TO_SVG = \"#exportAsSvg\";\nconst EXPORT_TO_PDF = \"#exportAsPdf\";\nconst EXPORT_WEIGHTED_CLASS = \".weighted.export\";\nconst EXPRESSION_SOURCE = \"#expressionSource\";\n\nconst DEMO_INFORMATION = [\n [ WEIGHTED_DEMO_ID, WEIGHTED_DEMO_PATH, WEIGHTED_DEMO_NAME ],\n [ UNWEIGHTED_DEMO_ID, UNWEIGHTED_DEMO_PATH, UNWEIGHTED_DEMO_NAME ],\n [ SCHADE_INPUT_ID, SCHADE_INPUT_PATH, SCHADE_INPUT_NAME ],\n [ SCHADE_OUTPUT_ID, SCHADE_OUTPUT_PATH, SCHADE_OUTPUT_NAME ]\n];\n\nconst MIN_EDGE_WEIGHT_NORMALIZATION = 0.0001;\nconst MAX_EDGE_WEIGHT_NORMALIZATION = 1000;\n\nconst DEFAULT_ZOOM_VALUE = 100;\n\nconst GREY_EDGE_THRESHOLD_MENU = \"#gray-edge-threshold-menu\";\nconst GREY_EDGE_THRESHOLD_SLIDER_SIDEBAR = \"#grayThresholdInput\";\nconst GREY_EDGE_THRESHOLD_TEXT_SIDEBAR = \"#grayThresholdValue\";\n\nconst SET_NORMALIZATION_MENU = \"#edge-weight-normalization-factor-menu\";\nconst SET_NORMALIZATION_SIDEBAR = \"#normalization-button\";\nconst SET_NORMALIZATION_SIDEBAR_VALUE = \"#normalization-max\";\nconst RESET_NORMALIZATION_MENU = \"#reset-normalization-factor-menu\";\nconst RESET_NORMALIZATION_SIDEBAR = \"#resetNormalizationButton\";\n\nconst WEIGHTS_SHOW_MOUSE_OVER_MENU = \"#weightsMouseOverMenu\";\nconst WEIGHTS_SHOW_ALWAYS_MENU = \"#weightsAlwaysMenu\";\nconst WEIGHTS_HIDE_MENU = \"#weightsNeverMenu\";\nconst WEIGHTS_SHOW_MOUSE_OVER_SIDE = \"#weightsMouseOverSide\";\nconst WEIGHTS_SHOW_ALWAYS_SIDE = \"#weightsAlwaysSide\";\nconst WEIGHTS_HIDE_SIDE = \"#weightsNeverSide\";\nconst WEIGHTS_SHOW_MOUSE_OVER_CLASS = \".weightsMouseOver\";\nconst WEIGHTS_SHOW_ALWAYS_CLASS = \".weightsAlways\";\nconst WEIGHTS_HIDE_CLASS = \".weightsNever\";\n\nconst SHOW_WEIGHTS_MOUSEOVER = \"showWeightsMouseover\";\nconst SHOW_ALL_WEIGHTS = \"showAllWeights\";\nconst HIDE_ALL_WEIGHTS = \"hideAllWeights\";\n\nconst COLOR_EDGES = \".colorEdges\";\nconst ACTIVE_COLOR_OPTION = \"active\";\nconst COLOR_EDGES_MENU = \"#colorEdges\";\nconst COLOR_EDGES_SIDEBAR = \"#colorEdgesSidebar\";\n\nconst GRAVITY_LENGTH_WITHOUT_ZERO = 3;\nconst LOCK_SLIDERS_CLASS = \".lockSliders\";\nconst LOCK_SLIDERS_BUTTON = \"#lockSlidersButton\";\nconst LOCK_SLIDERS_MENU = \"#lockSlidersMenu\";\nconst RESET_SLIDERS_CLASS = \".resetSliders\";\nconst RESET_SLIDERS_SIDEBAR = \"#resetSlidersButton\";\nconst RESET_SLIDERS_MENU = \"#resetSlidersMenu\";\nconst UNDO_SLIDERS_RESET_CLASS = \".undoSliderReset\";\nconst UNDO_SLIDERS_RESET_ID = \"#undoReset\";\nconst UNDO_SLIDERS_RESET_MENU = \"#undoResetMenu\";\nconst UNDO_SLIDERS_RESET_SIDEBAR = \"#undoResetButton\";\n\nconst LINK_DIST_CLASS = \"#link-distance\";\nconst LINK_DIST_SLIDER_SIDEBAR = \"#linkDistInput\";\nconst LINK_DIST_VALUE = \"#linkDistVal\";\nconst LINK_DIST_MENU = \"#link-distance-menu\";\nconst LINK_DIST_DEFAULT_VALUE = 500;\nconst CHARGE_CLASS = \"#charge\";\nconst CHARGE_SLIDER_SIDEBAR = \"#chargeInput\";\nconst CHARGE_VALUE = \"#chargeVal\";\nconst CHARGE_MENU = \"#charge-menu\";\nconst CHARGE_DEFAULT_VALUE = -50;\n\nconst GRID_LAYOUT = \"GRID_LAYOUT\";\nconst FORCE_GRAPH = \"FORCE_GRAPH\";\nconst FORCE_GRAPH_BUTTON = \"#forceGraphButton\";\nconst GRID_LAYOUT_BUTTON = \"#gridLayoutButton\";\nconst FORCE_GRAPH_MENU = \"#forceGraph\";\nconst GRID_LAYOUT_MENU = \"#gridLayout\";\n\nconst MINIMUM_MAX_LOG_FOLD_CHANGE = 0;\nconst MAXIMUM_MAX_LOG_FOLD_CHANGE = 100;\nconst DEFAULT_MAX_LOG_FOLD_CHANGE = 3;\nconst MAX_NUM_CHARACTERS_DROPDOWN = 24;\nconst LAYOUT_SIDEBAR_PANEL = \"#layoutSidebarPanel\";\nconst EDGE_WEIGHT_MENU_CLASS = \".weightedGraphOptionsMenu\";\nconst EDGE_WEIGHT_SIDEBAR = \".edge-weight-sidebar\";\nconst EDGE_WEIGHT_SIDEBAR_HEADER_LINK = \"#edgeWeightHeaderLink\";\nconst EXPRESSION_DB_MENU = \".data-sidebar\";\nconst EXPRESSION_DB_MENU_HEADER_LINK = \"#dataSidebarLink\";\nconst EXPRESSION_DB_SIDEBAR_PANEL = \"#dataSidebarPanel\";\nconst EXPRESSION_DB_LOADER = \".expression-db-loader\";\nconst EXPRESSION_DB_LOADER_TEXT = \".expression-db-loader-text\";\nconst DATA_SET_SELECT = \"#data-set-select\";\nconst NODE_COLORING_MENU = \".node-coloring\";\nconst NODE_COLORING_MENU_CLASS = \".node-coloring-menu\";\nconst NODE_COLORING_SIDEBAR_PANEL = \"#nodeColoringSidebarPanel\";\nconst NODE_COLORING_SIDEBAR_HEADER_LINK = \"#nodeColoringHeaderLink\";\nconst NODE_COLORING_SIDEBAR_BODY = \".nodeColoringSidebarBody\";\nconst DATA_SIDEBAR_BODY = \".dataSidebarBody\";\nconst NODE_COLORING_SIDEBAR_HEADER = \"#sidebarPanelHeader\";\nconst NODE_COLORING_TOGGLE_SIDEBAR = \"#nodeColoringToggleSidebar\";\nconst AVG_REPLICATE_VALS_BOTTOM_SIDEBAR = \"#averageDataBottom\";\nconst AVG_REPLICATE_VALS_TOP_SIDEBAR = \"#averageDataTop\";\nconst AVG_REPLICATE_VALS_TOP_MENU = \"#averageDataTopMenu\";\nconst AVG_REPLICATE_VALS_BOTTOM_MENU = \"#averageDataBottomMenu\";\nconst NODE_COLORING_TOGGLE_MENU = \"#node-coloring-toggle-menu\";\nconst NODE_COLORING_TOGGLE_CLASS = \".nodeColoringToggle\";\nconst LOG_FOLD_CHANGE_MAX_VALUE_CLASS = \".logFoldChangeMaxValue\";\nconst LOG_FOLD_CHANGE_MAX_VALUE_HEADER = \"#logFoldChangeMaxValue\";\nconst LOG_FOLD_CHANGE_MAX_VALUE_SIDEBAR_INPUT = \"#log-fold-change-max-value-sidebar\";\nconst LOG_FOLD_CHANGE_MAX_VALUE_SIDEBAR_BUTTON = \"#log-fold-change-button\";\nconst LOG_FOLD_CHANGE_MAX_VALUE_MENU = \"#log-fold-change-max-value-menu\";\nconst ENDS_IN_EXPRESSION_REGEXP = /expression$/;\nconst TOP_DATASET_SELECTION_MENU = \"#topDatasetDropdownMenu\";\nconst TOP_DATASET_SELECTION_SIDEBAR = \"#dataset-top\";\nconst BOTTOM_DATASET_SELECTION_MENU = \"#bottomDatasetDropdownMenu\";\nconst BOTTOM_DATASET_SELECTION_SIDEBAR = \"#dataset-bottom\";\n\nconst SPECIES_IDENTIFIED_NAME = \"#speciesName\";\nconst SPECIES_DISPLAY = \"#speciesDropdown\";\nconst SPECIES_BUTTON_YEAST = \"#Saccharomyces_cerevisiae\";\nconst SPECIES_BUTTON_HUMAN = \"#Homo_sapiens\";\nconst SPECIES_BUTTON_FLY = \"#Drosophila_melanogaster\";\nconst SPECIES_BUTTON_NEMATODE = \"#Caenorhabditis_elegans\";\nconst SPECIES_BUTTON_MOUSE = \"#Mus_musculus\";\nconst SPECIES_BUTTON_CRESS = \"#Arabidopsis_thaliana\";\n\nconst NODE_COLORING_USING_EXPRESSION_DATA = \"#expressionDB\";\n\nconst ZOOM_CONTROL = \".zoom\";\nconst ZOOM_DISPLAY_MAXIMUM_SELECTOR = \".maximum-zoom-display\";\nconst ZOOM_DISPLAY_MAXIMUM_VALUE = 200;\nconst ZOOM_DISPLAY_MINIMUM_SELECTOR = \".minimum-zoom-display\";\nconst ZOOM_DISPLAY_MINIMUM_VALUE = 25;\nconst ZOOM_DISPLAY_MIDDLE = 100;\nconst ZOOM_ADAPTIVE_MAX_SCALE = 4;\nconst ZOOM_SLIDER = \"#zoomSlider\";\nconst ZOOM_INPUT = \"#zoomInput\";\nconst ZOOM_PERCENT = \"#zoomPercent\";\n\nconst VIEWPORT_INIT = \"containerInit\";\nconst VIEWPORT_FIT = \"containerFit\";\nconst VIEWPORT_S = \"containerS\";\nconst VIEWPORT_M = \"containerM\";\nconst VIEWPORT_L = \"containerL\";\n\nconst VIEWPORT_SIZE_S_DROPDOWN = \"#viewport-size-s\";\nconst VIEWPORT_SIZE_M_DROPDOWN = \"#viewport-size-m\";\nconst VIEWPORT_SIZE_L_DROPDOWN = \"#viewport-size-l\";\nconst VIEWPORT_SIZE_FIT_DROPDOWN = \"#viewport-size-fit\";\nconst VIEWPORT_SIZE_S_SIDEBAR = \"#boundBoxS\";\nconst VIEWPORT_SIZE_M_SIDEBAR = \"#boundBoxM\";\nconst VIEWPORT_SIZE_L_SIDEBAR = \"#boundBoxL\";\nconst VIEWPORT_SIZE_FIT_SIDEBAR = \"#boundBoxFit\";\nconst VIEWPORT_OPTION_CLASS = \".viewportOption\";\nconst VIEWPORT_OPTION_CLASS_SIDEBAR = \".boundBoxSize\";\n\n\n\n\n\n//# sourceURL=webpack:///./web-client/public/js/constants.js?");
|
|
2168
2237
|
|
|
2169
2238
|
/***/ }),
|
|
2170
2239
|
|
|
2171
|
-
/***/ "./web-client/public/js/
|
|
2172
|
-
|
|
2173
|
-
!*** ./web-client/public/js/
|
|
2174
|
-
|
|
2175
|
-
/*! exports provided:
|
|
2240
|
+
/***/ "./web-client/public/js/createNetwork.js":
|
|
2241
|
+
/*!***********************************************!*\
|
|
2242
|
+
!*** ./web-client/public/js/createNetwork.js ***!
|
|
2243
|
+
\***********************************************/
|
|
2244
|
+
/*! exports provided: createNetwork */
|
|
2176
2245
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2177
2246
|
|
|
2178
2247
|
"use strict";
|
|
2179
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"container\", function() { return container; });\n/* eslint no-unused-vars: [2, {\"varsIgnorePattern\": \"grnTest|enableScroll|manualZoom\"}] */\nconst container = function () {\n var grnTest = $(\".grnTest\");\n var container = $(\".grnsight-container\");\n var enableScroll = $(\"#enableScroll\");\n var pageWidth = $(window).width();\n\n var WIDTH_OFFSET = 250;\n var HEIGHT_OFFSET = 53;\n\n var MEDIUM_PAGE_WIDTH = 1500;\n var LARGE_PAGE_WIDTH = 2200;\n\n\n var windowWidth = $(window).width() - WIDTH_OFFSET;\n var windowHeight = $(window).height() - HEIGHT_OFFSET;\n\n if (pageWidth < MEDIUM_PAGE_WIDTH) {\n $(\"#boundBoxS\").prop(\"checked\", true);\n container.addClass(\"containerS\");\n } else if (pageWidth > MEDIUM_PAGE_WIDTH && pageWidth < LARGE_PAGE_WIDTH) {\n $(\"#boundBoxM\").prop(\"checked\", true);\n container.addClass(\"containerM\");\n } else {\n $(\"#boundBoxL\").prop(\"checked\", true);\n container.addClass(\"containerL\");\n }\n\n var setSizeIndicator = function (selector) {\n $(\"#viewport-size-s span, #viewport-size-m span, #viewport-size-l span, #viewport-size-fit span\")\n .removeClass(\"glyphicon-ok\");\n $(selector).addClass(\"glyphicon-ok\");\n };\n\n var small = function () {\n setSizeIndicator(\"#viewport-size-s span\");\n };\n\n var medium = function () {\n setSizeIndicator(\"#viewport-size-m span\");\n };\n\n var large = function () {\n setSizeIndicator(\"#viewport-size-l span\");\n };\n\n var fit = function () {\n setSizeIndicator(\"#viewport-size-fit span\");\n };\n\n $(\"#viewport-size-s\").on(\"click\", function () {\n $(\"#boundBoxS\").prop(\"checked\", true).trigger(\"click\");\n small();\n });\n\n $(\"#boundBoxS\").on(\"click\", function () {\n $(\"#boundBoxS\").prop(\"checked\", true);\n small();\n });\n\n $(\"#viewport-size-m\").on(\"click\", function () {\n $(\"#boundBoxM\").prop(\"checked\", true).trigger(\"click\");\n medium();\n });\n\n $(\"#boundBoxM\").on(\"click\", function () {\n $(\"#viewport-size-m\").prop(\"checked\", true);\n medium();\n });\n\n $(\"#viewport-size-l\").on(\"click\", function () {\n $(\"#boundBoxL\").prop(\"checked\", true).trigger(\"click\");\n large();\n });\n\n $(\"#boundBoxL\").on(\"click\", function () {\n $(\"#viewport-size-l\").prop(\"checked\", true);\n large();\n });\n\n $(\"#viewport-size-fit\").on(\"click\", function () {\n $(\"#boundBoxFit\").prop(\"checked\", true).trigger(\"click\");\n fit();\n });\n\n $(\"#boundBoxFit\").on(\"click\", function () {\n $(\"#viewport-size-fit\").prop(\"checked\", true);\n fit();\n });\n\n $(\"#restrict-graph-to-viewport\").on(\"click\", function () {\n if ($(\".viewport\").prop(\"checked\")) {\n $(\"#restrict-graph-to-viewport span\").removeClass(\"glyphicon-ok\");\n $(\".viewport\").prop(\"checked\", false);\n $(\".viewport\").trigger(\"change\");\n } else {\n $(\"#restrict-graph-to-viewport span\").addClass(\"glyphicon-ok\");\n $(\".viewport\").prop(\"checked\", true).trigger(\"change\");\n }\n });\n\n\n $(\".boundBoxSize\").on(\"click\", function () {\n var currentValue = $(this).val();\n var grnsightContainerClass = \"grnsight-container \" + currentValue;\n if (!container.hasClass(currentValue)) {\n container.attr(\"class\", grnsightContainerClass);\n container.css(currentValue === \"containerFit\" ? {width: windowWidth, height: windowHeight} :\n {width: \"\", height: \"\"});\n }\n });\n\n $(window).on(\"resize\", function () {\n windowWidth = $(window).width() - WIDTH_OFFSET;\n windowHeight = $(window).height() - HEIGHT_OFFSET;\n if (container.hasClass(\"containerFit\")) {\n container.css({width: windowWidth, height: windowHeight});\n }\n });\n\n};\n\n\n//# sourceURL=webpack:///./web-client/public/js/container.js?");
|
|
2248
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createNetwork\", function() { return createNetwork; });\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ \"./web-client/public/js/constants.js\");\n/* harmony import */ var _api_grnsight_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./api/grnsight-api */ \"./web-client/public/js/api/grnsight-api.js\");\n/* harmony import */ var _grnstate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./grnstate */ \"./web-client/public/js/grnstate.js\");\n\n\n\n\nconst createNetwork = function () {\n const createHTMLforForm = (sources) => {\n let result = `\n <div id=\\'createNetworkFormContainer\\' '>\n <h2 id=\\'createNetwork\\'>Create Network</h2>\n <div class=\\'form-group\\'>\n <label for=\\'network-source\\' id=\\'network-source-label\\'>Network Source</label>\n <select class=\\'network-dropdown btn btn-default\\' id=\\'network-source\\'>\n `;\n if (sources.length !== 1) {\n result += \"<option value=\\'none\\' selected=\\'true\\' disabled>Select Network Source</option>\";\n for (let source in sources) {\n result += `\n <option value=\\'${sources[source]}\\'>${sources[source]}</option>\n `;\n }\n } else {\n result += `\n <option value=\\'${sources[0]}\\' selected=\\'true\\' disabled hidden>${sources[0]}</option>\n `;\n }\n result += `</select>\n <p>Warning: changing network source will remove all current genes in network</p>\n </div>\n <div class=\\'form-group\\' id=\\'getNetworkGenesForm\\'>\n <form id=\\'getNetworkGenesForm\\'>\n <label for=\\'network-search-bar\\' id=\\'network-source-label\\'>Select genes</label>\n <input type=\\'text\\' id=\\'network-search-bar\\' name=\\'network-search-bar\\'></input>\n <button id=\\'enter-search\\' type=\\'submit\\' class=\\'search-button btn btn-default\\'>\n <span class=\\'glyphicon glyphicon-search\\'></span>\n </button>\n </form>\n </div>\n <div id=\\'selected-genes-container\\'>\n <div id=\\'selected-genes\\'>\n <p>Added genes go here! Click on a gene to remove it</p>\n </div>\n </div>\n <button id=\\'submit-network\\' class=\\'btn btn-default\\'>Create Network</input>\n </div>\n `;\n return result;\n };\n const createGeneButtons = function () {\n let result = `<div id=\\'selected-genes\\'>\n <p>Added genes go below! Click on a gene to remove it.</p>\n <div id=\\'custom-network-genes-container\\'>\n `;\n for (let gene in _grnstate__WEBPACK_IMPORTED_MODULE_2__[\"grnState\"].customWorkbook.genes) {\n result += `\n <div class=\\'custom-network-gene\\' id=${gene}>\n <p class=\\'custom-network-gene-display-id\\'>\n ${_grnstate__WEBPACK_IMPORTED_MODULE_2__[\"grnState\"].customWorkbook.genes[gene]}\n </p>\n <p class=\\'custom-network-gene-id\\'>\n (${gene})\n </p>\n </div>\n `;\n }\n\n result += \"</div></div>\";\n return result;\n };\n const displayCurrentGenes = function () {\n $(\"#selected-genes\").remove();\n $(\"#selected-genes-container\").append(createGeneButtons());\n for (let gene in _grnstate__WEBPACK_IMPORTED_MODULE_2__[\"grnState\"].customWorkbook.genes) {\n $(`#${gene}`).on(\"click\", (ev) => {\n ev.stopPropagation();\n $(`#${gene}`).remove();\n delete _grnstate__WEBPACK_IMPORTED_MODULE_2__[\"grnState\"].customWorkbook.genes[gene];\n });\n }\n };\n\n const addGene = function () {\n let gene = `${$(\"#network-search-bar\").val()}`.toUpperCase();\n $(\"#network-search-bar\").val(\"\");\n if (!(/^[A-Z0-9_-]{1,12}$/.test(gene))) {\n alert(`Gene: ${gene} is not to GRNsight specifications. Genes must be 12 characters or less,\ncontaining \"-\", \"_\", and alpha-numeric characters only`);\n } else {\n let source = _grnstate__WEBPACK_IMPORTED_MODULE_2__[\"grnState\"].customWorkbook.source;\n let headers = {\n type:\"NetworkGeneFromSource\",\n info: {\n gene: gene,\n source:_grnstate__WEBPACK_IMPORTED_MODULE_2__[\"grnState\"].customWorkbook.sources[source].source,\n timestamp:_grnstate__WEBPACK_IMPORTED_MODULE_2__[\"grnState\"].customWorkbook.sources[source].timestamp.substring(0, 19).replace(\"T\", \" \")\n }\n };\n Object(_api_grnsight_api__WEBPACK_IMPORTED_MODULE_1__[\"queryNetworkDatabase\"])(headers).then(function (response) {\n if (response.geneId !== null && response.displayGeneId !== null) {\n _grnstate__WEBPACK_IMPORTED_MODULE_2__[\"grnState\"].customWorkbook.genes[response.geneId] = response.displayGeneId;\n displayCurrentGenes();\n } else {\n alert(`Gene: ${gene} was not found in this database. Please check for any typos and try again.`);\n }\n }).catch(function (error) {\n console.log(error.stack);\n console.log(error.name);\n console.log(error.message);\n });\n\n }\n };\n\n const displayCreateNetworkModal = function () {\n $(\"#createNetworkFormContainer\").remove();\n _grnstate__WEBPACK_IMPORTED_MODULE_2__[\"grnState\"].customWorkbook = {\n genes : {},\n source : null\n };\n // get sources from database\n Object(_api_grnsight_api__WEBPACK_IMPORTED_MODULE_1__[\"queryNetworkDatabase\"])({type:\"NetworkSource\", info:null}).then(function (response) {\n $(\"#createNetworkQuestions-container\").append(createHTMLforForm(Object.keys(response.sources)));\n _grnstate__WEBPACK_IMPORTED_MODULE_2__[\"grnState\"].customWorkbook.sources = response.sources;\n _grnstate__WEBPACK_IMPORTED_MODULE_2__[\"grnState\"].customWorkbook.source = Object.keys(response.sources).length === 1 ?\n Object.keys(response.sources)[0] : null;\n }).catch(function (error) {\n console.log(error.stack);\n console.log(error.name);\n console.log(error.message);\n });\n $(_constants__WEBPACK_IMPORTED_MODULE_0__[\"CREATE_NETWORK_MODAL\"]).modal(\"show\");\n };\n\n $(\"body\").on(\"click\", _constants__WEBPACK_IMPORTED_MODULE_0__[\"CREATE_NETWORK_CLASS\"], function (event) {\n event.preventDefault();\n event.stopPropagation();\n displayCreateNetworkModal();\n });\n\n $(\"body\").on(\"change\", \"#network-source\", function (event) {\n _grnstate__WEBPACK_IMPORTED_MODULE_2__[\"grnState\"].customWorkbook.source = $(\"#network-source\").val();\n _grnstate__WEBPACK_IMPORTED_MODULE_2__[\"grnState\"].customWorkbook.genes = {};\n event.stopPropagation();\n displayCurrentGenes();\n });\n $(\"body\").on(\"click\", \"#submit-network\", function () {\n let genesAmount = Object.keys(_grnstate__WEBPACK_IMPORTED_MODULE_2__[\"grnState\"].customWorkbook.genes).length;\n if (genesAmount === 0 ) {\n alert(\"Network must have at least 1 gene\");\n } else if (genesAmount > 75) {\n alert(`GRNsight is only capable of handling 75 genes at most. Your proposed network contains\n ${genesAmount} genes. Please remove some genes from your proposed network.`);\n } else {\n\n let source = _grnstate__WEBPACK_IMPORTED_MODULE_2__[\"grnState\"].customWorkbook.source;\n let headers = {\n type:\"CreateNetwork\",\n info: {\n genes: _grnstate__WEBPACK_IMPORTED_MODULE_2__[\"grnState\"].customWorkbook.genes,\n source:_grnstate__WEBPACK_IMPORTED_MODULE_2__[\"grnState\"].customWorkbook.sources[source].source,\n timestamp:_grnstate__WEBPACK_IMPORTED_MODULE_2__[\"grnState\"].customWorkbook.sources[source].timestamp.substring(0, 19).replace(\"T\", \" \")\n }\n };\n Object(_api_grnsight_api__WEBPACK_IMPORTED_MODULE_1__[\"queryNetworkDatabase\"])(headers).then(function (response) {\n _grnstate__WEBPACK_IMPORTED_MODULE_2__[\"grnState\"].customWorkbook.links = response.links;\n let genes = _grnstate__WEBPACK_IMPORTED_MODULE_2__[\"grnState\"].customWorkbook.genes;\n let links = _grnstate__WEBPACK_IMPORTED_MODULE_2__[\"grnState\"].customWorkbook.links;\n let genesAmount = Object.keys(genes).length;\n let edgesAmount = Object.keys(links).length;\n if (edgesAmount > 100) {\n alert(`GRNsight is only capable of handling 100 edges at most. Your proposed network contains\n ${edgesAmount} regulatory connections. Please remove some genes from your proposed network.`);\n } else {\n let name = `Custom Workbook: UnweightedGRN(${genesAmount} genes, ${edgesAmount} edges)`;\n let workbook = {name, genes, links};\n Object(_api_grnsight_api__WEBPACK_IMPORTED_MODULE_1__[\"uploadCustomWorkbook\"])(workbook, _grnstate__WEBPACK_IMPORTED_MODULE_2__[\"grnState\"]);\n $(_constants__WEBPACK_IMPORTED_MODULE_0__[\"CREATE_NETWORK_MODAL\"]).modal(\"hide\");\n }\n }).catch(function (error) {\n console.log(error.stack);\n console.log(error.name);\n console.log(error.message);\n });\n }\n });\n\n $(\"body\").on(\"click\", \"#enter-search\", function (event) {\n try {\n event.preventDefault();\n event.stopPropagation();\n addGene();\n } catch (error) {\n console.log(error);\n }\n });\n};\n\n\n//# sourceURL=webpack:///./web-client/public/js/createNetwork.js?");
|
|
2180
2249
|
|
|
2181
2250
|
/***/ }),
|
|
2182
2251
|
|
|
@@ -2187,7 +2256,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
2187
2256
|
/*! no static exports found */
|
|
2188
2257
|
/***/ (function(module, exports) {
|
|
2189
2258
|
|
|
2190
|
-
eval("var displayStatistics = function (
|
|
2259
|
+
eval("var displayStatistics = function (workbook) { // eslint-disable-line no-unused-vars\n var $container = $(\".graph-statistics-container\").removeClass(\"hidden\");\n var $thead = $container.find(\"thead\");\n var $tbody = $container.find(\"tbody\").empty();\n\n // TODO Still quick-and-dirty, needs robustness and optimization.\n var betweennessCentralityFor = function (geneName) {\n return workbook.graphStatisticsReport.betweennessCentrality.filter(function (bcItem) {\n return bcItem.gene.name === geneName;\n })[0].betweennessCentrality;\n };\n\n var shortestPath = function (sourceName, targetName) {\n var rawResult = workbook.graphStatisticsReport.shortestPath.filter(function (spItem) {\n return spItem.source === sourceName && spItem.pathData.target === targetName;\n })[0].pathData.shortestPath;\n\n return rawResult === null ? \"\" : rawResult;\n };\n\n var populateHead = function () {\n $thead.find(\".shortest-path-column-headers\").empty().append(\n workbook.genes.map(function (gene) {\n return $(\"<th></th>\").text(gene.name);\n })\n );\n\n $thead.find(\".shortest-path-header\").attr({ colspan: workbook.genes.length });\n };\n\n var populateBody = function () {\n $tbody.append(workbook.genes.map(function (gene) {\n return $(\"<tr></tr>\")\n .append($(\"<th></th>\").text(gene.name))\n .append($(\"<td></td>\").text(betweennessCentralityFor(gene.name)))\n .append(workbook.genes.map(function (targetGene) {\n return $(\"<td></td>\").text(shortestPath(gene.name, targetGene.name));\n }));\n }));\n };\n\n populateHead();\n populateBody();\n};\n\n\n//# sourceURL=webpack:///./web-client/public/js/graph-statistics.js?");
|
|
2191
2260
|
|
|
2192
2261
|
/***/ }),
|
|
2193
2262
|
|
|
@@ -2199,7 +2268,7 @@ eval("var displayStatistics = function (network) { // eslint-disable-line no-unu
|
|
|
2199
2268
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2200
2269
|
|
|
2201
2270
|
"use strict";
|
|
2202
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"updaters\", function() { return updaters; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"drawGraph\", function() { return drawGraph; });\n/* harmony import */ var d3_v4_grid__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-v4-grid */ \"./node_modules/d3-v4-grid/dist/d3-grid.js\");\n/* harmony import */ var d3_v4_grid__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(d3_v4_grid__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _grnstate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./grnstate */ \"./web-client/public/js/grnstate.js\");\n/* harmony import */ var _update_app__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./update-app */ \"./web-client/public/js/update-app.js\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants */ \"./web-client/public/js/constants.js\");\n\n\n\n\n\n/* globals d3 */\n/* eslint-disable no-use-before-define, func-style */\n/*\n By D3's nature, it can be a bit difficult to adhere to our given guidelines..\n This file needs to be organized a bit more before it can fully adhere to\n them.\n*/\n/* http://bl.ocks.org/mbostock/4062045 used as reference\n * As well as http://bl.ocks.org/mbostock/3750558\n * and http://bl.ocks.org/mbostock/950642\n * and http://bl.ocks.org/mbostock/1153292\n */\n\n/* eslint no-unused-vars: [2, {\"varsIgnorePattern\": \"text|getMappedValue|manualZoom\"}] */\n/* eslint-disable no-unused-vars */\n\nvar updaters = {\n setNodesToGrid: () => {},\n setNodesToForceGraph: () => {},\n renderNodeColoring: () => {},\n removeNodeColoring: () => {},\n};\n\nvar drawGraph = function (network) {\n/* eslint-enable no-unused-vars */\n var $container = $(\".grnsight-container\");\n d3.selectAll(\"svg\").remove();\n\n $container.removeClass(CURSOR_CLASSES).addClass(\"cursorGrab\"); // allow graph dragging right away\n\n var width = $container.width();\n var height = $container.height();\n var nodeHeight = 30;\n var grayThreshold = +$(\"#grayThresholdInput\").val();\n\n var dashedLine = $(\"#dashedGrayLineButton\").prop(\"checked\");\n\n var CURSOR_CLASSES = \"cursorGrab cursorGrabbing\";\n\n var zoomSliderScale = 1;\n\n $(\"#warningMessage\").html(network.warnings.length !== 0 ? \"Click here in order to view warnings.\" : \"\");\n\n var getNodeWidth = function (node) {\n return node.name.length * 12 + 5;\n };\n\n var adaptive = !$(\"input[name='viewport']\").prop(\"checked\");\n\n const MIN_SCALE = 0.25;\n const ADAPTIVE_MAX_SCALE = 4;\n const MIDDLE_SCALE = 1;\n\n // Create an array of all the network weights\n var allWeights = network.positiveWeights.concat(network.negativeWeights);\n // Assign the entire array weights of 1, if color edges turned off\n if (!_grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].colorOptimal) {\n for (var i = 0; i < allWeights.length; i++) {\n if ( allWeights[i] !== 0 ) {\n allWeights[i] = 1;\n }\n }\n } else {\n for (var j = 0; j < allWeights.length; j++ ) {\n allWeights[j] = Math.abs((allWeights[j]).toPrecision(4));\n }\n }\n\n // Get the largest magnitude weight and set that as the default normalization factor\n var maxWeight = Math.max(Math.abs(d3.max(allWeights)), Math.abs(d3.min(allWeights)));\n _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].normalizationMax = maxWeight;\n _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].resetNormalizationMax = maxWeight;\n\n // Normalize all weights b/w 2-14\n var normMax = +$(\"#normalization-max\").val();\n var totalScale = d3.scaleLinear()\n .domain([0, normMax > 0 ? normMax : maxWeight])\n .range([2, 14])\n .clamp(true);\n\n var unweighted = false;\n\n // if unweighted, all weights are 2\n if (network.sheetType === \"unweighted\") {\n totalScale = d3.scaleQuantile()\n .domain([d3.extent(allWeights)])\n .range([\"2\"]);\n unweighted = true;\n $(\".normalization-form\").append(\"placeholder='unweighted'\");\n document.getElementById(\"edge-weight-normalization-factor-menu\").setAttribute(\"placeholder\", \"\");\n } else {\n document.getElementById(\"normalization-max\").setAttribute(\"placeholder\", maxWeight);\n document.getElementById(\"edge-weight-normalization-factor-menu\").setAttribute(\"placeholder\", maxWeight);\n }\n\n var getEdgeThickness = function (edge) {\n return Math.floor(totalScale(Math.abs(edge.value)));\n };\n\n var simulation = d3.forceSimulation()\n .force(\"link\", d3.forceLink())\n .force(\"charge\", d3.forceManyBody())\n .force(\"center\", d3.forceCenter(width / 2, height / 2));\n\n var drag = d3.drag()\n .on(\"start\", dragstart)\n .on(\"drag\", dragged)\n .on(\"end\", dragended);\n\n var dragended = function () {\n d3.event.stopPropagation();\n };\n\n var zoomDragPrevX = 0;\n var zoomDragPrevY = 0;\n var zoomDragStarted = function () {\n zoomDragPrevX = d3.event.x;\n zoomDragPrevY = d3.event.y;\n $container.removeClass(CURSOR_CLASSES).addClass(\"cursorGrabbing\");\n if (!adaptive) {\n $container.removeClass(CURSOR_CLASSES);\n }\n };\n\n var zoomDragged = function () {\n if (adaptive) {\n var scale = 1;\n if (zoomContainer.attr(\"transform\")) {\n var string = zoomContainer.attr(\"transform\");\n scale = 1 / +(string.match(/scale\\(([^\\)]+)\\)/)[1]);\n }\n zoom.translateBy(zoomContainer, scale * (d3.event.x - zoomDragPrevX), scale * (d3.event.y - zoomDragPrevY));\n zoomDragPrevX = d3.event.x;\n zoomDragPrevY = d3.event.y;\n }\n };\n\n var zoomDragEnded = function () {\n $container.removeClass(CURSOR_CLASSES).addClass(\"cursorGrab\");\n if (!adaptive) {\n $container.removeClass(CURSOR_CLASSES);\n }\n };\n\n var zoomDrag = d3.drag()\n .on(\"start\", zoomDragStarted)\n .on(\"drag\", zoomDragged)\n .on(\"end\", zoomDragEnded);\n\n var manualZoom = false;\n\n var svg = d3.select($container[0]).append(\"svg\")\n .attr(\"width\", width)\n .attr(\"height\", height);\n\n var zoomContainer = svg.append(\"g\") // required for zoom to work\n .attr(\"class\", \"boundingBox\")\n .attr(\"width\", width)\n .attr(\"height\", height);\n\n var boundingBoxContainer = zoomContainer.append(\"g\"); // appended another g here...\n\n var zoom = d3.zoom()\n .scaleExtent([1 / 2, 4])\n .on(\"zoom\", zoomed);\n\n svg.style(\"pointer-events\", \"all\").call(zoomDrag);\n\n function zoomed () {\n zoomContainer.attr(\"transform\", d3.event.transform);\n }\n\n d3.select(\"svg\").on(\"dblclick.zoom\", null); // disables double click zooming\n\n // This rectangle catches all of the mousewheel and pan events, without letting\n // them bubble up to the body.\n boundingBoxContainer.append(\"rect\")\n .attr(\"width\", width)\n .attr(\"height\", height)\n .style(\"fill\", \"none\")\n .style(\"pointer-events\", \"all\")\n .attr(\"stroke\", adaptive ? \"none\" : \"#9A9A9A\")\n .append(\"g\");\n\n d3.selectAll(\".scrollBtn\").on(\"click\", null); // Remove event handlers, if there were any.\n var arrowMovement = [ \"Up\", \"Left\", \"Right\", \"Down\" ];\n arrowMovement.forEach(function (direction) {\n d3.select(\".scroll\" + direction).on(\"click\", function () {\n move(direction.toLowerCase());\n });\n });\n d3.select(\".center\").on(\"click\", center);\n\n const setGraphZoom = zoomScale => {\n if (zoomScale < MIDDLE_SCALE) {\n $container.removeClass(CURSOR_CLASSES).addClass(\"cursorGrab\");\n } else if (!adaptive && zoomScale >= MIDDLE_SCALE) {\n $container.removeClass(CURSOR_CLASSES);\n }\n var container = zoomContainer;\n zoom.scaleTo(container, zoomScale);\n };\n\n const updateAppBasedOnZoomValue = () => {\n var currentPoint = _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].zoomValue * 100;\n var equivalentScale;\n if (adaptive || (!adaptive && _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].zoomValue <= ADAPTIVE_MAX_SCALE)) {\n if (currentPoint <= leftPoints) {\n equivalentScale = MIN_SCALE;\n equivalentScale += scaleIncreasePerLeftPoint * currentPoint;\n } else {\n currentPoint = currentPoint - leftPoints;\n equivalentScale = MIDDLE_SCALE;\n equivalentScale += scaleIncreasePerRightPoint * currentPoint;\n }\n zoomSliderScale = equivalentScale;\n setGraphZoom(equivalentScale);\n } else {\n // Prohibits zooming past 100% if (!adaptive && grnState.zoomValue >= ADAPTIVE_MAX_SCALE)\n _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].zoomValue = ADAPTIVE_MAX_SCALE;\n setGraphZoom(MIDDLE_SCALE);\n }\n\n $(_constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_CONTROL\"]).val(_grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].zoomValue);\n\n let zoomAsPercent = Math.round(_grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].zoomValue / ZOOM_SLIDER_MAX_VAL * ZOOM_RANGE);\n if (zoomAsPercent === 0) {\n zoomAsPercent = MIDDLE_SCALE;\n }\n\n $(_constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_PERCENT\"]).text(`${zoomAsPercent}%`);\n $(_constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_INPUT\"]).val(zoomAsPercent);\n };\n\n var leftPoints;\n var rightPoints;\n var scaleIncreasePerLeftPoint;\n var scaleIncreasePerRightPoint;\n/*\n We have to do some mapping so that the zoom slider appears as it should.\n Zooming out sets the scale to a value between 0 and 1. Zooming in sets it\n to a value between 1 and infinity. A scale of 0.25 to 5 on a zoom slider\n without transformations will have 1 at the very far left. However, that's\n an inaccurate way to represent what's actually happening. So this function\n maps the scale from 0 to some x, with that x being calculated based on the\n input scales.\n*/\n var setupZoomSlider = function (minScale) {\n // If the maximumScale is 1, we won't need to calculate any values from 1 to maxScale.\n // So we'll just treat it as 0.\n\n var maxScale = ADAPTIVE_MAX_SCALE;\n\n // Each integer on the zoom is equivalent to 100 steps.\n var NUMBER_POINTS_PER_INT = 100;\n\n // Get the value that, if multiplied by the minScale value, would return 1. (ex: 0.25 * 4 = 1)\n // This gives us the equivalent value of this minimum scale, should it be treated\n // as a scale increase. This mostly allows us to treat this minimum scale as a non-decimal value,\n // but it also provides a way to compare the total effect this minimum scale would have\n // in a way that is easier to understand.\n var minScaleReversed = 100 / (minScale * 100);\n\n // Number of points required to display the minimum scale, now that's it's been transformed. These\n // are the points that represent everything on the scale less than one.\n leftPoints = minScaleReversed * NUMBER_POINTS_PER_INT;\n\n // We want to end up with a total increase that, once we've gone through all the\n // left points, produces 1 when added to minscale. So for scale 0.25 with 400\n // left points, we need to know what we could add to 0.25 400 times to produce 1.\n // We divide 0.75 by 400 to get that result.\n scaleIncreasePerLeftPoint = (1 - minScale) / leftPoints;\n\n // Points representing scales greater than 1.\n rightPoints = maxScale * NUMBER_POINTS_PER_INT;\n\n // For the same concept as above, we need to figure out what to add to 1 so\n // so that we can end up with maxScale. Note that we start at 1 and not 0 because\n // the scale is beginning at 1.\n scaleIncreasePerRightPoint = (maxScale - MIDDLE_SCALE) / rightPoints;\n var totalPoints = leftPoints + rightPoints;\n\n // Returns the x that we're mapping to. Now we can set up the range slider.\n var maxRangeValue = totalPoints / 100;\n\n $(_constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_SLIDER\"]).attr(\"min\", 0);\n $(_constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_SLIDER\"]).attr(\"max\", maxRangeValue);\n if (_grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].newNetwork) {\n _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].zoomValue = 0.01 * leftPoints;\n }\n\n updateAppBasedOnZoomValue();\n };\n\n setupZoomSlider(MIN_SCALE);\n\n var ZOOM_SLIDER_MAX_VAL = 8;\n var ZOOM_RANGE = 200;\n\n var zoomInputValidator = function (value) {\n return Object(_update_app__WEBPACK_IMPORTED_MODULE_2__[\"valueValidator\"])(1, 200, value);\n };\n\n $(_constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_INPUT\"]).on(\"input\", () => {\n const zoomAsPercent = zoomInputValidator(+$(_constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_INPUT\"]).val());\n _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].zoomValue = zoomAsPercent * (ZOOM_SLIDER_MAX_VAL / ZOOM_RANGE);\n updateAppBasedOnZoomValue();\n });\n\n d3.select(_constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_SLIDER\"]).on(\"input\", function () {\n _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].zoomValue = +$(this).val();\n updateAppBasedOnZoomValue();\n }).on(\"mousedown\", function () {\n manualZoom = true;\n }).on(\"mouseup\", function () {\n manualZoom = false;\n });\n\n if (!_grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].newNetwork) {\n updateAppBasedOnZoomValue();\n }\n\n d3.selectAll(\".boundBoxSize\").on(\"click\", function () {\n var newWidth = $container.width();\n var newHeight = $container.height();\n\n if (adaptive) {\n width = (width < newWidth) ? newWidth : width;\n height = (height < newHeight) ? newHeight : height;\n } else {\n width = newWidth;\n height = newHeight;\n }\n\n // Subtract 1 from SVG height if we are fitting to window so as to prevent scrollbars from showing up\n // Is inconsistent, but I'm tired of fighting with it...\n d3.select(\"svg\").attr(\"width\", newWidth)\n .attr(\"height\", $(\".grnsight-container\").hasClass(\"containerFit\") ? newHeight : newHeight);\n d3.select(\"rect\").attr(\"width\", width).attr(\"height\", height);\n d3.select(\".boundingBox\").attr(\"width\", width).attr(\"height\", height);\n });\n\n var restrictGraphToViewport = function (fixed) {\n if (!fixed) {\n $(\"#restrict-graph-to-viewport span\").removeClass(\"glyphicon-ok\");\n $(\"input[name=viewport]\").removeProp(\"checked\");\n $container.addClass(\"cursorGrab\");\n adaptive = true;\n d3.select(\"rect\").attr(\"stroke\", \"none\");\n center();\n } else if (fixed) {\n $(\"#restrict-graph-to-viewport span\").addClass(\"glyphicon-ok\");\n $(\"input[name=viewport]\").prop(\"checked\", \"checked\");\n adaptive = false;\n $container.removeClass(CURSOR_CLASSES);\n if (zoomSliderScale > 1) {\n _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].zoomValue = ADAPTIVE_MAX_SCALE;\n updateAppBasedOnZoomValue();\n $container.removeClass(CURSOR_CLASSES);\n }\n width = $container.width();\n height = $container.height();\n d3.select(\"rect\").attr(\"stroke\", \"#9A9A9A\")\n .attr(\"width\", width)\n .attr(\"height\", height);\n $(\".boundingBox\").attr(\"width\", width).attr(\"height\", height);\n center();\n }\n };\n\n d3.select(\"#restrict-graph-to-viewport\").on(\"click\", function () {\n var fixed = $(\"input[name=viewport]\").prop(\"checked\");\n restrictGraphToViewport(fixed);\n });\n\n d3.selectAll(\"input[name=viewport]\").on(\"change\", function () {\n var fixed = $(this).prop(\"checked\");\n restrictGraphToViewport(fixed);\n });\n\n $(window).on(\"resize\", function () {\n if ($container.hasClass(\"containerFit\")) {\n $(\".boundBoxSize\").trigger(\"click\");\n }\n });\n\n function center () {\n var viewportWidth = $container.width();\n var viewportHeight = $container.height();\n zoom.translateTo(zoomContainer, viewportWidth / 2, viewportHeight / 2);\n simulation.alphaTarget(0.3).restart();\n }\n\n function move (direction) {\n var width = direction === \"left\" ? 50 : (direction === \"right\" ? -50 : 0);\n var height = direction === \"up\" ? 50 : (direction === \"down\" ? -50 : 0);\n zoom.translateBy(zoomContainer, width, height);\n }\n\n var defs = boundingBoxContainer.append(\"defs\");\n\n var link = boundingBoxContainer.selectAll(\".links\");\n var node = boundingBoxContainer.selectAll(\".nodes\");\n var weight = boundingBoxContainer.selectAll(\".weight\");\n\n simulation\n .nodes(network.genes)\n .on(\"tick\", tick);\n\n simulation.force(\"link\")\n .links(network.links);\n\n link = link.data(network.links)\n .enter().append(\"g\")\n .attr(\"class\", \"link\")\n .attr(\"strokeWidth\", getEdgeThickness);\n\n node = node.data(network.genes)\n .enter().append(\"g\")\n .attr(\"class\", \"node\")\n .attr(\"id\", function (d) {\n return \"node\" + d.index;\n })\n .attr(\"width\", getNodeWidth)\n .attr(\"height\", nodeHeight)\n .call(drag)\n .on(\"dblclick\", dblclick);\n\n if (network.sheetType === \"weighted\") {\n link.append(\"path\")\n .attr(\"class\", \"mousezone\")\n .style(\"stroke-width\", function (d) {\n var baseThickness = getEdgeThickness(d);\n return Math.max(baseThickness, 7);\n });\n }\n\n link.append(\"path\")\n .attr(\"class\", \"main\")\n .attr(\"id\", function (d) {\n return \"path\" + d.source.index + \"_\" + d.target.index;\n }).style(\"stroke-width\", function (d) {\n d.strokeWidth = _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].colorOptimal ? getEdgeThickness(d) : 2;\n return d.strokeWidth;\n }).style(\"stroke-dasharray\", function (d) {\n if (unweighted || !_grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].colorOptimal) {\n return \"0\";\n } else if (normalize(d) <= grayThreshold && dashedLine === true) {\n return \"6, 9\";\n } else {\n return \"0\";\n }\n }).style(\"stroke\", function (d) {\n if (unweighted || !_grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].colorOptimal) {\n return \"black\";\n } else if (normalize(d) <= grayThreshold) {\n return \"gray\";\n } else {\n return d.stroke;\n }\n }).attr(\"marker-end\", function (d) {\n var x1 = d.source.x;\n var y1 = d.source.y;\n var x2 = d.target.x;\n var y2 = d.target.y;\n var minimum = \"\";\n var selfRef = \"\";\n var yOffsets;\n var xOffsets;\n var color;\n\n if (Math.abs(d.value / maxWeight) <= grayThreshold) {\n minimum = \"gray\";\n }\n if ( x1 === x2 && y1 === y2 ) {\n selfRef = \"_SelfReferential\";\n }\n // If the same ID is created twice (usually happens in the unweighted GRNS),\n // it causes unpredictable behavior in the markers.\n // To prevent this, first we check to make sure the ID about to be created doesn't exist.\n if ( $(\"#\" + d.type + selfRef + \"_StrokeWidth\" + d.strokeWidth + minimum).length !== 0 ) {\n return \"url(#\" + d.type + selfRef + \"_StrokeWidth\" + d.strokeWidth + minimum + \")\";\n } else {\n\n // If negative, you need one bar for horizontal and one for vertical.\n // If the user is not coloring the weighted\n // sheets, then we make all of the markers arrowheads.\n if (d.value < 0 && _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].colorOptimal) {\n defs.append(\"marker\")\n .attr(\"id\", \"repressor\" + selfRef + \"_StrokeWidth\" + d.strokeWidth + minimum)\n .attr(\"refX\", function () {\n xOffsets = {\n 2 : 1, 3 : 2, 4 : 2, 5 : 2, 6 : 2.5, 7 : 3, 8 : 3.5,\n 9 : 4, 10 : 4.5, 11 : 5, 12 : 5, 13 : 5.5, 14 : 6\n };\n return xOffsets[d.strokeWidth];\n })\n .attr(\"refY\", function () {\n yOffsets = {\n 2 : 13, 3 : 13, 4 : 13.5, 5 : 14, 6 : 15.5, 7 : 17, 8 : 17,\n 9 : 17, 10 : 17, 11 : 17, 12 : 18.5, 13 : 18, 14 : 19.25\n };\n return yOffsets[d.strokeWidth];\n })\n .attr(\"markerUnits\", \"userSpaceOnUse\")\n .attr(\"markerWidth\", function () {\n return d.strokeWidth;\n })\n .attr(\"markerHeight\", function () {\n return 25 + d.strokeWidth;\n })\n .attr(\"orient\", 180)\n .append(\"rect\")\n .attr(\"width\", function () {\n return d.strokeWidth;\n })\n .attr(\"height\", function () {\n return 25 + d.strokeWidth;\n })\n .attr(\"rx\", 10)\n .attr(\"ry\", 10)\n .attr(\"style\", function () {\n if ( normalize(d) <= grayThreshold) {\n color = \"gray\";\n } else {\n color = d.stroke;\n }\n return \"stroke:\" + color + \"; fill: \" + color + \"; stroke-width: 0\";\n });\n\n defs.append(\"marker\")\n .attr(\"id\", \"repressorHorizontal\" + selfRef + \"_StrokeWidth\" + d.strokeWidth + minimum)\n .attr(\"refX\", function () {\n if (x1 === x2 && y1 === y2) { // if self referential...\n xOffsets = {\n 2 : 14, 3 : 15, 4 : 15, 5 : 15, 6 : 16, 7 : 16.5, 8 : 16.5,\n 9 : 17, 10 : 17.5, 11 : 18, 12 : 19, 13 : 19.5, 14 : 20.5\n };\n } else {\n xOffsets = {\n 2 : 13, 3 : 13, 4 : 13.5, 5 : 14, 6 : 15.5, 7 : 16.5, 8 : 17,\n 9 : 16, 10 : 17, 11 : 17, 12 : 18, 13 : 18, 14 : 19\n };\n }\n return xOffsets[d.strokeWidth];\n })\n .attr(\"refY\", function () {\n yOffsets = {\n 2 : 1, 3 : 2, 4 : 2, 5 : 2, 6 : 2.5, 7 : 3, 8 : 3.5,\n 9 : 4, 10 : 4.5, 11 : 5, 12 : 5, 13 : 5.5, 14 : 6\n };\n return yOffsets[d.strokeWidth];\n })\n .attr(\"markerUnits\", \"userSpaceOnUse\")\n .attr(\"markerWidth\", function () {\n return 25 + d.strokeWidth;\n })\n .attr(\"markerHeight\", function () {\n return d.strokeWidth;\n })\n .attr(\"orient\", 180)\n .append(\"rect\")\n .attr(\"width\", function () {\n return 25 + d.strokeWidth;\n })\n .attr(\"height\", function () {\n return d.strokeWidth;\n })\n .attr(\"rx\", 10)\n .attr(\"ry\", 10)\n .attr(\"style\", function () {\n if (normalize(d) <= grayThreshold) {\n color = \"gray\";\n } else {\n color = d.stroke;\n }\n return \"stroke:\" + color + \"; fill: \" + color + \"; stroke-width: 0\";\n });\n } else {\n // Arrowheads\n if (d.strokeWidth === 2) {\n d.strokeWidth = 4;\n }\n defs.append(\"marker\")\n .attr(\"id\", \"arrowhead\" + selfRef + \"_StrokeWidth\" + d.strokeWidth + minimum)\n .attr(\"viewBox\", \"0 0 15 15\")\n .attr(\"preserveAspectRatio\", \"xMinYMin meet\")\n .attr(\"refX\", function () {\n // Individual offsets for each possible stroke width\n return ((x1 === x2 && y1 === y2) ?\n {\n 2: 2, 3: 10.5, 4: 11, 5: 9, 6: 9, 7: 10,\n 8: 9.8, 9: 9.1, 10: 10, 11: 9.5, 12: 9, 13: 8.3,\n 14: 8.3\n } : {\n 2: 11.75, 3: 11, 4: 9.75, 5: 9.25, 6: 8.5, 7: 10,\n 8: 9.75, 9: 9.5, 10: 9, 11: 9.5, 12: 9.5, 13: 9.25,\n 14: 9\n }\n )[d.strokeWidth];\n })\n .attr(\"refY\", function () {\n return ((x1 === x2 && y1 === y2) ?\n {\n 2: 6.7, 3: 5.45, 4: 5.3, 5: 5.5, 6: 5, 7: 5.4,\n 8: 5.65, 9: 6, 10: 5.7, 11: 5.5, 12: 5.9, 13: 6,\n 14: 6\n } : {\n 2: 5, 3: 5, 4: 4.8, 5: 5, 6: 5, 7: 4.98,\n 8: 4.9, 9: 5.2, 10: 4.85, 11: 4.7, 12: 5.15,\n 13: 5, 14: 5.3\n }\n )[d.strokeWidth];\n })\n .attr(\"markerUnits\", \"userSpaceOnUse\")\n .attr(\"markerWidth\", function () {\n return 12 + ((d.strokeWidth < 7) ? d.strokeWidth * 2.25 : d.strokeWidth * 3);\n })\n .attr(\"markerHeight\", function () {\n return 5 + ((d.strokeWidth < 7) ? d.strokeWidth * 2.25 : d.strokeWidth * 3);\n })\n .attr(\"orient\", function () {\n return (x1 === x2 && y1 === y2) ?\n {\n 2: 270, 3: 270, 4: 268, 5: 264, 6: 268, 7: 252,\n 8: 248, 9: 243, 10: 240, 11: 240, 12: 235, 13: 233,\n 14: 232\n }[d.strokeWidth] : \"auto\";\n })\n .append(\"path\")\n .attr(\"d\", \"M 0 0 L 14 5 L 0 10 Q 6 5 0 0\")\n .attr(\"style\", function () {\n if (unweighted || !_grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].colorOptimal) {\n color = \"black\";\n } else if ( normalize(d) <= grayThreshold) {\n color = \"gray\";\n } else {\n color = d.stroke;\n }\n return \"stroke: \" + color + \"; fill: \" + color;\n });\n }\n }\n return \"url(#\" + d.type + selfRef + \"_StrokeWidth\" + d.strokeWidth + minimum + \")\";\n });\n\n if (network.sheetType === \"weighted\") {\n link.append(\"text\")\n .attr(\"class\", \"weight\")\n .attr(\"text-anchor\", \"middle\")\n .attr(\"text-anchor\", \"middle\")\n .text(function (d) {\n return d.value.toPrecision(4);\n });\n\n weight = weight.data(network.links)\n .enter().append(\"text\")\n .attr(\"class\", \"weight\")\n .attr(\"text-anchor\", \"middle\")\n .text(function (d) {\n return d.value.toPrecision(4);\n })\n .each(function (d) {\n d.weightElement = d3.select(this);\n });\n\n }\n\n /* Big thanks to the following for the smart edges\n * https://github.com/cdc-leeds/PolicyCommons/blob/b0dea2a4171989123cbee377a6ae260b8612138e\n /visualize/conn-net-svg.js#L119\n */\n var moveTo = function (d) {\n var node = d3.select(\"#node\" + d.source.index);\n var w = parseFloat(node.attr(\"width\"));\n var h = parseFloat(node.attr(\"height\"));\n\n d.source.newX = d.source.x + (w / 2);\n d.source.newY = d.source.y + (h / 2);\n\n return \"M\" + d.source.newX + \",\" + d.source.newY + \" \";\n };\n\n var CURVE_THRESHOLD = 200;\n var lineTo = function (d) {\n var node = d3.select(\"#node\" + d.target.index);\n var w = +node.attr(\"width\");\n var h = +node.attr(\"height\");\n var x1 = d.source.x;\n var y1 = d.source.y;\n var x2 = d.target.x;\n var y2 = d.target.y;\n\n d.target.centerX = d.target.x + (w / 2);\n d.target.centerY = d.target.y + (h / 2);\n\n // This function calculates the newX and newY.\n smartPathEnd(d, w, h);\n x1 = d.source.newX;\n y1 = d.source.newY;\n x2 = d.target.newX;\n y2 = d.target.newY;\n\n // Unit vectors.\n var ux = x2 - x1;\n var uy = y2 - y1;\n var umagnitude = Math.sqrt(ux * ux + uy * uy);\n var vx = -uy; // Perpendicular vector.\n var vy = ux;\n var vmagnitude = Math.sqrt(vx * vx + vy * vy);\n\n ux /= umagnitude;\n uy /= umagnitude;\n vx /= vmagnitude;\n vy /= vmagnitude;\n\n // Check for vector direction.\n if (((d.target.newX > d.source.x) && (d.target.newY > d.source.y)) ||\n ((d.target.newX < d.source.x) && (d.target.newY < d.source.y))) {\n vx = -vx; vy = -vy;\n }\n\n var curveToStraight = (umagnitude - CURVE_THRESHOLD) / 4;\n var inlineOffset = Math.max(umagnitude / 4, curveToStraight);\n var orthoOffset = Math.max(0, curveToStraight);\n var cp1x = x1 + inlineOffset * ux + vx * orthoOffset;\n var cp1y = y1 + inlineOffset * uy + vy * orthoOffset;\n var cp2x = x2 - inlineOffset * ux + vx * orthoOffset;\n var cp2y = y2 - inlineOffset * uy + vy * orthoOffset;\n\n d.label = {\n x: (x1 + cp1x + cp2x + x2) / 4,\n y: (y1 + cp1y + cp2y + y2) / 4\n };\n\n cp1x = Math.min(Math.max(0, cp1x), width);\n cp1y = Math.min(Math.max(0, cp1y), height);\n cp2x = Math.min(Math.max(0, cp2x), width);\n cp2y = Math.min(Math.max(0, cp2y), height);\n return \"C\" + cp1x + \" \" + cp1y + \", \" +\n cp2x + \" \" + cp2y + \", \" +\n x2 + \" \" + y2;\n };\n\n function smartPathEnd (d, w, h) {\n // For arrowheads when target node is to the left of source node\n var LEFT_ADJUSTMENT = 7;\n var MINIMUM_DISTANCE = 8;\n var NODE_HALF_HEIGHT = 30 / 2;\n\n var targetStartX = d.target.centerX + d.target.textWidth / 2;\n var currentPointX = (targetStartX - d.target.centerX) / (d.source.newX - d.target.centerX);\n var currentPointY = (1 - currentPointX) * d.target.centerY + currentPointX * d.source.newY;\n var upperBound = d.target.centerY + NODE_HALF_HEIGHT;\n var lowerBound = d.target.centerY - NODE_HALF_HEIGHT;\n if (currentPointX > 0 && currentPointY >= lowerBound && currentPointY <= upperBound) {\n MINIMUM_DISTANCE = d.strokeWidth > 11 ? 16.5 : 15;\n }\n\n // Set an offset if the edge is a repressor to make room for the flat arrowhead\n var globalOffset = parseFloat(d.strokeWidth);\n\n if (d.value < 0 && _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].colorOptimal) {\n globalOffset = Math.max(globalOffset, MINIMUM_DISTANCE);\n }\n\n var thicknessAdjustment = globalOffset > MINIMUM_DISTANCE ? 1 : 0;\n\n // We need to work out the (tan of the) angle between the\n // imaginary horizontal line running through the center of the\n // target node and the imaginary line connecting the center of\n // the target node with the top-left corner of the same\n // node. Of course, this angle is fixed.\n d.tanRatioFixed = (d.target.centerY - d.target.y) / (d.target.centerX - d.target.x);\n\n // We also need to work out the (tan of the) angle between the\n // imaginary horizontal line running through the center of the\n // target node and the imaginary line connecting the center of\n // the target node with the center of the source node. This\n // angle changes as the nodes move around the screen.\n d.tanRatioMoveable = Math.abs(d.target.centerY - d.source.newY) / Math.abs(d.target.centerX - d.source.newX);\n // Note, JavaScript handles division-by-zero by returning\n // Infinity, which in this case is useful, especially\n // since it handles the subsequent Infinity arithmetic\n // correctly.\n\n // Now work out the intersection point\n if (d.tanRatioMoveable === d.tanRatioFixed) {\n // Then path is intersecting at corner of textbox so draw\n // path to that point\n\n // By default assume path intersects a left-side corner\n d.target.newX = d.target.x - globalOffset;\n\n // But...\n if (d.target.centerX < d.source.newX) {\n // i.e. if target node is to left of the source node\n // then path intersects a right-side corner\n d.target.newX = d.target.x + w + globalOffset;\n }\n\n // By default assume path intersects a top corner\n d.target.newY = d.target.y - globalOffset;\n\n // But...\n if (d.target.centerY < d.source.newY) {\n // i.e. if target node is above the source node\n // then path intersects a bottom corner\n d.target.newY = d.target.y + h + globalOffset;\n }\n }\n\n if (d.tanRatioMoveable < d.tanRatioFixed) {\n // Then path is intersecting on a vertical side of the\n // textbox, which means we know the x-coordinate of the\n // path endpoint but we need to work out the y-coordinate\n\n // By default assume path intersects left vertical side\n d.target.newX = d.target.x - globalOffset;\n\n // But...\n if (d.target.centerX < d.source.newX) {\n // i.e. if target node is to left of the source node\n // then path intersects right vertical side\n if (d.type !== \"arrowhead\") {\n d.target.newX = d.target.x + w + globalOffset + 0.25 * d.strokeWidth - thicknessAdjustment;\n } else {\n d.target.newX = d.target.x + w + globalOffset + LEFT_ADJUSTMENT;\n }\n }\n\n // Now use a bit of trigonometry to work out the y-coord.\n\n // By default assume path intersects towards top of node\n d.target.newY = d.target.centerY - ((d.target.centerX - d.target.x) * d.tanRatioMoveable);\n\n // But...\n if (d.target.centerY < d.source.newY) {\n // i.e. if target node is above the source node\n // then path intersects towards bottom of the node\n d.target.newY = (2 * d.target.y) - d.target.newY + h;\n }\n }\n\n if (d.tanRatioMoveable > d.tanRatioFixed) {\n // Then path is intersecting on a horizontal side of the\n // textbox, which means we know the y-coordinate of the\n // path endpoint but we need to work out the x-coordinate\n\n // By default assume path intersects top horizontal side\n d.target.newY = d.target.y - globalOffset;\n\n // But...\n if (d.target.centerY < d.source.newY) {\n // i.e. if target node is above the source node\n // then path intersects bottom horizontal side\n if (d.type !== \"arrowhead\") {\n d.target.newY = d.target.y + h + globalOffset + 0.25 * d.strokeWidth - thicknessAdjustment;\n } else {\n d.target.newY = d.target.y + h + globalOffset;\n }\n }\n\n // Now use a bit of trigonometry to work out the x-coord.\n\n // By default assume path intersects towards lefthand side\n d.target.newX = d.target.centerX - ((d.target.centerY - d.target.y) / d.tanRatioMoveable);\n\n // But...\n if (d.target.centerX < d.source.newX) {\n // i.e. if target node is to left of the source node\n // then path intersects towards the righthand side\n d.target.newX = (2 * d.target.x) - d.target.newX + w;\n }\n }\n }\n\n var dblclick = function (d) {\n d.fx = null;\n d.fy = null;\n };\n\n var nodeTextDblclick = function (d) {\n // Relay the double-click to our parent.\n dblclick.call(this.parentNode, d);\n };\n\n var rect = node.append(\"rect\")\n .attr(\"width\", function () {\n return this.parentNode.getAttribute(\"width\");\n })\n .attr(\"height\", function () {\n return this.parentNode.getAttribute(\"height\");\n })\n .attr(\"stroke-width\", \"2px\")\n .on(\"dblclick\", dblclick);\n\n var MINIMUM_NODE_WIDTH = 68.5625;\n var NODE_MARGIN = 3;\n var NODE_HEIGHT = 22;\n\n var renderNodeLabels = function () {\n node.selectAll(\".nodeText\").remove();\n var text = node.append(\"text\")\n .attr(\"dy\", NODE_HEIGHT)\n .attr(\"text-anchor\", \"middle\")\n .attr(\"class\", \"nodeText\")\n .style(\"font-size\", \"18px\")\n .style(\"stroke-width\", \"0\")\n .style(\"fill\", \"black\")\n .text(function (d) {\n return d.name;\n })\n .attr(\"dx\", function (d) {\n var textWidth = this.getBBox().width;\n d.textWidth = textWidth < MINIMUM_NODE_WIDTH ? MINIMUM_NODE_WIDTH : textWidth;\n return d.textWidth / 2 + NODE_MARGIN;\n })\n .on(\"dblclick\", nodeTextDblclick)\n\n // this function triggers the gene page\n .on(\"contextmenu\", function (gene) {\n const tempLink = $(\"<a></a>\")\n .attr({\n href: \"info?\" + $.param({\n symbol: gene.name,\n species: _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].species,\n taxon: _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].taxon}),\n target: \"_blank\"\n });\n $(\"body\").append(tempLink);\n tempLink.get(0).click();\n tempLink.remove();\n d3.event.preventDefault();\n });\n\n rect\n .attr(\"width\", function (d) {\n return NODE_MARGIN + d.textWidth + NODE_MARGIN;\n });\n node\n .attr(\"width\", function (d) {\n return NODE_MARGIN + d.textWidth + NODE_MARGIN;\n });\n };\n renderNodeLabels();\n\n function onlyUnique (value, index, self) {\n return self.indexOf(value) === index;\n }\n\n var getExpressionData = function (gene, strain, average) {\n var strainData = _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].network[\"expression\"][strain];\n if (average) {\n var uniqueTimePoints = strainData.time_points.filter(onlyUnique);\n var avgMap = {};\n uniqueTimePoints.forEach(function (key) {\n avgMap[key] = [];\n });\n strainData.time_points.forEach(function (time, index) {\n avgMap[time].push(strainData.data[gene][index]);\n });\n var avgs = [];\n Object.keys(avgMap).forEach(function (key) {\n var length = avgMap[key].length;\n var sum = avgMap[key].reduce(function (partialSum, currentValue) {\n return partialSum + currentValue;\n }, 0);\n avgs.push(sum / length);\n });\n return {data: avgs, timePoints: uniqueTimePoints};\n }\n return {data: strainData.data[gene], timePoints: strainData.time_points};\n };\n\n var colorNodes = function (position, dataset, average, logFoldChangeMaxValue) {\n var timePoints = [];\n node.each(function (p) {\n d3.select(this)\n .append(\"g\")\n .selectAll(\".coloring\")\n .data(function () {\n var result = getExpressionData(p.name, dataset, average);\n timePoints = result.timePoints;\n return result.data;\n })\n .attr(\"class\", \"coloring\")\n .enter().append(\"rect\")\n .attr(\"width\", function () {\n var width = rect.attr(\"width\") / timePoints.length;\n return width + \"px\";\n })\n .attr(\"class\", \"coloring\")\n .attr(\"height\", rect.attr(\"height\") / 2 + \"px\")\n .attr(\"transform\", function (d, i) {\n var yOffset = position === \"top\" ? 0 : rect.attr(\"height\") / 2;\n var xOffset = i * (rect.attr(\"width\") / timePoints.length);\n return \"translate(\" + xOffset + \",\" + yOffset + \")\";\n })\n .attr(\"stroke-width\", \"0px\")\n .style(\"fill\", function (d) {\n d = d || 0; // missing values are changed to 0\n var scale = d3.scaleLinear()\n .domain([-logFoldChangeMaxValue, logFoldChangeMaxValue])\n .range([0, 1]);\n return d3.interpolateRdBu(scale(-d));\n })\n .text(function (d) {\n return \"data \" + JSON.stringify(d) + \" of \" + p.name;\n });\n });\n };\n\n var renderNodeColoringLegend = function (logFoldChangeMaxValue) {\n var $nodeColoringLegend = $(\".node-coloring-legend\");\n d3.select($nodeColoringLegend[0]).selectAll(\"svg\").remove();\n var xMargin = 10;\n var yMargin = 30;\n var width = 200;\n var height = 10;\n var textYOffset = 10;\n var increment = 0.1;\n\n var svg = d3.select($nodeColoringLegend[0])\n .append(\"svg\")\n .attr(\"width\", width + xMargin * 2)\n .attr(\"height\", height + yMargin)\n .append(\"g\")\n .attr(\"transform\", \"translate(\" + xMargin / 2 + \",\" + yMargin / 2 + \")\");\n\n var gradientValues = d3.range(-logFoldChangeMaxValue, logFoldChangeMaxValue, increment);\n\n var coloring = svg.selectAll(\".node-coloring-legend\")\n .data(gradientValues)\n .attr(\"class\", \"node-coloring-legend\");\n\n coloring.enter().append(\"rect\")\n .attr(\"width\", width / gradientValues.length + \"px\")\n .attr(\"height\", height + \"px\")\n .attr(\"transform\", function (d, i) {\n return \"translate(\" + (i * (width / gradientValues.length)) + \",\" + 0 + \")\";\n })\n .style(\"fill\", function (d) {\n var scale = d3.scaleLinear()\n .domain([-logFoldChangeMaxValue, logFoldChangeMaxValue])\n .range([0, 1]);\n\n // We negate d because we actually want red to be on the right.\n return d3.interpolateRdBu(scale(-d));\n });\n\n var legendLabels = {\n \"left\": {\n \"textContent\": (-logFoldChangeMaxValue).toFixed(2),\n \"x\": -xMargin / 2\n },\n \"center\": {\n \"textContent\": \"0\",\n \"x\": width / 2\n },\n \"right\": {\n \"textContent\": (logFoldChangeMaxValue).toFixed(2),\n \"x\": width - xMargin / 2\n },\n };\n var g = document.querySelector(\"body > div.sidebar > div.node-coloring > div > svg > g\");\n for (var key in legendLabels) {\n var label = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n label.textContent = legendLabels[key].textContent;\n label.setAttribute(\"font-size\", \"8px\");\n label.setAttribute(\"x\", legendLabels[key].x);\n label.setAttribute(\"y\", height + textYOffset + \"px\");\n g.appendChild(label);\n }\n };\n\n updaters.removeNodeColoring = function () {\n _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].nodeColoring.nodeColoringEnabled = false;\n node.selectAll(\".coloring\").remove();\n };\n\n updaters.renderNodeColoring = function () {\n if (_grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].nodeColoring.nodeColoringEnabled) {\n colorNodes(\"top\", _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].nodeColoring.topDataset, _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].nodeColoring.averageTopDataset,\n _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].nodeColoring.logFoldChangeMaxValue);\n colorNodes(\"bottom\", _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].nodeColoring.bottomDataset, _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].nodeColoring.averageBottomDataset,\n _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].nodeColoring.logFoldChangeMaxValue);\n renderNodeLabels();\n renderNodeColoringLegend(_grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].nodeColoring.logFoldChangeMaxValue);\n }\n };\n\n const hasExpressionData = sheets => {\n for (var property in sheets) {\n if (property.match(_constants__WEBPACK_IMPORTED_MODULE_3__[\"ENDS_IN_EXPRESSION_REGEXP\"])) {\n return true;\n }\n }\n return false;\n };\n\n if (!$.isEmptyObject(network.expression) && hasExpressionData(network.expression) &&\n _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].nodeColoring.topDataset !== undefined) {\n updaters.renderNodeColoring();\n }\n\n $(\".node\").css({\n \"cursor\": \"move\",\n \"fill\": \"white\",\n \"stroke\": \"#000\",\n \"stroke-width\": \"1.5px\"\n });\n\n $(\".link\").css({\n \"stroke\": \"#000\",\n \"fill\": \"none\",\n \"stroke-dasharray\": \"0\",\n \"stroke-width\": \"1.5px\"\n });\n\n var currentWeightVisibilitySetting = null;\n\n if (network.sheetType === \"weighted\") {\n if ($(\".weightedGraphOptions\").hasClass(\"hidden\")) {\n $(\".weightedGraphOptions\").removeClass(\"hidden\");\n }\n $(\".weightedGraphOptionsMenu\").removeClass(\"disabled\");\n var setWeightsVisability = function () {\n\n var WEIGHTS_SHOW_MOUSE_OVER_CLASS = \".weightsMouseOver\";\n var WEIGHTS_HIDE_CLASS = \".weightsNever\";\n var WEIGHTS_SHOW_ALWAYS_CLASS = \".weightsAlways\";\n\n var WEIGHT_VISIBILITY_SETTINGS = [\n WEIGHTS_SHOW_MOUSE_OVER_CLASS,\n WEIGHTS_HIDE_CLASS,\n WEIGHTS_SHOW_ALWAYS_CLASS\n ];\n\n var latestWeightVisibilitySetting = WEIGHT_VISIBILITY_SETTINGS.filter(function (setting) {\n return $(setting).hasClass(\"selected\");\n })[0];\n\n if (currentWeightVisibilitySetting === latestWeightVisibilitySetting) {\n return;\n }\n\n currentWeightVisibilitySetting = latestWeightVisibilitySetting;\n var showWeight = function (d) {\n var mouse = d3.mouse(this);\n d.weightElement\n .attr(\"x\", mouse[0])\n .attr(\"y\", mouse[1])\n .classed(\"visible\", true);\n };\n\n var hideWeight = function (d) {\n d.weightElement\n .attr(\"x\", null)\n .attr(\"y\", null)\n .classed(\"visible\", false);\n };\n\n if (currentWeightVisibilitySetting === WEIGHTS_SHOW_MOUSE_OVER_CLASS) {\n link.selectAll(\".weight\")\n .classed(\"visible\", false);\n\n link.on(\"mouseover\", showWeight).on(\"mouseout\", hideWeight);\n weight.on(\"mouseover\", showWeight).on(\"mouseout\", hideWeight);\n\n } else if (currentWeightVisibilitySetting === WEIGHTS_HIDE_CLASS) {\n link.selectAll(\".weight\")\n .classed(\"visible\", false);\n\n link.on(\"mouseover\", null).on(\"mouseout\", null);\n weight.on(\"mouseover\", null).on(\"mouseout\", null);\n\n } else if (currentWeightVisibilitySetting === WEIGHTS_SHOW_ALWAYS_CLASS) {\n link.selectAll(\".weight\")\n .classed(\"visible\", true);\n\n link.on(\"mouseover\", null).on(\"mouseout\", null);\n weight.on(\"mouseover\", null).on(\"mouseout\", null);\n }\n };\n\n setInterval(setWeightsVisability, 100);\n } else {\n if (!$(\".weightedGraphOptions\").hasClass(\"hidden\")) {\n $(\".weightedGraphOptions\").addClass(\"hidden\");\n }\n $(\".weightedGraphOptionsMenu\").addClass(\"disabled\");\n }\n\n // resets graph options so when new graph is loaded, initial layout is always force graph\n\n const getMarginWidth = function (gridNodes, row) {\n const containerWidth = $container.width();\n let rightNode = gridNodes[row - 1];\n let nodeWidth = rightNode.textWidth + 6;\n let rightNodeX = rightNode.x + nodeWidth;\n const margin = (containerWidth - rightNodeX) / 2;\n return margin;\n };\n\n const getMarginHeight = function (gridNodes) {\n const containerHeight = $container.height();\n const len = gridNodes.length;\n const bottomNodeY = gridNodes[len - 1].y + nodeHeight;\n const margin = (containerHeight - bottomNodeY) / 2;\n return margin;\n };\n\n const sortNode = function (n1, n2) {\n let name1 = n1.__data__.name;\n let name2 = n2.__data__.name;\n if (name1 === name2) {\n return 0;\n }\n return name1 > name2 ? 1 : -1;\n };\n\n let nodeGroup = node._groups[0].sort(sortNode);\n updaters.setNodesToGrid = () => { // eslint-disable-line no-unused-vars\n const margin = 10;\n const grid = d3_v4_grid__WEBPACK_IMPORTED_MODULE_0___default()() // eslint-disable-line no-undef\n .data(network.genes)\n .bands(true)\n .padding([0.2, 0])\n .size([$container.width() - margin, $container.height() - margin]); // set size of container\n grid.layout();\n let gridNodes = grid.nodes();\n let gridNumRow = grid.cols();\n let marginWidth = getMarginWidth(gridNodes, gridNumRow);\n let marginHeight = getMarginHeight(gridNodes);\n for (var i in nodeGroup) {\n nodeGroup[i].__data__.fx = marginWidth + gridNodes[i].x;\n nodeGroup[i].__data__.fy = marginHeight + gridNodes[i].y;\n }\n };\n\n updaters.setNodesToForceGraph = () => { // eslint-disable-line no-unused-vars\n for (var i in nodeGroup) {\n nodeGroup[i].__data__.fx = null;\n nodeGroup[i].__data__.fy = null;\n }\n };\n\n // Tick only runs while the graph physics are still running.\n // (I.e. when the graph is completely relaxed, tick stops running.)\n function tick () {\n var getSelfReferringEdge = function (node) {\n return link.select(\"path\")[\"_groups\"][0].map(function (path) {\n return path.__data__;\n }).filter(function (pathData) {\n return pathData.source === node && pathData.source === pathData.target;\n })[0];\n };\n var getSelfReferringRadius = function (edge) {\n return edge ? 17 + (getEdgeThickness(edge) / 2) : 0;\n };\n var BOUNDARY_MARGIN = 5;\n var SELF_REFERRING_Y_OFFSET = 6;\n var MAX_WIDTH = 5000;\n var MAX_HEIGHT = 5000;\n var OFFSET_VALUE = 5;\n\n try {\n node.attr(\"x\", function (d) {\n var selfReferringEdge = getSelfReferringEdge(d);\n\n var selfReferringEdgeWidth = (selfReferringEdge ? getSelfReferringRadius(selfReferringEdge) +\n selfReferringEdge.strokeWidth + 2 : 0);\n var rightBoundary = width - d.textWidth - BOUNDARY_MARGIN - selfReferringEdgeWidth;\n var currentXPos = Math.max(BOUNDARY_MARGIN, Math.min(rightBoundary, d.x));\n if (adaptive && width < MAX_WIDTH &&\n (currentXPos === BOUNDARY_MARGIN || currentXPos === rightBoundary)) {\n if (!d3.select(this).classed(\"fixed\")) {\n width += OFFSET_VALUE;\n boundingBoxContainer.attr(\"width\", width);\n\n link\n .attr(\"x1\", function (d) {\n return d.source.x;\n })\n .attr(\"x2\", function (d) {\n return d.target.x;\n });\n\n node\n .attr(\"x\", function (d) {\n return d.x;\n });\n }\n }\n return d.x = currentXPos;\n }).attr(\"y\", function (d) {\n var selfReferringEdge = getSelfReferringEdge(d);\n var selfReferringEdgeHeight = (selfReferringEdge ? getSelfReferringRadius(selfReferringEdge) +\n selfReferringEdge.strokeWidth + SELF_REFERRING_Y_OFFSET + 0.5 : 0);\n var bottomBoundary = height - nodeHeight - BOUNDARY_MARGIN - selfReferringEdgeHeight;\n var currentYPos = Math.max(BOUNDARY_MARGIN, Math.min(bottomBoundary, d.y));\n if (adaptive && height < MAX_HEIGHT &&\n (currentYPos === BOUNDARY_MARGIN || currentYPos === bottomBoundary)) {\n if (!d3.select(this).classed(\"fixed\")) {\n height += OFFSET_VALUE;\n boundingBoxContainer.attr(\"height\", height);\n link\n .attr(\"y1\", function (d) {\n return d.source.y;\n })\n .attr(\"y2\", function (d) {\n return d.target.y;\n });\n\n node\n .attr(\"y\", function (d) {\n return d.y;\n });\n }\n }\n return d.y = currentYPos;\n }).attr(\"transform\", function (d) {\n return \"translate(\" + d.x + \",\" + d.y + \")\";\n });\n\n /* Allows for looping edges.\n * From http://stackoverflow.com/questions/16358905/d3-force-layout-graph-self-linking-node\n */\n\n link.selectAll(\"path\").attr(\"d\", function (d) {\n if (d.target === d.source) {\n var x1 = d.source.x;\n var y1 = d.source.y;\n var x2 = d.target.x;\n var y2 = d.target.y;\n var dx = x2 - x1;\n var dy = y2 - y1;\n var dr = Math.sqrt(dx * dx + dy * dy);\n\n // Defaults for normal edge.\n var drx = dr;\n var dry = dr;\n var xRotation = 0; // degrees\n var largeArc = 0; // 1 or 0\n var sweep = 1; // 1 or 0\n var offset = parseFloat(d.strokeWidth);\n\n // Edge adjustment values when long self-node edges get hidden behind the node.\n var DEFAULT_NODE_SHIFT = 1.033;\n var SHORT_NODE_LIMIT = 135;\n var ADDITIONAL_SHIFT = 0.07;\n var END_POINT_ADJUSTMENT = 1.2;\n\n\n // Self edge.\n if (x1 === x2 && y1 === y2) {\n // Move the position of the loop.\n x1 = d.source.x + (d.source.textWidth) * DEFAULT_NODE_SHIFT;\n y1 = d.source.y + (nodeHeight / 2) + SELF_REFERRING_Y_OFFSET;\n\n // Fiddle with this angle to get loop oriented.\n xRotation = 45;\n\n // Needs to be 1.\n largeArc = 1;\n\n // Change sweep to change orientation of loop.\n sweep = 1;\n\n drx = getSelfReferringRadius(d);\n dry = getSelfReferringRadius(d);\n\n // For whatever reason the arc collapses to a point if the beginning\n // and ending points of the arc are the same, so kludge it.\n if (d.source.textWidth > SHORT_NODE_LIMIT) {\n DEFAULT_NODE_SHIFT += ADDITIONAL_SHIFT;\n }\n x2 = d.source.x + d.source.textWidth / END_POINT_ADJUSTMENT * DEFAULT_NODE_SHIFT;\n y2 = d.source.y + nodeHeight;\n\n if (d.value < 0 && _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].colorOptimal) {\n offset = Math.max(10, parseFloat(d.strokeWidth));\n }\n }\n\n d.label = { x: x1, y: y1 + dry * 3 };\n\n return \"M\" + x1 + \",\" + y1 +\n \"A\" + drx + \",\" + dry + \" \" + xRotation + \",\" + largeArc + \",\" + sweep + \" \" +\n x2 + \",\" + (y2 + offset);\n } else {\n return moveTo(d) + lineTo(d);\n }\n });\n\n link.select(\"path.main\").attr(\"marker-end\", function (d) {\n var x1 = d.source.x;\n var y1 = d.source.y;\n var x2 = d.target.x;\n var y2 = d.target.y;\n var minimum = \"\";\n var selfRef = \"\";\n\n if (normalize(d) <= grayThreshold) {\n minimum = \"gray\";\n }\n\n if (x1 === x2 && y1 === y2) {\n selfRef = \"_SelfReferential\";\n }\n\n if (d.type === \"repressor\" && _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].colorOptimal) {\n if ((d.tanRatioMoveable > d.tanRatioFixed) || (d.target === d.source)) { // if horizontal repressor\n return \"url(#repressorHorizontal\" + selfRef + \"_StrokeWidth\" + d.strokeWidth + minimum + \")\";\n } else { // otherwise vertical repressor\n return \"url(#repressor\" + selfRef + \"_StrokeWidth\" + d.strokeWidth + minimum + \")\";\n }\n } else { // otherwise arrowhead\n return \"url(#arrowhead\" + selfRef + \"_StrokeWidth\" + d.strokeWidth + minimum + \")\";\n }\n });\n\n link.select(\"text\").attr(\"x\", function (d) {\n return d.label.x;\n }).attr(\"y\", function (d) {\n return d.label.y;\n });\n\n } catch (e) {\n console.log(e);\n console.warn(\"Detected invalid node. Moving on to next node.\");\n }\n }\n\n function normalize (d) {\n return Math.abs(d.value / maxWeight);\n }\n\n function dragstart (d) {\n if (!d3.event.active) {\n simulation.alphaTarget(0.3).restart();\n }\n d.fx = d.x;\n d.fy = d.y;\n }\n\n function dragged (d) {\n d.fx = d3.event.x;\n d.fy = d3.event.y;\n }\n\n _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].simulation = simulation;\n\n Object(_update_app__WEBPACK_IMPORTED_MODULE_2__[\"modifyChargeParameter\"])(_grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].chargeSlider.currentVal);\n Object(_update_app__WEBPACK_IMPORTED_MODULE_2__[\"modifyLinkDistanceParameter\"])(_grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].linkDistanceSlider.currentVal);\n\n $(\".startDisabled\").removeClass(\"disabled\");\n};\n\n\n//# sourceURL=webpack:///./web-client/public/js/graph.js?");
|
|
2271
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"updaters\", function() { return updaters; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"drawGraph\", function() { return drawGraph; });\n/* harmony import */ var d3_v4_grid__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-v4-grid */ \"./node_modules/d3-v4-grid/dist/d3-grid.js\");\n/* harmony import */ var d3_v4_grid__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(d3_v4_grid__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _grnstate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./grnstate */ \"./web-client/public/js/grnstate.js\");\n/* harmony import */ var _update_app__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./update-app */ \"./web-client/public/js/update-app.js\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants */ \"./web-client/public/js/constants.js\");\n\n\n\n\n\n/* globals d3 */\n/* eslint-disable no-use-before-define, func-style */\n/*\n By D3's nature, it can be a bit difficult to adhere to our given guidelines..\n This file needs to be organized a bit more before it can fully adhere to\n them.\n*/\n/* http://bl.ocks.org/mbostock/4062045 used as reference\n * As well as http://bl.ocks.org/mbostock/3750558\n * and http://bl.ocks.org/mbostock/950642\n * and http://bl.ocks.org/mbostock/1153292\n */\n\n/* eslint no-unused-vars: [2, {\"varsIgnorePattern\": \"text|getMappedValue|manualZoom\"}] */\n/* eslint-disable no-unused-vars */\n\n/**\n * Resize detection logic: to avoid \"listener leaks,\" this is set up a single time here, with an assignable\n * updateFunction being set when needed.\n */\nlet mutationCallback = null;\nconst resizeObserver = new MutationObserver((mutationsList, observer) => {\n if (typeof(mutationCallback) === \"function\") {\n mutationCallback(mutationsList, observer);\n }\n});\n\nvar updaters = {\n setNodesToGrid: () => {},\n setNodesToForceGraph: () => {},\n renderNodeColoring: () => {},\n removeNodeColoring: () => {},\n};\n\nvar drawGraph = function (workbook) {\n/* eslint-enable no-unused-vars */\n var $container = $(\".grnsight-container\");\n d3.selectAll(\"svg\").remove();\n\n $container.removeClass(CURSOR_CLASSES).addClass(\"cursorGrab\"); // allow graph dragging right away\n\n var width = $container.width();\n var height = $container.height();\n var nodeHeight = 30;\n var grayThreshold = +$(\"#grayThresholdInput\").val();\n\n var dashedLine = $(\"#dashedGrayLineButton\").prop(\"checked\");\n\n var CURSOR_CLASSES = \"cursorGrab cursorGrabbing\";\n\n $(\"#warningMessage\").html(workbook.warnings.length !== 0 ? \"Click here in order to view warnings.\" : \"\");\n\n var getNodeWidth = function (node) {\n return node.name.length * 12 + 5;\n };\n\n var adaptive = !$(\"input[name='viewport']\").prop(\"checked\");\n\n /**\n * The *_SCALE values represent the actual zoom values used to transform the graph.\n * The *_DISPLAY values represent the value that is shown in the user interface.\n *\n * Separating these values allows for flexible configuration of what the user sees vs. the actual scale factor\n * used in transformations. This \"distortion\" is done so that \"actual size\" or 100% can be shown as the midpoint\n * on the zoom slider, even if the numeric ranges to the left and right of the midpoint are asymmetric (as they\n * are here).\n */\n const createZoomScale = (domainMin, domainMax, rangeMin, rangeMax) => d3.scaleLinear()\n .domain([domainMin, domainMax])\n .range([rangeMin, rangeMax])\n .clamp(true);\n\n const MIN_DISPLAY = _constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_DISPLAY_MINIMUM_VALUE\"];\n const ADAPTIVE_MAX_DISPLAY = _constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_DISPLAY_MAXIMUM_VALUE\"];\n const MIN_SCALE = 0.25;\n const MIDDLE_SCALE = 1;\n\n const zoomScaleLeft = createZoomScale(MIN_DISPLAY, _constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_DISPLAY_MIDDLE\"], MIN_SCALE, MIDDLE_SCALE);\n const zoomScaleRight = createZoomScale(\n _constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_DISPLAY_MIDDLE\"], ADAPTIVE_MAX_DISPLAY, MIDDLE_SCALE, _constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_ADAPTIVE_MAX_SCALE\"]);\n\n // Create an array of all the network weights\n var allWeights = workbook.positiveWeights.concat(workbook.negativeWeights);\n // Assign the entire array weights of 1, if color edges turned off\n if (!_grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].colorOptimal) {\n for (var i = 0; i < allWeights.length; i++) {\n if ( allWeights[i] !== 0 ) {\n allWeights[i] = 1;\n }\n }\n } else {\n for (var j = 0; j < allWeights.length; j++ ) {\n allWeights[j] = Math.abs((allWeights[j]).toPrecision(4));\n }\n }\n\n const maxWeight = Math.max(Math.abs(d3.max(allWeights)), Math.abs(d3.min(allWeights)));\n\n // Get the largest magnitude weight and set that as the default normalization factor\n if (_grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].newWorkbook) {\n _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].normalizationMax = maxWeight;\n _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].resetNormalizationMax = maxWeight;\n }\n\n // Normalize all weights b/w 2-14\n var normMax = +$(\"#normalization-max\").val();\n var totalScale = d3.scaleLinear()\n .domain([0, normMax > 0 ? normMax : maxWeight])\n .range([2, 14])\n .clamp(true);\n\n var unweighted = false;\n\n // if unweighted, all weights are 2\n if (workbook.sheetType === \"unweighted\") {\n totalScale = d3.scaleQuantile()\n .domain([d3.extent(allWeights)])\n .range([\"2\"]);\n unweighted = true;\n $(\".normalization-form\").append(\"placeholder='unweighted'\");\n document.getElementById(\"edge-weight-normalization-factor-menu\").setAttribute(\"placeholder\", \"\");\n } else {\n document.getElementById(\"normalization-max\").setAttribute(\"placeholder\", maxWeight);\n document.getElementById(\"edge-weight-normalization-factor-menu\").setAttribute(\"placeholder\", maxWeight);\n }\n\n var getEdgeThickness = function (edge) {\n return Math.floor(totalScale(Math.abs(edge.value)));\n };\n\n var simulation = d3.forceSimulation()\n .force(\"link\", d3.forceLink())\n .force(\"charge\", d3.forceManyBody())\n .force(\"center\", d3.forceCenter(width / 2, height / 2));\n\n var drag = d3.drag()\n .on(\"start\", dragstart)\n .on(\"drag\", dragged)\n .on(\"end\", dragended);\n\n var dragended = function () {\n d3.event.stopPropagation();\n };\n\n var zoomDragPrevX = 0;\n var zoomDragPrevY = 0;\n var zoomDragStarted = function () {\n zoomDragPrevX = d3.event.x;\n zoomDragPrevY = d3.event.y;\n $container.removeClass(CURSOR_CLASSES).addClass(\"cursorGrabbing\");\n if (!adaptive) {\n $container.removeClass(CURSOR_CLASSES);\n }\n };\n\n var zoomDragged = function () {\n if (adaptive) {\n var scale = 1;\n if (zoomContainer.attr(\"transform\")) {\n var string = zoomContainer.attr(\"transform\");\n scale = 1 / +(string.match(/scale\\(([^\\)]+)\\)/)[1]);\n }\n zoom.translateBy(zoomContainer, scale * (d3.event.x - zoomDragPrevX), scale * (d3.event.y - zoomDragPrevY));\n zoomDragPrevX = d3.event.x;\n zoomDragPrevY = d3.event.y;\n }\n };\n\n var zoomDragEnded = function () {\n $container.removeClass(CURSOR_CLASSES).addClass(\"cursorGrab\");\n if (!adaptive) {\n $container.removeClass(CURSOR_CLASSES);\n }\n };\n\n var zoomDrag = d3.drag()\n .on(\"start\", zoomDragStarted)\n .on(\"drag\", zoomDragged)\n .on(\"end\", zoomDragEnded);\n\n var manualZoom = false;\n\n var svg = d3.select($container[0]).append(\"svg\")\n .attr(\"width\", width)\n .attr(\"height\", height)\n .attr(\"id\", \"exportContainer\");\n\n var zoomContainer = svg.append(\"g\") // required for zoom to work\n .attr(\"class\", \"boundingBox\")\n .attr(\"width\", width)\n .attr(\"height\", height);\n\n var boundingBoxContainer = zoomContainer.append(\"g\"); // appended another g here...\n\n var zoom = d3.zoom()\n .scaleExtent([MIN_SCALE, _constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_ADAPTIVE_MAX_SCALE\"]])\n .on(\"zoom\", zoomed);\n\n svg.style(\"pointer-events\", \"all\").call(zoomDrag)\n .style(\"font-family\", \"sans-serif\");\n\n\n function zoomed () {\n zoomContainer.attr(\"transform\", d3.event.transform);\n }\n\n d3.select(\"svg\").on(\"dblclick.zoom\", null); // disables double click zooming\n\n // This rectangle catches all of the mousewheel and pan events, without letting\n // them bubble up to the body.\n boundingBoxContainer.append(\"rect\")\n .attr(\"width\", width)\n .attr(\"height\", height)\n .style(\"fill\", \"none\")\n .style(\"pointer-events\", \"all\")\n .attr(\"stroke\", \"none\" )\n .append(\"g\");\n\n d3.selectAll(\".scrollBtn\").on(\"click\", null); // Remove event handlers, if there were any.\n var arrowMovement = [ \"Up\", \"Left\", \"Right\", \"Down\" ];\n arrowMovement.forEach(function (direction) {\n d3.select(\".scroll\" + direction).on(\"click\", function () {\n move(direction.toLowerCase());\n });\n });\n d3.select(\".center\").on(\"click\", center);\n\n const setGraphZoom = zoomScale => {\n if (zoomScale < MIDDLE_SCALE) {\n $container.removeClass(CURSOR_CLASSES).addClass(\"cursorGrab\");\n } else if (!adaptive && zoomScale >= MIDDLE_SCALE) {\n $container.removeClass(CURSOR_CLASSES);\n }\n var container = zoomContainer;\n zoom.scaleTo(container, zoomScale);\n };\n\n // See setupZoomElements below to see how these are initialized. They are declared here because\n // updateAppBasedOnZoomValue uses them (lexical positioning is chosen here for better context).\n let sliderMidpoint;\n let zoomScaleSliderLeft;\n let zoomScaleSliderRight;\n\n const updateAppBasedOnZoomValue = () => {\n\n if (!adaptive) {\n _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].zoomValue = 100.0;\n }\n\n const zoomDisplay = _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].zoomValue;\n setGraphZoom((zoomDisplay <= _constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_DISPLAY_MIDDLE\"] ? zoomScaleLeft : zoomScaleRight)(zoomDisplay));\n\n const finalDisplay = _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].zoomValue;\n $(_constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_PERCENT\"]).text(`${finalDisplay}%`);\n\n // Special handling for zoom input field: the user might be in the middle of typing a value that is\n // _temporarily_ out of range (e.g., \"1\" while typing \"100\") and we don’t want to overwrite that.\n // The special case can be detected if the input element currently has focus.\n if (document.activeElement !== document.querySelector(_constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_INPUT\"])) {\n $(_constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_INPUT\"]).val(finalDisplay);\n }\n\n $(_constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_SLIDER\"]).val((finalDisplay <= _constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_DISPLAY_MIDDLE\"] ? zoomScaleSliderLeft : zoomScaleSliderRight)\n .invert(finalDisplay));\n };\n\n /**\n * To eliminate coupling between how the zoom slider element is defined in markup and how zoom values are\n * calculated and displayed, we define this function to read the zoom slider for its minimum, maximum, and\n * midpoint. The slider’s minimum will be shown as MIN_DISPLAY, the slider’s maximum will be shown as\n * ADAPTIVE_MAX_DISPLAY, and the slider’s midpoint will be shown as ZOOM_DISPLAY_MIDDLE.\n *\n * Elements showing minimum and maximum display values are also updated here so that they are consistent\n * with these constants. This way, all zoom calculations are based on these constants, and changing these\n * constants should be all that is needed to adjust displayed and actual zoom values.\n */\n var setupZoomSlider = () => {\n const sliderMin = +$(_constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_SLIDER\"]).attr(\"min\");\n const sliderMax = +$(_constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_SLIDER\"]).attr(\"max\");\n sliderMidpoint = (sliderMin + sliderMax) / 2;\n\n zoomScaleSliderLeft = createZoomScale(sliderMin, sliderMidpoint, MIN_DISPLAY, _constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_DISPLAY_MIDDLE\"]);\n zoomScaleSliderRight = createZoomScale(sliderMidpoint, sliderMax, _constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_DISPLAY_MIDDLE\"], ADAPTIVE_MAX_DISPLAY);\n\n // Reset the zoom value to the midpoint whenever we load a new workbook.\n if (_grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].newWorkbook) {\n _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].zoomValue = _constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_DISPLAY_MIDDLE\"];\n }\n\n updateAppBasedOnZoomValue();\n };\n\n setupZoomSlider();\n\n var zoomInputValidator = function (value) {\n return Object(_update_app__WEBPACK_IMPORTED_MODULE_2__[\"valueValidator\"])(MIN_DISPLAY, ADAPTIVE_MAX_DISPLAY, value);\n };\n\n $(_constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_INPUT\"]).on(\"input\", () => {\n _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].zoomValue = zoomInputValidator(+$(_constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_INPUT\"]).val());\n updateAppBasedOnZoomValue();\n }).blur(() => $(_constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_INPUT\"]).val(_grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].zoomValue));\n\n d3.select(_constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_SLIDER\"]).on(\"input\", function () {\n const sliderValue = +$(this).val();\n _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].zoomValue = Math.floor(\n (sliderValue <= sliderMidpoint ? zoomScaleSliderLeft : zoomScaleSliderRight)(sliderValue)\n );\n updateAppBasedOnZoomValue();\n }).on(\"mousedown\", function () {\n manualZoom = true;\n }).on(\"mouseup\", function () {\n manualZoom = false;\n });\n\n if (!_grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].newWorkbook) {\n updateAppBasedOnZoomValue();\n }\n\n const adjustGraphSize = () => {\n var newWidth = $container.width();\n var newHeight = $container.height();\n\n if (adaptive) {\n width = (width < newWidth) ? newWidth : width;\n height = (height < newHeight) ? newHeight : height;\n } else {\n width = newWidth;\n height = newHeight;\n }\n\n // Subtract 1 from SVG height if we are fitting to window so as to prevent scrollbars from showing up\n // Is inconsistent, but I'm tired of fighting with it...\n d3.select(\"svg\").attr(\"width\", newWidth)\n .attr(\"height\", $(\".grnsight-container\").hasClass(_constants__WEBPACK_IMPORTED_MODULE_3__[\"VIEWPORT_FIT\"]) ? newHeight : newHeight);\n d3.select(\"rect\").attr(\"width\", width).attr(\"height\", height);\n d3.select(\".boundingBox\").attr(\"width\", width).attr(\"height\", height);\n };\n\n mutationCallback = adjustGraphSize;\n resizeObserver.disconnect();\n resizeObserver.observe($container.get(0), { attributes: true });\n\n var restrictGraphToViewport = function (fixed) {\n if (!fixed) {\n $(\"#restrict-graph-to-viewport span\").removeClass(\"glyphicon-ok\");\n $(document).ready(function () {\n $(\".scale-and-scroll\").show();\n });\n $(\"input[name=viewport]\").removeProp(\"checked\");\n $container.addClass(\"cursorGrabbing\");\n adaptive = true;\n d3.select(\"rect\").attr(\"stroke\", \"none\");\n center();\n } else if (fixed) {\n $(\"#restrict-graph-to-viewport span\").addClass(\"glyphicon-ok\");\n $(\"input[name=viewport]\").prop(\"checked\", \"checked\");\n $(document).ready(function () {\n $(\".scale-and-scroll\").hide();\n });\n adaptive = false;\n $container.removeClass(CURSOR_CLASSES);\n if (_grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].zoomValue > _constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_DISPLAY_MIDDLE\"]) {\n _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].zoomValue = _constants__WEBPACK_IMPORTED_MODULE_3__[\"ZOOM_DISPLAY_MIDDLE\"];\n updateAppBasedOnZoomValue();\n $container.removeClass(CURSOR_CLASSES);\n }\n width = $container.width();\n height = $container.height();\n d3.select(\"rect\").attr(\"stroke\", \"#9A9A9A\")\n .attr(\"width\", width)\n .attr(\"height\", height);\n $(\".boundingBox\").attr(\"width\", width).attr(\"height\", height);\n center();\n }\n updateAppBasedOnZoomValue(); // Update zoom value within bounds\n };\n\n d3.select(\"#restrict-graph-to-viewport\").on(\"click\", function () {\n var fixed = $(\"input[name=viewport]\").prop(\"checked\");\n restrictGraphToViewport(fixed);\n });\n\n d3.selectAll(\"input[name=viewport]\").on(\"change\", function () {\n var fixed = $(this).prop(\"checked\");\n restrictGraphToViewport(fixed);\n });\n\n function center () {\n var viewportWidth = $container.width();\n var viewportHeight = $container.height();\n zoom.translateTo(zoomContainer, viewportWidth / 2, viewportHeight / 2);\n }\n\n function move (direction) {\n var width = direction === \"left\" ? -50 : (direction === \"right\" ? 50 : 0);\n var height = direction === \"up\" ? -50 : (direction === \"down\" ? 50 : 0);\n zoom.translateBy(zoomContainer, width, height);\n }\n\n var defs = boundingBoxContainer.append(\"defs\");\n\n var link = boundingBoxContainer.selectAll(\".links\");\n var node = boundingBoxContainer.selectAll(\".nodes\");\n var weight = boundingBoxContainer.selectAll(\".weight\");\n\n simulation\n .nodes(workbook.genes)\n .on(\"tick\", tick);\n\n simulation.force(\"link\")\n .links(workbook.links);\n\n link = link.data(workbook.links)\n .enter().append(\"g\")\n .attr(\"class\", \"link\")\n .attr(\"strokeWidth\", getEdgeThickness);\n\n node = node.data(workbook.genes)\n .enter().append(\"g\")\n .attr(\"class\", \"node\")\n .attr(\"id\", function (d) {\n return \"node\" + d.index;\n })\n .attr(\"width\", getNodeWidth)\n .attr(\"height\", nodeHeight)\n .call(drag)\n .on(\"dblclick\", dblclick);\n\n if (workbook.sheetType === \"weighted\") {\n link.append(\"path\")\n .attr(\"class\", \"mousezone\")\n .style(\"stroke-width\", function (d) {\n var baseThickness = getEdgeThickness(d);\n return Math.max(baseThickness, 7);\n })\n .attr(\"stroke-opacity\", \"0\");\n }\n\n link.append(\"path\")\n .attr(\"class\", \"main\")\n .attr(\"id\", function (d) {\n return \"path\" + d.source.index + \"_\" + d.target.index;\n }).style(\"stroke-width\", function (d) {\n d.strokeWidth = _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].colorOptimal ? getEdgeThickness(d) : 2;\n return d.strokeWidth;\n }).style(\"stroke-dasharray\", function (d) {\n if (unweighted || !_grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].colorOptimal) {\n return \"0\";\n } else if (normalize(d) <= grayThreshold && dashedLine === true) {\n return \"6, 9\";\n } else {\n return \"0\";\n }\n }).style(\"stroke\", function (d) {\n if (unweighted || !_grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].colorOptimal) {\n return \"black\";\n } else if (normalize(d) <= grayThreshold) {\n return \"gray\";\n } else {\n return d.stroke;\n }\n }).attr(\"marker-end\", function (d) {\n var x1 = d.source.x;\n var y1 = d.source.y;\n var x2 = d.target.x;\n var y2 = d.target.y;\n var minimum = \"\";\n var selfRef = \"\";\n var yOffsets;\n var xOffsets;\n var color;\n\n if (normalize(d) <= grayThreshold) {\n minimum = \"gray\";\n }\n if ( x1 === x2 && y1 === y2 ) {\n selfRef = \"_SelfReferential\";\n }\n // If the same ID is created twice (usually happens in the unweighted GRNS),\n // it causes unpredictable behavior in the markers.\n // To prevent this, first we check to make sure the ID about to be created doesn't exist.\n if ( $(\"#\" + d.type + selfRef + \"_StrokeWidth\" + d.strokeWidth + minimum).length !== 0 ) {\n return \"url(#\" + d.type + selfRef + \"_StrokeWidth\" + d.strokeWidth + minimum + \")\";\n } else {\n\n // If negative, you need one bar for horizontal and one for vertical.\n // If the user is not coloring the weighted\n // sheets, then we make all of the markers arrowheads.\n if (d.value < 0 && _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].colorOptimal) {\n defs.append(\"marker\")\n .attr(\"id\", \"repressor\" + selfRef + \"_StrokeWidth\" + d.strokeWidth + minimum)\n .attr(\"refX\", function () {\n xOffsets = {\n 2 : 1, 3 : 2, 4 : 2, 5 : 2, 6 : 2.5, 7 : 3, 8 : 3.5,\n 9 : 4, 10 : 4.5, 11 : 5, 12 : 5, 13 : 5.5, 14 : 6\n };\n return xOffsets[d.strokeWidth];\n })\n .attr(\"refY\", function () {\n yOffsets = {\n 2 : 13, 3 : 13, 4 : 13.5, 5 : 14, 6 : 15.5, 7 : 17, 8 : 17,\n 9 : 17, 10 : 17, 11 : 17, 12 : 18.5, 13 : 18, 14 : 19.25\n };\n return yOffsets[d.strokeWidth];\n })\n .attr(\"markerUnits\", \"userSpaceOnUse\")\n .attr(\"markerWidth\", function () {\n return d.strokeWidth;\n })\n .attr(\"markerHeight\", function () {\n return 25 + d.strokeWidth;\n })\n .attr(\"orient\", 180)\n .append(\"rect\")\n .attr(\"width\", function () {\n return d.strokeWidth;\n })\n .attr(\"height\", function () {\n return 25 + d.strokeWidth;\n })\n .attr(\"rx\", 10)\n .attr(\"ry\", 10)\n .attr(\"style\", function () {\n if ( normalize(d) <= grayThreshold) {\n color = \"gray\";\n } else {\n color = d.stroke;\n }\n return \"stroke:\" + color + \"; fill: \" + color + \"; stroke-width: 0\";\n });\n\n defs.append(\"marker\")\n .attr(\"id\", \"repressorHorizontal\" + selfRef + \"_StrokeWidth\" + d.strokeWidth + minimum)\n .attr(\"refX\", function () {\n if (x1 === x2 && y1 === y2) { // if self referential...\n xOffsets = {\n 2 : 14, 3 : 15, 4 : 15, 5 : 15, 6 : 16, 7 : 16.5, 8 : 16.5,\n 9 : 17, 10 : 17.5, 11 : 18, 12 : 19, 13 : 19.5, 14 : 20.5\n };\n } else {\n xOffsets = {\n 2 : 13, 3 : 13, 4 : 13.5, 5 : 14, 6 : 15.5, 7 : 16.5, 8 : 17,\n 9 : 16, 10 : 17, 11 : 17, 12 : 18, 13 : 18, 14 : 19\n };\n }\n return xOffsets[d.strokeWidth];\n })\n .attr(\"refY\", function () {\n yOffsets = {\n 2 : 1, 3 : 2, 4 : 2, 5 : 2, 6 : 2.5, 7 : 3, 8 : 3.5,\n 9 : 4, 10 : 4.5, 11 : 5, 12 : 5, 13 : 5.5, 14 : 6\n };\n return yOffsets[d.strokeWidth];\n })\n .attr(\"markerUnits\", \"userSpaceOnUse\")\n .attr(\"markerWidth\", function () {\n return 25 + d.strokeWidth;\n })\n .attr(\"markerHeight\", function () {\n return d.strokeWidth;\n })\n .attr(\"orient\", 180)\n .append(\"rect\")\n .attr(\"width\", function () {\n return 25 + d.strokeWidth;\n })\n .attr(\"height\", function () {\n return d.strokeWidth;\n })\n .attr(\"rx\", 10)\n .attr(\"ry\", 10)\n .attr(\"style\", function () {\n if (normalize(d) <= grayThreshold) {\n color = \"gray\";\n } else {\n color = d.stroke;\n }\n return \"stroke:\" + color + \"; fill: \" + color + \"; stroke-width: 0\";\n });\n } else {\n // Arrowheads\n if (d.strokeWidth === 2) {\n d.strokeWidth = 4;\n }\n defs.append(\"marker\")\n .attr(\"id\", \"arrowhead\" + selfRef + \"_StrokeWidth\" + d.strokeWidth + minimum)\n .attr(\"viewBox\", \"0 0 15 15\")\n .attr(\"preserveAspectRatio\", \"xMinYMin meet\")\n .attr(\"refX\", function () {\n // Individual offsets for each possible stroke width\n return ((x1 === x2 && y1 === y2) ?\n {\n 2: 2, 3: 10.5, 4: 11, 5: 9, 6: 9, 7: 10,\n 8: 9.8, 9: 9.1, 10: 10, 11: 9.5, 12: 9, 13: 8.3,\n 14: 8.3\n } : {\n 2: 11.75, 3: 11, 4: 9.75, 5: 9.25, 6: 8.5, 7: 10,\n 8: 9.75, 9: 9.5, 10: 9, 11: 9.5, 12: 9.5, 13: 9.25,\n 14: 9\n }\n )[d.strokeWidth];\n })\n .attr(\"refY\", function () {\n return ((x1 === x2 && y1 === y2) ?\n {\n 2: 6.7, 3: 5.45, 4: 5.3, 5: 5.5, 6: 5, 7: 5.4,\n 8: 5.65, 9: 6, 10: 5.7, 11: 5.5, 12: 5.9, 13: 6,\n 14: 6\n } : {\n 2: 5, 3: 5, 4: 4.8, 5: 5, 6: 5, 7: 4.98,\n 8: 4.9, 9: 5.2, 10: 4.85, 11: 4.7, 12: 5.15,\n 13: 5, 14: 5.3\n }\n )[d.strokeWidth];\n })\n .attr(\"markerUnits\", \"userSpaceOnUse\")\n .attr(\"markerWidth\", function () {\n return 12 + ((d.strokeWidth < 7) ? d.strokeWidth * 2.25 : d.strokeWidth * 3);\n })\n .attr(\"markerHeight\", function () {\n return 5 + ((d.strokeWidth < 7) ? d.strokeWidth * 2.25 : d.strokeWidth * 3);\n })\n .attr(\"orient\", function () {\n return (x1 === x2 && y1 === y2) ?\n {\n 2: 270, 3: 270, 4: 268, 5: 264, 6: 268, 7: 252,\n 8: 248, 9: 243, 10: 240, 11: 240, 12: 235, 13: 233,\n 14: 232\n }[d.strokeWidth] : \"auto\";\n })\n .append(\"path\")\n .attr(\"d\", \"M 0 0 L 14 5 L 0 10 Q 6 5 0 0\")\n .attr(\"style\", function () {\n if (unweighted || !_grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].colorOptimal) {\n color = \"black\";\n } else if ( normalize(d) <= grayThreshold) {\n color = \"gray\";\n } else {\n color = d.stroke;\n }\n return \"stroke: \" + color + \"; fill: \" + color;\n });\n }\n }\n return \"url(#\" + d.type + selfRef + \"_StrokeWidth\" + d.strokeWidth + minimum + \")\";\n });\n\n if (workbook.sheetType === \"weighted\") {\n link.append(\"text\")\n .attr(\"class\", \"weight\")\n .attr(\"text-anchor\", \"middle\")\n .attr(\"text-anchor\", \"middle\")\n .attr(\"fill\", \"rgb(0,0,0)\")\n .style(\"font-family\", \"sans-serif\")\n .text(function (d) {\n return d.value.toPrecision(4);\n });\n\n weight = weight.data(workbook.links)\n .enter().append(\"text\")\n .attr(\"class\", \"weight\")\n .attr(\"text-anchor\", \"middle\")\n .attr(\"fill\", \"rgb(0,0,0)\")\n .style(\"font-family\", \"sans-serif\")\n .text(function (d) {\n return d.value.toPrecision(4);\n })\n .each(function (d) {\n d.weightElement = d3.select(this);\n });\n\n }\n\n /* Big thanks to the following for the smart edges\n * https://github.com/cdc-leeds/PolicyCommons/blob/b0dea2a4171989123cbee377a6ae260b8612138e\n /visualize/conn-net-svg.js#L119\n */\n var moveTo = function (d) {\n var node = d3.select(\"#node\" + d.source.index);\n var w = parseFloat(node.attr(\"width\"));\n var h = parseFloat(node.attr(\"height\"));\n\n d.source.newX = d.source.x + (w / 2);\n d.source.newY = d.source.y + (h / 2);\n\n return \"M\" + d.source.newX + \",\" + d.source.newY + \" \";\n };\n\n var CURVE_THRESHOLD = 200;\n var EDGE_OFFSET = 20;\n var lineTo = function (d) {\n var node = d3.select(\"#node\" + d.target.index);\n var w = +node.attr(\"width\");\n var h = +node.attr(\"height\");\n var x1 = d.source.x;\n var y1 = d.source.y;\n var x2 = d.target.x;\n var y2 = d.target.y;\n\n d.target.centerX = d.target.x + (w / 2);\n d.target.centerY = d.target.y + (h / 2);\n\n // This function calculates the newX and newY.\n smartPathEnd(d, w, h);\n x1 = d.source.newX;\n y1 = d.source.newY;\n x2 = d.target.newX;\n y2 = d.target.newY;\n\n // Unit vectors.\n var ux = x2 - x1;\n var uy = y2 - y1;\n var umagnitude = Math.sqrt(ux * ux + uy * uy);\n var vx = -uy; // Perpendicular vector.\n var vy = ux;\n var vmagnitude = Math.sqrt(vx * vx + vy * vy);\n\n ux /= umagnitude;\n uy /= umagnitude;\n vx /= vmagnitude;\n vy /= vmagnitude;\n\n // Check for vector direction.\n if (((d.target.newX > d.source.x) && (d.target.newY > d.source.y)) ||\n ((d.target.newX < d.source.x) && (d.target.newY < d.source.y))) {\n vx = -vx; vy = -vy;\n }\n\n var curveToStraight = (umagnitude - CURVE_THRESHOLD) / 4;\n var inlineOffset = Math.max(umagnitude / 4, curveToStraight);\n var orthoOffset = Math.max(0, curveToStraight);\n var cp1x = x1 + inlineOffset * ux + vx * orthoOffset;\n var cp1y = y1 + inlineOffset * uy + vy * orthoOffset;\n var cp2x = x2 - inlineOffset * ux + vx * orthoOffset;\n var cp2y = y2 - inlineOffset * uy + vy * orthoOffset;\n\n cp1x = Math.min(Math.max(0, cp1x), width);\n cp1y = Math.min(Math.max(0, cp1y), height);\n cp2x = Math.min(Math.max(0, cp2x), width);\n cp2y = Math.min(Math.max(0, cp2y), height);\n\n d.label = {\n x: Math.min(Math.max((x1 + cp1x + cp2x + x2) / 4, EDGE_OFFSET), width - 2 * EDGE_OFFSET),\n y: Math.min(Math.max((y1 + cp1y + cp2y + y2) / 4, EDGE_OFFSET), height - EDGE_OFFSET)\n };\n\n return \"C\" + cp1x + \" \" + cp1y + \", \" +\n cp2x + \" \" + cp2y + \", \" +\n x2 + \" \" + y2;\n };\n\n function smartPathEnd (d, w, h) {\n // For arrowheads when target node is to the left of source node\n var LEFT_ADJUSTMENT = 7;\n var MINIMUM_DISTANCE = 8;\n var NODE_HALF_HEIGHT = 30 / 2;\n\n var targetStartX = d.target.centerX + d.target.textWidth / 2;\n var currentPointX = (targetStartX - d.target.centerX) / (d.source.newX - d.target.centerX);\n var currentPointY = (1 - currentPointX) * d.target.centerY + currentPointX * d.source.newY;\n var upperBound = d.target.centerY + NODE_HALF_HEIGHT;\n var lowerBound = d.target.centerY - NODE_HALF_HEIGHT;\n if (currentPointX > 0 && currentPointY >= lowerBound && currentPointY <= upperBound) {\n MINIMUM_DISTANCE = d.strokeWidth > 11 ? 16.5 : 15;\n }\n\n // Set an offset if the edge is a repressor to make room for the flat arrowhead\n var globalOffset = parseFloat(d.strokeWidth);\n\n if (d.value < 0 && _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].colorOptimal) {\n globalOffset = Math.max(globalOffset, MINIMUM_DISTANCE);\n }\n\n var thicknessAdjustment = globalOffset > MINIMUM_DISTANCE ? 1 : 0;\n\n // We need to work out the (tan of the) angle between the\n // imaginary horizontal line running through the center of the\n // target node and the imaginary line connecting the center of\n // the target node with the top-left corner of the same\n // node. Of course, this angle is fixed.\n d.tanRatioFixed = (d.target.centerY - d.target.y) / (d.target.centerX - d.target.x);\n\n // We also need to work out the (tan of the) angle between the\n // imaginary horizontal line running through the center of the\n // target node and the imaginary line connecting the center of\n // the target node with the center of the source node. This\n // angle changes as the nodes move around the screen.\n d.tanRatioMoveable = Math.abs(d.target.centerY - d.source.newY) / Math.abs(d.target.centerX - d.source.newX);\n // Note, JavaScript handles division-by-zero by returning\n // Infinity, which in this case is useful, especially\n // since it handles the subsequent Infinity arithmetic\n // correctly.\n\n // Now work out the intersection point\n if (d.tanRatioMoveable === d.tanRatioFixed) {\n // Then path is intersecting at corner of textbox so draw\n // path to that point\n\n // By default assume path intersects a left-side corner\n d.target.newX = d.target.x - globalOffset;\n\n // But...\n if (d.target.centerX < d.source.newX) {\n // i.e. if target node is to left of the source node\n // then path intersects a right-side corner\n d.target.newX = d.target.x + w + globalOffset;\n }\n\n // By default assume path intersects a top corner\n d.target.newY = d.target.y - globalOffset;\n\n // But...\n if (d.target.centerY < d.source.newY) {\n // i.e. if target node is above the source node\n // then path intersects a bottom corner\n d.target.newY = d.target.y + h + globalOffset;\n }\n }\n\n if (d.tanRatioMoveable < d.tanRatioFixed) {\n // Then path is intersecting on a vertical side of the\n // textbox, which means we know the x-coordinate of the\n // path endpoint but we need to work out the y-coordinate\n\n // By default assume path intersects left vertical side\n d.target.newX = d.target.x - globalOffset;\n\n // But...\n if (d.target.centerX < d.source.newX) {\n // i.e. if target node is to left of the source node\n // then path intersects right vertical side\n if (d.type !== \"arrowhead\") {\n d.target.newX = d.target.x + w + globalOffset + 0.25 * d.strokeWidth - thicknessAdjustment;\n } else {\n d.target.newX = d.target.x + w + globalOffset + LEFT_ADJUSTMENT;\n }\n }\n\n // Now use a bit of trigonometry to work out the y-coord.\n\n // By default assume path intersects towards top of node\n d.target.newY = d.target.centerY - ((d.target.centerX - d.target.x) * d.tanRatioMoveable);\n\n // But...\n if (d.target.centerY < d.source.newY) {\n // i.e. if target node is above the source node\n // then path intersects towards bottom of the node\n d.target.newY = (2 * d.target.y) - d.target.newY + h;\n }\n }\n\n if (d.tanRatioMoveable > d.tanRatioFixed) {\n // Then path is intersecting on a horizontal side of the\n // textbox, which means we know the y-coordinate of the\n // path endpoint but we need to work out the x-coordinate\n\n // By default assume path intersects top horizontal side\n d.target.newY = d.target.y - globalOffset;\n\n // But...\n if (d.target.centerY < d.source.newY) {\n // i.e. if target node is above the source node\n // then path intersects bottom horizontal side\n if (d.type !== \"arrowhead\") {\n d.target.newY = d.target.y + h + globalOffset + 0.25 * d.strokeWidth - thicknessAdjustment;\n } else {\n d.target.newY = d.target.y + h + globalOffset;\n }\n }\n\n // Now use a bit of trigonometry to work out the x-coord.\n\n // By default assume path intersects towards lefthand side\n d.target.newX = d.target.centerX - ((d.target.centerY - d.target.y) / d.tanRatioMoveable);\n\n // But...\n if (d.target.centerX < d.source.newX) {\n // i.e. if target node is to left of the source node\n // then path intersects towards the righthand side\n d.target.newX = (2 * d.target.x) - d.target.newX + w;\n }\n }\n }\n\n var dblclick = function (d) {\n d.fx = null;\n d.fy = null;\n };\n\n var nodeTextDblclick = function (d) {\n // Relay the double-click to our parent.\n dblclick.call(this.parentNode, d);\n };\n\n var rect = node.append(\"rect\")\n .attr(\"width\", function () {\n return this.parentNode.getAttribute(\"width\");\n })\n .attr(\"height\", function () {\n return this.parentNode.getAttribute(\"height\");\n })\n .attr(\"stroke-width\", \"2px\")\n .on(\"dblclick\", dblclick);\n\n var MINIMUM_NODE_WIDTH = 68.5625;\n var NODE_MARGIN = 3;\n var NODE_HEIGHT = 22;\n\n var renderNodeLabels = function () {\n node.selectAll(\".nodeText\").remove();\n var text = node.append(\"text\")\n .attr(\"dy\", NODE_HEIGHT)\n .attr(\"class\", \"nodeText\")\n .attr(\"fill\", \"rgb(0, 0, 0)\")\n .style(\"text-anchor\", \"middle\")\n .style(\"font-size\", \"18px\")\n .style(\"stroke-width\", \"0\")\n .style(\"font-family\", \"sans-serif\")\n .text(function (d) {\n return d.name;\n })\n .attr(\"dx\", function (d) {\n var textWidth = this.getBBox().width;\n d.textWidth = textWidth < MINIMUM_NODE_WIDTH ? MINIMUM_NODE_WIDTH : textWidth;\n return d.textWidth / 2 + NODE_MARGIN;\n })\n .on(\"dblclick\", nodeTextDblclick)\n\n // this function triggers the gene page\n .on(\"contextmenu\", function (gene) {\n const tempLink = $(\"<a></a>\")\n .attr({\n href: \"info?\" + $.param({\n symbol: gene.name,\n species: _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].genePageData.species,\n jaspar: _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].genePageData.taxonJaspar,\n uniprot: _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].genePageData.taxonUniprot,\n ensembl: _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].genePageData.ensembl,\n mine: _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].genePageData.mine\n }),\n target: \"_blank\"\n });\n $(\"body\").append(tempLink);\n tempLink.get(0).click();\n tempLink.remove();\n d3.event.preventDefault();\n });\n\n rect\n .attr(\"width\", function (d) {\n return NODE_MARGIN + d.textWidth + NODE_MARGIN;\n });\n node\n .attr(\"width\", function (d) {\n return NODE_MARGIN + d.textWidth + NODE_MARGIN;\n });\n };\n renderNodeLabels();\n\n function onlyUnique (value, index, self) {\n return self.indexOf(value) === index;\n }\n\n const getExpressionData = (gene, strain, average) => {\n const strainData = _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].workbook.expression[strain];\n if (average) {\n const uniqueTimePoints = strainData.timePoints.filter(onlyUnique);\n let avgMap = {};\n uniqueTimePoints.forEach(function (key) {\n avgMap[key] = [];\n });\n strainData.timePoints.forEach(function (time, index) {\n avgMap[time].push(strainData.data[gene][index]);\n });\n let avgs = [];\n Object.keys(avgMap).forEach(function (key) {\n const length = avgMap[key].length;\n const sum = avgMap[key].reduce(function (partialSum, currentValue) {\n return partialSum + currentValue;\n }, 0);\n avgs.push(sum / length);\n });\n return {data: avgs, timePoints: uniqueTimePoints};\n }\n return {data: strainData.data[gene], timePoints: strainData.timePoints};\n };\n\n var colorNodes = function (position, dataset, average, logFoldChangeMaxValue) {\n var timePoints = [];\n node.each(function (p) {\n d3.select(this)\n .append(\"g\")\n .selectAll(\".coloring\")\n .data(function () {\n if (_grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].workbook.expression[dataset].data[p.name]) {\n const result = getExpressionData(p.name, dataset, average);\n timePoints = result.timePoints;\n return result.data;\n } else {\n return 0;\n }\n })\n .attr(\"class\", \"coloring\")\n .enter().append(\"rect\")\n .attr(\"width\", function () {\n var width = (p.textWidth + (2 * NODE_MARGIN)) / timePoints.length;\n return width + \"px\";\n })\n .attr(\"class\", \"coloring\")\n .attr(\"height\", rect.attr(\"height\") / 2 + \"px\")\n .attr(\"transform\", function (d, i) {\n var yOffset = position === \"top\" ? 0 : rect.attr(\"height\") / 2;\n var xOffset = i * ((p.textWidth + (2 * NODE_MARGIN)) / timePoints.length);\n return \"translate(\" + xOffset + \",\" + yOffset + \")\";\n })\n .attr(\"stroke-width\", \"0px\")\n .style(\"fill\", function (d) {\n d = d || 0; // missing values are changed to 0\n var scale = d3.scaleLinear()\n .domain([-logFoldChangeMaxValue, logFoldChangeMaxValue])\n .range([0, 1]);\n return d3.interpolateRdBu(scale(-d));\n })\n .text(function (d) {\n return \"data \" + JSON.stringify(d) + \" of \" + p.name;\n });\n });\n };\n\n var renderNodeColoringLegend = function (logFoldChangeMaxValue) {\n var $nodeColoringLegend = $(\".node-coloring-legend\");\n d3.select($nodeColoringLegend[0]).selectAll(\"svg\").remove();\n var yMargin = 20;\n var width = 203;\n var height = 10;\n var textYOffset = 10;\n\n var svg = d3.select($nodeColoringLegend[0])\n .append(\"svg\")\n .attr(\"width\", \"100%\")\n .attr(\"height\", height + yMargin)\n .append(\"g\")\n .attr(\"transform\", \"translate(0, 5)\")\n .attr(\"id\", \"nodeColoringLegendId\");\n\n // Thank you https://www.visualcinnamon.com/2016/05/smooth-color-legend-d3-svg-gradient.html\n const linearGradientId = \"node-coloring-color-scale\";\n var defs = svg.append(\"defs\");\n var linearGradient = defs.append(\"linearGradient\")\n .attr(\"id\", linearGradientId)\n .attr(\"x1\", \"0%\")\n .attr(\"y1\", \"0%\")\n .attr(\"x2\", \"100%\")\n .attr(\"y2\", \"0%\");\n\n const increment = Math.abs(logFoldChangeMaxValue) / 50; // Guarantee 50 steps regardless of the range.\n var gradientValues = d3.range(-logFoldChangeMaxValue, logFoldChangeMaxValue, increment);\n var scale = d3.scaleLinear()\n .domain([-logFoldChangeMaxValue, logFoldChangeMaxValue])\n .range([0, 1]);\n\n linearGradient.selectAll(\"stop\")\n .data(gradientValues)\n .enter().append(\"stop\")\n .attr(\"offset\", function (d, i) {\n return i / (gradientValues.length - 1);\n })\n .attr(\"stop-color\", function (d) {\n return d3.interpolateRdBu(scale(-d));\n });\n\n svg.append(\"rect\")\n .attr(\"width\", `${width}px`)\n .attr(\"height\", `${height}px`)\n .style(\"fill\", `url(#${linearGradientId})`);\n\n var legendLabels = {\n left: {\n textAnchor: \"start\",\n textContent: (-logFoldChangeMaxValue).toFixed(2),\n x: 0\n },\n center: {\n textAnchor: \"middle\",\n textContent: \"0\",\n x: width / 2\n },\n right: {\n textAnchor: \"end\",\n textContent: (logFoldChangeMaxValue).toFixed(2),\n x: width\n }\n };\n /* eslint-disable max-len */\n var g = document.getElementById(\"nodeColoringLegendId\");\n /* eslint-enable max-len */\n\n for (var key in legendLabels) {\n var label = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n label.textContent = legendLabels[key].textContent;\n label.setAttribute(\"font-size\", \"8px\");\n label.setAttribute(\"text-anchor\", legendLabels[key].textAnchor);\n label.setAttribute(\"x\", legendLabels[key].x);\n label.setAttribute(\"y\", height + textYOffset + \"px\");\n label.setAttribute(\"fill\", \"rgb(0,0,0)\");\n\n g.appendChild(label);\n }\n\n };\n\n updaters.removeNodeColoring = function () {\n _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].nodeColoring.nodeColoringEnabled = false;\n node.selectAll(\".coloring\").remove();\n };\n\n updaters.renderNodeColoring = function () {\n if (_grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].nodeColoring.nodeColoringEnabled) {\n colorNodes(\"top\", _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].nodeColoring.topDataset, _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].nodeColoring.averageTopDataset,\n _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].nodeColoring.logFoldChangeMaxValue);\n colorNodes(\"bottom\", _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].nodeColoring.bottomDataset, _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].nodeColoring.averageBottomDataset,\n _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].nodeColoring.logFoldChangeMaxValue);\n renderNodeLabels();\n renderNodeColoringLegend(_grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].nodeColoring.logFoldChangeMaxValue);\n }\n };\n\n const hasExpressionData = sheets => {\n for (var property in sheets) {\n if (property.match(_constants__WEBPACK_IMPORTED_MODULE_3__[\"ENDS_IN_EXPRESSION_REGEXP\"])) {\n return true;\n }\n }\n return false;\n };\n\n if (!$.isEmptyObject(workbook.expression) && hasExpressionData(workbook.expression) &&\n _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].nodeColoring.topDataset !== undefined) {\n updaters.renderNodeColoring();\n }\n\n $(\".node\").css({\n \"cursor\": \"move\",\n \"fill\": \"white\",\n \"stroke\": \"#000\",\n \"stroke-width\": \"1.5px\"\n });\n\n $(\".link\").css({\n \"stroke\": \"#000\",\n \"fill\": \"none\",\n \"stroke-dasharray\": \"0\",\n \"stroke-width\": \"1.5px\"\n });\n\n var currentWeightVisibilitySetting = null;\n\n if (workbook.sheetType === \"weighted\") {\n if ($(\".weightedGraphOptions\").hasClass(\"hidden\")) {\n $(\".weightedGraphOptions\").removeClass(\"hidden\");\n }\n $(\".weightedGraphOptionsMenu\").removeClass(\"disabled\");\n var setWeightsVisability = function () {\n\n var WEIGHTS_SHOW_MOUSE_OVER_CLASS = \".weightsMouseOver\";\n var WEIGHTS_HIDE_CLASS = \".weightsNever\";\n var WEIGHTS_SHOW_ALWAYS_CLASS = \".weightsAlways\";\n\n var WEIGHT_VISIBILITY_SETTINGS = [\n WEIGHTS_SHOW_MOUSE_OVER_CLASS,\n WEIGHTS_HIDE_CLASS,\n WEIGHTS_SHOW_ALWAYS_CLASS\n ];\n\n var latestWeightVisibilitySetting = WEIGHT_VISIBILITY_SETTINGS.filter(function (setting) {\n return $(setting).hasClass(\"selected\");\n })[0];\n\n if (currentWeightVisibilitySetting === latestWeightVisibilitySetting) {\n return;\n }\n\n currentWeightVisibilitySetting = latestWeightVisibilitySetting;\n var showWeight = function (d) {\n var mouse = d3.mouse(this);\n d.weightElement\n .attr(\"x\", mouse[0])\n .attr(\"y\", mouse[1])\n .classed(\"visible\", true);\n };\n\n var hideWeight = function (d) {\n d.weightElement\n .attr(\"x\", null)\n .attr(\"y\", null)\n .classed(\"visible\", false);\n };\n\n if (currentWeightVisibilitySetting === WEIGHTS_SHOW_MOUSE_OVER_CLASS) {\n link.selectAll(\".weight\")\n .classed(\"visible\", false);\n\n link.on(\"mouseover\", showWeight).on(\"mouseout\", hideWeight);\n weight.on(\"mouseover\", showWeight).on(\"mouseout\", hideWeight);\n\n } else if (currentWeightVisibilitySetting === WEIGHTS_HIDE_CLASS) {\n link.selectAll(\".weight\")\n .classed(\"visible\", false);\n\n link.on(\"mouseover\", null).on(\"mouseout\", null);\n weight.on(\"mouseover\", null).on(\"mouseout\", null);\n\n } else if (currentWeightVisibilitySetting === WEIGHTS_SHOW_ALWAYS_CLASS) {\n link.selectAll(\".weight\")\n .classed(\"visible\", true);\n\n link.on(\"mouseover\", null).on(\"mouseout\", null);\n weight.on(\"mouseover\", null).on(\"mouseout\", null);\n }\n };\n\n setInterval(setWeightsVisability, 100);\n } else {\n if (!$(\".weightedGraphOptions\").hasClass(\"hidden\")) {\n $(\".weightedGraphOptions\").addClass(\"hidden\");\n }\n $(\".weightedGraphOptionsMenu\").addClass(\"disabled\");\n }\n\n // resets graph options so when new graph is loaded, initial layout is always force graph\n\n const getMarginWidth = function (gridNodes, row) {\n const containerWidth = $container.width();\n let rightNode = gridNodes[row - 1];\n let nodeWidth = rightNode.textWidth + 6;\n let rightNodeX = rightNode.x + nodeWidth;\n const margin = (containerWidth - rightNodeX) / 2;\n return margin;\n };\n\n const getMarginHeight = function (gridNodes) {\n const containerHeight = $container.height();\n const len = gridNodes.length;\n const bottomNodeY = gridNodes[len - 1].y + nodeHeight;\n const margin = (containerHeight - bottomNodeY) / 2;\n return margin;\n };\n\n const sortNode = function (n1, n2) {\n let name1 = n1.__data__.name;\n let name2 = n2.__data__.name;\n if (name1 === name2) {\n return 0;\n }\n return name1 > name2 ? 1 : -1;\n };\n\n let nodeGroup = node._groups[0].sort(sortNode);\n updaters.setNodesToGrid = () => { // eslint-disable-line no-unused-vars\n const margin = 10;\n const grid = d3_v4_grid__WEBPACK_IMPORTED_MODULE_0___default()() // eslint-disable-line no-undef\n .data(workbook.genes)\n .bands(true)\n .padding([0.2, 0])\n .size([$container.width() - margin, $container.height() - margin]); // set size of container\n grid.layout();\n let gridNodes = grid.nodes();\n let gridNumRow = grid.cols();\n let marginWidth = getMarginWidth(gridNodes, gridNumRow);\n let marginHeight = getMarginHeight(gridNodes);\n for (var i in nodeGroup) {\n nodeGroup[i].__data__.fx = marginWidth + gridNodes[i].x;\n nodeGroup[i].__data__.fy = marginHeight + gridNodes[i].y;\n }\n };\n\n updaters.setNodesToForceGraph = () => { // eslint-disable-line no-unused-vars\n for (var i in nodeGroup) {\n nodeGroup[i].__data__.fx = null;\n nodeGroup[i].__data__.fy = null;\n }\n };\n\n // Tick only runs while the graph physics are still running.\n // (I.e. when the graph is completely relaxed, tick stops running.)\n function tick () {\n var getSelfReferringEdge = function (node) {\n return link.select(\"path\")[\"_groups\"][0].map(function (path) {\n return path.__data__;\n }).filter(function (pathData) {\n return pathData.source === node && pathData.source === pathData.target;\n })[0];\n };\n var getSelfReferringRadius = function (edge) {\n return edge ? 17 + (getEdgeThickness(edge) / 2) : 0;\n };\n var BOUNDARY_MARGIN = 5;\n var SELF_REFERRING_Y_OFFSET = 6;\n var MAX_WIDTH = 5000;\n var MAX_HEIGHT = 5000;\n var OFFSET_VALUE = 5;\n\n try {\n node.attr(\"x\", function (d) {\n var selfReferringEdge = getSelfReferringEdge(d);\n\n var selfReferringEdgeWidth = (selfReferringEdge ? getSelfReferringRadius(selfReferringEdge) +\n selfReferringEdge.strokeWidth + 2 : 0);\n var rightBoundary = width - (d.textWidth + OFFSET_VALUE) - BOUNDARY_MARGIN - selfReferringEdgeWidth;\n var currentXPos = Math.max(BOUNDARY_MARGIN, Math.min(rightBoundary, d.x));\n if (adaptive && width < MAX_WIDTH &&\n (currentXPos === BOUNDARY_MARGIN || currentXPos === rightBoundary)) {\n if (!d3.select(this).classed(\"fixed\")) {\n width += OFFSET_VALUE;\n boundingBoxContainer.attr(\"width\", width);\n\n link\n .attr(\"x1\", function (d) {\n return d.source.x;\n })\n .attr(\"x2\", function (d) {\n return d.target.x;\n });\n\n node\n .attr(\"x\", function (d) {\n return d.x;\n });\n }\n }\n return d.x = currentXPos;\n }).attr(\"y\", function (d) {\n var selfReferringEdge = getSelfReferringEdge(d);\n var selfReferringEdgeHeight = (selfReferringEdge ? getSelfReferringRadius(selfReferringEdge) +\n selfReferringEdge.strokeWidth + SELF_REFERRING_Y_OFFSET + 0.5 : 0);\n var bottomBoundary = height - nodeHeight - BOUNDARY_MARGIN - selfReferringEdgeHeight;\n var currentYPos = Math.max(BOUNDARY_MARGIN, Math.min(bottomBoundary, d.y));\n if (adaptive && height < MAX_HEIGHT &&\n (currentYPos === BOUNDARY_MARGIN || currentYPos === bottomBoundary)) {\n if (!d3.select(this).classed(\"fixed\")) {\n height += OFFSET_VALUE;\n boundingBoxContainer.attr(\"height\", height);\n link\n .attr(\"y1\", function (d) {\n return d.source.y;\n })\n .attr(\"y2\", function (d) {\n return d.target.y;\n });\n\n node\n .attr(\"y\", function (d) {\n return d.y;\n });\n }\n }\n return d.y = currentYPos;\n }).attr(\"transform\", function (d) {\n return \"translate(\" + d.x + \",\" + d.y + \")\";\n });\n\n /* Allows for looping edges.\n * From http://stackoverflow.com/questions/16358905/d3-force-layout-graph-self-linking-node\n */\n\n link.selectAll(\"path\").attr(\"d\", function (d) {\n if (d.target === d.source) {\n var x1 = d.source.x;\n var y1 = d.source.y;\n var x2 = d.target.x;\n var y2 = d.target.y;\n var dx = x2 - x1;\n var dy = y2 - y1;\n var dr = Math.sqrt(dx * dx + dy * dy);\n\n // Defaults for normal edge.\n var drx = dr;\n var dry = dr;\n var xRotation = 0; // degrees\n var largeArc = 0; // 1 or 0\n var sweep = 1; // 1 or 0\n var offset = parseFloat(d.strokeWidth);\n\n // Edge adjustment values when long self-node edges get hidden behind the node.\n var DEFAULT_NODE_SHIFT = 1.033;\n var SHORT_NODE_LIMIT = 135;\n var ADDITIONAL_SHIFT = 0.07;\n var END_POINT_ADJUSTMENT = 1.2;\n\n\n // Self edge.\n if (x1 === x2 && y1 === y2) {\n // Move the position of the loop.\n x1 = d.source.x + (d.source.textWidth) * DEFAULT_NODE_SHIFT;\n y1 = d.source.y + (nodeHeight / 2) + SELF_REFERRING_Y_OFFSET;\n\n // Fiddle with this angle to get loop oriented.\n // (Future: This doesn't appear to change anything?)\n xRotation = 45;\n\n // Needs to be 1.\n largeArc = 1;\n\n // Change sweep to change orientation of loop.\n sweep = 1;\n\n drx = getSelfReferringRadius(d);\n dry = getSelfReferringRadius(d);\n\n // For whatever reason the arc collapses to a point if the beginning\n // and ending points of the arc are the same, so kludge it.\n if (d.source.textWidth > SHORT_NODE_LIMIT) {\n DEFAULT_NODE_SHIFT += ADDITIONAL_SHIFT;\n }\n x2 = d.source.x + d.source.textWidth / END_POINT_ADJUSTMENT * DEFAULT_NODE_SHIFT;\n y2 = d.source.y + nodeHeight;\n\n if (d.value < 0 && _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].colorOptimal) {\n offset = Math.max(10, parseFloat(d.strokeWidth));\n }\n }\n\n d.label = { x: Math.min(width - (13 * offset), x1), // For 4 decimal places\n y: Math.min(height - offset, y1 + dry * 3)};\n\n return \"M\" + x1 + \",\" + y1 +\n \"A\" + drx + \",\" + dry + \" \" + xRotation + \",\" + largeArc + \",\" + sweep + \" \" +\n x2 + \",\" + (y2 + offset);\n } else {\n return moveTo(d) + lineTo(d);\n }\n });\n\n link.select(\"path.main\").attr(\"marker-end\", function (d) {\n var x1 = d.source.x;\n var y1 = d.source.y;\n var x2 = d.target.x;\n var y2 = d.target.y;\n var minimum = \"\";\n var selfRef = \"\";\n\n if (normalize(d) <= grayThreshold) {\n minimum = \"gray\";\n }\n\n if (x1 === x2 && y1 === y2) {\n selfRef = \"_SelfReferential\";\n }\n\n if (d.type === \"repressor\" && _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].colorOptimal) {\n if ((d.tanRatioMoveable > d.tanRatioFixed) || (d.target === d.source)) { // if horizontal repressor\n return \"url(#repressorHorizontal\" + selfRef + \"_StrokeWidth\" + d.strokeWidth + minimum + \")\";\n } else { // otherwise vertical repressor\n return \"url(#repressor\" + selfRef + \"_StrokeWidth\" + d.strokeWidth + minimum + \")\";\n }\n } else { // otherwise arrowhead\n return \"url(#arrowhead\" + selfRef + \"_StrokeWidth\" + d.strokeWidth + minimum + \")\";\n }\n });\n\n link.select(\"text\").attr(\"x\", function (d) {\n return d.label.x;\n }).attr(\"y\", function (d) {\n return d.label.y;\n });\n\n } catch (e) {\n console.log(e);\n console.warn(\"Detected invalid node. Moving on to next node.\");\n }\n }\n\n function normalize (d) {\n return Math.abs(d.value / maxWeight).toPrecision(4);\n }\n\n function dragstart (d) {\n if (!d3.event.active) {\n simulation.alphaTarget(0.3).restart();\n }\n d.fx = d.x;\n d.fy = d.y;\n }\n\n function dragged (d) {\n d.fx = d3.event.x;\n d.fy = d3.event.y;\n }\n\n _grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].simulation = simulation;\n\n // The restrict graph state is sometimes carried over across reloads\n restrictGraphToViewport( $(\"input[name=viewport]\").prop(\"checked\"));\n\n Object(_update_app__WEBPACK_IMPORTED_MODULE_2__[\"modifyChargeParameter\"])(_grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].chargeSlider.currentVal);\n Object(_update_app__WEBPACK_IMPORTED_MODULE_2__[\"modifyLinkDistanceParameter\"])(_grnstate__WEBPACK_IMPORTED_MODULE_1__[\"grnState\"].linkDistanceSlider.currentVal);\n\n $(\".startDisabled\").removeClass(\"disabled\");\n};\n\n\n//# sourceURL=webpack:///./web-client/public/js/graph.js?");
|
|
2203
2272
|
|
|
2204
2273
|
/***/ }),
|
|
2205
2274
|
|
|
@@ -2211,7 +2280,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
2211
2280
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2212
2281
|
|
|
2213
2282
|
"use strict";
|
|
2214
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var
|
|
2283
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _graph_statistics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./graph-statistics */ \"./web-client/public/js/graph-statistics.js\");\n/* harmony import */ var _graph_statistics__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_graph_statistics__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _upload__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./upload */ \"./web-client/public/js/upload.js\");\n/* harmony import */ var _createNetwork__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createNetwork */ \"./web-client/public/js/createNetwork.js\");\n/* harmony import */ var _grnstate__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./grnstate */ \"./web-client/public/js/grnstate.js\");\n/* harmony import */ var _update_app__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./update-app */ \"./web-client/public/js/update-app.js\");\n/* harmony import */ var _setup_handlers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./setup-handlers */ \"./web-client/public/js/setup-handlers.js\");\n // eslint-disable-line no-unused-vars\n\n\n\n\n\n\n\nObject(_setup_handlers__WEBPACK_IMPORTED_MODULE_5__[\"setupHandlers\"])(_grnstate__WEBPACK_IMPORTED_MODULE_3__[\"grnState\"]);\nObject(_update_app__WEBPACK_IMPORTED_MODULE_4__[\"updateApp\"])(_grnstate__WEBPACK_IMPORTED_MODULE_3__[\"grnState\"]);\n\nObject(_upload__WEBPACK_IMPORTED_MODULE_1__[\"upload\"])();\nObject(_createNetwork__WEBPACK_IMPORTED_MODULE_2__[\"createNetwork\"])();\n\n\n//# sourceURL=webpack:///./web-client/public/js/grnsight.js?");
|
|
2215
2284
|
|
|
2216
2285
|
/***/ }),
|
|
2217
2286
|
|
|
@@ -2223,7 +2292,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _con
|
|
|
2223
2292
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2224
2293
|
|
|
2225
2294
|
"use strict";
|
|
2226
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"grnState\", function() { return grnState; });\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ \"./web-client/public/js/constants.js\");\n\n\nlet
|
|
2295
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"grnState\", function() { return grnState; });\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ \"./web-client/public/js/constants.js\");\n\n\nlet currentWorkbook = null;\n\nconst annotateLinks = workbook => {\n // TODO This duplicates logic that is done on the server side for an .xlsx spreadsheet.\n // Think of a way to consolidate it. Having discovered this, it seems like this should\n // be done on the client side because it rearranges data redundantly, for ease of display.\n workbook.positiveWeights = [];\n workbook.negativeWeights = [];\n\n workbook.links.forEach(link => {\n if (workbook.sheetType === \"unweighted\" && !link.value) {\n link.value = 1;\n }\n\n if (link.value > 0) {\n link.type = \"arrowhead\";\n // link.stroke = \"MediumVioletRed\"; // GRNsight v1 magenta edge color\n link.stroke = \"rgb(195, 61, 61)\"; // Node coloring-consistent red edge color\n workbook.positiveWeights.push(link.value);\n } else {\n link.type = \"repressor\";\n // link.stroke = \"DarkTurquoise\"; // GRNsight v1 cyan edge color\n link.stroke = \"rgb(51, 124, 183)\"; // Node coloring-consistent blue edge color\n workbook.negativeWeights.push(link.value);\n }\n });\n};\n\nconst grnState = {\n name: null,\n simulation: undefined,\n newWorkbook: false,\n\n get workbook () {\n return currentWorkbook;\n },\n\n set workbook (workbook) {\n // console.dir(workbook);\n currentWorkbook = workbook;\n // TODO: add colorOptimal so that the rest of the normalization code can get added\n this.resetNormalizationMax = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"max\"])(workbook.positiveWeights.concat(workbook.negativeWeights));\n this.newWorkbook = true;\n },\n\n// Edge Display Parameters\n normalizationMax: null,\n resetNormalizationMax: null,\n edgeWeightDisplayOption: _constants__WEBPACK_IMPORTED_MODULE_1__[\"SHOW_WEIGHTS_MOUSEOVER\"],\n colorOptimal: true,\n grayEdgeThreshold: 5,\n dashedLine: false,\n\n annotateLinks: () => annotateLinks(currentWorkbook),\n\n// Zoom Parameter\n zoomValue: _constants__WEBPACK_IMPORTED_MODULE_1__[\"DEFAULT_ZOOM_VALUE\"],\n\n// Node Coloring\n nodeColoring: {\n showMenu: false,\n nodeColoringEnabled: undefined,\n logFoldChangeMaxValue: _constants__WEBPACK_IMPORTED_MODULE_1__[\"DEFAULT_MAX_LOG_FOLD_CHANGE\"],\n logFoldChangeUpdateTriggered: false,\n averageTopDataset: true,\n averageBottomDataset: true,\n topDataset: undefined,\n bottomDataset: undefined,\n lastDataset: null,\n bottomDataSameAsTop: true,\n nodeColoringOptions: [],\n },\n\n\n// Gene Page data\n// left defaulting to yeast for tests, until a better solution is found\n// Setting base case to yeast\n genePageData: {\n commonName: \"Yeast\",\n species: \"Saccharomyces_cerevisiae\",\n taxonUniprot: \"559292\",\n taxonJaspar: \"4932\",\n identified: false,\n ensembl: \"reg\",\n mine: \"yeast\"\n },\n\n nameToTaxon: {\n // Treating like a dictionary with keys being the english name\n // and values being a dictionary of (latin name, Uniprot, Jaspar)\n // some taxon ids are different between the two\n // changed spec names for common english and will have them formatted before calling an api\n \"Arabidopsis thaliana\": { spec: \"Arabidopsis_thaliana\", jaspar: 3702, uniprot: 3702,\n ensembl: \"plant\", mine: \"thale\"},\n \"Caenorhabditis elegans\": { spec: \"Caenorhabditis_elegans\", jaspar: 6293, uniprot: 6293,\n ensembl: \"reg\", mine: \"worm\"},\n \"Drosophila melanogaster\": { spec: \"Drosophila_melanogaster\", jaspar: 7227, uniprot: 7227,\n ensembl: \"reg\", mine: \"fly\"},\n \"Homo sapiens\": { spec: \"Homo_sapiens\", jaspar: 9606, uniprot: 9606, ensembl: \"reg\",\n mine: \"fly\"},\n \"Mus musculus\": { spec: \"Mus_musculus\", jaspar: 10090, uniprot: 10090, ensembl: \"reg\",\n mine: \"mouse\"},\n \"Saccharomyces cerevisiae\": { spec: \"Saccharomyces_cerevisiae\", jaspar: 4932, uniprot: 559292,\n ensembl: \"reg\", mine: \"yeast\"}\n },\n\n// Slider Parameters\n slidersLocked: false,\n showUndoReset: false,\n linkDistanceSlider: {\n sliderId: _constants__WEBPACK_IMPORTED_MODULE_1__[\"LINK_DIST_SLIDER_SIDEBAR\"],\n valueId: _constants__WEBPACK_IMPORTED_MODULE_1__[\"LINK_DIST_VALUE\"],\n defaultVal: _constants__WEBPACK_IMPORTED_MODULE_1__[\"LINK_DIST_DEFAULT_VALUE\"],\n currentVal: _constants__WEBPACK_IMPORTED_MODULE_1__[\"LINK_DIST_DEFAULT_VALUE\"],\n backup: _constants__WEBPACK_IMPORTED_MODULE_1__[\"LINK_DIST_DEFAULT_VALUE\"],\n needsAppendedZeros: false,\n forceChanged: false,\n },\n chargeSlider: {\n sliderId: _constants__WEBPACK_IMPORTED_MODULE_1__[\"CHARGE_SLIDER_SIDEBAR\"],\n valueId: _constants__WEBPACK_IMPORTED_MODULE_1__[\"CHARGE_VALUE\"],\n defaultVal: _constants__WEBPACK_IMPORTED_MODULE_1__[\"CHARGE_DEFAULT_VALUE\"],\n currentVal: _constants__WEBPACK_IMPORTED_MODULE_1__[\"CHARGE_DEFAULT_VALUE\"],\n backup: _constants__WEBPACK_IMPORTED_MODULE_1__[\"CHARGE_DEFAULT_VALUE\"],\n needsAppendedZeros: false,\n forceChanged: false,\n },\n\n// Graph Layout Parameter\n graphLayout: _constants__WEBPACK_IMPORTED_MODULE_1__[\"FORCE_GRAPH\"],\n\n// Viewport Size Parameter\n viewportSize: _constants__WEBPACK_IMPORTED_MODULE_1__[\"VIEWPORT_INIT\"],\n};\n\n\n//# sourceURL=webpack:///./web-client/public/js/grnstate.js?");
|
|
2227
2296
|
|
|
2228
2297
|
/***/ }),
|
|
2229
2298
|
|
|
@@ -2235,7 +2304,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
2235
2304
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2236
2305
|
|
|
2237
2306
|
"use strict";
|
|
2238
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupHandlers\", function() { return setupHandlers; });\n/* harmony import */ var _update_app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./update-app */ \"./web-client/public/js/update-app.js\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ \"./web-client/public/js/constants.js\");\n/* harmony import */ var _setup_load_and_import_handlers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./setup-load-and-import-handlers */ \"./web-client/public/js/setup-load-and-import-handlers.js\");\n\n\n\n\n\n\nconst setupHandlers = grnState => {\n Object(_setup_load_and_import_handlers__WEBPACK_IMPORTED_MODULE_2__[\"setupLoadAndImportHandlers\"])(grnState);\n\n var valueValidator = (min, max, value) => {\n return Math.min(max, Math.max(min, value));\n };\n\n // Grid buttons\n const setGraphLayout = layout => {\n grnState.graphLayout = layout;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n };\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"GRID_LAYOUT_BUTTON\"]).click(() => setGraphLayout(grnState.graphLayout === _constants__WEBPACK_IMPORTED_MODULE_1__[\"FORCE_GRAPH\"] ? _constants__WEBPACK_IMPORTED_MODULE_1__[\"GRID_LAYOUT\"] : _constants__WEBPACK_IMPORTED_MODULE_1__[\"FORCE_GRAPH\"]));\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"FORCE_GRAPH_CLASS\"]).click(() => setGraphLayout(_constants__WEBPACK_IMPORTED_MODULE_1__[\"FORCE_GRAPH\"]));\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"GRID_LAYOUT_CLASS\"]).click(() => setGraphLayout(_constants__WEBPACK_IMPORTED_MODULE_1__[\"GRID_LAYOUT\"]));\n\n// Node Coloring\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"NODE_COLORING_TOGGLE_CLASS\"]).click(() => {\n grnState.nodeColoring.nodeColoringEnabled = !grnState.nodeColoring.nodeColoringEnabled;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"TOP_DATASET_SELECTION_SIDEBAR\"]).change(() => {\n var selection = $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"TOP_DATASET_SELECTION_SIDEBAR\"]).find(\":selected\").attr(\"value\");\n grnState.nodeColoring.topDataset = selection;\n if (grnState.nodeColoring.bottomDataSameAsTop) {\n grnState.nodeColoring.bottomDataset = selection;\n }\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"TOP_DATASET_SELECTION_MENU\"]).click(() => {\n var selection = $(undefined).attr(\"value\");\n grnState.nodeColoring.topDataset = selection;\n if (grnState.nodeColoring.bottomDataSameAsTop) {\n grnState.nodeColoring.bottomDataset = selection;\n }\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"AVG_REPLICATE_VALS_TOP_SIDEBAR\"]).change(() => {\n grnState.nodeColoring.averageTopDataset = !grnState.nodeColoring.averageTopDataset;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"AVG_REPLICATE_VALS_TOP_MENU\"]).click(() => {\n grnState.nodeColoring.averageTopDataset = !grnState.nodeColoring.averageTopDataset;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"BOTTOM_DATASET_SELECTION_SIDEBAR\"]).change(() => {\n var selection = $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"BOTTOM_DATASET_SELECTION_SIDEBAR\"]).find(\":selected\").attr(\"value\");\n grnState.nodeColoring.bottomDataset = selection;\n if (grnState.nodeColoring.bottomDataset === \"Same as Top Dataset\") {\n grnState.nodeColoring.bottomDataset = grnState.nodeColoring.topDataset;\n grnState.nodeColoring.bottomDataSameAsTop = true;\n } else {\n grnState.nodeColoring.bottomDataSameAsTop = false;\n }\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"BOTTOM_DATASET_SELECTION_MENU\"]).click(() => {\n var selection = $(undefined).attr(\"value\");\n grnState.nodeColoring.bottomDataset = selection;\n if (selection === \"Same as Top Dataset\") {\n grnState.nodeColoring.bottomDataset = grnState.nodeColoring.topDataset;\n grnState.nodeColoring.bottomDataSameAsTop = true;\n } else {\n grnState.nodeColoring.bottomDataSameAsTop = false;\n grnState.nodeColoring.bottomDataset = selection;\n }\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"AVG_REPLICATE_VALS_BOTTOM_SIDEBAR\"]).change(() => {\n grnState.nodeColoring.averageBottomDataset = !grnState.nodeColoring.averageBottomDataset;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"AVG_REPLICATE_VALS_BOTTOM_MENU\"]).click(() => {\n grnState.nodeColoring.averageBottomDataset = !grnState.nodeColoring.averageBottomDataset;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n var logFoldChangeMaxValueValidator = value => {\n return valueValidator(0.01, 100, value);\n };\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"LOG_FOLD_CHANGE_MAX_VALUE_SIDEBAR_BUTTON\"]).click(() => {\n var value = logFoldChangeMaxValueValidator($(_constants__WEBPACK_IMPORTED_MODULE_1__[\"LOG_FOLD_CHANGE_MAX_VALUE_SIDEBAR_INPUT\"]).val());\n grnState.nodeColoring.logFoldChangeMaxValue = value;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"LOG_FOLD_CHANGE_MAX_VALUE_MENU\"]).change(() => {\n var value = logFoldChangeMaxValueValidator($(_constants__WEBPACK_IMPORTED_MODULE_1__[\"LOG_FOLD_CHANGE_MAX_VALUE_MENU\"]).val());\n grnState.nodeColoring.logFoldChangeMaxValue = value;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n// Sliders Code\n\n var linkDistValidator = value => {\n return valueValidator(1, 1000, value);\n };\n\n var chargeValidator = value => {\n return valueValidator(-2000, 0, value);\n };\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"LINK_DIST_SLIDER_SIDEBAR\"]).change(() => {\n var value = linkDistValidator($(_constants__WEBPACK_IMPORTED_MODULE_1__[\"LINK_DIST_SLIDER_SIDEBAR\"]).val());\n grnState.linkDistanceSlider.currentVal = value;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"LINK_DIST_MENU\"]).change(() => {\n var value = linkDistValidator($(_constants__WEBPACK_IMPORTED_MODULE_1__[\"LINK_DIST_MENU\"]).val());\n grnState.linkDistanceSlider.currentVal = value;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"CHARGE_SLIDER_SIDEBAR\"]).change(() => {\n var value = chargeValidator($(_constants__WEBPACK_IMPORTED_MODULE_1__[\"CHARGE_SLIDER_SIDEBAR\"]).val());\n grnState.chargeSlider.currentVal = value;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"CHARGE_MENU\"]).change(() => {\n var value = chargeValidator($(_constants__WEBPACK_IMPORTED_MODULE_1__[\"CHARGE_MENU\"]).val());\n grnState.chargeSlider.currentVal = value;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n // Sliders code\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"LOCK_SLIDERS_CLASS\"]).click(() => {\n grnState.slidersLocked = !grnState.slidersLocked;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"RESET_SLIDERS_CLASS\"]).click(() => {\n grnState.chargeSlider.backup = grnState.chargeSlider.currentVal;\n grnState.linkDistanceSlider.backup = grnState.linkDistanceSlider.currentVal;\n grnState.chargeSlider.currentVal = _constants__WEBPACK_IMPORTED_MODULE_1__[\"CHARGE_DEFAULT_VALUE\"];\n grnState.linkDistanceSlider.currentVal = _constants__WEBPACK_IMPORTED_MODULE_1__[\"LINK_DIST_DEFAULT_VALUE\"];\n grnState.showUndoReset = true;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"UNDO_SLIDERS_RESET_CLASS\"]).click(() => {\n grnState.chargeSlider.currentVal = grnState.chargeSlider.backup;\n grnState.linkDistanceSlider.currentVal = grnState.linkDistanceSlider.backup;\n grnState.showUndoReset = false;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n// Weights Visualization Handlers\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"WEIGHTS_SHOW_ALWAYS_CLASS\"]).click(() => {\n grnState.edgeWeightDisplayOption = _constants__WEBPACK_IMPORTED_MODULE_1__[\"SHOW_ALL_WEIGHTS\"];\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"WEIGHTS_HIDE_CLASS\"]).click(() => {\n grnState.edgeWeightDisplayOption = _constants__WEBPACK_IMPORTED_MODULE_1__[\"HIDE_ALL_WEIGHTS\"];\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n // Normalization Options\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"SET_NORMALIZATION_SIDEBAR\"]).click(() => {\n grnState.normalizationMax = $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"SET_NORMALIZATION_SIDEBAR_VALUE\"]).val();\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"SET_NORMALIZATION_MENU\"]).change(() => {\n grnState.normalizationMax = $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"SET_NORMALIZATION_MENU\"]).val();\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"RESET_NORMALIZATION_SIDEBAR\"]).click(() => {\n grnState.normalizationMax = grnState.resetNormalizationMax;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"RESET_NORMALIZATION_MENU\"]).click(() => {\n grnState.normalizationMax = grnState.resetNormalizationMax;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n// Grey Edges Handlers\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"GREY_EDGES_DASHED_SIDEBAR\"]).change(() => {\n grnState.dashedLine = $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"GREY_EDGES_DASHED_SIDEBAR\"]).prop(\"checked\");\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"GREY_EDGES_DASHED_MENU\"]).click(() => {\n grnState.dashedLine = !$(_constants__WEBPACK_IMPORTED_MODULE_1__[\"GREY_EDGES_DASHED_MENU\"]).prop(\"checked\");\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"GREY_EDGE_THRESHOLD_MENU\"]).change(() => {\n grnState.grayEdgeThreshold = Math.round($(_constants__WEBPACK_IMPORTED_MODULE_1__[\"GREY_EDGE_THRESHOLD_MENU\"]).val());\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"GREY_EDGE_THRESHOLD_SLIDER_SIDEBAR\"]).change(() => {\n grnState.grayEdgeThreshold = Math.round($(_constants__WEBPACK_IMPORTED_MODULE_1__[\"GREY_EDGE_THRESHOLD_SLIDER_SIDEBAR\"]).val() * 100);\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"WEIGHTS_SHOW_MOUSE_OVER_CLASS\"]).click(() => {\n grnState.edgeWeightDisplayOption = _constants__WEBPACK_IMPORTED_MODULE_1__[\"SHOW_WEIGHTS_MOUSEOVER\"];\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"COLOR_EDGES\"]).click(() => {\n grnState.colorOptimal = true;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_1__[\"BLACK_EDGES\"]).click(() => {\n grnState.colorOptimal = false;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n });\n\n};\n\n\n//# sourceURL=webpack:///./web-client/public/js/setup-handlers.js?");
|
|
2307
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupHandlers\", function() { return setupHandlers; });\n/* harmony import */ var _graph__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./graph */ \"./web-client/public/js/graph.js\");\n/* harmony import */ var _update_app__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./update-app */ \"./web-client/public/js/update-app.js\");\n/* harmony import */ var save_svg_as_png__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! save-svg-as-png */ \"./node_modules/save-svg-as-png/lib/saveSvgAsPng.js\");\n/* harmony import */ var save_svg_as_png__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(save_svg_as_png__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var jspdf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! jspdf */ \"./node_modules/jspdf/dist/jspdf.min.js\");\n/* harmony import */ var jspdf__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(jspdf__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var canvg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! canvg */ \"./node_modules/canvg/dist/browser/canvg.min.js\");\n/* harmony import */ var canvg__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(canvg__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./constants */ \"./web-client/public/js/constants.js\");\n/* harmony import */ var _setup_load_and_import_handlers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./setup-load-and-import-handlers */ \"./web-client/public/js/setup-load-and-import-handlers.js\");\n\n\n\n\n\n\n\n\n\n\nconst setupHandlers = grnState => {\n Object(_setup_load_and_import_handlers__WEBPACK_IMPORTED_MODULE_6__[\"setupLoadAndImportHandlers\"])(grnState);\n\n var valueValidator = (min, max, value) => {\n return Math.min(max, Math.max(min, value));\n };\n\n const determineFileType = filename => {\n if (filename.includes(\".xlsx\")) {\n return \".xlsx\";\n } else if (filename.includes(\".sif\")) {\n return \".sif\";\n } else if (filename.includes(\".graphml\")) {\n return \".graphml\";\n }\n };\n\n// thank you for the help https://github.com/nytimes/svg-crowbar/blob/gh-pages/svg-crowbar-2.js\n const setInlineStyles = (svg) => {\n var emptySvg = window.document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n window.document.body.appendChild(emptySvg);\n var emptySvgDeclarationComputed = getComputedStyle(emptySvg);\n\n const traverse = svg => {\n var tree = [];\n tree.push(svg);\n // implement DFS\n const visit = (node) => {\n if (node && node.hasChildNodes()) {\n var child = node.firstChild;\n while (child) {\n if (child.nodeType === 1 && child.nodeName !== \"SCRIPT\") {\n tree.push(child);\n visit(child);\n }\n child = child.nextSibling;\n }\n }\n };\n visit(svg);\n return tree;\n };\n\n const explicitlySetStyle = element => {\n const cSSStyleDeclarationComputed = window.getComputedStyle(element);\n let i;\n let len;\n let key;\n let value;\n let computedStyleStr = \"\";\n\n for (i = 0, len = cSSStyleDeclarationComputed.length; i < len; i++) {\n key = cSSStyleDeclarationComputed[i];\n value = cSSStyleDeclarationComputed.getPropertyValue(key);\n if (value !== emptySvgDeclarationComputed.getPropertyValue(key)) {\n // Don't set computed style of width and height. Makes SVG elmements disappear.\n if ((key !== \"height\") && (key !== \"width\")) {\n computedStyleStr += key + \":\" + value + \";\";\n }\n\n }\n }\n element.setAttribute(\"style\", computedStyleStr);\n };\n\n // hardcode computed css styles inside svg\n var allElements = traverse(svg);\n var i = allElements.length;\n while (i--) {\n explicitlySetStyle(allElements[i]);\n }\n };\n\n const sourceAttributeSetter = (svg) => {\n svg.setAttribute(\"version\", \"1.1\");\n\n svg.removeAttribute(\"xmlns\");\n svg.removeAttribute(\"xlink\");\n\n if (!svg.hasAttributeNS(\"http://www.w3.org/2000/xmlns/\", \"xmlns\")) {\n svg.setAttributeNS(\"http://www.w3.org/2000/xmlns/\", \"xmlns\", \"http://www.w3.org/2000/svg\");\n }\n\n if (!svg.hasAttributeNS(\"http://www.w3.org/2000/xmlns/\", \"xmlns:xlink\")) {\n svg.setAttributeNS(\"http://www.w3.org/2000/xmlns/\", \"xmlns:xlink\", \"http://www.w3.org/1999/xlink\");\n }\n };\n\n const exportSVG = (svgElement, name) => {\n let source = svgElement;\n\n sourceAttributeSetter(source);\n setInlineStyles(source);\n\n var doctype = \"<?xml version=\\\"1.0\\\" standalone=\\\"no\\\"?><!DOCTYPE svg PUBLIC \\\"-//W3C//DTD SVG 1.1//EN\\\" \\\"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\\\">\"; // eslint-disable-line\n var sourceString = (new XMLSerializer()).serializeToString(source);\n const finalSvgString = [doctype + sourceString];\n\n var svgUrl = window.URL.createObjectURL(new Blob(finalSvgString, { \"type\" : \"image\\/svg+xml\" }));\n\n $(\"#exportAsSvg\").attr(\"href\", svgUrl);\n $(\"#exportAsSvg\").attr(\"download\", name);\n };\n\n const exportPDF = (svgElement, name) => {\n if (svgElement) {\n svgElement = svgElement.replace(/\\r?\\n|\\r/g, \"\").trim();\n }\n\n let canvas = document.createElement(\"canvas\");\n canvg__WEBPACK_IMPORTED_MODULE_4___default()(canvas, svgElement);\n const imgData = canvas.toDataURL(\"image/png\");\n\n const pdf = new jspdf__WEBPACK_IMPORTED_MODULE_3__(\"l\", \"mm\", \"letter\");\n const width = pdf.internal.pageSize.getWidth();\n const height = pdf.internal.pageSize.getHeight();\n\n pdf.addImage(imgData, \"PNG\", 0, 0, width, height);\n pdf.save(name);\n };\n\n // Grid and Force Graph Layout\n $(`${_constants__WEBPACK_IMPORTED_MODULE_5__[\"FORCE_GRAPH_MENU\"]}, ${_constants__WEBPACK_IMPORTED_MODULE_5__[\"FORCE_GRAPH_BUTTON\"]}`).click(() => {\n _graph__WEBPACK_IMPORTED_MODULE_0__[\"updaters\"].setNodesToForceGraph();\n grnState.graphLayout = _constants__WEBPACK_IMPORTED_MODULE_5__[\"FORCE_GRAPH\"];\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(`${_constants__WEBPACK_IMPORTED_MODULE_5__[\"GRID_LAYOUT_MENU\"]}, ${_constants__WEBPACK_IMPORTED_MODULE_5__[\"GRID_LAYOUT_BUTTON\"]}`).click(() => {\n _graph__WEBPACK_IMPORTED_MODULE_0__[\"updaters\"].setNodesToGrid();\n grnState.graphLayout = _constants__WEBPACK_IMPORTED_MODULE_5__[\"GRID_LAYOUT\"];\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n// Image Export\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"EXPORT_TO_PNG\"]).click(() => {\n var svgContainer = document.getElementById(\"exportContainer\");\n var editedName = grnState.name.replace(determineFileType(grnState.name), \"\") + \".png\";\n Object(save_svg_as_png__WEBPACK_IMPORTED_MODULE_2__[\"saveSvgAsPng\"])(svgContainer, editedName);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"EXPORT_TO_SVG\"]).click(() => {\n var svgContainer = document.getElementById(\"exportContainer\");\n var editedName = grnState.name.replace(determineFileType(grnState.name), \"\") + \".svg\";\n exportSVG(svgContainer, editedName );\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"EXPORT_TO_PDF\"]).click(() => {\n var svgContainer = document.getElementById(\"exportContainer\").innerHTML;\n var editedName = grnState.name.replace(determineFileType(grnState.name), \"\") + \".pdf\";\n exportPDF(svgContainer, editedName);\n });\n\n// Node Coloring\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_TOGGLE_CLASS\"]).click(() => {\n grnState.nodeColoring.nodeColoringEnabled = !grnState.nodeColoring.nodeColoringEnabled;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"TOP_DATASET_SELECTION_SIDEBAR\"]).change(() => {\n var selection = $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"TOP_DATASET_SELECTION_SIDEBAR\"]).find(\":selected\").attr(\"value\");\n grnState.nodeColoring.topDataset = selection;\n if (grnState.nodeColoring.bottomDataSameAsTop) {\n grnState.nodeColoring.bottomDataset = selection;\n }\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"TOP_DATASET_SELECTION_MENU\"]).click(() => {\n var selection = $(undefined).attr(\"value\");\n grnState.nodeColoring.topDataset = selection;\n if (grnState.nodeColoring.bottomDataSameAsTop) {\n grnState.nodeColoring.bottomDataset = selection;\n }\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_TOP_SIDEBAR\"]).change(() => {\n grnState.nodeColoring.averageTopDataset = !grnState.nodeColoring.averageTopDataset;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_TOP_MENU\"]).click(() => {\n grnState.nodeColoring.averageTopDataset = !grnState.nodeColoring.averageTopDataset;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_SIDEBAR\"]).change(() => {\n var selection = $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_SIDEBAR\"]).find(\":selected\").attr(\"value\");\n grnState.nodeColoring.bottomDataset = selection;\n if (grnState.nodeColoring.bottomDataset === \"Same as Top Dataset\") {\n grnState.nodeColoring.bottomDataset = grnState.nodeColoring.topDataset;\n grnState.nodeColoring.bottomDataSameAsTop = true;\n } else {\n grnState.nodeColoring.bottomDataSameAsTop = false;\n }\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_MENU\"]).click(() => {\n var selection = $(undefined).attr(\"value\");\n grnState.nodeColoring.bottomDataset = selection;\n if (selection === \"Same as Top Dataset\") {\n grnState.nodeColoring.bottomDataset = grnState.nodeColoring.topDataset;\n grnState.nodeColoring.bottomDataSameAsTop = true;\n } else {\n grnState.nodeColoring.bottomDataSameAsTop = false;\n grnState.nodeColoring.bottomDataset = selection;\n }\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_BOTTOM_SIDEBAR\"]).change(() => {\n grnState.nodeColoring.averageBottomDataset = !grnState.nodeColoring.averageBottomDataset;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_BOTTOM_MENU\"]).click(() => {\n grnState.nodeColoring.averageBottomDataset = !grnState.nodeColoring.averageBottomDataset;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n var logFoldChangeMaxValueValidator = value => {\n return valueValidator(0.01, 100, value);\n };\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOG_FOLD_CHANGE_MAX_VALUE_SIDEBAR_BUTTON\"]).click(() => {\n var value = logFoldChangeMaxValueValidator($(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOG_FOLD_CHANGE_MAX_VALUE_SIDEBAR_INPUT\"]).val());\n grnState.nodeColoring.logFoldChangeMaxValue = value;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOG_FOLD_CHANGE_MAX_VALUE_MENU\"]).change(() => {\n var value = logFoldChangeMaxValueValidator($(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOG_FOLD_CHANGE_MAX_VALUE_MENU\"]).val());\n grnState.nodeColoring.logFoldChangeMaxValue = value;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n// Sliders Code\n var linkDistValidator = value => {\n return valueValidator(1, 1000, value);\n };\n\n var chargeValidator = value => {\n return valueValidator(-2000, 0, value);\n };\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LINK_DIST_SLIDER_SIDEBAR\"]).change(() => {\n var value = linkDistValidator($(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LINK_DIST_SLIDER_SIDEBAR\"]).val());\n grnState.linkDistanceSlider.currentVal = value;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LINK_DIST_MENU\"]).change(() => {\n var value = linkDistValidator($(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LINK_DIST_MENU\"]).val());\n grnState.linkDistanceSlider.currentVal = value;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"CHARGE_SLIDER_SIDEBAR\"]).change(() => {\n var value = chargeValidator($(_constants__WEBPACK_IMPORTED_MODULE_5__[\"CHARGE_SLIDER_SIDEBAR\"]).val());\n grnState.chargeSlider.currentVal = value;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"CHARGE_MENU\"]).change(() => {\n var value = chargeValidator($(_constants__WEBPACK_IMPORTED_MODULE_5__[\"CHARGE_MENU\"]).val());\n grnState.chargeSlider.currentVal = value;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOCK_SLIDERS_CLASS\"]).click(() => {\n grnState.slidersLocked = !grnState.slidersLocked;\n if (grnState.slidersLocked) {\n grnState.showUndoReset = false;\n }\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_OPTION_CLASS_SIDEBAR\"]).click(function () {\n grnState.viewportSize = $(this).val();\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_OPTION_CLASS\"]).click(function () {\n grnState.viewportSize = $(this).attr(\"value\");\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"RESET_SLIDERS_CLASS\"]).click(() => {\n grnState.chargeSlider.backup = grnState.chargeSlider.currentVal;\n grnState.linkDistanceSlider.backup = grnState.linkDistanceSlider.currentVal;\n grnState.chargeSlider.currentVal = _constants__WEBPACK_IMPORTED_MODULE_5__[\"CHARGE_DEFAULT_VALUE\"];\n grnState.linkDistanceSlider.currentVal = _constants__WEBPACK_IMPORTED_MODULE_5__[\"LINK_DIST_DEFAULT_VALUE\"];\n grnState.showUndoReset = true;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"UNDO_SLIDERS_RESET_CLASS\"]).click(() => {\n grnState.chargeSlider.currentVal = grnState.chargeSlider.backup;\n grnState.linkDistanceSlider.currentVal = grnState.linkDistanceSlider.backup;\n grnState.showUndoReset = false;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n// Weights Visualization\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_ALWAYS_CLASS\"]).click(() => {\n grnState.edgeWeightDisplayOption = _constants__WEBPACK_IMPORTED_MODULE_5__[\"SHOW_ALL_WEIGHTS\"];\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_HIDE_CLASS\"]).click(() => {\n grnState.edgeWeightDisplayOption = _constants__WEBPACK_IMPORTED_MODULE_5__[\"HIDE_ALL_WEIGHTS\"];\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n // Normalization Options\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SET_NORMALIZATION_SIDEBAR\"]).click(() => {\n grnState.normalizationMax = $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SET_NORMALIZATION_SIDEBAR_VALUE\"]).val();\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SET_NORMALIZATION_MENU\"]).change(() => {\n grnState.normalizationMax = $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SET_NORMALIZATION_MENU\"]).val();\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"RESET_NORMALIZATION_SIDEBAR\"]).click(() => {\n grnState.normalizationMax = grnState.resetNormalizationMax;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"RESET_NORMALIZATION_MENU\"]).click(() => {\n grnState.normalizationMax = grnState.resetNormalizationMax;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n// Grey Edges\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GREY_EDGES_DASHED_SIDEBAR\"]).change(() => {\n grnState.dashedLine = $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GREY_EDGES_DASHED_SIDEBAR\"]).prop(\"checked\");\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GREY_EDGES_DASHED_MENU\"]).click(() => {\n grnState.dashedLine = !$(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GREY_EDGES_DASHED_MENU\"]).prop(\"checked\");\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GREY_EDGE_THRESHOLD_MENU\"]).change(() => {\n grnState.grayEdgeThreshold = Math.round($(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GREY_EDGE_THRESHOLD_MENU\"]).val());\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GREY_EDGE_THRESHOLD_SLIDER_SIDEBAR\"]).change(() => {\n grnState.grayEdgeThreshold = Math.round($(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GREY_EDGE_THRESHOLD_SLIDER_SIDEBAR\"]).val() * 100);\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_MOUSE_OVER_CLASS\"]).click(() => {\n grnState.edgeWeightDisplayOption = _constants__WEBPACK_IMPORTED_MODULE_5__[\"SHOW_WEIGHTS_MOUSEOVER\"];\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"COLOR_EDGES\"]).click(() => {\n grnState.colorOptimal = !grnState.colorOptimal;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n // Species Selection\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_DISPLAY\"]).change(() => {\n var selection = $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_DISPLAY\"]).find(\":selected\").attr(\"value\");\n grnState.genePageData.identified = false;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"identifySpeciesMenu\"])(selection);\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_BUTTON_YEAST\"]).click(function () {\n var selection = $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_BUTTON_YEAST\"]).attr(\"id\");\n grnState.genePageData.identified = false;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"identifySpeciesMenu\"])(selection);\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_BUTTON_MOUSE\"]).click(function () {\n var selection = $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_BUTTON_MOUSE\"]).attr(\"id\");\n grnState.genePageData.identified = false;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"identifySpeciesMenu\"])(selection);\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_BUTTON_HUMAN\"]).click(function () {\n var selection = $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_BUTTON_HUMAN\"]).attr(\"id\");\n grnState.genePageData.identified = false;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"identifySpeciesMenu\"])(selection);\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_BUTTON_NEMATODE\"]).click(function () {\n var selection = $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_BUTTON_NEMATODE\"]).attr(\"id\");\n grnState.genePageData.identified = false;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"identifySpeciesMenu\"])(selection);\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_BUTTON_CRESS\"]).click(function () {\n var selection = $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_BUTTON_CRESS\"]).attr(\"id\");\n grnState.genePageData.identified = false;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"identifySpeciesMenu\"])(selection);\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_BUTTON_FLY\"]).click(function () {\n var selection = $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_BUTTON_FLY\"]).attr(\"id\");\n grnState.genePageData.identified = false;\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"identifySpeciesMenu\"])(selection);\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n });\n\n // Allow text-selection for input elements embedded within menu items.\n //\n // Partial thank you:\n // https://stackoverflow.com/questions/6848140/how-do-i-prevent-drag-on-a-child-but-allow-drag-on-the-parent\n //\n // We use function syntax so that internal `this` can be used.\n $(\".dropdown input.keepopen\").parent().attr({\n draggable: false\n });\n\n // Prevent Bootstrap dropdown from closing on clicks in menu input boxes\n // https://stackoverflow.com/a/27759926\n $(\".dropdown\").on({\n \"click\": function (event) {\n if ($(event.target).hasClass(\"keepopen\")) {\n $(this).data(\"closable\", $(event.target).closest(\".dropdown-toggle\").length !== 0);\n }\n },\n\n \"mouseup\": function (event) {\n if ($(event.target).find(\".keepopen\").length > 0) {\n $(this).data(\"closable\", $(event.target).closest(\".dropdown-toggle\").length !== 0);\n }\n },\n\n \"hide.bs.dropdown\": function () {\n var hide = $(this).data(\"closable\");\n $(this).data(\"closable\", true);\n return hide;\n }\n });\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"ZOOM_DISPLAY_MAXIMUM_SELECTOR\"]).text(_constants__WEBPACK_IMPORTED_MODULE_5__[\"ZOOM_DISPLAY_MAXIMUM_VALUE\"]);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"ZOOM_DISPLAY_MINIMUM_SELECTOR\"]).text(_constants__WEBPACK_IMPORTED_MODULE_5__[\"ZOOM_DISPLAY_MINIMUM_VALUE\"]);\n\n // Viewport handling.\n const setupContainer = function () {\n const MEDIUM_PAGE_WIDTH = 1500;\n const LARGE_PAGE_WIDTH = 2200;\n\n const initializeViewportSize = (width) => {\n if (width < MEDIUM_PAGE_WIDTH) {\n grnState.viewportSize = \"containerS\";\n } else if (width > MEDIUM_PAGE_WIDTH && width < LARGE_PAGE_WIDTH) {\n grnState.viewportSize = \"containerM\";\n } else {\n grnState.viewportSize = \"containerL\";\n }\n };\n\n // For viewport-fit, we create a transient `dimensions` property in `grnState`\n // which `updateApp` will use to determine the latest size.\n //\n // For any other size, we blank out the transient `dimensions`.\n if (window === window.top) {\n initializeViewportSize($(window).width());\n $(window).on(\"resize\", () => {\n if (grnState.viewportSize === _constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_FIT\"]) {\n grnState.dimensions = {\n width: $(window).width(),\n height: $(window).height(),\n top: 0\n };\n\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n } else {\n delete grnState.dimensions;\n }\n });\n } else {\n window.addEventListener(\"message\", event => {\n if (event.origin.indexOf(_constants__WEBPACK_IMPORTED_MODULE_5__[\"HOST_SITE\"]) !== 0) {\n return;\n }\n\n // Also filter out all but dimensions messages.\n const { data } = event;\n if (typeof(data) !== \"object\" || (\n data.width === undefined ||\n data.height === undefined ||\n data.top === undefined\n )) {\n return;\n }\n\n // Live changes only matter if we are doing Fit to Window or initializing.\n if ([_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_FIT\"], _constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_INIT\"]].includes(grnState.viewportSize)) {\n if (grnState.viewportSize === _constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_INIT\"]) {\n initializeViewportSize(data.width);\n }\n\n if (grnState.viewportSize === _constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_FIT\"]) {\n grnState.dimensions = data;\n }\n\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"updateApp\"])(grnState);\n } else {\n delete grnState.dimensions;\n }\n });\n }\n\n $(\"#restrict-graph-to-viewport\").on(\"click\", function () {\n if ($(\".viewport\").prop(\"checked\")) {\n $(\"#restrict-graph-to-viewport span\").removeClass(\"glyphicon-ok\");\n $(\".viewport\").prop(\"checked\", false);\n $(\".viewport\").trigger(\"change\");\n } else {\n $(\"#restrict-graph-to-viewport span\").addClass(\"glyphicon-ok\");\n $(\".viewport\").prop(\"checked\", true).trigger(\"change\");\n }\n });\n\n $(\"#expressionDB\").on(\"click\", function () {\n if (!$(\"#expressionDB span\").hasClass(\"glyphicon-ok\")) {\n $(\"#expressionDB span\").addClass(\"glyphicon-ok\");\n $(\"#expressionDB\").trigger(\"change\");\n } else {\n $(\"#expressionDB span\").removeClass(\"glyphicon-ok\");\n $(\"#expressionDB\").trigger(\"change\");\n }\n });\n };\n\n setupContainer();\n};\n\n\n//# sourceURL=webpack:///./web-client/public/js/setup-handlers.js?");
|
|
2239
2308
|
|
|
2240
2309
|
/***/ }),
|
|
2241
2310
|
|
|
@@ -2243,11 +2312,11 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
2243
2312
|
/*!****************************************************************!*\
|
|
2244
2313
|
!*** ./web-client/public/js/setup-load-and-import-handlers.js ***!
|
|
2245
2314
|
\****************************************************************/
|
|
2246
|
-
/*! exports provided: setupLoadAndImportHandlers */
|
|
2315
|
+
/*! exports provided: setupLoadAndImportHandlers, responseCustomWorkbookData */
|
|
2247
2316
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2248
2317
|
|
|
2249
2318
|
"use strict";
|
|
2250
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupLoadAndImportHandlers\", function() { return setupLoadAndImportHandlers; });\n/* harmony import */ var _update_app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./update-app */ \"./web-client/public/js/update-app.js\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ \"./web-client/public/js/constants.js\");\n\n\n\n\nconst submittedFilename = $upload => {\n let path = $upload.val();\n let fakePathCheck = path.search(\"\\\\\\\\\") + 1;\n\n while (fakePathCheck) {\n path = path.substring(fakePathCheck);\n fakePathCheck = path.search(\"\\\\\\\\\") + 1;\n }\n\n return path;\n};\n\nconst createFileForm = $upload => {\n const formData = new FormData();\n formData.append(\"file\", $upload[0].files[0]);\n return formData;\n};\n\nconst uploadEpilogue = event => {\n if (window.ga) {\n window.ga(\"send\", \"pageview\", {\n page: \"/GRNsight/upload\",\n sessionControl: \"start\"\n });\n }\n\n $(\"a.upload > input[type=file]\").val(\"\");\n event.preventDefault();\n};\n\nconst uploadHandler = (
|
|
2319
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setupLoadAndImportHandlers\", function() { return setupLoadAndImportHandlers; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"responseCustomWorkbookData\", function() { return responseCustomWorkbookData; });\n/* harmony import */ var _update_app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./update-app */ \"./web-client/public/js/update-app.js\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ \"./web-client/public/js/constants.js\");\n\n\n\n\nconst demoFiles = [_constants__WEBPACK_IMPORTED_MODULE_1__[\"UNWEIGHTED_DEMO_PATH\"], _constants__WEBPACK_IMPORTED_MODULE_1__[\"WEIGHTED_DEMO_PATH\"], _constants__WEBPACK_IMPORTED_MODULE_1__[\"SCHADE_INPUT_PATH\"], _constants__WEBPACK_IMPORTED_MODULE_1__[\"SCHADE_OUTPUT_PATH\"]];\n\nconst submittedFilename = $upload => {\n let path = $upload.val();\n let fakePathCheck = path.search(\"\\\\\\\\\") + 1;\n\n while (fakePathCheck) {\n path = path.substring(fakePathCheck);\n fakePathCheck = path.search(\"\\\\\\\\\") + 1;\n }\n\n return path;\n};\n\nconst createFileForm = $upload => {\n const formData = new FormData();\n formData.append(\"file\", $upload[0].files[0]);\n return formData;\n};\n\nconst uploadEpilogue = event => {\n if (window.ga) {\n window.ga(\"send\", \"pageview\", {\n page: \"/GRNsight/upload\",\n sessionControl: \"start\"\n });\n }\n\n $(\"a.upload > input[type=file]\").val(\"\");\n event.preventDefault();\n};\nconst disableUpload = state => {\n $(\".upload\").attr(\"disabled\", state);\n $(\".upload-sif\").attr(\"disabled\", state);\n $(\".upload-graphml\").attr(\"disabled\", state);\n};\n\nconst uploadHandler = (uploader) => {\n return function (event) { // Must be `function` due to use of `this`.\n const $upload = $(this);\n const filename = submittedFilename($upload); // TODO: remove before master release (beta@4.0.6)\n if ($upload[0].files[0].size < 2000000) {\n // disable upload button to prevent multiple uploads\n disableUpload(true);\n const formData = createFileForm($upload);\n uploader(filename, formData);\n uploadEpilogue(event);\n } else {\n let errorString = \"The file uploaded is too large. Please try again with a file smaller than 1 MB.\";\n $(\"#error\").html(errorString);\n $(\"#errorModal\").modal(\"show\");\n }\n };\n};\n\nconst workbookErrorDisplayer = xhr => {\n // re-enable upload button\n disableUpload(false);\n // Deleted status, error for argument because it was never used\n const err = JSON.parse(xhr.responseText);\n let errorString = \"Your graph failed to load.<br><br>\";\n\n if (!err.errors) { // will be falsy if an error was thrown before the workbook was generated\n errorString += err;\n } else {\n errorString = err.errors.reduce(\n (currentErrorString, currentError) =>\n `${currentErrorString}${currentError.possibleCause} ${currentError.suggestedFix}<br><br>`,\n\n errorString\n );\n }\n\n $(\"#error\").html(errorString);\n $(\"#errorModal\").modal(\"show\");\n};\n\nlet reloader = () => { };\n\n\nconst returnUploadRoute = filename => {\n if (demoFiles.indexOf(filename) !== -1) {\n return filename;\n } else if (filename.includes(\".xlsx\")) {\n return \"upload\";\n } else if (filename.includes(\".sif\")) {\n return \"upload-sif\";\n } else if (filename.includes(\".graphml\")) {\n return \"upload-graphml\";\n }\n};\n\nconst setupLoadAndImportHandlers = grnState => {\n const loadGrn = (name, formData) => {\n const uploadRoute = returnUploadRoute(name);\n const fullUrl = [ $(\".service-root\").val(), uploadRoute ].join(\"/\");\n // The presence of formData is taken to indicate a POST.\n (formData ?\n $.ajax({\n url: fullUrl,\n data: formData,\n processData: false,\n contentType: false,\n type: \"POST\",\n crossDomain: true\n }) :\n $.getJSON(fullUrl)\n ).done((workbook, textStatus, jqXhr) => {\n grnState.name = name || jqXhr.getResponseHeader(\"X-GRNsight-Filename\");\n if (demoFiles.indexOf(name) > -1) {\n switch (name) {\n case _constants__WEBPACK_IMPORTED_MODULE_1__[\"WEIGHTED_DEMO_PATH\"]:\n grnState.name = _constants__WEBPACK_IMPORTED_MODULE_1__[\"WEIGHTED_DEMO_NAME\"];\n break;\n case _constants__WEBPACK_IMPORTED_MODULE_1__[\"UNWEIGHTED_DEMO_PATH\"]:\n grnState.name = _constants__WEBPACK_IMPORTED_MODULE_1__[\"UNWEIGHTED_DEMO_NAME\"];\n break;\n case _constants__WEBPACK_IMPORTED_MODULE_1__[\"SCHADE_INPUT_PATH\"]:\n grnState.name = _constants__WEBPACK_IMPORTED_MODULE_1__[\"SCHADE_INPUT_NAME\"];\n break;\n case _constants__WEBPACK_IMPORTED_MODULE_1__[\"SCHADE_OUTPUT_PATH\"]:\n grnState.name = _constants__WEBPACK_IMPORTED_MODULE_1__[\"SCHADE_OUTPUT_NAME\"];\n }\n }\n grnState.workbook = workbook;\n if (uploadRoute !== \"upload\") {\n grnState.annotateLinks();\n }\n reloader = () => loadGrn(name, formData);\n // re-enable upload button\n disableUpload(false);\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n // displayStatistics(workbook);\n }).error(workbookErrorDisplayer);\n };\n /*\n * Thanks to http://stackoverflow.com/questions/6974684/how-to-send-formdata-objects-with-ajax-requests-in-jquery\n * for helping to resolve this.\n */\n\n // $(\".upload\").change(uploadHandler(loadGrn));\n $(\"body\").on(\"change\", \".upload\", uploadHandler(loadGrn));\n const loadDemo = (url, value) => {\n $(\"#demoSourceDropdown option[value='\" + value.substring(1) + \"']\").prop(\"selected\", true);\n loadGrn(url);\n reloader = () => loadGrn(url);\n\n $(\"a.upload > input[type=file]\").val(\"\");\n };\n\n const initializeDemoFile = (demoClass, demoPath, demoName) => {\n // Deleted parameter `event`\n $(demoClass).on(\"click\", () => {\n loadDemo(demoPath, demoClass, demoName);\n });\n\n $(\"#demoSourceDropdown\").on(\"change\", () => {\n loadDemo(demoPath, demoClass, demoName);\n });\n };\n\n _constants__WEBPACK_IMPORTED_MODULE_1__[\"DEMO_INFORMATION\"].forEach(demoInfo => initializeDemoFile.apply(null, demoInfo));\n\n $(\"body\").on(\"click\", \".reload\", function () {\n // Deleted `event` parameter but need `function` because of `this`.\n if (!$(this).parent().hasClass(\"disabled\")) {\n if ($.isFunction(reloader)) {\n reloader();\n }\n }\n });\n};\n\nconst responseCustomWorkbookData = (grnState, queryURL, name) => {\n const uploadRoute = queryURL;\n const fullUrl = [ $(\".service-root\").val(), uploadRoute ].join(\"/\");\n $.getJSON(fullUrl).done((workbook) => {\n grnState.name = name;\n grnState.workbook = workbook;\n grnState.annotateLinks();\n disableUpload(false);\n Object(_update_app__WEBPACK_IMPORTED_MODULE_0__[\"updateApp\"])(grnState);\n reloader = () => responseCustomWorkbookData(grnState, queryURL, name);\n });\n};\n\n\n\n//# sourceURL=webpack:///./web-client/public/js/setup-load-and-import-handlers.js?");
|
|
2251
2320
|
|
|
2252
2321
|
/***/ }),
|
|
2253
2322
|
|
|
@@ -2255,11 +2324,11 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
2255
2324
|
/*!********************************************!*\
|
|
2256
2325
|
!*** ./web-client/public/js/update-app.js ***!
|
|
2257
2326
|
\********************************************/
|
|
2258
|
-
/*! exports provided: valueValidator, modifyChargeParameter, modifyLinkDistanceParameter, updateApp */
|
|
2327
|
+
/*! exports provided: valueValidator, modifyChargeParameter, modifyLinkDistanceParameter, identifySpeciesMenu, updateApp, stopLoadingIcon, startLoadingIcon */
|
|
2259
2328
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2260
2329
|
|
|
2261
2330
|
"use strict";
|
|
2262
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"valueValidator\", function() { return valueValidator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"modifyChargeParameter\", function() { return modifyChargeParameter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"modifyLinkDistanceParameter\", function() { return modifyLinkDistanceParameter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"updateApp\", function() { return updateApp; });\n/* harmony import */ var _graph__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./graph */ \"./web-client/public/js/graph.js\");\n/* harmony import */ var _upload__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./upload */ \"./web-client/public/js/upload.js\");\n/* harmony import */ var _warnings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./warnings */ \"./web-client/public/js/warnings.js\");\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var _grnstate__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./grnstate */ \"./web-client/public/js/grnstate.js\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./constants */ \"./web-client/public/js/constants.js\");\n\n\n\n\n\n\n\n\n// In this transitory state, updateApp might get called before things are completely set up, so for now\n// we define this wrapper function that guards against uninitialized values.\nconst refreshApp = () => {\n if (_upload__WEBPACK_IMPORTED_MODULE_1__[\"uploadState\"] && _upload__WEBPACK_IMPORTED_MODULE_1__[\"uploadState\"].currentNetwork) {\n Object(_graph__WEBPACK_IMPORTED_MODULE_0__[\"drawGraph\"])(_upload__WEBPACK_IMPORTED_MODULE_1__[\"uploadState\"].currentNetwork);\n }\n};\n\nconst displayNetwork = (network, name) => {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"ZOOM_CONTROL\"]).prop({ disabled: false });\n\n _upload__WEBPACK_IMPORTED_MODULE_1__[\"uploadState\"].currentNetwork = network;\n console.log(\"Network: \", network); // Display the network in the console\n $(\"#graph-metadata\").html(network.genes.length + \" nodes<br>\" + network.links.length + \" edges\");\n\n if (network.warnings.length > 0) {\n Object(_warnings__WEBPACK_IMPORTED_MODULE_2__[\"displayWarnings\"])(network.warnings);\n }\n\n $(\"#fileName\").text(name); // Set the name of the file to display in the top bar\n $(\"input[type='range']\").off(\"input\"); // I have no idea why I do this. Investigate later.\n};\n\n// Value Validators\nconst valueValidator = (min, max, value) => {\n return Math.min(max, Math.max(min, value));\n};\n\nconst edgeWeightNormalizationInputValidation = value => {\n return value ===\n \"\" ? \"\" : valueValidator(_constants__WEBPACK_IMPORTED_MODULE_5__[\"MIN_EDGE_WEIGHT_NORMALIZATION\"], _constants__WEBPACK_IMPORTED_MODULE_5__[\"MAX_EDGE_WEIGHT_NORMALIZATION\"], value);\n};\n\nconst synchronizeNormalizationValues = value => {\n var validated = edgeWeightNormalizationInputValidation(value);\n $(\"#normalization-max\").val(validated);\n $(\"#edge-weight-normalization-factor-menu\").val(validated);\n};\n\nconst grayEdgeInputValidator = value => {\n return valueValidator(0, 100, value);\n};\n\nconst logFoldChangeMaxValueInputValidation = value => {\n if (value === \"\" || value === \"0\") {\n return _constants__WEBPACK_IMPORTED_MODULE_5__[\"DEFAULT_MAX_LOG_FOLD_CHANGE\"];\n } else if (value < _constants__WEBPACK_IMPORTED_MODULE_5__[\"MINIMUM_MAX_LOG_FOLD_CHANGE\"]) {\n return _constants__WEBPACK_IMPORTED_MODULE_5__[\"MINIMUM_MAX_LOG_FOLD_CHANGE\"];\n } else if (value > _constants__WEBPACK_IMPORTED_MODULE_5__[\"MAXIMUM_MAX_LOG_FOLD_CHANGE\"]) {\n return _constants__WEBPACK_IMPORTED_MODULE_5__[\"MAXIMUM_MAX_LOG_FOLD_CHANGE\"];\n } else {\n return value;\n }\n};\n\n//\nconst synchronizeGrayEdgeValues = value => {\n var validatedInput = grayEdgeInputValidator(value);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GREY_EDGE_THRESHOLD_TEXT_SIDEBAR\"]).text(validatedInput + \"%\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GREY_EDGE_THRESHOLD_MENU\"]).val(validatedInput);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GREY_EDGE_THRESHOLD_SLIDER_SIDEBAR\"]).val(validatedInput / 100);\n};\n\n// Weight Visualization Functions\nconst synchronizeShowWeightsMouseover = () => {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_MOUSE_OVER_MENU\"] + \" span\").addClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_ALWAYS_MENU\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_HIDE_MENU\"] + \" span\").removeClass(\"glyphicon-ok\");\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_MOUSE_OVER_SIDE\"]).prop(\"checked\", \"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_ALWAYS_SIDE\"]).removeProp(\"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_HIDE_SIDE\"]).removeProp(\"checked\");\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_MOUSE_OVER_CLASS\"]).addClass(\"selected\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_ALWAYS_CLASS\"]).removeClass(\"selected\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_HIDE_CLASS\"]).removeClass(\"selected\");\n};\n\nconst synchronizeShowAllWeights = () => {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_MOUSE_OVER_MENU\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_ALWAYS_MENU\"] + \" span\").addClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_HIDE_MENU\"] + \" span\").removeClass(\"glyphicon-ok\");\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_MOUSE_OVER_SIDE\"]).removeProp(\"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_ALWAYS_SIDE\"]).prop(\"checked\", \"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_HIDE_SIDE\"]).removeProp(\"checked\");\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_MOUSE_OVER_CLASS\"]).removeClass(\"selected\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_ALWAYS_CLASS\"]).addClass(\"selected\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_HIDE_CLASS\"]).removeClass(\"selected\");\n};\n\nconst synchronizeHideAllWeights = () => {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_MOUSE_OVER_MENU\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_ALWAYS_MENU\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_HIDE_MENU\"] + \" span\").addClass(\"glyphicon-ok\");\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_MOUSE_OVER_SIDE\"]).removeProp(\"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_ALWAYS_SIDE\"]).removeProp(\"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_HIDE_SIDE\"]).prop(\"checked\", \"checked\");\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_MOUSE_OVER_CLASS\"]).removeClass(\"selected\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_ALWAYS_CLASS\"]).removeClass(\"selected\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_HIDE_CLASS\"]).addClass(\"selected\");\n};\n\n// Toggle Weighted Functions\nconst enableColorOptimal = () => {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BLACK_EDGES\"]).removeClass(_constants__WEBPACK_IMPORTED_MODULE_5__[\"ACTIVE_COLOR_OPTION\"]);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BLACK_EDGES\"] + \">span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"COLOR_EDGES\"]).addClass(_constants__WEBPACK_IMPORTED_MODULE_5__[\"ACTIVE_COLOR_OPTION\"]);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"COLOR_EDGES\"] + \">span\").addClass(\"glyphicon-ok\");\n};\n\nconst disableColorOptimal = () => {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"COLOR_EDGES\"]).removeClass(_constants__WEBPACK_IMPORTED_MODULE_5__[\"ACTIVE_COLOR_OPTION\"]);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"COLOR_EDGES\"] + \">span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BLACK_EDGES\"]).addClass(_constants__WEBPACK_IMPORTED_MODULE_5__[\"ACTIVE_COLOR_OPTION\"]);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BLACK_EDGES\"] + \">span\").addClass(\"glyphicon-ok\");\n};\n\n// Sliders Functions\nconst modifyChargeParameter = (value) => {\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].simulation.force(\"charge\").strength(value);\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].simulation.alpha(1);\n};\n\nconst modifyLinkDistanceParameter = (value) => {\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].simulation.force(\"link\").distance(value);\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].simulation.alpha(1);\n};\n\nconst updateSliderState = slidersLocked => {\n const forceGraphDisabled = _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].graphLayout === _constants__WEBPACK_IMPORTED_MODULE_5__[\"GRID_LAYOUT\"] || slidersLocked;\n if (forceGraphDisabled) {\n $(`${_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOCK_SLIDERS_MENU\"]} span`).removeClass(\"invisible\").addClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"RESET_SLIDERS_MENU\"]).parent().addClass(\"disabled\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"UNDO_SLIDERS_RESET_MENU\"]).parent().addClass(\"disabled\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LINK_DIST_CLASS\"]).parent().addClass(\"disabled\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"CHARGE_CLASS\"]).parent().addClass(\"disabled\");\n } else {\n $(`${_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOCK_SLIDERS_MENU\"]} span`).removeClass(\"glyphicon-ok\").addClass(\"invisible\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"RESET_SLIDERS_MENU\"]).parent().removeClass(\"disabled\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"UNDO_SLIDERS_RESET_MENU\"]).parent().removeClass(\"disabled\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LINK_DIST_CLASS\"]).parent().removeClass(\"disabled\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"CHARGE_CLASS\"]).parent().removeClass(\"disabled\");\n }\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LINK_DIST_SLIDER_SIDEBAR\"]).prop(\"disabled\", forceGraphDisabled);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"CHARGE_SLIDER_SIDEBAR\"]).prop(\"disabled\", forceGraphDisabled);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"RESET_SLIDERS_SIDEBAR\"]).prop(\"disabled\", forceGraphDisabled);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOCK_SLIDERS_BUTTON\"]).prop(\"checked\", slidersLocked);\n\n if (!_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].showUndoReset) {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"UNDO_SLIDERS_RESET_SIDEBAR\"]).prop(\"disabled\", true);\n }\n};\n\nconst updateChargeSliderValues = () => {\n modifyChargeParameter(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].chargeSlider.currentVal);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"CHARGE_VALUE\"]).text(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].chargeSlider.currentVal);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"CHARGE_MENU\"]).val(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].chargeSlider.currentVal);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"CHARGE_SLIDER_SIDEBAR\"]).val(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].chargeSlider.currentVal);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"CHARGE_SLIDER_SIDEBAR\"]).html(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].chargeSlider.currentVal +\n ((_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].chargeSlider.needsAppendedZeros\n && _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].chargeSlider.currentVal.toString().length === _constants__WEBPACK_IMPORTED_MODULE_5__[\"GRAVITY_LENGTH_WITHOUT_ZERO\"]) ? \"0\" : \"\"));\n};\n\nconst updateLinkDistanceSliderValues = () => {\n modifyLinkDistanceParameter(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].linkDistanceSlider.currentVal);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LINK_DIST_VALUE\"]).text(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].linkDistanceSlider.currentVal);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LINK_DIST_MENU\"]).val(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].linkDistanceSlider.currentVal);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LINK_DIST_SLIDER_SIDEBAR\"]).val(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].linkDistanceSlider.currentVal);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LINK_DIST_SLIDER_SIDEBAR\"]).html(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].linkDistanceSlider.currentVal +\n ((_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].linkDistanceSlider.needsAppendedZeros\n && _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].linkDistanceSlider.currentVal.toString().length === _constants__WEBPACK_IMPORTED_MODULE_5__[\"GRAVITY_LENGTH_WITHOUT_ZERO\"]) ? \"0\" : \"\"));\n};\n\n// Grid Layout Functions\nconst toggleLayout = (on, off) => {\n if (!$(on).prop(\"checked\")) {\n $(on).prop(\"checked\", true);\n $(off).prop(\"checked\", false);\n $(`${off} span`).removeClass(\"glyphicon-ok\");\n $(`${on} span`).addClass(\"glyphicon-ok\");\n }\n};\n\nconst updatetoForceGraph = () => {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GRID_LAYOUT_BUTTON\"]).val(\"Use Grid Layout\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOCK_SLIDERS_BUTTON\"]).removeAttr(\"disabled\");\n toggleLayout(_constants__WEBPACK_IMPORTED_MODULE_5__[\"FORCE_GRAPH_CLASS\"], _constants__WEBPACK_IMPORTED_MODULE_5__[\"GRID_LAYOUT_CLASS\"]);\n _graph__WEBPACK_IMPORTED_MODULE_0__[\"updaters\"].setNodesToForceGraph();\n};\n\nconst updatetoGridLayout = () => {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GRID_LAYOUT_BUTTON\"]).val(\"Use Force Graph\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOCK_SLIDERS_BUTTON\"]).attr(\"disabled\", true);\n toggleLayout(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GRID_LAYOUT_CLASS\"], _constants__WEBPACK_IMPORTED_MODULE_5__[\"FORCE_GRAPH_CLASS\"]);\n _graph__WEBPACK_IMPORTED_MODULE_0__[\"updaters\"].setNodesToGrid();\n};\n\n// Node Coloring Functions\nconst isNewWorkbook = (name) => {\n return _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.lastDataset === null || _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.lastDataset !== name;\n};\n\nconst shortenExpressionSheetName = (name) => {\n return (name.length > _constants__WEBPACK_IMPORTED_MODULE_5__[\"MAX_NUM_CHARACTERS_DROPDOWN\"]) ?\n (name.slice(0, _constants__WEBPACK_IMPORTED_MODULE_5__[\"MAX_NUM_CHARACTERS_DROPDOWN\"]) + \"...\") : name;\n};\n\nconst hasExpressionData = (sheets) => {\n for (var property in sheets) {\n if (property.match(_constants__WEBPACK_IMPORTED_MODULE_5__[\"ENDS_IN_EXPRESSION_REGEXP\"])) {\n return true;\n }\n }\n return false;\n};\n\n // renderNodeColoring: function () { }, // defined in graph.js\n\nconst resetDatasetDropdownMenus = (network) => {\n\n var createHTMLforDataset = function (name) {\n return `\n <li class=\\\"dataset-option node-coloring-menu\\\" value=\\\"${name}\\\">\n <a>\n <span class=\\\"glyphicon\\\"></span>\n ${name}\n </a>\n </li>`;\n };\n\n for (var property in network.expression) {\n if (property.match(_constants__WEBPACK_IMPORTED_MODULE_5__[\"ENDS_IN_EXPRESSION_REGEXP\"])) {\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.nodeColoringOptions.push({value: property});\n }\n }\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_SIDEBAR\"]).empty();\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"TOP_DATASET_SELECTION_SIDEBAR\"]).empty();\n\n $(\".dataset-option\").remove(); // clear all menu dataset options\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_SIDEBAR\"]).append($(\"<option>\")\n .attr(\"value\", \"Same as Top Dataset\").text(\"Same as Top Dataset\"));\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_MENU\"]).append(createHTMLforDataset(\"Same as Top Dataset\"));\n\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.nodeColoringOptions.forEach(function (option) {\n var shortenedSheetName = shortenExpressionSheetName(option.value);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"TOP_DATASET_SELECTION_SIDEBAR\"]).append($(\"<option>\")\n .attr(\"value\", option.value).text(shortenedSheetName));\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"TOP_DATASET_SELECTION_MENU\"])\n .append(createHTMLforDataset(option.value));\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_SIDEBAR\"]).append($(\"<option>\")\n .attr(\"value\", option.value).text(shortenedSheetName));\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_MENU\"])\n .append(createHTMLforDataset(option.value));\n });\n\n $(\"#topDatasetDropdownMenu li a span\").first().addClass(\"glyphicon-ok\");\n $(\"#bottomDatasetDropdownMenu li a span\").first().addClass(\"glyphicon-ok\");\n};\n\nconst updateLogFoldChangeMaxValue = () => {\n var value = logFoldChangeMaxValueInputValidation(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.logFoldChangeMaxValue);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOG_FOLD_CHANGE_MAX_VALUE_SIDEBAR_INPUT\"]).val(value);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOG_FOLD_CHANGE_MAX_VALUE_MENU\"]).val(value);\n _graph__WEBPACK_IMPORTED_MODULE_0__[\"updaters\"].renderNodeColoring();\n};\n\nconst removeAllChecksFromMenuDatasetOptions = (id) => {\n $(`${id} li a span`).each(\n function () {\n $(this).removeClass(\"glyphicon-ok\");\n }\n );\n};\n\nconst updateTopDataset = () => {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"TOP_DATASET_SELECTION_SIDEBAR\"]).val(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.topDataset);\n removeAllChecksFromMenuDatasetOptions(_constants__WEBPACK_IMPORTED_MODULE_5__[\"TOP_DATASET_SELECTION_MENU\"]);\n $(`${_constants__WEBPACK_IMPORTED_MODULE_5__[\"TOP_DATASET_SELECTION_MENU\"]} li[value='${_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.topDataset}'] a span`).addClass(\"glyphicon-ok\");\n _graph__WEBPACK_IMPORTED_MODULE_0__[\"updaters\"].renderNodeColoring();\n // TO DO: If bottomDataSameAsTop make bottom selction \"Same As Top\"\n};\n\nconst updateBottomDataset = () => {\n if (_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.bottomDataSameAsTop) {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_SIDEBAR\"]).val(\"Same as Top Dataset\");\n removeAllChecksFromMenuDatasetOptions(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_MENU\"]);\n $(`${_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_MENU\"]} li[value='${\"Same as Top Dataset\"}'] a span`).addClass(\"glyphicon-ok\");\n } else {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_SIDEBAR\"]).val(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.bottomDataset);\n removeAllChecksFromMenuDatasetOptions(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_MENU\"]);\n /* eslint-disable max-len */\n $(`${_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_MENU\"]} li[value='${_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.bottomDataset}'] a span`).addClass(\"glyphicon-ok\");\n /* eslint-enable max-len */\n }\n _graph__WEBPACK_IMPORTED_MODULE_0__[\"updaters\"].renderNodeColoring();\n};\n\nconst showNodeColoringMenus = () => {\n if ($(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_MENU\"]).hasClass(\"hidden\")) {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_MENU\"]).removeClass(\"hidden\");\n }\n if ($(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_MENU_CLASS\"]).hasClass(\"disabled\")) {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_MENU_CLASS\"]).removeClass(\"disabled\");\n }\n};\n\nconst disableNodeColoringMenus = () => {\n if ($(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_MENU\"]).hasClass(\"hidden\")) {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_MENU\"]).addClass(\"hidden\");\n }\n if ($(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_MENU_CLASS\"]).hasClass(\"disabled\")) {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_MENU_CLASS\"]).addClass(\"disabled\");\n }\n};\n\nconst updateApp = grnState => {\n\n if (grnState.newNetwork) {\n grnState.normalizationMax = Object(d3_array__WEBPACK_IMPORTED_MODULE_3__[\"max\"])(grnState.network.positiveWeights.concat(grnState.network.negativeWeights));\n displayNetwork(grnState.network, grnState.name);\n if (hasExpressionData(grnState.network.expression)) {\n if (isNewWorkbook(name)) {\n grnState.nodeColoring.showMenu = true;\n grnState.nodeColoring.nodeColoringEnabled = true;\n grnState.nodeColoring.lastDataset = name;\n resetDatasetDropdownMenus(grnState.network);\n showNodeColoringMenus();\n }\n grnState.nodeColoring.topDataset = $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"TOP_DATASET_SELECTION_SIDEBAR\"]).find(\":selected\").attr(\"value\");\n if ($(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_SIDEBAR\"]).find(\":selected\").attr(\"value\") === \"Same as Top Dataset\") {\n grnState.nodeColoring.bottomDataset = grnState.nodeColoring.topDataset;\n grnState.nodeColoring.bottomDataSameAsTop = true;\n } else {\n grnState.nodeColoring.bottomDataset =\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_SIDEBAR\"]).find(\":selected\").attr(\"value\");\n grnState.nodeColoring.bottomDataSameAsTop = false;\n }\n } else {\n grnState.nodeColoringEnabled = false;\n }\n refreshApp();\n\n // Rare exception to the MVC cycle: right now we have no way of knowing whether the network has changed\n // (which is what necessitates displayNetwork), so we mark the model here.\n grnState.newNetwork = false;\n }\n\n synchronizeNormalizationValues(grnState.normalizationMax);\n synchronizeGrayEdgeValues(grnState.grayEdgeThreshold);\n\n// Dashed Line Synchronization\n if (grnState.dashedLine) {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GREY_EDGES_DASHED_MENU\"] + \" span\").addClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GREY_EDGES_DASHED_MENU\"]).prop(\"checked\", \"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GREY_EDGES_DASHED_SIDEBAR\"]).prop(\"checked\", \"checked\");\n refreshApp();\n } else {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GREY_EDGES_DASHED_MENU\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GREY_EDGES_DASHED_MENU\"]).removeProp(\"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GREY_EDGES_DASHED_SIDEBAR\"]).removeProp(\"checked\");\n refreshApp();\n }\n\n// Weights functions\n if (grnState.edgeWeightDisplayOption === _constants__WEBPACK_IMPORTED_MODULE_5__[\"SHOW_WEIGHTS_MOUSEOVER\"]) {\n synchronizeShowWeightsMouseover();\n } else if (grnState.edgeWeightDisplayOption === _constants__WEBPACK_IMPORTED_MODULE_5__[\"SHOW_ALL_WEIGHTS\"]) {\n synchronizeShowAllWeights();\n } else if (grnState.edgeWeightDisplayOption === _constants__WEBPACK_IMPORTED_MODULE_5__[\"HIDE_ALL_WEIGHTS\"]) {\n synchronizeHideAllWeights();\n }\n\n// Enable/Disable Colored edges\n if (grnState.colorOptimal) {\n enableColorOptimal();\n } else {\n disableColorOptimal();\n }\n\n// Graph Layout\n if (grnState.graphLayout === _constants__WEBPACK_IMPORTED_MODULE_5__[\"FORCE_GRAPH\"]) {\n updatetoForceGraph();\n } else if (grnState.graphLayout === _constants__WEBPACK_IMPORTED_MODULE_5__[\"GRID_LAYOUT\"]) {\n updatetoGridLayout();\n }\n\n// Node Coloring\n if (grnState.network !== null && grnState.nodeColoring.nodeColoringEnabled\n && hasExpressionData(grnState.network.expression)) {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_TOP_SIDEBAR\"]).prop(\"checked\", true);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_BOTTOM_SIDEBAR\"]).prop(\"checked\", true);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_TOGGLE_MENU\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_TOGGLE_SIDEBAR\"]).val(\"Disable Node Coloring\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOG_FOLD_CHANGE_MAX_VALUE_CLASS\"]).val(_constants__WEBPACK_IMPORTED_MODULE_5__[\"DEFAULT_MAX_LOG_FOLD_CHANGE\"]);\n _graph__WEBPACK_IMPORTED_MODULE_0__[\"updaters\"].renderNodeColoring();\n } else {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_TOGGLE_MENU\"] + \" span\").addClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_TOGGLE_SIDEBAR\"]).val(\"Enable Node Coloring\");\n _graph__WEBPACK_IMPORTED_MODULE_0__[\"updaters\"].removeNodeColoring();\n }\n\n if (grnState.nodeColoring.averageTopDataset) {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_TOP_MENU\"] + \" span\").addClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_TOP_MENU\"]).prop(\"checked\", \"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_TOP_SIDEBAR\"]).prop(\"checked\", \"checked\");\n _graph__WEBPACK_IMPORTED_MODULE_0__[\"updaters\"].renderNodeColoring();\n } else {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_TOP_MENU\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_TOP_MENU\"]).removeProp(\"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_TOP_SIDEBAR\"]).removeProp(\"checked\");\n _graph__WEBPACK_IMPORTED_MODULE_0__[\"updaters\"].renderNodeColoring();\n }\n\n if (grnState.nodeColoring.averageBottomDataset) {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_BOTTOM_MENU\"] + \" span\").addClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_BOTTOM_MENU\"]).prop(\"checked\", \"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_BOTTOM_SIDEBAR\"]).prop(\"checked\", \"checked\");\n _graph__WEBPACK_IMPORTED_MODULE_0__[\"updaters\"].renderNodeColoring();\n } else {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_BOTTOM_MENU\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_BOTTOM_MENU\"]).removeProp(\"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_BOTTOM_SIDEBAR\"]).removeProp(\"checked\");\n _graph__WEBPACK_IMPORTED_MODULE_0__[\"updaters\"].renderNodeColoring();\n }\n\n if (grnState.nodeColoring.showMenu) {\n showNodeColoringMenus();\n } else {\n disableNodeColoringMenus();\n }\n\n updateLogFoldChangeMaxValue();\n updateTopDataset();\n updateBottomDataset();\n updateSliderState(grnState.slidersLocked);\n\n if (grnState.showUndoReset) {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"UNDO_SLIDERS_RESET_SIDEBAR\"]).prop(\"disabled\", false);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"UNDO_SLIDERS_RESET_MENU\"]).parent().removeClass(\"disabled\");\n } else {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"UNDO_SLIDERS_RESET_SIDEBAR\"]).prop(\"disabled\", true);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"UNDO_SLIDERS_RESET_MENU\"]).parent().addClass(\"disabled\");\n }\n\n if (grnState.network !== null) {\n updateChargeSliderValues();\n updateLinkDistanceSliderValues();\n }\n\n// Refresh graph\n refreshApp();\n};\n\n\n//# sourceURL=webpack:///./web-client/public/js/update-app.js?");
|
|
2331
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"valueValidator\", function() { return valueValidator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"modifyChargeParameter\", function() { return modifyChargeParameter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"modifyLinkDistanceParameter\", function() { return modifyLinkDistanceParameter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"identifySpeciesMenu\", function() { return identifySpeciesMenu; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"updateApp\", function() { return updateApp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"stopLoadingIcon\", function() { return stopLoadingIcon; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"startLoadingIcon\", function() { return startLoadingIcon; });\n/* harmony import */ var _graph__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./graph */ \"./web-client/public/js/graph.js\");\n/* harmony import */ var _upload__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./upload */ \"./web-client/public/js/upload.js\");\n/* harmony import */ var _warnings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./warnings */ \"./web-client/public/js/warnings.js\");\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var _grnstate__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./grnstate */ \"./web-client/public/js/grnstate.js\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./constants */ \"./web-client/public/js/constants.js\");\n/* harmony import */ var _api_grnsight_api_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./api/grnsight-api.js */ \"./web-client/public/js/api/grnsight-api.js\");\n\n\n\n\n\n\n\n\n\n\n// In this transitory state, updateApp might get called before things are completely set up, so for now\n// we define this wrapper function that guards against uninitialized values.\nconst refreshApp = () => {\n if (_upload__WEBPACK_IMPORTED_MODULE_1__[\"uploadState\"] && _upload__WEBPACK_IMPORTED_MODULE_1__[\"uploadState\"].currentWorkbook) {\n Object(_graph__WEBPACK_IMPORTED_MODULE_0__[\"drawGraph\"])(_upload__WEBPACK_IMPORTED_MODULE_1__[\"uploadState\"].currentWorkbook);\n }\n};\n\nconst displayworkbook = (workbook, name) => {\n _upload__WEBPACK_IMPORTED_MODULE_1__[\"uploadState\"].currentWorkbook = workbook;\n // console.log(\"workbook: \", workbook); // Display the workbook in the console\n $(\"#graph-metadata\").html(workbook.genes.length + \" nodes<br>\" + workbook.links.length + \" edges\");\n\n if (workbook.warnings.length > 0) {\n Object(_warnings__WEBPACK_IMPORTED_MODULE_2__[\"displayWarnings\"])(workbook.warnings);\n }\n\n $(\"#fileName\").text(name); // Set the name of the file to display in the top bar\n $(\"input[type='range']\").off(\"input\"); // I have no idea why I do this. Investigate later.\n};\n\n// Value Validators\nconst valueValidator = (min, max, value) => {\n return Math.min(max, Math.max(min, value));\n};\n\nconst edgeWeightNormalizationInputValidation = value => {\n return value ===\n \"\" ? \"\" : valueValidator(_constants__WEBPACK_IMPORTED_MODULE_5__[\"MIN_EDGE_WEIGHT_NORMALIZATION\"], _constants__WEBPACK_IMPORTED_MODULE_5__[\"MAX_EDGE_WEIGHT_NORMALIZATION\"], value);\n};\n\nconst synchronizeNormalizationValues = value => {\n var validated = edgeWeightNormalizationInputValidation(value);\n $(\"#normalization-max\").val(validated);\n $(\"#edge-weight-normalization-factor-menu\").val(validated);\n};\n\nconst grayEdgeInputValidator = value => {\n return valueValidator(0, 100, value);\n};\n\nconst logFoldChangeMaxValueInputValidation = value => {\n if (value === \"\" || value === \"0\") {\n return _constants__WEBPACK_IMPORTED_MODULE_5__[\"DEFAULT_MAX_LOG_FOLD_CHANGE\"];\n } else if (value < _constants__WEBPACK_IMPORTED_MODULE_5__[\"MINIMUM_MAX_LOG_FOLD_CHANGE\"]) {\n return _constants__WEBPACK_IMPORTED_MODULE_5__[\"MINIMUM_MAX_LOG_FOLD_CHANGE\"];\n } else if (value > _constants__WEBPACK_IMPORTED_MODULE_5__[\"MAXIMUM_MAX_LOG_FOLD_CHANGE\"]) {\n return _constants__WEBPACK_IMPORTED_MODULE_5__[\"MAXIMUM_MAX_LOG_FOLD_CHANGE\"];\n } else {\n return value;\n }\n};\n\n// Weight Visualization Function\nconst showEdgeWeightOptions = () => {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"EDGE_WEIGHT_MENU_CLASS\"]).removeClass(\"disabled\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"EXPORT_WEIGHTED_CLASS\"]).removeClass(\"startDisabled\").removeClass(\"disabled\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"EDGE_WEIGHT_SIDEBAR\"]).removeClass(\"disabled\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"EDGE_WEIGHT_SIDEBAR_HEADER_LINK\"]).attr(\"data-toggle\", \"collapse\");\n};\n\nconst hideEdgeWeightOptions = () => {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"EDGE_WEIGHT_MENU_CLASS\"]).addClass(\"disabled\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"EXPORT_WEIGHTED_CLASS\"]).removeClass(\"startDisabled\").addClass(\"disabled\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"EDGE_WEIGHT_SIDEBAR\"]).addClass(\"disabled\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"EDGE_WEIGHT_SIDEBAR_HEADER_LINK\"]).attr(\"data-toggle\", \"\");\n};\n\nconst synchronizeGrayEdgeValues = value => {\n var validatedInput = grayEdgeInputValidator(value);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GREY_EDGE_THRESHOLD_MENU\"]).val(validatedInput);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GREY_EDGE_THRESHOLD_TEXT_SIDEBAR\"]).text(validatedInput + \"%\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GREY_EDGE_THRESHOLD_SLIDER_SIDEBAR\"]).val(validatedInput / 100);\n};\n\nconst synchronizeShowWeightsMouseover = () => {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_MOUSE_OVER_MENU\"] + \" span\").addClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_ALWAYS_MENU\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_HIDE_MENU\"] + \" span\").removeClass(\"glyphicon-ok\");\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_MOUSE_OVER_SIDE\"]).prop(\"checked\", \"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_ALWAYS_SIDE\"]).removeProp(\"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_HIDE_SIDE\"]).removeProp(\"checked\");\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_MOUSE_OVER_CLASS\"]).addClass(\"selected\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_ALWAYS_CLASS\"]).removeClass(\"selected\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_HIDE_CLASS\"]).removeClass(\"selected\");\n};\n\nconst synchronizeShowAllWeights = () => {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_MOUSE_OVER_MENU\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_ALWAYS_MENU\"] + \" span\").addClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_HIDE_MENU\"] + \" span\").removeClass(\"glyphicon-ok\");\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_MOUSE_OVER_SIDE\"]).removeProp(\"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_ALWAYS_SIDE\"]).prop(\"checked\", \"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_HIDE_SIDE\"]).removeProp(\"checked\");\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_MOUSE_OVER_CLASS\"]).removeClass(\"selected\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_ALWAYS_CLASS\"]).addClass(\"selected\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_HIDE_CLASS\"]).removeClass(\"selected\");\n};\n\nconst synchronizeHideAllWeights = () => {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_MOUSE_OVER_MENU\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_ALWAYS_MENU\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_HIDE_MENU\"] + \" span\").addClass(\"glyphicon-ok\");\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_MOUSE_OVER_SIDE\"]).removeProp(\"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_ALWAYS_SIDE\"]).removeProp(\"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_HIDE_SIDE\"]).prop(\"checked\", \"checked\");\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_MOUSE_OVER_CLASS\"]).removeClass(\"selected\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_SHOW_ALWAYS_CLASS\"]).removeClass(\"selected\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"WEIGHTS_HIDE_CLASS\"]).addClass(\"selected\");\n};\n\n// Viewport\nconst synchronizeViewportSizeSmall = () => {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_S_DROPDOWN\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_M_DROPDOWN\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_L_DROPDOWN\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_FIT_DROPDOWN\"] + \" span\").removeClass(\"glyphicon-ok\");\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_S_SIDEBAR\"]).removeProp(\"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_M_SIDEBAR\"]).removeProp(\"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_L_SIDEBAR\"]).removeProp(\"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_FIT_SIDEBAR\"]).removeProp(\"checked\");\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_S_SIDEBAR\"]).prop(\"checked\", \"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_S_DROPDOWN\"] + \" span\").addClass(\"glyphicon-ok\");\n};\n\nconst synchronizeViewportSizeMedium = () => {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_S_DROPDOWN\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_M_DROPDOWN\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_L_DROPDOWN\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_FIT_DROPDOWN\"] + \" span\").removeClass(\"glyphicon-ok\");\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_S_SIDEBAR\"]).removeProp(\"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_M_SIDEBAR\"]).removeProp(\"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_L_SIDEBAR\"]).removeProp(\"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_FIT_SIDEBAR\"]).removeProp(\"checked\");\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_M_SIDEBAR\"]).prop(\"checked\", \"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_M_DROPDOWN\"] + \" span\").addClass(\"glyphicon-ok\");\n};\n\nconst synchronizeViewportSizeLarge = () => {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_S_DROPDOWN\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_M_DROPDOWN\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_L_DROPDOWN\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_FIT_DROPDOWN\"] + \" span\").removeClass(\"glyphicon-ok\");\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_S_SIDEBAR\"]).removeProp(\"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_M_SIDEBAR\"]).removeProp(\"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_L_SIDEBAR\"]).removeProp(\"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_FIT_SIDEBAR\"]).removeProp(\"checked\");\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_L_SIDEBAR\"]).prop(\"checked\", \"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_L_DROPDOWN\"] + \" span\").addClass(\"glyphicon-ok\");\n};\n\nconst synchronizeViewportSizeFit = () => {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_S_DROPDOWN\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_M_DROPDOWN\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_L_DROPDOWN\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_FIT_DROPDOWN\"] + \" span\").removeClass(\"glyphicon-ok\");\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_S_SIDEBAR\"]).removeProp(\"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_M_SIDEBAR\"]).removeProp(\"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_L_SIDEBAR\"]).removeProp(\"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_FIT_SIDEBAR\"]).removeProp(\"checked\");\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_FIT_SIDEBAR\"]).prop(\"checked\", \"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_SIZE_FIT_DROPDOWN\"] + \" span\").addClass(\"glyphicon-ok\");\n};\n\nconst updateViewportSize = (currentValue) => {\n // These values are bound to the layout dimensions of the GRNsight website.\n const WIDTH_OFFSET = 250;\n const HEIGHT_OFFSET = 53;\n\n let container = $(\".grnsight-container\");\n\n // from jquery\n const fitContainer = dimensions => {\n if (!dimensions) {\n return; // First call; the next one should have dimensions filled in.\n }\n\n const fitWidth = dimensions.width - WIDTH_OFFSET;\n const fitHeight = dimensions.height - dimensions.top - HEIGHT_OFFSET;\n if (fitWidth !== container.width() || fitHeight !== container.height()) {\n container.css({\n width: fitWidth,\n height: fitHeight\n });\n }\n };\n\n const fitContainerToWindow = () => {\n fitContainer({\n width: $(window).width(),\n height: $(window).height(),\n top: 0\n });\n };\n\n const requestWindowDimensions = () => {\n // We send a message if we are in an iframe, and manipulate directly if we aren’t.\n if (window === window.top) {\n fitContainerToWindow();\n } else {\n window.top.postMessage(\"dimensions\", _constants__WEBPACK_IMPORTED_MODULE_5__[\"HOST_SITE\"]);\n }\n };\n\n let grnsightContainerClass = `grnsight-container ${currentValue}`;\n if (!container.hasClass(currentValue)) {\n container.attr(\"class\", grnsightContainerClass);\n if (currentValue === _constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_FIT\"]) {\n requestWindowDimensions();\n } else {\n container.css({ width: \"\", height: \"\" });\n }\n }\n\n // Added synchronization\n if (currentValue === _constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_S\"]) {\n synchronizeViewportSizeSmall();\n } else if (currentValue === _constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_M\"]) {\n synchronizeViewportSizeMedium();\n } else if (currentValue === _constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_L\"]) {\n synchronizeViewportSizeLarge();\n } else if (currentValue === _constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_FIT\"]) {\n fitContainer(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].dimensions);\n synchronizeViewportSizeFit();\n } else if (currentValue === _constants__WEBPACK_IMPORTED_MODULE_5__[\"VIEWPORT_INIT\"]) {\n // First time around: initialize.\n requestWindowDimensions();\n }\n};\n\n\n// Expression DB Functions\nconst startLoadingIcon = function () {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"EXPRESSION_DB_LOADER\"]).css(\"display\", \"block\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"EXPRESSION_DB_LOADER_TEXT\"]).css(\"display\", \"block\");\n};\nconst stopLoadingIcon = function () {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"EXPRESSION_DB_LOADER\"]).css(\"display\", \"none\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"EXPRESSION_DB_LOADER_TEXT\"]).css(\"display\", \"none\");\n};\nconst enableNodeColoringUI = function () {\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.nodeColoringEnabled = true;\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOG_FOLD_CHANGE_MAX_VALUE_CLASS\"]).removeClass(\"hidden\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOG_FOLD_CHANGE_MAX_VALUE_SIDEBAR_BUTTON\"]).removeClass(\"hidden\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOG_FOLD_CHANGE_MAX_VALUE_HEADER\"]).removeClass(\"hidden\");\n};\nconst loadExpressionDatabase = function (isTopDataset) {\n startLoadingIcon();\n Object(_api_grnsight_api_js__WEBPACK_IMPORTED_MODULE_6__[\"queryExpressionDatabase\"])({\n dataset: isTopDataset ? _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.topDataset : _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.bottomDataset,\n genes : _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].workbook.genes\n }).then(function (response) {\n if (isTopDataset) {\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].workbook.expression[_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.topDataset] = response;\n } else {\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].workbook.expression[_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.bottomDataset] = response;\n }\n enableNodeColoringUI();\n stopLoadingIcon();\n _graph__WEBPACK_IMPORTED_MODULE_0__[\"updaters\"].renderNodeColoring();\n }).catch(function (error) {\n console.log(error.stack);\n console.log(error.name);\n console.log(error.message);\n });\n};\n\n\n// Sliders Functions\nconst updateSliderState = slidersLocked => {\n const forceGraphDisabled = _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].graphLayout === _constants__WEBPACK_IMPORTED_MODULE_5__[\"GRID_LAYOUT\"] || slidersLocked;\n if (forceGraphDisabled) {\n $(`${_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOCK_SLIDERS_MENU\"]} span`).removeClass(\"invisible\").addClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"RESET_SLIDERS_MENU\"]).parent().addClass(\"disabled\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"UNDO_SLIDERS_RESET_MENU\"]).parent().addClass(\"disabled\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LINK_DIST_CLASS\"]).parent().addClass(\"disabled\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"CHARGE_CLASS\"]).parent().addClass(\"disabled\");\n } else {\n $(`${_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOCK_SLIDERS_MENU\"]} span`).removeClass(\"glyphicon-ok\").addClass(\"invisible\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"RESET_SLIDERS_MENU\"]).parent().removeClass(\"disabled\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"UNDO_SLIDERS_RESET_MENU\"]).parent().removeClass(\"disabled\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LINK_DIST_CLASS\"]).parent().removeClass(\"disabled\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"CHARGE_CLASS\"]).parent().removeClass(\"disabled\");\n }\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LINK_DIST_SLIDER_SIDEBAR\"]).prop(\"disabled\", forceGraphDisabled);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"CHARGE_SLIDER_SIDEBAR\"]).prop(\"disabled\", forceGraphDisabled);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"RESET_SLIDERS_SIDEBAR\"]).prop(\"disabled\", forceGraphDisabled);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOCK_SLIDERS_BUTTON\"]).prop(\"checked\", slidersLocked);\n\n if (!_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].showUndoReset) {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"UNDO_SLIDERS_RESET_SIDEBAR\"]).prop(\"disabled\", true);\n }\n};\n\nconst modifyChargeParameter = (value) => {\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].simulation.force(\"charge\").strength(value);\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].simulation.alpha(1);\n};\n\nconst modifyLinkDistanceParameter = (value) => {\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].simulation.force(\"link\").distance(value);\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].simulation.alpha(1);\n};\n\nconst updateChargeSliderValues = () => {\n if (_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].workbook !== null) {\n modifyChargeParameter(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].chargeSlider.currentVal);\n }\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"CHARGE_VALUE\"]).text(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].chargeSlider.currentVal);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"CHARGE_MENU\"]).val(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].chargeSlider.currentVal);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"CHARGE_SLIDER_SIDEBAR\"]).val(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].chargeSlider.currentVal);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"CHARGE_SLIDER_SIDEBAR\"]).html(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].chargeSlider.currentVal +\n ((_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].chargeSlider.needsAppendedZeros &&\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].chargeSlider.currentVal.toString().length === _constants__WEBPACK_IMPORTED_MODULE_5__[\"GRAVITY_LENGTH_WITHOUT_ZERO\"]) ? \"0\" : \"\"));\n};\n\nconst updateLinkDistanceSliderValues = () => {\n if (_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].workbook !== null) {\n modifyLinkDistanceParameter(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].linkDistanceSlider.currentVal);\n }\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LINK_DIST_VALUE\"]).text(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].linkDistanceSlider.currentVal);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LINK_DIST_MENU\"]).val(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].linkDistanceSlider.currentVal);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LINK_DIST_SLIDER_SIDEBAR\"]).val(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].linkDistanceSlider.currentVal);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LINK_DIST_SLIDER_SIDEBAR\"]).html(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].linkDistanceSlider.currentVal +\n ((_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].linkDistanceSlider.needsAppendedZeros &&\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].linkDistanceSlider.currentVal.toString().length === _constants__WEBPACK_IMPORTED_MODULE_5__[\"GRAVITY_LENGTH_WITHOUT_ZERO\"]) ? \"0\" : \"\"));\n};\n\n// Grid Layout Functions\nconst expandLayoutSidebar = () => {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LAYOUT_SIDEBAR_PANEL\"]).addClass(\"in\");\n};\n\nconst toggleLayout = (on, off) => {\n if (!$(on).prop(\"checked\")) {\n $(on).prop(\"checked\", true);\n $(off).prop(\"checked\", false);\n $(`${off} span`).removeClass(\"glyphicon-ok\");\n $(`${on} span`).addClass(\"glyphicon-ok\");\n }\n};\n\nconst updatetoForceGraph = () => {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOCK_SLIDERS_BUTTON\"]).removeAttr(\"disabled\");\n toggleLayout(_constants__WEBPACK_IMPORTED_MODULE_5__[\"FORCE_GRAPH_MENU\"], _constants__WEBPACK_IMPORTED_MODULE_5__[\"GRID_LAYOUT_MENU\"]);\n};\n\nconst updatetoGridLayout = () => {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOCK_SLIDERS_BUTTON\"]).attr(\"disabled\", true);\n toggleLayout(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GRID_LAYOUT_MENU\"], _constants__WEBPACK_IMPORTED_MODULE_5__[\"FORCE_GRAPH_MENU\"]);\n};\n\n// Node Coloring Functions\nconst showNodeColoringMenus = () => {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_SIDEBAR_PANEL\"]).removeClass(\"disabled\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_SIDEBAR_PANEL\"]).addClass(\"in\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_MENU\"]).removeClass(\"disabled\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_MENU_CLASS\"]).removeClass(\"disabled\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_SIDEBAR_HEADER_LINK\"]).attr(\"data-toggle\", \"collapse\");\n};\n\nconst disableNodeColoringMenus = () => {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_SIDEBAR_PANEL\"]).addClass(\"disabled\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_SIDEBAR_PANEL\"]).removeClass(\"in\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_MENU\"]).addClass(\"disabled\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_MENU_CLASS\"]).addClass(\"disabled\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_SIDEBAR_HEADER_LINK\"]).attr(\"data-toggle\", \"\");\n};\n\nconst isNewWorkbook = (name) => {\n return _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.lastDataset === null || _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.lastDataset !== name;\n};\n\nconst shortenExpressionSheetName = (name) => {\n return (name.length > _constants__WEBPACK_IMPORTED_MODULE_5__[\"MAX_NUM_CHARACTERS_DROPDOWN\"]) ?\n (name.slice(0, _constants__WEBPACK_IMPORTED_MODULE_5__[\"MAX_NUM_CHARACTERS_DROPDOWN\"]) + \"...\") : name;\n};\n\nconst hasExpressionData = (sheets) => {\n for (var property in sheets) {\n if (property.match(_constants__WEBPACK_IMPORTED_MODULE_5__[\"ENDS_IN_EXPRESSION_REGEXP\"])) {\n return true;\n }\n }\n return false;\n};\n\nconst updateSpeciesMenu = () => {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_DISPLAY\"]).val(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.species);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_BUTTON_CRESS\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_BUTTON_FLY\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_BUTTON_HUMAN\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_BUTTON_YEAST\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_BUTTON_NEMATODE\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_BUTTON_MOUSE\"] + \" span\").removeClass(\"glyphicon-ok\");\n if ($(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_DISPLAY\"]).val() === \"Arabidopsis_thaliana\") {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_BUTTON_CRESS\"] + \" span\").addClass(\"glyphicon-ok\");\n }\n if ($(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_DISPLAY\"]).val() === \"Drosophila_melanogaster\") {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_BUTTON_FLY\"] + \" span\").addClass(\"glyphicon-ok\");\n }\n if ($(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_DISPLAY\"]).val() === \"Caenorhabditis_elegans\") {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_BUTTON_NEMATODE\"] + \" span\").addClass(\"glyphicon-ok\");\n }\n if ($(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_DISPLAY\"]).val() === \"Homo_sapiens\") {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_BUTTON_HUMAN\"] + \" span\").addClass(\"glyphicon-ok\");\n }\n if ($(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_DISPLAY\"]).val() === \"Mus_musculus\") {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_BUTTON_MOUSE\"] + \" span\").addClass(\"glyphicon-ok\");\n }\n if ($(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_DISPLAY\"]).val() === \"Saccharomyces_cerevisiae\") {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_BUTTON_YEAST\"] + \" span\").addClass(\"glyphicon-ok\");\n }\n};\n\n// helper method to check if the given data, a taxon id or a species name\n// is contained within the identified species, if it exists at all.\nconst identifySpeciesMenu = (data) => {\n var nameTax = _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nameToTaxon;\n for (var n in nameTax) {\n if (Object.values(nameTax[n]).includes(data.toString())) {\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.commonName = n;\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.species = nameTax[n].spec;\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.taxonJaspar = nameTax[n].jaspar;\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.taxonUniprot = nameTax[n].uniprot;\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.ensembl = nameTax[n].ensembl;\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.mine = nameTax[n].mine;\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_DISPLAY\"]).val(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.species);\n updateSpeciesMenu();\n return _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.identified;\n }\n }\n return false;\n};\n\nconst identifySpeciesOrTaxon = (data) => {\n var nameTax = _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nameToTaxon;\n for (var n in nameTax) {\n if (n === data) { // <-- change if to work\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.commonName = n;\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.species = nameTax[n].spec;\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.taxonJaspar = nameTax[n].jaspar.toString();\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.taxonUniprot = nameTax[n].uniprot.toString();\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.identified = true;\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.ensembl = nameTax[n].ensembl;\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.mine = nameTax[n].mine;\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_DISPLAY\"]).val(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.species);\n updateSpeciesMenu();\n return _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.identified;\n }\n for (var t in Object.values(nameTax[n])) {\n if (Object.values(nameTax[n])[t] === data) {\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.commonName = n;\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.species = nameTax[n].spec;\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.taxonJaspar = nameTax[n].jaspar.toString();\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.taxonUniprot = nameTax[n].uniprot.toString();\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.identified = true;\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.ensembl = nameTax[n].ensembl;\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.mine = nameTax[n].mine;\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_DISPLAY\"]).val(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.species);\n updateSpeciesMenu();\n return _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.identified;\n }\n }\n }\n return false;\n};\n\n // renderNodeColoring: function () { }, // defined in graph.js\n\nconst clearDropdownMenus = () => {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"TOP_DATASET_SELECTION_SIDEBAR\"]).html(\"\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_SIDEBAR\"]).html(\"\");\n};\n\nconst expressionDBDatasets = [\"Barreto_2012_wt\", \"Dahlquist_2018_dcin5\",\n \"Dahlquist_2018_dgln3\", \"Dahlquist_2018_dhap4\", \"Dahlquist_2018_dzap1\",\n \"Dahlquist_2018_wt\", \"Kitagawa_2002_wt\", \"Thorsen_2007_wt\"];\n\nconst resetDatasetDropdownMenus = (workbook) => {\n clearDropdownMenus();\n $(\".dataset-option\").remove(); // clear all menu dataset options\n\n var createHTMLforDataset = function (name) {\n return `\n <li class=\\\"dataset-option node-coloring-menu\\\" value=\\\"${name}\\\">\n <a>\n <span class=\\\"glyphicon\\\"></span>\n ${name}\n </a>\n </li>`;\n };\n\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.nodeColoringOptions = [];\n for (var property in workbook.expression) {\n if (property.match(_constants__WEBPACK_IMPORTED_MODULE_5__[\"ENDS_IN_EXPRESSION_REGEXP\"])) {\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.nodeColoringOptions.push({value: property});\n }\n }\n\n // Add expression database options\n expressionDBDatasets.forEach(option => _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.nodeColoringOptions.push({value: [option]}));\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_SIDEBAR\"]).append($(\"<option>\")\n .attr(\"value\", \"Same as Top Dataset\").text(\"Same as Top Dataset\"));\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_MENU\"]).append(createHTMLforDataset(\"Same as Top Dataset\"));\n\n // $(DATA_SET_SELECT).append($(\"<option>\").attr(\"value\", \"Dahlquist\").text(\"Dahlquist\"));\n\n _grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.nodeColoringOptions.forEach(function (option) {\n var shortenedSheetName = shortenExpressionSheetName(option.value);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"TOP_DATASET_SELECTION_SIDEBAR\"]).append($(\"<option>\")\n .addClass(\"dataset-option\")\n .attr(\"value\", option.value).text(shortenedSheetName));\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"TOP_DATASET_SELECTION_MENU\"])\n .append(createHTMLforDataset(option.value));\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_SIDEBAR\"]).append($(\"<option>\")\n .addClass(\"dataset-option\")\n .attr(\"value\", option.value).text(shortenedSheetName));\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_MENU\"])\n .append(createHTMLforDataset(option.value));\n });\n\n $(\"#topDatasetDropdownMenu li a span\").first().addClass(\"glyphicon-ok\");\n $(\"#bottomDatasetDropdownMenu li a span\").first().addClass(\"glyphicon-ok\");\n};\n\nconst updateLogFoldChangeMaxValue = () => {\n var value = logFoldChangeMaxValueInputValidation(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.logFoldChangeMaxValue);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOG_FOLD_CHANGE_MAX_VALUE_SIDEBAR_INPUT\"]).val(value);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOG_FOLD_CHANGE_MAX_VALUE_MENU\"]).val(value);\n _graph__WEBPACK_IMPORTED_MODULE_0__[\"updaters\"].renderNodeColoring();\n};\n\nconst removeAllChecksFromMenuDatasetOptions = (id) => {\n $(`${id} li a span`).each(\n function () {\n $(this).removeClass(\"glyphicon-ok\");\n }\n );\n};\n\nconst updateTopDataset = () => {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"TOP_DATASET_SELECTION_SIDEBAR\"]).val(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.topDataset);\n removeAllChecksFromMenuDatasetOptions(_constants__WEBPACK_IMPORTED_MODULE_5__[\"TOP_DATASET_SELECTION_MENU\"]);\n $(`${_constants__WEBPACK_IMPORTED_MODULE_5__[\"TOP_DATASET_SELECTION_MENU\"]} li[value='${_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.topDataset}'] a span`).addClass(\"glyphicon-ok\");\n _graph__WEBPACK_IMPORTED_MODULE_0__[\"updaters\"].renderNodeColoring();\n};\n\nconst updateBottomDataset = () => {\n if (_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.bottomDataSameAsTop) {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_SIDEBAR\"]).val(\"Same as Top Dataset\");\n removeAllChecksFromMenuDatasetOptions(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_MENU\"]);\n $(`${_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_MENU\"]} li[value='${\"Same as Top Dataset\"}'] a span`).addClass(\"glyphicon-ok\");\n } else {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_SIDEBAR\"]).val(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.bottomDataset);\n removeAllChecksFromMenuDatasetOptions(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_MENU\"]);\n /* eslint-disable max-len */\n $(`${_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_MENU\"]} li[value='${_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].nodeColoring.bottomDataset}'] a span`)\n .addClass(\"glyphicon-ok\");\n /* eslint-enable max-len */\n }\n\n _graph__WEBPACK_IMPORTED_MODULE_0__[\"updaters\"].renderNodeColoring();\n};\n\nif (!_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.identified) {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"SPECIES_DISPLAY\"]).val(_grnstate__WEBPACK_IMPORTED_MODULE_4__[\"grnState\"].genePageData.species);\n}\n\nconst updateApp = grnState => {\n if (grnState.newWorkbook) {\n grnState.normalizationMax = Object(d3_array__WEBPACK_IMPORTED_MODULE_3__[\"max\"])(grnState.workbook.positiveWeights.concat(grnState.workbook.negativeWeights));\n displayworkbook(grnState.workbook, grnState.name);\n expandLayoutSidebar();\n clearDropdownMenus();\n // check if the species has been identified yet, if not try to identify it\n // also checks if the areas have been populated at all\n var workbookSpecies = grnState.workbook.meta.species;\n var workbookTaxon = grnState.workbook.meta.taxon_id;\n if (identifySpeciesOrTaxon(workbookSpecies) || identifySpeciesOrTaxon(workbookTaxon)) {\n identifySpeciesOrTaxon(workbookSpecies);\n identifySpeciesOrTaxon(workbookTaxon);\n }\n\n // nodeColoringEnabled will only be set the very first time; because otherwise the user will have\n // made a choice and we will let the choice stick.\n if (hasExpressionData(grnState.workbook.expression)) {\n resetDatasetDropdownMenus(grnState.workbook);\n if (grnState.nodeColoring.nodeColoringEnabled === undefined) {\n grnState.nodeColoring.nodeColoringEnabled = true;\n }\n\n if (isNewWorkbook(name)) {\n grnState.nodeColoring.showMenu = true;\n grnState.nodeColoring.lastDataset = name;\n showNodeColoringMenus();\n }\n grnState.nodeColoring.topDataset = $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"TOP_DATASET_SELECTION_SIDEBAR\"]).find(\":selected\").attr(\"value\");\n if ($(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_SIDEBAR\"]).find(\":selected\").attr(\"value\") === \"Same as Top Dataset\") {\n grnState.nodeColoring.bottomDataset = grnState.nodeColoring.topDataset;\n grnState.nodeColoring.bottomDataSameAsTop = true;\n } else {\n grnState.nodeColoring.bottomDataset =\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"BOTTOM_DATASET_SELECTION_SIDEBAR\"]).find(\":selected\").attr(\"value\");\n grnState.nodeColoring.bottomDataSameAsTop = false;\n }\n } else {\n if (grnState.nodeColoring.nodeColoringEnabled === undefined) {\n grnState.nodeColoringEnabled = false;\n }\n }\n refreshApp();\n\n // Rare exception to the MVC cycle: right now we have no way of knowing whether the workbook has changed\n // (which is what necessitates displayworkbook), so we mark the model here.\n grnState.newWorkbook = false;\n }\n\n synchronizeNormalizationValues(grnState.normalizationMax);\n synchronizeGrayEdgeValues(grnState.grayEdgeThreshold);\n\n// Dashed Line Synchronization\n if (grnState.dashedLine) {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GREY_EDGES_DASHED_MENU\"] + \" span\").addClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GREY_EDGES_DASHED_MENU\"]).prop(\"checked\", \"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GREY_EDGES_DASHED_SIDEBAR\"]).prop(\"checked\", \"checked\");\n } else {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GREY_EDGES_DASHED_MENU\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GREY_EDGES_DASHED_MENU\"]).removeProp(\"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"GREY_EDGES_DASHED_SIDEBAR\"]).removeProp(\"checked\");\n }\n\n// Weights functions\n if (grnState.edgeWeightDisplayOption === _constants__WEBPACK_IMPORTED_MODULE_5__[\"SHOW_WEIGHTS_MOUSEOVER\"]) {\n synchronizeShowWeightsMouseover();\n } else if (grnState.edgeWeightDisplayOption === _constants__WEBPACK_IMPORTED_MODULE_5__[\"SHOW_ALL_WEIGHTS\"]) {\n synchronizeShowAllWeights();\n } else if (grnState.edgeWeightDisplayOption === _constants__WEBPACK_IMPORTED_MODULE_5__[\"HIDE_ALL_WEIGHTS\"]) {\n synchronizeHideAllWeights();\n }\n\n// Enable/Disable Colored edges\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"COLOR_EDGES_SIDEBAR\"]).prop(\"checked\", grnState.colorOptimal);\n const classFunction = `${grnState.colorOptimal ? \"add\" : \"remove\"}Class`;\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"COLOR_EDGES_MENU\"])[classFunction](_constants__WEBPACK_IMPORTED_MODULE_5__[\"ACTIVE_COLOR_OPTION\"]);\n $(`${_constants__WEBPACK_IMPORTED_MODULE_5__[\"COLOR_EDGES_MENU\"]}>span`)[classFunction](\"glyphicon-ok\");\n\n// Graph Layout\n if (grnState.graphLayout === _constants__WEBPACK_IMPORTED_MODULE_5__[\"FORCE_GRAPH\"]) {\n updatetoForceGraph();\n } else if (grnState.graphLayout === _constants__WEBPACK_IMPORTED_MODULE_5__[\"GRID_LAYOUT\"]) {\n updatetoGridLayout();\n }\n\n// Viewport\n updateViewportSize(grnState.viewportSize);\n\n // Node Coloring\n if (grnState.workbook !== null && grnState.nodeColoring.nodeColoringEnabled\n && hasExpressionData(grnState.workbook.expression)) {\n grnState.nodeColoring.showMenu = true;\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_TOP_SIDEBAR\"]).prop(\"checked\", true);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_BOTTOM_SIDEBAR\"]).prop(\"checked\", true);\n $(`${_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_TOGGLE_MENU\"]} span`).addClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_TOGGLE_SIDEBAR\"]).prop(\"checked\", true);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOG_FOLD_CHANGE_MAX_VALUE_CLASS\"]).val(_constants__WEBPACK_IMPORTED_MODULE_5__[\"DEFAULT_MAX_LOG_FOLD_CHANGE\"]);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_SIDEBAR_BODY\"]).removeClass(\"hidden\");\n if (expressionDBDatasets.includes(grnState.nodeColoring.topDataset) &&\n grnState.workbook.expression[grnState.nodeColoring.topDataset] === undefined) {\n if ($(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_TOGGLE_SIDEBAR\"]).prop(\"checked\")) {\n loadExpressionDatabase(true);\n }\n } else if (expressionDBDatasets.includes(grnState.nodeColoring.bottomDataset) &&\n !grnState.nodeColoring.bottomDataSameAsTop &&\n grnState.workbook.expression[grnState.nodeColoring.bottomDataset] === undefined) {\n if (!grnState.nodeColoring.bottomDataSameAsTop) {\n loadExpressionDatabase(false);\n }\n } else {\n _graph__WEBPACK_IMPORTED_MODULE_0__[\"updaters\"].renderNodeColoring();\n }\n } else if (grnState.workbook !== null && !hasExpressionData(grnState.workbook.expression)\n && grnState.nodeColoring.nodeColoringEnabled) {\n if ((grnState.workbook.expression[grnState.nodeColoring.topDataset] === undefined) ||\n (!grnState.nodeColoring.bottomDataSameAsTop &&\n grnState.workbook.expression[grnState.nodeColoring.bottomDataset] === undefined)) {\n _graph__WEBPACK_IMPORTED_MODULE_0__[\"updaters\"].removeNodeColoring();\n resetDatasetDropdownMenus(grnState.workbook);\n }\n grnState.nodeColoring.showMenu = true;\n grnState.nodeColoring.topDataset = grnState.nodeColoring.topDataset ?\n grnState.nodeColoring.topDataset : \"Barreto_2012_wt\";\n grnState.nodeColoring.bottomDataset = grnState.nodeColoring.bottomDataset ?\n grnState.nodeColoring.bottomDataset : \"Barreto_2012_wt\";\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOG_FOLD_CHANGE_MAX_VALUE_CLASS\"]).addClass(\"hidden\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOG_FOLD_CHANGE_MAX_VALUE_SIDEBAR_BUTTON\"]).addClass(\"hidden\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"LOG_FOLD_CHANGE_MAX_VALUE_HEADER\"]).addClass(\"hidden\");\n if ($(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_TOGGLE_SIDEBAR\"]).prop(\"checked\")) {\n if (grnState.workbook.expression[grnState.nodeColoring.topDataset] === undefined) {\n loadExpressionDatabase(true);\n } else if (!grnState.nodeColoring.bottomDataSameAsTop &&\n grnState.workbook.expression[grnState.nodeColoring.bottomDataset] === undefined) {\n loadExpressionDatabase(false);\n } else {\n enableNodeColoringUI();\n // There is as problem here! When a dataset from the database is used to do node coloring,\n // but then the layout of the graph is changed (force graph to grid layout, for instance),\n // node coloring goes away, seemingly inexplicably.\n // !!!!! TEMPORARY WORKAROUND:\n // Calling `updaters.renderNodeColoring()` inline does not succeed; instead, a delay\n // has to take place, done here via `setTimeout`.\n //\n // The delay is built-in to the cases where a query has to happen first.\n //\n // For some reason, calling updates.renderNodeColoring() _synchronously_ does not\n // actually perform the node coloring.\n //\n // Investigate why a timeout is required in order for node coloring to take place\n // successfully in this case.\n setTimeout(() => _graph__WEBPACK_IMPORTED_MODULE_0__[\"updaters\"].renderNodeColoring(), 250);\n\n }\n }\n } else if (grnState.workbook !== null && !grnState.nodeColoring.nodeColoringEnabled) {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_SIDEBAR_BODY\"]).addClass(\"hidden\");\n $(`${_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_TOGGLE_MENU\"]} span`).removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"NODE_COLORING_TOGGLE_SIDEBAR\"]).prop(\"checked\", false);\n }\n\n if (grnState.workbook !== null && grnState.workbook.sheetType === \"weighted\") {\n showEdgeWeightOptions();\n } else if (grnState.workbook !== null && grnState.workbook.sheetType === \"unweighted\") {\n hideEdgeWeightOptions();\n } else {\n hideEdgeWeightOptions();\n }\n\n if (grnState.nodeColoring.averageTopDataset) {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_TOP_MENU\"] + \" span\").addClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_TOP_MENU\"]).prop(\"checked\", \"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_TOP_SIDEBAR\"]).prop(\"checked\", \"checked\");\n _graph__WEBPACK_IMPORTED_MODULE_0__[\"updaters\"].renderNodeColoring();\n } else {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_TOP_MENU\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_TOP_MENU\"]).removeProp(\"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_TOP_SIDEBAR\"]).removeProp(\"checked\");\n _graph__WEBPACK_IMPORTED_MODULE_0__[\"updaters\"].renderNodeColoring();\n }\n\n if (grnState.nodeColoring.averageBottomDataset) {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_BOTTOM_MENU\"] + \" span\").addClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_BOTTOM_MENU\"]).prop(\"checked\", \"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_BOTTOM_SIDEBAR\"]).prop(\"checked\", \"checked\");\n\n _graph__WEBPACK_IMPORTED_MODULE_0__[\"updaters\"].renderNodeColoring();\n } else {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_BOTTOM_MENU\"] + \" span\").removeClass(\"glyphicon-ok\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_BOTTOM_MENU\"]).removeProp(\"checked\");\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"AVG_REPLICATE_VALS_BOTTOM_SIDEBAR\"]).removeProp(\"checked\");\n\n _graph__WEBPACK_IMPORTED_MODULE_0__[\"updaters\"].renderNodeColoring();\n }\n\n if (grnState.nodeColoring.showMenu) {\n showNodeColoringMenus();\n } else {\n disableNodeColoringMenus();\n }\n\n updateLogFoldChangeMaxValue();\n updateTopDataset();\n updateBottomDataset();\n updateSliderState(grnState.slidersLocked);\n\n if (grnState.showUndoReset) {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"UNDO_SLIDERS_RESET_SIDEBAR\"]).prop(\"disabled\", false);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"UNDO_SLIDERS_RESET_MENU\"]).parent().removeClass(\"disabled\");\n } else {\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"UNDO_SLIDERS_RESET_SIDEBAR\"]).prop(\"disabled\", true);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"UNDO_SLIDERS_RESET_MENU\"]).parent().addClass(\"disabled\");\n }\n\n updateChargeSliderValues();\n updateLinkDistanceSliderValues();\n\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"ZOOM_CONTROL\"]).prop({ disabled: !grnState.workbook });\n if (!grnState.workbook) {\n // Set initial values when there is no workbook: this is necessarily explicit because Firefox\n // preserves these values even upon a browser reload.\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"ZOOM_INPUT\"]).val(_constants__WEBPACK_IMPORTED_MODULE_5__[\"ZOOM_DISPLAY_MIDDLE\"]);\n $(_constants__WEBPACK_IMPORTED_MODULE_5__[\"ZOOM_SLIDER\"]).val(_constants__WEBPACK_IMPORTED_MODULE_5__[\"ZOOM_ADAPTIVE_MAX_SCALE\"]);\n }\n refreshApp();\n\n};\n\n\n\n\n//# sourceURL=webpack:///./web-client/public/js/update-app.js?");
|
|
2263
2332
|
|
|
2264
2333
|
/***/ }),
|
|
2265
2334
|
|
|
@@ -2271,7 +2340,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
2271
2340
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2272
2341
|
|
|
2273
2342
|
"use strict";
|
|
2274
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"uploadState\", function() { return uploadState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"upload\", function() { return upload; });\n// TODO Likely a temporary location, while things are being moved to their \"true\" homes.\n// But placed here for now so that the true MVC cycle of grnState, updateApp, and the\n// controller code installed by setupHandlers can access them.\n\nconst uploadState = {\n currentNetwork: null,\n};\n\nconst upload = function () {\n\n // Values\n var TOOLTIP_SHOW_DELAY = 700;\n var TOOLTIP_HIDE_DELAY = 100;\n\n // Settings Stuff\n var styleLabelTooltips = function () {\n $(\".info\").tooltip({\n placement: \"top\",\n delay: { show: TOOLTIP_SHOW_DELAY, hide: TOOLTIP_HIDE_DELAY }\n });\n };\n\n styleLabelTooltips();\n\n $(\"#printGraph\").click( function () {\n if (!$(\".startDisabled\").hasClass(\"disabled\")) {\n window.print();\n }\n });\n\n // Style of the tooltips when the user mouses over the label names\n $(\".info\").tooltip({\n placement: \"top\",\n delay: { show: 700, hide: 100 }\n });\n\n $(\"#warningsModal\").on(\"hidden.bs.modal\", function () {\n if ($(\"#warningsInfo\").hasClass(\"in\")) {\n $(\"#warningsInfo\").removeClass(\"in\");\n }\n });\n\n var flattenNetwork = function (network, sheetType) {\n var result = $.extend(true, { }, network, { sheetType: sheetType });\n result.links.forEach(function (link) {\n link.source = link.source.index;\n link.target = link.target.index;\n delete link.weightElement;\n });\n return result;\n };\n\n var filenameWithExtension = function (suffix, extension) {\n var filename = $(\"#fileName\").text();\n var currentExtension = filename.match(/\\.[^\\.]+$/);\n if (currentExtension && currentExtension.length) {\n filename = filename.substr(0, filename.length - currentExtension[0].length);\n }\n\n if (suffix) {\n filename = filename + \"_\" + suffix;\n }\n\n return filename + \".\" + extension;\n };\n\n var performExport = function (route, extension, sheetType) {\n return function () {\n // Deleted event parameter\n if (!$(this).parent().hasClass(\"disabled\")) {\n var networkToExport = flattenNetwork(uploadState.currentNetwork, sheetType);\n var networkFilename = filenameWithExtension(sheetType !== uploadState.currentNetwork.sheetType ?\n sheetType : \"\", extension);\n networkToExport.filename = networkFilename;\n\n var exportForm = $(\"<form></form>\").attr({\n method: \"POST\",\n action: $(\"#service-root\").val() + \"/\" + route\n }).append($(\"<input></input>\").attr({\n type: \"hidden\",\n name: \"filename\",\n value: networkFilename\n })).append($(\"<input></input>\").attr({\n type: \"hidden\",\n name: \"network\",\n value: JSON.stringify(networkToExport)\n }));\n $(\"body\").append(exportForm);\n exportForm.submit();\n exportForm.remove();\n }\n };\n };\n\n $(\"#exportAsExcelWkbk\").click(performExport(\"export-to-excel\", \"xlsx\", \"unweighted\"));\n $(\"#exportAsUnweightedSif\").click(performExport(\"export-to-sif\", \"sif\", \"unweighted\"));\n $(\"#exportAsWeightedSif\").click(performExport(\"export-to-sif\", \"sif\", \"weighted\"));\n $(\"#exportAsUnweightedGraphMl\").click(performExport(\"export-to-graphml\", \"graphml\", \"unweighted\"));\n $(\"#exportAsWeightedGraphMl\").click(performExport(\"export-to-graphml\", \"graphml\", \"weighted\"));\n\n // Prevent Bootstrap dropdown from closing on clicks in menu input boxes\n // https://stackoverflow.com/a/27759926\n $(\".dropdown\").on({\n \"click\": function (event) {\n if ($(event.target).hasClass(\"keepopen\")) {\n $(this).data(\"closable\", $(event.target).closest(\".dropdown-toggle\").length !== 0);\n }\n },\n \"hide.bs.dropdown\": function () {\n var hide = $(this).data(\"closable\");\n $(this).data(\"closable\", true);\n return hide;\n }\n });\n\n};\n\n\n//# sourceURL=webpack:///./web-client/public/js/upload.js?");
|
|
2343
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"uploadState\", function() { return uploadState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"upload\", function() { return upload; });\n/* harmony import */ var _grnstate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./grnstate */ \"./web-client/public/js/grnstate.js\");\n/* harmony import */ var _update_app__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./update-app */ \"./web-client/public/js/update-app.js\");\n/* harmony import */ var _api_grnsight_api_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./api/grnsight-api.js */ \"./web-client/public/js/api/grnsight-api.js\");\n// TODO Likely a temporary location, while things are being moved to their \"true\" homes.\n// But placed here for now so that the true MVC cycle of grnState, updateApp, and the\n// controller code installed by setupHandlers can access them.\n\n/* eslint-disable max-len */\n\n\n\n\n\n\nconst uploadState = {\n currentWorkbook: null,\n};\n\nconst upload = function () {\n\n // Values\n var TOOLTIP_SHOW_DELAY = 700;\n var TOOLTIP_HIDE_DELAY = 100;\n\n // Settings Stuff\n var styleLabelTooltips = function () {\n $(\".info\").tooltip({\n placement: \"top\",\n delay: { show: TOOLTIP_SHOW_DELAY, hide: TOOLTIP_HIDE_DELAY }\n });\n };\n\n styleLabelTooltips();\n\n $(\"#printGraph\").click( function () {\n if (!$(\".startDisabled\").hasClass(\"disabled\")) {\n window.print();\n }\n });\n\n // Style of the tooltips when the user mouses over the label names\n $(\".info\").tooltip({\n placement: \"top\",\n delay: { show: 700, hide: 100 }\n });\n\n $(\"#warningsModal\").on(\"hidden.bs.modal\", function () {\n if ($(\"#warningsInfo\").hasClass(\"in\")) {\n $(\"#warningsInfo\").removeClass(\"in\");\n }\n });\n\n var flattenWorkbook = function (workbook, sheetType) {\n var result = $.extend(true, { }, workbook, { sheetType: sheetType });\n result.links.forEach(function (link) {\n link.source = link.source.index;\n link.target = link.target.index;\n delete link.weightElement;\n });\n return result;\n };\n\n var filenameWithExtension = function (suffix, extension) {\n var filename = $(\"#fileName\").text();\n var currentExtension = filename.match(/\\.[^\\.]+$/);\n if (currentExtension && currentExtension.length) {\n filename = filename.substr(0, filename.length - currentExtension[0].length);\n }\n if (suffix) {\n filename = filename + \"_\" + suffix;\n }\n\n return filename + \".\" + extension;\n };\n\n const handleExportExcelButtonExport = (route, extension, sheetType, source) => {\n _grnstate__WEBPACK_IMPORTED_MODULE_0__[\"grnState\"].workbook.exportNetworkType = sheetType;\n const expressionSheets = $(\"input[name=expressionSheets]:checked\");\n var chosenSheets = [];\n for (const [key, value] of Object.entries(expressionSheets)) {\n if (!isNaN(parseInt(key, 10))) {\n if (value.value === \"select all\") {\n const allExpressionSheets = $(\"input[name=expressionSheets]\");\n chosenSheets = [];\n for (const [k, v] of Object.entries(allExpressionSheets)) {\n if (!isNaN(parseInt(k, 10))) {\n if (v.value !== \"select all\") {\n chosenSheets.push(v.value);\n }\n }\n }\n break;\n } else {\n chosenSheets.push(value.value);\n }\n }\n }\n const exportSheets = {};\n\n if (source === \"userInput\" && _grnstate__WEBPACK_IMPORTED_MODULE_0__[\"grnState\"].workbook.expression) {\n // source is from user speadsheet\n // parse through grnState expression sheets and collect the sheets to be exported\n for (let sheet of chosenSheets) {\n if (_grnstate__WEBPACK_IMPORTED_MODULE_0__[\"grnState\"].workbook.expression[sheet]) {\n exportSheets[sheet] = _grnstate__WEBPACK_IMPORTED_MODULE_0__[\"grnState\"].workbook.expression[sheet];\n }\n }\n _grnstate__WEBPACK_IMPORTED_MODULE_0__[\"grnState\"].workbook.exportExpression = exportSheets;\n if (!$(this).parent().hasClass(\"disabled\")) {\n var workbookToExport = flattenWorkbook(uploadState.currentWorkbook, sheetType);\n var workbookFilename = filenameWithExtension(sheetType !== uploadState.currentWorkbook.sheetType ?\n sheetType : \"\", extension);\n workbookToExport.filename = workbookFilename;\n\n var exportForm = $(\"<form></form>\").attr({\n method: \"POST\",\n action: $(\".service-root\").val() + \"/\" + route\n }).append($(\"<input></input>\").attr({\n type: \"hidden\",\n name: \"filename\",\n value: workbookFilename\n })).append($(\"<input></input>\").attr({\n type: \"hidden\",\n name: \"workbook\",\n value: JSON.stringify(workbookToExport)\n }));\n $(\"body\").append(exportForm);\n exportForm.submit();\n exportForm.remove();\n }\n $(\"#exportExcelModal\").modal(\"hide\");\n } else {\n // source is from database so lets query her up\n for (let sheet of chosenSheets) {\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"startLoadingIcon\"])();\n Object(_api_grnsight_api_js__WEBPACK_IMPORTED_MODULE_2__[\"queryExpressionDatabase\"])({\n dataset: sheet,\n genes : _grnstate__WEBPACK_IMPORTED_MODULE_0__[\"grnState\"].workbook.genes\n }).then(function (response) {\n exportSheets[sheet] = response;\n if (exportSheets[sheet]) {\n Object(_update_app__WEBPACK_IMPORTED_MODULE_1__[\"stopLoadingIcon\"])();\n if (Object.keys(exportSheets).length === chosenSheets.length) {\n // we have all of the sheets so lets initilize the export process\n const finalExportSheets = {};\n Object.keys(exportSheets).forEach((sheet) => {\n // make sure that the sheets we queried are populated with the correct data\n if (exportSheets[sheet].data && exportSheets[sheet].timePoints) {\n // if the resulting query contains both the timePoint data and\n // the gene data then export it. If not don't :)\n finalExportSheets[sheet] = exportSheets[sheet];\n }\n });\n _grnstate__WEBPACK_IMPORTED_MODULE_0__[\"grnState\"].workbook.exportExpression = finalExportSheets;\n if (!$(this).parent().hasClass(\"disabled\")) {\n var workbookToExport = flattenWorkbook(uploadState.currentWorkbook, sheetType);\n var workbookFilename = filenameWithExtension(sheetType !== uploadState.currentWorkbook.sheetType ?\n sheetType : \"\", extension);\n workbookToExport.filename = workbookFilename;\n var exportForm = $(\"<form></form>\").attr({\n method: \"POST\",\n action: $(\".service-root\").val() + \"/\" + route\n }).append($(\"<input></input>\").attr({\n type: \"hidden\",\n name: \"filename\",\n value: workbookFilename\n })).append($(\"<input></input>\").attr({\n type: \"hidden\",\n name: \"workbook\",\n value: JSON.stringify(workbookToExport)\n }));\n $(\"body\").append(exportForm);\n exportForm.submit();\n exportForm.remove();\n }\n $(\"#exportExcelModal\").modal(\"hide\");\n }\n }\n }).catch(function (error) {\n console.log(error.stack);\n console.log(error.name);\n console.log(error.message);\n });\n }\n }\n };\n\n var performExport = function (route, extension, sheetType, source) {\n return function () {\n // Deleted event parameter\n if (route === \"export-to-excel\" && source) {\n handleExportExcelButtonExport(route, extension, sheetType, source);\n } else {\n if (!$(this).parent().hasClass(\"disabled\")) {\n var workbookToExport = flattenWorkbook(uploadState.currentWorkbook, sheetType);\n var workbookFilename = filenameWithExtension(sheetType !== uploadState.currentWorkbook.sheetType ?\n sheetType : \"\", extension);\n workbookToExport.filename = workbookFilename;\n\n var exportForm = $(\"<form></form>\").attr({\n method: \"POST\",\n action: $(\".service-root\").val() + \"/\" + route\n }).append($(\"<input></input>\").attr({\n type: \"hidden\",\n name: \"filename\",\n value: workbookFilename\n })).append($(\"<input></input>\").attr({\n type: \"hidden\",\n name: \"workbook\",\n value: JSON.stringify(workbookToExport)\n }));\n $(\"body\").append(exportForm);\n exportForm.submit();\n exportForm.remove();\n }\n\n }\n };\n };\n\n const createHTMLforForm1 = () => {\n return `\n <form id=\\'exportExcelForm1\\'>\n <div class=\\'form-group\\'>\n <p id=\\'exportExcelNetwork\\'></p>\n <ul class=\\'export-radio-group\\' id=\\'export-excel-weights-list\\' style=\\\"list-style-type:none;\\\"> </ul>\n </div>\n <div class=\\'form-group\\'>\n <p id=\\'exportExcelExpressionSources\\'> </p>\n <ul class=\\'export-radio-group\\' id=\\'export-excel-expression-source-list\\' style=\\\"list-style-type:none;\\\">\n <li>\n <input type=\\'radio\\' name=\\'expressionSource\\' checked=\\\"true\\\" value=\\\"userInput\\\" id=\\'exportExcelExpressionSource-userInputRadio\\' class=\\'export-radio\\' />\n <label for=\\'exportExcelExpressionSource-userInputRadio\\' id=\\'exportExcelExpressionSource-userInput\\' class=\\'export-radio-label\\'> </label>\n </li>\n <li>\n <input type=\\'radio\\' name=\\'expressionSource\\' value=\\\"Dahlquist_2018\\\" id=\\'exportExcelExpressionSource-DahlquistRadio\\' class=\\'export-radio\\' />\n <label for=\\'exportExcelExpressionSource-DahlquistRadio\\' id=\\'exportExcelExpressionSource-Dahlquist\\' class=\\'export-radio-label\\'> </label>\n </li>\n <li>\n <input type=\\'radio\\' name=\\'expressionSource\\' value=\\\"Kitagawa_2002\\\" id=\\'exportExcelExpressionSource-KitagawaRadio\\' class=\\'export-radio\\' />\n <label for=\\'exportExcelExpressionSource-KitagawaRadio\\' id=\\'exportExcelExpressionSource-Kitagawa\\' class=\\'export-radio-label\\'> </label>\n </li>\n <li>\n <input type=\\'radio\\' name=\\'expressionSource\\' value=\\\"Thorsen_2007\\\" id=\\'exportExcelExpressionSource-ThorsenRadio\\' class=\\'export-radio\\' />\n <label for=\\'exportExcelExpressionSource-ThorsenRadio\\' id=\\'exportExcelExpressionSource-Thorsen\\' class=\\'export-radio-label\\'> </label>\n </li>\n <li>\n <input type=\\'radio\\' name=\\'expressionSource\\' value=\\\"Barreto_2012\\\" id=\\'exportExcelExpressionSource-BarretoRadio\\' class=\\'export-radio\\' />\n <label for=\\'exportExcelExpressionSource-BarretoRadio\\' id=\\'exportExcelExpressionSource-Barreto\\' class=\\'export-radio-label\\'> </label>\n </li>\n </ul>\n </div>\n <button type=\\'submit\\' class=\\'btn btn-default\\' id=\\'exportExcelContinueButton\\'> Continue </button>\n </form>\n `;\n };\n\n const createHTMLforForm2 = () => {\n return `\n <form id=\\'exportExcelForm2\\'>\n <div class=\\'form-group\\'>\n <p id=\\'exportExcelExpressionSheets\\'></p>\n <ul class=\\'exportExcelExpressionSheets\\' id=\\'export-excel-expression-sheet-list\\' style=\\\"list-style-type:none;\\\"> </ul>\n </div>\n <input type=\\'button\\' class=\\'btn btn-default\\' id=\\'exportExcelButton\\' value=\\'Export Workbook\\' />\n </form>\n `;\n };\n const createHTMLforWeights = () => {\n $(\".export-excel-weighted-option\").remove();\n if (_grnstate__WEBPACK_IMPORTED_MODULE_0__[\"grnState\"].workbook.sheetType !== \"weighted\") {\n return `\n <li class=\\'export-excel-weighted-option\\'>\n <input type=\\'radio\\' checked=\\\"true\\\" name=\\'network-weights\\' value=\\\"unweighted\\\" id=\\'exportExcelUnweightedRadio\\' class=\\'export-radio\\' />\n <label for=\\'exportExcelUnweightedRadio\\' id=\\'exportExcelUnweighted\\' class=\\'export-radio-label\\' >\n Unweighted\n </label>\n </li>`;\n } else {\n return `\n <li class=\\'export-excel-weighted-option\\'>\n <input type=\\'radio\\' checked=\\\"true\\\" name=\\'network-weights\\' value=\\\"weighted\\\" id=\\'exportExcelWeightedRadio\\' class=\\'export-radio\\' />\n <label for=\\'exportExcelWeightedRadio\\' id=\\'exportExcelWeighted\\' class=\\'export-radio-label\\' >\n Weighted\n </label>\n </li>\n <li class=\\'export-excel-weighted-option\\'>\n <input type=\\'radio\\' name=\\'network-weights\\' value=\\\"unweighted\\\" id=\\'exportExcelUnweightedRadio\\' class=\\'export-radio\\' />\n <label for=\\'exportExcelUnweightedRadio\\' id=\\'exportExcelUnweighted\\' class=\\'export-radio-label\\' >\n Unweighted\n </label>\n </li>\n `;\n }\n };\n\n const createHTMLforExpressionSheets = (source) => {\n $(\".export-excel-expression-sheet-option\").remove();\n // check if user updated data is selected\n let result = `\n <li class=\\'export-excel-expression-sheet-option\\'>\n <input type=\\'checkbox\\' name=\\'expressionSheets\\' checked=\\\"true\\\" value=\\\"select all\\\" id=\\'exportExcelExpression-All\\' class=\\'export-checkbox\\' />\n <label for=\\'exportExcelExpression-All\\' id=\\'exportExcelExpression-All-label\\' class=\\'export-checkbox-label\\' >\n All Expression Sheets\n </label>\n </li>\n `;\n if (source === \"userInput\") {\n for (let expression in _grnstate__WEBPACK_IMPORTED_MODULE_0__[\"grnState\"].workbook.expression) {\n result = result + `\n <li class=\\'export-excel-expression-sheet-option\\'>\n <input type=\\'checkbox\\' name=\\'expressionSheets\\' checked=\\\"true\\\" value=\\\"${expression}\\\" id=\\'exportExcelExpression-${expression}\\' class=\\'export-checkbox\\' />\n <label for=\\'exportExcelExpression-${expression}\\' id=\\'exportExcelExpression-${expression}-label\\' class=\\'export-checkbox-label\\' >\n ${expression}\n </label>\n </li>\n `;\n }\n } else if (source === \"Dahlquist_2018\") {\n // if the source is from a database\n result = result + `\n <li class=\\'export-excel-expression-sheet-option\\'>\n <input type=\\'checkbox\\' name=\\'expressionSheets\\' checked=\\\"true\\\" value=\\\"Dahlquist_2018_dcin5\\\" id=\\'exportExcelExpression-Dahlquist_2018_dcin5\\' class=\\'export-checkbox\\' />\n <label for=\\'exportExcelExpression-Dahlquist_2018_dcin5\\' id=\\'exportExcelExpression-Dahlquist_2018_dcin5-label\\' class=\\'export-checkbox-label\\' >\n Dahlquist_2018_dcin5\n </label>\n </li>\n <li class=\\'export-excel-expression-sheet-option\\'>\n <input type=\\'checkbox\\' checked=\\\"true\\\" name=\\'expressionSheets\\' value=\\\"Dahlquist_2018_dgln3\\\" id=\\'exportExcelExpression-Dahlquist_2018_dgln3\\' class=\\'export-checkbox\\' />\n <label for=\\'exportExcelExpression-Dahlquist_2018_dgln3\\' id=\\'exportExcelExpression-Dahlquist_2018_dgln3-label\\' class=\\'export-checkbox-label\\' >\n Dahlquist_2018_dgln3\n </label>\n </li>\n <li class=\\'export-excel-expression-sheet-option\\'>\n <input type=\\'checkbox\\' checked=\\\"true\\\" name=\\'expressionSheets\\' value=\\\"Dahlquist_2018_dhap4\\\" id=\\'exportExcelExpression-Dahlquist_2018_dhap4\\' class=\\'export-checkbox\\' />\n <label for=\\'exportExcelExpression-Dahlquist_2018_dhap4\\' id=\\'exportExcelExpression-Dahlquist_2018_dhap4-label\\' class=\\'export-checkbox-label\\' >\n Dahlquist_2018_dhap4\n </label>\n </li>\n <li class=\\'export-excel-expression-sheet-option\\'>\n <input type=\\'checkbox\\' checked=\\\"true\\\" name=\\'expressionSheets\\' value=\\\"Dahlquist_2018_dzap1\\\" id=\\'exportExcelExpression-Dahlquist_2018_dzap1\\' class=\\'export-checkbox\\' />\n <label for=\\'exportExcelExpression-Dahlquist_2018_dzap1\\' id=\\'exportExcelExpression-Dahlquist_2018_dzap1-label\\' class=\\'export-checkbox-label\\' >\n Dahlquist_2018_dzap1\n </label>\n </li>\n <div class=\\'expression-db-loader\\'></div>\n <div class=\\'expression-db-loader-text\\'>Expression Database is Loading</div>\n `;\n } else if (source === \"Kitagawa_2002\") {\n // if the source is from a database\n result = result + `\n <li class=\\'export-excel-expression-sheet-option\\'>\n <input type=\\'checkbox\\' checked=\\\"true\\\" name=\\'expressionSheets\\' value=\\\"Kitagawa_2002_wt\\\" id=\\'exportExcelExpression-Kitagawa_2002_wt\\' class=\\'export-checkbox\\' />\n <label for=\\'exportExcelExpression-Kitagawa_2002_wt\\' id=\\'exportExcelExpression-Kitagawa_2002_wt-label\\' class=\\'export-checkbox-label\\' >\n Kitagawa_2002_wt\n </label>\n </li>\n <div class=\\'expression-db-loader\\'></div>\n <div class=\\'expression-db-loader-text\\'>Expression Database is Loading</div>\n `;\n } else if (source === \"Thorsen_2007\") {\n // if the source is from a database\n result = result + `\n <li class=\\'export-excel-expression-sheet-option\\'>\n <input type=\\'checkbox\\' checked=\\\"true\\\" name=\\'expressionSheets\\' value=\\\"Thorsen_2007_wt\\\" id=\\'exportExcelExpression-Thorsen_2007_wt\\' class=\\'export-checkbox\\' />\n <label for=\\'exportExcelExpression-Thorsen_2007_wt\\' id=\\'exportExcelExpression-Thorsen_2007_wt-label\\' class=\\'export-checkbox-label\\' >\n Thorsen_2007_wt\n </label>\n </li>\n <div class=\\'expression-db-loader\\'></div>\n <div class=\\'expression-db-loader-text\\'>Expression Database is Loading</div>\n `;\n } else if (source === \"Barreto_2012\") {\n // if the source is from a database\n result = result + `\n <li class=\\'export-excel-expression-sheet-option\\'>\n <input type=\\'checkbox\\' checked=\\\"true\\\" name=\\'expressionSheets\\' value=\\\"Barreto_2012_wt\\\" id=\\'exportExcelExpression-Barreto_2012_wt\\' class=\\'export-checkbox\\' />\n <label for=\\'exportExcelExpression-Barreto_2012_wt\\' id=\\'exportExcelExpression-Barreto_2012_wt-label\\' class=\\'export-checkbox-label\\' >\n Barreto_2012_wt\n </label>\n </li>\n <div class=\\'expression-db-loader\\'></div>\n <div class=\\'expression-db-loader-text\\'>Expression Database is Loading</div>\n `;\n }\n return result;\n };\n\n const handleExportExcelButtonContinue = () => {\n const weight = $(\"input[name=network-weights]:checked\")[0].value;\n const source = $(\"input[name=expressionSource]:checked\")[0].value;\n $(\"#exportExcelForm1\").remove();\n // $(\"#exportExcelForm1\")[0].style = \"display:none;\";\n $(\"#exportExcelQuestions-containter\").append(createHTMLforForm2);\n $(\"#exportExcelExpressionSheets\").html(\"Select Expression Sheets:\");\n $(\"#export-excel-expression-sheet-list\").append(createHTMLforExpressionSheets(source));\n $(\"#exportExcelButton\").on(\"click\", performExport(\"export-to-excel\", \"xlsx\", weight, source));\n };\n\n var displayExportExcelModal = function () {\n $(\"#exportExcelForm2\").remove();\n $(\"#exportExcelQuestions-containter\").append(createHTMLforForm1);\n $(\"#exportExcelNetwork\").html(\"Select the workbooks export type:\");\n $(\"#export-excel-weights-list\").append(createHTMLforWeights());\n\n $(\"#exportExcelExpressionSources\").html(\"Select the Expression Data Source:\");\n $(\"#exportExcelExpressionSource-userInput\").html(_grnstate__WEBPACK_IMPORTED_MODULE_0__[\"grnState\"].name);\n $(\"#exportExcelExpressionSource-Dahlquist\").html(\"Dahlquist_2018\");\n $(\"#exportExcelExpressionSource-Kitagawa\").html(\"Kitagawa_2002\");\n $(\"#exportExcelExpressionSource-Thorsen\").html(\"Thorsen_2007\");\n $(\"#exportExcelExpressionSource-Barreto\").html(\"Barreto_2012\");\n $(\"#exportExcelContinueButton\").on(\"click\", () => handleExportExcelButtonContinue());\n $(\"#exportExcelModal\").modal(\"show\");\n };\n\n var performExcelExport = function () {\n return function () {\n if (!$(this).parent().hasClass(\"disabled\")) {\n displayExportExcelModal();\n }\n };\n };\n\n // $(\"#exportAsExcelWkbk\").click(performExport(\"export-to-excel\", \"xlsx\", \"unweighted\"));\n $(\"#exportAsUnweightedSif\").on(\"click\", performExport(\"export-to-sif\", \"sif\", \"unweighted\"));\n $(\"#exportAsWeightedSif\").on(\"click\", performExport(\"export-to-sif\", \"sif\", \"weighted\"));\n $(\"#exportAsUnweightedGraphMl\").on(\"click\", performExport(\"export-to-graphml\", \"graphml\", \"unweighted\"));\n $(\"#exportAsWeightedGraphMl\").on(\"click\", performExport(\"export-to-graphml\", \"graphml\", \"weighted\"));\n // $(\"#exportAsUnweightedExcel\").on(\"click\", performExport(\"export-to-excel\", \"xlsx\", \"unweighted\"));\n // $(\"#exportAsWeightedExcel\").on(\"click\", performExport(\"export-to-excel\", \"xlsx\", \"weighted\"));\n $(\"#exportAsExcel\").on(\"click\", performExcelExport());\n\n};\n\n\n//# sourceURL=webpack:///./web-client/public/js/upload.js?");
|
|
2275
2344
|
|
|
2276
2345
|
/***/ }),
|
|
2277
2346
|
|
|
@@ -2283,7 +2352,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
2283
2352
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2284
2353
|
|
|
2285
2354
|
"use strict";
|
|
2286
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"displayWarnings\", function() { return displayWarnings; });\nvar displayWarnings = function (warnings) {\n $(\"#warningIntro\").html(\"There were \" + warnings.length + \" warning(s) detected in this file. \" +\n \"The graph will be loaded, but may not be displayed accurately. \" +\n \"We recommend you review your file and ensure that it is formatted correctly. \" +\n \"To view the details of the warning(s), please click on the \\\"Warnings List\\\" below.\");\n
|
|
2355
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"displayWarnings\", function() { return displayWarnings; });\nvar displayWarnings = function (warnings) {\n $(\"#warningIntro\").html(\"There were \" + warnings.length + \" warning(s) detected in this file. \" +\n \"The graph will be loaded, but may not be displayed accurately. Please note that\" +\n \" this file may not export properly if this error remains in the workbook. \" +\n \"We recommend you review your file and ensure that it is formatted correctly. \" +\n \"To view the details of the warning(s), please click on the \\\"Warnings List\\\" below.\");\n var warningsString = \"\";\n var NUM_POSSIBLE_WARNINGS = 11;\n var warningCounts = {};\n var index = 0;\n // Fill printed with 0s programatically\n var printed = [];\n for (var i = 0; i < NUM_POSSIBLE_WARNINGS; i++) {\n printed.push(0);\n }\n\n var appendWarning = function (warning) {\n warningsString += warning.errorDescription + \"<br><br>\";\n };\n\n var createWarningsString = function (warningCount, index) {\n for (var i = 0; i < warningCount.length; i++) {\n if (warningCount.length <= 3) {\n appendWarning(warningCount[i]);\n } else if (printed[index] < 3) {\n appendWarning(warningCount[i]);\n printed[index]++;\n } else {\n warningsString += \"<i> \" + (+warningCount.length - 3) +\n \" more warning(s) like this exist. </i> <br><br>\";\n break;\n }\n }\n };\n\n for (let warning of warnings) {\n warningCounts[warning.warningCode] = (warningCounts[warning.warningCode]) ?\n [...warningCounts[warning.warningCode], warning] : [warning];\n }\n\n for (let warning in warningCounts) {\n createWarningsString(warningCounts[warning], index);\n index++;\n }\n\n $(\"#warningsList\").html(warningsString);\n\n var screenHeight = $(window).height();\n var MIN_SCREEN_HEIGHT = 600;\n var BORDER = 425;\n var setPanel = (screenHeight - BORDER) + \"px\";\n var minPanel = (MIN_SCREEN_HEIGHT - BORDER) + \"px\";\n if (screenHeight > MIN_SCREEN_HEIGHT) {\n $(\"#list-frame\").css({height: setPanel});\n } else {\n $(\"#list-frame\").css({height: minPanel});\n }\n\n $(\"#warningsModal\").modal(\"show\");\n};\n\n\n//# sourceURL=webpack:///./web-client/public/js/warnings.js?");
|
|
2287
2356
|
|
|
2288
2357
|
/***/ })
|
|
2289
2358
|
|