From 188cabe27bb3ba4bee14985624162ce8a130ee6a Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Mon, 25 Apr 2022 20:20:23 +0100 Subject: [PATCH 01/79] allow login with email --- login/models.py | 24 ++++++++++++++++++++++++ oeplatform/settings.py | 6 ++++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/login/models.py b/login/models.py index 7d4fc3cb0..c510b6c60 100644 --- a/login/models.py +++ b/login/models.py @@ -17,6 +17,9 @@ from django.db import models from django.db.models.signals import post_save from django.dispatch import receiver +from django.contrib.auth.backends import ModelBackend +from django.db.models import Q + from rest_framework.authtoken.models import Token import dataedit.models as datamodels @@ -287,3 +290,24 @@ def get_user(self, user_id): def create_auth_token(sender, instance=None, created=False, **kwargs): if created: Token.objects.create(user=instance) + + +class ModelBackendWithEmail(ModelBackend): + def authenticate(self, request, username=None, password=None, **kwargs): + """Change authenticate of ModelBackend + + Args: + request: not used + username(str): username or email from login form + password(str): user password from login form + """ + try: + # find user object based on name OR email + user = myuser.objects.get(Q(name=username) | Q(email=username)) + except models.ObjectDoesNotExist: + return None + + if user.check_password(password): + return user + else: + return None \ No newline at end of file diff --git a/oeplatform/settings.py b/oeplatform/settings.py index 75d53d9f6..5e3025620 100644 --- a/oeplatform/settings.py +++ b/oeplatform/settings.py @@ -123,12 +123,14 @@ "rest_framework.authentication.TokenAuthentication", ) } + + AUTHENTICATION_BACKENDS = [ # AxesBackend should be the first backend in the AUTHENTICATION_BACKENDS list. 'axes.backends.AxesBackend', - # Django ModelBackend is the default authentication backend. - 'django.contrib.auth.backends.ModelBackend', + # custom class extenging Django ModelBackend for login with username OR email + 'login.models.ModelBackendWithEmail', ] DEFAULT_AUTO_FIELD = 'django.db.models.AutoField' \ No newline at end of file From d748f400a08c8fea07ae7d1c7a129481724e600e Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Tue, 7 Jun 2022 14:51:56 +0100 Subject: [PATCH 02/79] updated release procedure guide --- RELEASE_PROCEDURE.md | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/RELEASE_PROCEDURE.md b/RELEASE_PROCEDURE.md index 0a7f8a275..e8082f811 100644 --- a/RELEASE_PROCEDURE.md +++ b/RELEASE_PROCEDURE.md @@ -28,18 +28,22 @@ The project can be linked in an issue or pull request via the menu "Projects" ## Basic-Steps for deploy and release (publishing a new release) Before see How to [Contribute](https://github.com/OpenEnergyPlatform/oeplatform/blob/develop/CONTRIBUTING.md) +![git branching model](https://nvie.com/img/git-model@2x.png) + +1. Merge all feature and hotfix branches into `develop` 1. Starting out in the `develop` branch, make a release candidate branch (e.g., `release/vx.x.x`) - and pull request it into `master` with the following updates: - 1. Update the oeplatform/versions/changelogs/ [`current.md`](https://github.com/OpenEnergyPlatform/oeplatform/blob/develop/versions/changelogs/current.md) (see the examples of previous releases) - - Change filename to release version (x_x_x.md) - 1. Confirm that the PR passes all tests and checks - 1. Once successful, delete the tag, and merge the candidate PR into `master` on Github -1. Switch to the now-updated master branch: `git checkout master` and `git pull upstream master` +1. Update the oeplatform/versions/changelogs/ [`current.md`](https://github.com/OpenEnergyPlatform/oeplatform/blob/develop/versions/changelogs/current.md) (see the examples of previous releases) + - Change filename to release version (x_x_x.md) + - Copy template to `current.md` +1. merge release branch into `master` and `develop` + - make sure to pull before merge 1. Tag the release number: `git tag v`, e.g., `git tag v1.2.0` - `versioneer` automatically updates the version number based on the tag - this is now the official tagged commit -1. Push the tag upstream: `git push upstream --tags` + - Push the tag upstream: `git push upstream --tags` + - Alternatievely: tag on github platform while creating release 1. Make a new release on Github + - https://github.com/OpenEnergyPlatform/oeplatform/releases/new - make sure that you choose the tag name defined above - copy the release summary from changelog into the description box 1. Announce it on our mailing list: oep_dev-request@lists.riseup.net From 50e2868a755deeb9a26d6d24cf998fe467e8a9b0 Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Tue, 7 Jun 2022 17:07:11 +0100 Subject: [PATCH 03/79] tutorials: balance html tags --- requirements.txt | 4 +++- tutorials/tests.py | 35 +++++++++++++++++++++++------------ tutorials/views.py | 23 +++++++++++++++++++---- 3 files changed, 45 insertions(+), 17 deletions(-) diff --git a/requirements.txt b/requirements.txt index fdf0341ef..18b7d519e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -28,4 +28,6 @@ django_better_admin_arrayfield sparqlwrapper Pygments<=2.11.2 # latest version fails to convert fenced code blocks nbconvert>=6.4.5 -ipython # needed for IPython3Lexer for nbconvert \ No newline at end of file +ipython # needed for IPython3Lexer for nbconvert +beautifulsoup4 +html5lib \ No newline at end of file diff --git a/tutorials/tests.py b/tutorials/tests.py index dc9705f2f..30bdfd384 100644 --- a/tutorials/tests.py +++ b/tutorials/tests.py @@ -1,35 +1,37 @@ import re + from django.test import TestCase + from tutorials.views import formattedMarkdown + def md_to_html(md): # if md is list: assume these are lines and join them if isinstance(md, list): - md = '\n'.join(md) + md = "\n".join(md) html = formattedMarkdown(md) # make lowercase for comparison html = html.lower() # remove tag attributes for testing - html = re.sub('<([^> ]+)(|[^>]*)>', r'<\1>', html) + html = re.sub("<([^> ]+)(|[^>]*)>", r"<\1>", html) # remove additional

and
tags for testing - html = re.sub('', '', html) + html = re.sub("", "", html) #
to
- html = re.sub('
', '
', html) + html = re.sub("
", "
", html) # remove linebreaks spaces for test comparison - html = re.sub('\s+', '', html).strip() + html = re.sub("\s+", "", html).strip() return html -class TestMarkdown(TestCase): - +class TestMarkdown(TestCase): def test_formatted_markdown(self): """simple test that basic conversion works""" html = md_to_html("# header") - self.assertEqual(html, "

header

") + self.assertEqual(html, "

header

") def test_raw_html(self): - # https://spec.commonmark.org/0.30/#raw-html + # https://spec.commonmark.org/0.30/#raw-html # usually, the result is enclosed in a

tag # inline @@ -39,16 +41,25 @@ def test_raw_html(self): # block html = md_to_html(["", " ", "
"]) self.assertEqual("
", html) - + def test_blockquote(self): # https://spec.commonmark.org/0.30/#raw-html html = md_to_html(["> block line 1", "> block line 2"]) self.assertEqual("

blockline1
blockline2
", html) - + def test_codeblock(self): html = md_to_html(["```python", "code", "```"]) self.assertRegexpMatches(html, ".*
.*")
 
     def test_script(self):
-        html = md_to_html(["", "text", ""])
+        html = md_to_html(
+            ["", "text", ""]
+        )
         self.assertRegexpMatches(html, "text")
+
+    def test_autocorrect_html_964(self):
+        """automatically balance tags in raw html."""
+        html = md_to_html(["
test
"]) + self.assertEquals(html, "
test
") + html = md_to_html(["
test
"]) + self.assertEquals(html, "
test
") diff --git a/tutorials/views.py b/tutorials/views.py index 90ea95104..9afc08f67 100644 --- a/tutorials/views.py +++ b/tutorials/views.py @@ -13,6 +13,7 @@ from django.views.generic.edit import CreateView, DeleteView, UpdateView from jinja2 import DictLoader from markdown2 import Markdown +from bs4 import BeautifulSoup from .forms import TutorialForm from .models import CATEGORY_OPTIONS, LEVEL_OPTIONS, Tutorial @@ -271,6 +272,22 @@ def _processFormInput(form): return tutorial +def cleanup_html(html): + """ + + Args: + html (str): html code parsed from markdown + Returns: + str: cleaned html + """ + html = BeautifulSoup(html, 'html.parser') + html = str(html) + + # remove iframes and script + html = re.sub(']*>.*', '', html, re.IGNORECASE) + html = re.sub(']*>.*', '', html, re.IGNORECASE) + + return html def formattedMarkdown(markdown): """Markdown style text to html and return. @@ -298,10 +315,8 @@ def formattedMarkdown(markdown): } markdowner = Markdown(extras=extras) html = markdowner.convert(markdown) - - html = re.sub(']*>.*', '', html, re.IGNORECASE) - html = re.sub(']*>.*', '', html, re.IGNORECASE) - + html = cleanup_html(html) + return html From 53422861e6403e62f088bea22f7e9908b974a383 Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Tue, 7 Jun 2022 17:09:08 +0100 Subject: [PATCH 04/79] formatting and requirements.txt --- requirements.txt | 3 +-- tutorials/views.py | 40 +++++++++++++++++++++------------------- 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/requirements.txt b/requirements.txt index 18b7d519e..f97dfcad3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -29,5 +29,4 @@ sparqlwrapper Pygments<=2.11.2 # latest version fails to convert fenced code blocks nbconvert>=6.4.5 ipython # needed for IPython3Lexer for nbconvert -beautifulsoup4 -html5lib \ No newline at end of file +beautifulsoup4 # for markdown raw html cleanup diff --git a/tutorials/views.py b/tutorials/views.py index 9afc08f67..ee9e5bd54 100644 --- a/tutorials/views.py +++ b/tutorials/views.py @@ -5,6 +5,7 @@ import nbconvert import nbformat +from bs4 import BeautifulSoup from django.conf import settings from django.contrib.auth.mixins import LoginRequiredMixin from django.shortcuts import Http404, redirect, render @@ -13,12 +14,10 @@ from django.views.generic.edit import CreateView, DeleteView, UpdateView from jinja2 import DictLoader from markdown2 import Markdown -from bs4 import BeautifulSoup from .forms import TutorialForm from .models import CATEGORY_OPTIONS, LEVEL_OPTIONS, Tutorial - youtubeUrlRegex = re.compile(r"^.*youtube\.com\/watch\?v=(?P[A-z0-9]+)$") template_cache = {} @@ -216,8 +215,9 @@ def _resolveDynamicTutorials(tutorials_qs): """ Get all tutorials(created via oep website) form django db. - Evaluates a QuerySet and passes each evaluated object to the next function which returns a python - dictionary that contains all parameters from the object as dict. The dict is added to a list to + Evaluates a QuerySet and passes each evaluated object to the next function + which returns a python dictionary that contains all parameters from the + object as dict. The dict is added to a list to later merge the static and dynamic tutorials together. :param tutorials_qs: @@ -272,51 +272,53 @@ def _processFormInput(form): return tutorial + def cleanup_html(html): """ - + Args: html (str): html code parsed from markdown Returns: str: cleaned html """ - html = BeautifulSoup(html, 'html.parser') + html = BeautifulSoup(html, "html.parser") html = str(html) - + # remove iframes and script - html = re.sub(']*>.*', '', html, re.IGNORECASE) - html = re.sub(']*>.*', '', html, re.IGNORECASE) + html = re.sub("]*>.*", "", html, re.IGNORECASE) + html = re.sub("]*>.*", "", html, re.IGNORECASE) return html + def formattedMarkdown(markdown): """Markdown style text to html and return. This functionality is implemented using Markdown2 package. Args: markdown(str): markdown formatted text - + Returns: str: html """ - # TODO: Add syntax highliting, + # TODO: Add syntax highliting, # add css files -> https://github.com/trentm/python-markdown2/wiki/fenced-code-blocks - + # list of extras: https://github.com/trentm/python-markdown2/wiki/Extras extras = { - "break-on-newline": {}, + "break-on-newline": {}, "fenced-code-blocks": {}, - "header-ids": {}, # Adds "id" attributes to headers. value is slug of the header text. - "target-blank-links": {}, # Add target="_blank" to all tags with an href. - "task_list": {}, # Allows github-style task lists (i.e. check boxes), + "header-ids": {}, # Adds "id" attributes to headers. value is slug of the header text. + "target-blank-links": {}, # Add target="_blank" to all tags with an href. + "task_list": {}, # Allows github-style task lists (i.e. check boxes), "html-classes": { - "img": "img-fluid" # add bootstrap class img-fluid to all images (so they dont overflow) - } + "img": "img-fluid" # add bootstrap class img-fluid to all images (so they dont overflow) + }, } markdowner = Markdown(extras=extras) html = markdowner.convert(markdown) html = cleanup_html(html) - + return html From 11061325c3f17607deb73fb0b1a1a06801d67207 Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Tue, 7 Jun 2022 17:10:30 +0100 Subject: [PATCH 05/79] config files for eslint and pre-commit for code quality --- .eslintrc.json | 29 +++++++++++++++++++++++++++++ .pre-commit-config.yaml | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 .eslintrc.json create mode 100644 .pre-commit-config.yaml diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 000000000..0384abc9f --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,29 @@ +{ + "env": { + "browser": true, + "es6": true, + "commonjs": true, + "es2021": true + }, + "extends": ["google"], + "plugins": ["jsdoc"], + "parserOptions": { + "ecmaVersion": "latest", + "sourceType": "module" + }, + "rules": { + "camelcase": 0, + "prefer-const": 0, + "valid-jsdoc": [2, { "prefer": { "return": "returns" } }], + "quotes": [0, "single", "double"], + "space-before-function-paren": [ + "error", + { + "anonymous": "never", + "named": "never", + "asyncArrow": "never" + } + ], + "linebreak-style": 0 + } +} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 000000000..1bbfc8b2a --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,36 @@ +exclude: ^$ +repos: +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.2.0 + hooks: + - id: check-yaml + - id: end-of-file-fixer + - id: trailing-whitespace +- repo: https://github.com/psf/black + rev: 22.3.0 + hooks: + - id: black +- repo: https://github.com/pycqa/isort + rev: 5.10.1 + hooks: + - id: isort + args: ["--profile", "black", "--filter-files"] +- repo: https://github.com/pycqa/flake8 + rev: 4.0.1 + hooks: + - id: flake8 + args: ["--max-line-length=88", "--ignore=E20,W503"] # black compatible +- repo: https://github.com/pre-commit/mirrors-eslint + rev: v8.14.0 + hooks: + - id: eslint + additional_dependencies: + - eslint@8.14.0 + - eslint-config-google@0.14.0 + - eslint-plugin-jsdoc@39.2.9 + args: ["--fix"] +- repo: https://github.com/pre-commit/mirrors-prettier + rev: v2.6.2 + hooks: + - id: prettier + files: \.(css|less|md|json|sql)$ From 8b87bc97314e11a29c68610e3e5ca83da6813886 Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Tue, 7 Jun 2022 17:21:07 +0100 Subject: [PATCH 06/79] deleted literature app --- .../illustration-of-oep-components.svg | 649 -- literature/__init__.py | 0 literature/admin.py | 3 - literature/apps.py | 5 - literature/forms.py | 859 --- literature/migrations/__init__.py | 0 literature/models.py | 3 - literature/static/__init__.py | 0 literature/static/jsMath/COPYING.txt | 202 - literature/static/jsMath/blank.gif | Bin 43 -> 0 bytes literature/static/jsMath/easy/load.js | 164 - .../static/jsMath/extensions/AMSmath.js | 293 - .../static/jsMath/extensions/AMSsymbols.js | 290 - literature/static/jsMath/extensions/HTML.js | 122 - .../static/jsMath/extensions/autobold.js | 51 - literature/static/jsMath/extensions/bbox.js | 113 - .../static/jsMath/extensions/boldsymbol.js | 63 - .../static/jsMath/extensions/double-click.js | 250 - .../static/jsMath/extensions/eqn-number.js | 234 - literature/static/jsMath/extensions/fbox.js | 71 - literature/static/jsMath/extensions/font.js | 38 - .../static/jsMath/extensions/leaders.js | 124 - .../static/jsMath/extensions/mathchoice.js | 70 - .../static/jsMath/extensions/mimeTeX.js | 36 - .../static/jsMath/extensions/moreArrows.js | 68 - .../static/jsMath/extensions/newcommand.js | 205 - .../jsMath/extensions/underset-overset.js | 53 - literature/static/jsMath/extensions/verb.js | 58 - .../static/jsMath/jsMath-BaKoMa-fonts.js | 428 -- literature/static/jsMath/jsMath-autoload.html | 53 - literature/static/jsMath/jsMath-controls.html | 467 -- literature/static/jsMath/jsMath-easy-load.js | 165 - .../jsMath/jsMath-fallback-mac-mozilla.js | 107 - .../static/jsMath/jsMath-fallback-mac-msie.js | 200 - .../static/jsMath/jsMath-fallback-mac.js | 29 - .../static/jsMath/jsMath-fallback-pc.js | 29 - .../static/jsMath/jsMath-fallback-symbols.js | 28 - .../static/jsMath/jsMath-fallback-unix.js | 29 - .../static/jsMath/jsMath-global-controls.html | 106 - literature/static/jsMath/jsMath-global.html | 414 -- .../static/jsMath/jsMath-loader-omniweb4.js | 39 - .../static/jsMath/jsMath-loader-post.html | 78 - literature/static/jsMath/jsMath-loader.html | 92 - literature/static/jsMath/jsMath-msie-mac.js | 53 - .../static/jsMath/jsMath-old-browsers.js | 58 - literature/static/jsMath/jsMath.js | 51 - literature/static/jsMath/plugins/CHMmode.js | 85 - literature/static/jsMath/plugins/autoload.js | 474 -- literature/static/jsMath/plugins/global.js | 52 - literature/static/jsMath/plugins/mimeTeX.js | 221 - literature/static/jsMath/plugins/noCache.js | 71 - literature/static/jsMath/plugins/noGlobal.js | 33 - .../static/jsMath/plugins/noImageFonts.js | 41 - .../static/jsMath/plugins/smallFonts.js | 70 - .../static/jsMath/plugins/spriteImageFonts.js | 372 - literature/static/jsMath/plugins/tex2math.js | 409 - .../static/jsMath/test/index-images.html | 111 - literature/static/jsMath/test/index.html | 114 - literature/static/jsMath/test/jsMath40.jpg | Bin 1953 -> 0 bytes literature/static/jsMath/test/sample.html | 165 - literature/static/jsMath/uncompressed/def.js | 1442 ---- literature/static/jsMath/uncompressed/font.js | 1677 ----- .../uncompressed/jsMath-fallback-mac.js | 970 --- .../jsMath/uncompressed/jsMath-fallback-pc.js | 971 --- .../uncompressed/jsMath-fallback-symbols.js | 415 -- .../uncompressed/jsMath-fallback-unix.js | 935 --- .../static/jsMath/uncompressed/jsMath.js | 6577 ----------------- literature/templates/literature/base.html | 5 - .../templates/literature/list_references.html | 76 - .../templates/literature/reference.html | 55 - .../templates/literature/reference_field.html | 31 - .../templates/literature/reference_form.html | 292 - .../templates/literature/reference_item.html | 6 - literature/tests.py | 3 - literature/urls.py | 13 - literature/views.py | 142 - oeplatform/settings.py | 3 +- oeplatform/urls.py | 3 +- 78 files changed, 2 insertions(+), 22282 deletions(-) delete mode 100644 base/templates/illustration-of-oep-components.svg delete mode 100644 literature/__init__.py delete mode 100644 literature/admin.py delete mode 100644 literature/apps.py delete mode 100644 literature/forms.py delete mode 100644 literature/migrations/__init__.py delete mode 100644 literature/models.py delete mode 100644 literature/static/__init__.py delete mode 100644 literature/static/jsMath/COPYING.txt delete mode 100644 literature/static/jsMath/blank.gif delete mode 100644 literature/static/jsMath/easy/load.js delete mode 100644 literature/static/jsMath/extensions/AMSmath.js delete mode 100644 literature/static/jsMath/extensions/AMSsymbols.js delete mode 100644 literature/static/jsMath/extensions/HTML.js delete mode 100644 literature/static/jsMath/extensions/autobold.js delete mode 100644 literature/static/jsMath/extensions/bbox.js delete mode 100644 literature/static/jsMath/extensions/boldsymbol.js delete mode 100644 literature/static/jsMath/extensions/double-click.js delete mode 100644 literature/static/jsMath/extensions/eqn-number.js delete mode 100644 literature/static/jsMath/extensions/fbox.js delete mode 100644 literature/static/jsMath/extensions/font.js delete mode 100644 literature/static/jsMath/extensions/leaders.js delete mode 100644 literature/static/jsMath/extensions/mathchoice.js delete mode 100644 literature/static/jsMath/extensions/mimeTeX.js delete mode 100644 literature/static/jsMath/extensions/moreArrows.js delete mode 100644 literature/static/jsMath/extensions/newcommand.js delete mode 100644 literature/static/jsMath/extensions/underset-overset.js delete mode 100644 literature/static/jsMath/extensions/verb.js delete mode 100644 literature/static/jsMath/jsMath-BaKoMa-fonts.js delete mode 100644 literature/static/jsMath/jsMath-autoload.html delete mode 100644 literature/static/jsMath/jsMath-controls.html delete mode 100644 literature/static/jsMath/jsMath-easy-load.js delete mode 100644 literature/static/jsMath/jsMath-fallback-mac-mozilla.js delete mode 100644 literature/static/jsMath/jsMath-fallback-mac-msie.js delete mode 100644 literature/static/jsMath/jsMath-fallback-mac.js delete mode 100644 literature/static/jsMath/jsMath-fallback-pc.js delete mode 100644 literature/static/jsMath/jsMath-fallback-symbols.js delete mode 100644 literature/static/jsMath/jsMath-fallback-unix.js delete mode 100644 literature/static/jsMath/jsMath-global-controls.html delete mode 100644 literature/static/jsMath/jsMath-global.html delete mode 100644 literature/static/jsMath/jsMath-loader-omniweb4.js delete mode 100644 literature/static/jsMath/jsMath-loader-post.html delete mode 100644 literature/static/jsMath/jsMath-loader.html delete mode 100644 literature/static/jsMath/jsMath-msie-mac.js delete mode 100644 literature/static/jsMath/jsMath-old-browsers.js delete mode 100644 literature/static/jsMath/jsMath.js delete mode 100644 literature/static/jsMath/plugins/CHMmode.js delete mode 100644 literature/static/jsMath/plugins/autoload.js delete mode 100644 literature/static/jsMath/plugins/global.js delete mode 100644 literature/static/jsMath/plugins/mimeTeX.js delete mode 100644 literature/static/jsMath/plugins/noCache.js delete mode 100644 literature/static/jsMath/plugins/noGlobal.js delete mode 100644 literature/static/jsMath/plugins/noImageFonts.js delete mode 100644 literature/static/jsMath/plugins/smallFonts.js delete mode 100644 literature/static/jsMath/plugins/spriteImageFonts.js delete mode 100644 literature/static/jsMath/plugins/tex2math.js delete mode 100644 literature/static/jsMath/test/index-images.html delete mode 100644 literature/static/jsMath/test/index.html delete mode 100644 literature/static/jsMath/test/jsMath40.jpg delete mode 100644 literature/static/jsMath/test/sample.html delete mode 100644 literature/static/jsMath/uncompressed/def.js delete mode 100644 literature/static/jsMath/uncompressed/font.js delete mode 100644 literature/static/jsMath/uncompressed/jsMath-fallback-mac.js delete mode 100644 literature/static/jsMath/uncompressed/jsMath-fallback-pc.js delete mode 100644 literature/static/jsMath/uncompressed/jsMath-fallback-symbols.js delete mode 100644 literature/static/jsMath/uncompressed/jsMath-fallback-unix.js delete mode 100644 literature/static/jsMath/uncompressed/jsMath.js delete mode 100644 literature/templates/literature/base.html delete mode 100644 literature/templates/literature/list_references.html delete mode 100644 literature/templates/literature/reference.html delete mode 100644 literature/templates/literature/reference_field.html delete mode 100644 literature/templates/literature/reference_form.html delete mode 100644 literature/templates/literature/reference_item.html delete mode 100644 literature/tests.py delete mode 100644 literature/urls.py delete mode 100644 literature/views.py diff --git a/base/templates/illustration-of-oep-components.svg b/base/templates/illustration-of-oep-components.svg deleted file mode 100644 index efaedc2c2..000000000 --- a/base/templates/illustration-of-oep-components.svg +++ /dev/null @@ -1,649 +0,0 @@ - - - -image/svg+xmlOpenEnergy -Platform -Raw Data -Result Data - - - OpenEnergy - Database - - Scenario log - - - Scenario - Factsheet - - Data -Processing - - - Literature - Function - - Model - - - - Framework - Factsheet - - - - - Model - Factsheet - - Framework - diff --git a/literature/__init__.py b/literature/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/literature/admin.py b/literature/admin.py deleted file mode 100644 index 8c38f3f3d..000000000 --- a/literature/admin.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.contrib import admin - -# Register your models here. diff --git a/literature/apps.py b/literature/apps.py deleted file mode 100644 index 4ec1d626f..000000000 --- a/literature/apps.py +++ /dev/null @@ -1,5 +0,0 @@ -from django.apps import AppConfig - - -class LiteratureConfig(AppConfig): - name = "literature" diff --git a/literature/forms.py b/literature/forms.py deleted file mode 100644 index 231230442..000000000 --- a/literature/forms.py +++ /dev/null @@ -1,859 +0,0 @@ -from egoio.db_tables import reference as ref - - -class ArticleForm: - def __init__( - self, - author, - title, - journal, - year, - entry_types_id, - volume=None, - number=None, - pages=None, - month=None, - note=None, - ): - self.author = author - self.title = title - self.journal = journal - self.year = year - self.entry_types_id = entry_types_id - self.volume = volume - self.number = number - self.pages = pages - self.month = month - self.note = note - - def save(self, session): - entry = ref.Entry( - author=self.author, - title=self.title, - journal=self.journal, - year=self.year, - entry_types_id=self.entry_types_id, - volume=self.volume, - number=self.number, - pages=self.pages, - month=self.month, - note=self.note, - ) - session.add(entry) - - def edit(self, session, entries_id): - session.query(ref.Entry).filter(ref.Entry.entries_id == entries_id).update( - { - "author": self.author, - "title": self.title, - "journal": self.journal, - "year": self.year, - "entry_types_id": self.entry_types_id, - "volume": self.volume, - "number": self.number, - "pages": self.pages, - "month": self.month, - "note": self.note, - } - ) - - -class BookForm: - def __init__( - self, - title, - publisher, - year, - entry_types_id, - author=None, - editor=None, - series=None, - address=None, - edition=None, - month=None, - note=None, - isbn=None, - volume=None, - number=None, - ): - self.title = title - self.publisher = publisher - self.year = year - self.entry_types_id = entry_types_id - self.author = author - self.editor = editor - self.series = series - self.address = address - self.edition = edition - self.month = month - self.note = note - self.isbn = isbn - self.volume = volume - self.number = number - - def save(self, session): - entry = ref.Entry( - title=self.title, - publisher=self.publisher, - year=self.year, - entry_types_id=self.entry_types_id, - author=self.author, - editor=self.editor, - series=self.series, - address=self.address, - edition=self.edition, - month=self.month, - note=self.note, - isbn=self.isbn, - volume=self.volume, - number=self.number, - ) - session.add(entry) - - def edit(self, session, entries_id): - session.query(ref.Entry).filter(ref.Entry.entries_id == entries_id).update( - { - "title": self.title, - "publisher": self.publisher, - "year": self.year, - "entry_types_id": self.entry_types_id, - "author": self.author, - "editor": self.editor, - "series": self.series, - "address": self.address, - "edition": self.edition, - "month": self.month, - "note": self.note, - "isbn": self.isbn, - "volume": self.volume, - "number": self.number, - } - ) - - -class BookletForm: - def __init__( - self, - title, - entry_types_id, - author=None, - howpublished=None, - address=None, - month=None, - year=None, - note=None, - ): - self.title = title - self.entry_types_id = entry_types_id - self.author = author - self.howpublished = howpublished - self.address = address - self.month = month - self.year = year - self.note = note - - def save(self, session): - entry = ref.Entry( - title=self.title, - entry_types_id=self.entry_types_id, - author=self.author, - howpublished=self.howpublished, - address=self.address, - month=self.month, - year=self.year, - note=self.note, - ) - session.add(entry) - - def edit(self, session, entries_id): - session.query(ref.Entry).filter(ref.Entry.entries_id == entries_id).update( - { - "title": self.title, - "entry_types_id": self.entry_types_id, - "author": self.author, - "howpublished": self.howpublished, - "address": self.address, - "month": self.month, - "year": self.year, - "note": self.note, - } - ) - - -class ConferenceForm: - def __init__( - self, - author, - title, - booktitle, - year, - entry_types_id, - editor=None, - series=None, - pages=None, - address=None, - month=None, - organization=None, - publisher=None, - note=None, - volume=None, - number=None, - ): - self.author = author - self.title = title - self.booktitle = booktitle - self.year = year - self.entry_types_id = entry_types_id - self.editor = editor - self.series = series - self.pages = pages - self.address = address - self.month = month - self.organization = organization - self.publisher = publisher - self.note = note - self.volume = volume - self.number = number - - def save(self, session): - entry = ref.Entry( - author=self.author, - title=self.title, - booktitle=self.booktitle, - year=self.year, - entry_types_id=self.entry_types_id, - editor=self.editor, - series=self.series, - pages=self.pages, - address=self.address, - month=self.month, - organization=self.organization, - publisher=self.publisher, - note=self.note, - volume=self.volume, - number=self.number, - ) - session.add(entry) - - def edit(self, session, entries_id): - session.query(ref.Entry).filter(ref.Entry.entries_id == entries_id).update( - { - "author": self.author, - "title": self.title, - "booktitle": self.booktitle, - "year": self.year, - "entry_types_id": self.entry_types_id, - "editor": self.editor, - "series": self.series, - "pages": self.pages, - "address": self.address, - "month": self.month, - "organization": self.organization, - "publisher": self.publisher, - "note": self.note, - "volume": self.volume, - "number": self.number, - } - ) - - -class InbookForm: - def __init__( - self, - title, - publisher, - year, - entry_types_id, - chapter=None, - pages=None, - author=None, - editor=None, - series=None, - type=None, - address=None, - edition=None, - month=None, - note=None, - volume=None, - number=None, - ): - self.title = title - self.publisher = publisher - self.year = year - self.entry_types_id = entry_types_id - self.chapter = chapter - self.pages = pages - self.author = author - self.editor = editor - self.series = series - self.type = type - self.address = address - self.edition = edition - self.month = month - self.note = note - self.volume = volume - self.number = number - - def save(self, session): - entry = ref.Entry( - title=self.title, - publisher=self.publisher, - year=self.year, - entry_types_id=self.entry_types_id, - chapter=self.chapter, - pages=self.pages, - author=self.author, - editor=self.editor, - series=self.series, - type=self.type, - address=self.address, - edition=self.edition, - month=self.month, - note=self.note, - volume=self.volume, - number=self.number, - ) - session.add(entry) - - def edit(self, session, entries_id): - session.query(ref.Entry).filter(ref.Entry.entries_id == entries_id).update( - { - "title": self.title, - "publisher": self.publisher, - "year": self.year, - "entry_types_id": self.entry_types_id, - "chapter": self.chapter, - "pages": self.pages, - "author": self.author, - "editor": self.editor, - "series": self.series, - "type": self.type, - "address": self.address, - "edition": self.edition, - "month": self.month, - "note": self.note, - "volume": self.volume, - "number": self.number, - } - ) - - -class IncollectionForm: - def __init__( - self, - author, - title, - booktitle, - publisher, - year, - entry_types_id, - editor=None, - series=None, - type=None, - chapter=None, - pages=None, - address=None, - edition=None, - month=None, - note=None, - volume=None, - number=None, - ): - self.author = author - self.title = title - self.booktitle = booktitle - self.publisher = publisher - self.year = year - self.entry_types_id = entry_types_id - self.editor = editor - self.series = series - self.type = type - self.chapter = chapter - self.pages = pages - self.address = address - self.edition = edition - self.month = month - self.note = note - self.volume = volume - self.number = number - - def save(self, session): - entry = ref.Entry( - author=self.author, - title=self.title, - booktitle=self.booktitle, - publisher=self.publisher, - year=self.year, - entry_types_id=self.entry_types_id, - editor=self.editor, - series=self.series, - type=self.type, - chapter=self.chapter, - pages=self.pages, - address=self.address, - edition=self.edition, - month=self.month, - note=self.note, - volume=self.volume, - number=self.number, - ) - session.add(entry) - - def edit(self, session, entries_id): - session.query(ref.Entry).filter(ref.Entry.entries_id == entries_id).update( - { - "author": self.author, - "title": self.title, - "booktitle": self.booktitle, - "publisher": self.publisher, - "year": self.year, - "entry_types_id": self.entry_types_id, - "editor": self.editor, - "series": self.series, - "type": self.type, - "chapter": self.chapter, - "pages": self.pages, - "address": self.address, - "edition": self.edition, - "month": self.month, - "note": self.note, - "volume": self.volume, - "number": self.number, - } - ) - - -class InproceedingsForm: - def __init__( - self, - author, - title, - booktitle, - year, - entry_types_id, - editor=None, - series=None, - pages=None, - address=None, - month=None, - organization=None, - publisher=None, - note=None, - volume=None, - number=None, - ): - self.author = author - self.title = title - self.booktitle = booktitle - self.year = year - self.entry_types_id = entry_types_id - self.editor = editor - self.series = series - self.pages = pages - self.address = address - self.month = month - self.organization = organization - self.publisher = publisher - self.note = note - self.volume = volume - self.number = number - - def save(self, session): - entry = ref.Entry( - author=self.author, - title=self.title, - booktitle=self.booktitle, - year=self.year, - entry_types_id=self.entry_types_id, - editor=self.editor, - series=self.series, - pages=self.pages, - address=self.address, - month=self.month, - organization=self.organization, - publisher=self.publisher, - note=self.note, - volume=self.volume, - number=self.number, - ) - session.add(entry) - - def edit(self, session, entries_id): - session.query(ref.Entry).filter(ref.Entry.entries_id == entries_id).update( - { - "author": self.author, - "title": self.title, - "booktitle": self.booktitle, - "year": self.year, - "entry_types_id": self.entry_types_id, - "editor": self.editor, - "series": self.series, - "pages": self.pages, - "address": self.address, - "month": self.month, - "organization": self.organization, - "publisher": self.publisher, - "note": self.note, - "volume": self.volume, - "number": self.number, - } - ) - - -class ManualForm: - def __init__( - self, - address, - title, - year, - entry_types_id, - author=None, - organization=None, - edition=None, - month=None, - note=None, - ): - self.address = address - self.title = title - self.year = year - self.entry_types_id = entry_types_id - self.author = author - self.organization = organization - self.edition = edition - self.month = month - self.note = note - - def save(self, session): - entry = ref.Entry( - address=self.address, - title=self.title, - year=self.year, - entry_types_id=self.entry_types_id, - author=self.author, - organization=self.organization, - edition=self.edition, - month=self.month, - note=self.note, - ) - session.add(entry) - - def edit(self, session, entries_id): - session.query(ref.Entry).filter(ref.Entry.entries_id == entries_id).update( - { - "address": self.address, - "title": self.title, - "year": self.year, - "entry_types_id": self.entry_types_id, - "author": self.author, - "organization": self.organization, - "edition": self.edition, - "month": self.month, - "note": self.note, - } - ) - - -class MastersthesisForm: - def __init__( - self, - author, - title, - school, - year, - entry_types_id, - type=None, - address=None, - month=None, - note=None, - ): - self.author = author - self.title = title - self.school = school - self.year = year - self.entry_types_id = entry_types_id - self.type = type - self.address = address - self.month = month - self.note = note - - def save(self, session): - entry = ref.Entry( - author=self.author, - title=self.title, - school=self.school, - year=self.year, - entry_types_id=self.entry_types_id, - type=self.type, - address=self.address, - month=self.month, - note=self.note, - ) - session.add(entry) - - def edit(self, session, entries_id): - session.query(ref.Entry).filter(ref.Entry.entries_id == entries_id).update( - { - "author": self.author, - "title": self.title, - "school": self.school, - "year": self.year, - "entry_types_id": self.entry_types_id, - "type": self.type, - "address": self.address, - "month": self.month, - "note": self.note, - } - ) - - -class MiscForm: - def __init__( - self, - entry_types_id, - author=None, - title=None, - howpublished=None, - month=None, - year=None, - note=None, - ): - self.entry_types_id = entry_types_id - self.author = author - self.title = title - self.howpublished = howpublished - self.month = month - self.year = year - self.note = note - - def save(self, session): - entry = ref.Entry( - entry_types_id=self.entry_types_id, - author=self.author, - title=self.title, - howpublished=self.howpublished, - month=self.month, - year=self.year, - note=self.note, - ) - session.add(entry) - - def edit(self, session, entries_id): - session.query(ref.Entry).filter(ref.Entry.entries_id == entries_id).update( - { - "entry_types_id": self.entry_types_id, - "author": self.author, - "title": self.title, - "howpublished": self.howpublished, - "month": self.month, - "year": self.year, - "note": self.note, - } - ) - - -class PhdthesisForm: - def __init__( - self, - author, - title, - school, - year, - entry_types_id, - type=None, - address=None, - month=None, - note=None, - ): - self.author = author - self.title = title - self.school = school - self.year = year - self.entry_types_id = entry_types_id - self.type = type - self.address = address - self.month = month - self.note = note - - def save(self, session): - entry = ref.Entry( - author=self.author, - title=self.title, - school=self.school, - year=self.year, - entry_types_id=self.entry_types_id, - type=self.type, - address=self.address, - month=self.month, - note=self.note, - ) - session.add(entry) - - def edit(self, session, entries_id): - session.query(ref.Entry).filter(ref.Entry.entries_id == entries_id).update( - { - "author": self.author, - "title": self.title, - "school": self.school, - "year": self.year, - "entry_types_id": self.entry_types_id, - "type": self.type, - "address": self.address, - "month": self.month, - "note": self.note, - } - ) - - -class ProceedingsForm: - def __init__( - self, - title, - year, - entry_types_id, - editor=None, - series=None, - address=None, - month=None, - organization=None, - publisher=None, - note=None, - volume=None, - number=None, - ): - self.title = title - self.year = year - self.entry_types_id = entry_types_id - self.editor = editor - self.series = series - self.address = address - self.month = month - self.organization = organization - self.publisher = publisher - self.note = note - self.volume = volume - self.number = number - - def save(self, session): - entry = ref.Entry( - title=self.title, - year=self.year, - entry_types_id=self.entry_types_id, - editor=self.editor, - series=self.series, - address=self.address, - month=self.month, - organization=self.organization, - publisher=self.publisher, - note=self.note, - volume=self.volume, - number=self.number, - ) - session.add(entry) - - def edit(self, session, entries_id): - session.query(ref.Entry).filter(ref.Entry.entries_id == entries_id).update( - { - "title": self.title, - "year": self.year, - "entry_types_id": self.entry_types_id, - "editor": self.editor, - "series": self.series, - "address": self.address, - "month": self.month, - "organization": self.organization, - "publisher": self.publisher, - "note": self.note, - "volume": self.volume, - "number": self.number, - } - ) - - -class TechreportForm: - def __init__( - self, - author, - title, - institution, - year, - entry_types_id, - type=None, - note=None, - number=None, - address=None, - month=None, - ): - self.author = author - self.title = title - self.institution = institution - self.year = year - self.entry_types_id = entry_types_id - self.type = type - self.note = note - self.number = number - self.address = address - self.month = month - - def save(self, session): - entry = ref.Entry( - author=self.author, - title=self.title, - institution=self.institution, - year=self.year, - entry_types_id=self.entry_types_id, - type=self.type, - note=self.note, - number=self.number, - address=self.address, - month=self.month, - ) - session.add(entry) - - def edit(self, session, entries_id): - session.query(ref.Entry).filter(ref.Entry.entries_id == entries_id).update( - { - "author": self.author, - "title": self.title, - "institution": self.institution, - "year": self.year, - "entry_types_id": self.entry_types_id, - "type": self.type, - "note": self.note, - "number": self.number, - "address": self.address, - "month": self.month, - } - ) - - -class UnpublishedForm: - def __init__(self, author, title, note, entry_types_id, month=None, year=None): - self.author = author - self.title = title - self.note = note - self.entry_types_id = entry_types_id - self.month = month - self.year = year - - def save(self, session): - entry = ref.Entry( - author=self.author, - title=self.title, - note=self.note, - entry_types_id=self.entry_types_id, - month=self.month, - year=self.year, - ) - session.add(entry) - - def edit(self, session, entries_id): - session.query(ref.Entry).filter(ref.Entry.entries_id == entries_id).update( - { - "author": self.author, - "title": self.title, - "note": self.note, - "entry_types_id": self.entry_types_id, - "month": self.month, - "year": self.year, - } - ) diff --git a/literature/migrations/__init__.py b/literature/migrations/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/literature/models.py b/literature/models.py deleted file mode 100644 index 71a836239..000000000 --- a/literature/models.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.db import models - -# Create your models here. diff --git a/literature/static/__init__.py b/literature/static/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/literature/static/jsMath/COPYING.txt b/literature/static/jsMath/COPYING.txt deleted file mode 100644 index d64569567..000000000 --- a/literature/static/jsMath/COPYING.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/literature/static/jsMath/blank.gif b/literature/static/jsMath/blank.gif deleted file mode 100644 index 8b27096e0ededd2581cf70db01b4d269b906c767..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43 scmZ?wbhEHbWMp7u_`qQJ|Nnmm1_s5SEQ~;kK?g*DWEhy3To@Uw0o@4)ng9R* diff --git a/literature/static/jsMath/easy/load.js b/literature/static/jsMath/easy/load.js deleted file mode 100644 index ae6876705..000000000 --- a/literature/static/jsMath/easy/load.js +++ /dev/null @@ -1,164 +0,0 @@ -/********************************************************************** - * - * Customize the values given below to suit your needs. - * You can make additional copies of this file with - * different customizated settings if you need to load - * jsMath with different parameters. - * - * Load this page via: - * - * - * - * (If you are including this file into your page via Server-Side - * Includes, you should remove line above.) - * - * You can make copies of this file with different settings - * if you need to have several different configurations. - * - **********************************************************************/ - -if (!window.jsMath) {window.jsMath = {}} - -jsMath.Easy = { - // - // The URL of the root jsMath directory on your server - // (it must be in the same domain as the HTML page). - // It should include "http://yoursite.com/", or should - // be relative to the root of your server. It is possible - // to be a relative URL, but it will be relative to the - // HTML page loading this file. - // - // If you leave this blank, jsMath will try to look it up from - // the URL where it loaded this file, but that may not work. - // - root: "", - - // - // The default scaling factor for mathematics compared to the - // surrounding text. - // - scale: 120, - - // - // 1 means use the autoload plug-in to decide if jsMath should be loaded - // 0 means always load jsMath - // - autoload: 1, - - // - // Setting any of these will cause the tex2math plugin to be used - // to add the
and tags that jsMath needs. See the - // documentation for the tex2math plugin for more information. - // - processSlashParens: 1, // process \(...\) in text? - processSlashBrackets: 1, // process \[...\] in text? - processDoubleDollars: 1, // process $$...$$ in text? - processSingleDollars: 1, // process $...$ in text? - processLaTeXenvironments: 0, // process \begin{xxx}...\end{xxx} outside math mode? - fixEscapedDollars: 0, // convert \$ to $ outside of math mode? - doubleDollarsAreInLine: 0, // make $$...$$ be in-line math? - allowDisableTag: 1, // allow ID="tex2math_off" to disable tex2math? - // - // If you want to use your own custom delimiters for math instead - // of the usual ones, then uncomment the following four lines and - // insert your own delimiters within the quotes. You may want to - // turn off processing of the dollars and other delimiters above - // as well, though you can use them in combination with the - // custom delimiters if you wish. See the tex2math documentation - // for more details. - // - //customDelimiters: [ - // '[math]','[/math]', // to begin and end in-line math - // '[display]','[/display]' // to begin and end display math - //], - - // - // Disallow the use of the @(...) mechanism for including raw HTML - // in the contents of \hbox{}? (If used in a content-management system - // where users are allowed to enter mathematics, setting this to 0 - // would allow them to enter arbitrary HTML code within their - // math formulas, and that poses a security risk.) - // - safeHBoxes: 1, - - // - // Show TeX source when mathematics is double-clicked? - // - allowDoubleClicks: 1, - - // - // Show jsMath font warning messages? (Disabling this prevents yours - // users from finding out that they can have a better experience on your - // site by installing some fonts, so don't disable this). - // - showFontWarnings: 1, - - // - // Use "Process" or "ProcessBeforeShowing". See the jsMath - // author's documentation for the difference between these - // two routines. - // - method: "Process", - - // - // List of plug-ins and extensions that you want to be - // loaded automatically. E.g. - // ["plugins/mimeTeX.js","extensions/AMSsymbols.js"] - // - loadFiles: [], - - // - // List of fonts to load automatically. E.g. - // ["cmmib10"] - // - loadFonts: [], - - // - // List of macros to define. These are of the form - // name: value - // where 'value' is the replacement text for the macro \name. - // The 'value' can also be [value,n] where 'value' is the replacement - // text and 'n' is the number of parameters for the macro. - // Note that backslashes must be doubled in the replacement string. - // E.g., - // { - // RR: '{\\bf R}', - // bold: ['{\\bf #1}', 1] - // } - // - macros: {}, - - // - // Allow jsMath to enter global mode? - // (Uses frames, so may not always work with complex web sites) - // - allowGlobal: 1, - - // - // Disable image fonts? (In case you don't load them on your server.) - // - noImageFonts: 0 - -}; - -/****************************************************************/ -/****************************************************************/ -// -// DO NOT MAKE CHANGES BELOW THIS -// -/****************************************************************/ -/****************************************************************/ - -if (jsMath.Easy.root == "") { - jsMath.Easy.root = document.getElementsByTagName("script"); - jsMath.Easy.root = jsMath.Easy.root[jsMath.Easy.root.length-1].src - if (jsMath.Easy.root.match(/\/easy\/[^\/]*$/)) { - jsMath.Easy.root = jsMath.Easy.root.replace(/\/easy\/[^\/]*$/,""); - } else { - jsMath.Easy.root = jsMath.Easy.root.replace(/\/(jsMath\/(easy\/)?)?[^\/]*$/,"/jsMath"); - } -} -jsMath.Easy.root = jsMath.Easy.root.replace(/\/$/,""); // trim trailing "/" if any - -document.write(' - - - - - diff --git a/literature/static/jsMath/jsMath-controls.html b/literature/static/jsMath/jsMath-controls.html deleted file mode 100644 index e395ebed0..000000000 --- a/literature/static/jsMath/jsMath-controls.html +++ /dev/null @@ -1,467 +0,0 @@ - - - - - - - - - - - - -
-
-jsMath v -(type fonts) -[help] -

- - - - - - - - - - - - -
- - - - - - - - - - - - - -
-
  - - - - - - - - - - -
- -
-
-
-
-  - -
-
-
-
-
-  - - -
-Click the jsMath button or ALT-click -on mathematics to reopen this panel. -

-
-
- - - -
-
-jsMath Options -[help] -

-

- - - - - -
- - - - - - - - - - - - - - - - - - - - - -
Autoselect best font
Show font warnings
Use image alpha channels
Print image-font help
Always use hi-res fonts
Show progress messages
Force asynchronous processing
Don't show page until complete
Show jsMath button
-
- - - - - - - - - - - - - - - - - - - - -
Scale all mathematics to %
-Use native TeX fonts -(download) -
-Use image fonts -( scalable)
-Use images for symbols only
-Use native Unicode fonts
Use Global mode - -
Save settings for - -
- - - - - - -
  - -   - - -  -
- -
-
-
-
-

- - - - - - - diff --git a/literature/static/jsMath/jsMath-easy-load.js b/literature/static/jsMath/jsMath-easy-load.js deleted file mode 100644 index 49fe20a14..000000000 --- a/literature/static/jsMath/jsMath-easy-load.js +++ /dev/null @@ -1,165 +0,0 @@ -/* - * jsMath-easy-load.js - * - * Part of the jsMath package for mathematics on the web. - * - * This file is used to load jsMath with one easy '); - -} else { - jsMath.Easy.tex2math = - (jsMath.Easy.processSingleDollars || - jsMath.Easy.processDoubleDollars || - jsMath.Easy.processSlashParens || - jsMath.Easy.processSlashBrackets || - jsMath.Easy.processLaTeXenvironments || - jsMath.Easy.fixEscapedDollars || - jsMath.Easy.customDelimiters); - - if (!jsMath.Setup) {jsMath.Setup = {}} - if (!jsMath.Setup.UserEvent) {jsMath.Setup.UserEvent = {}} - jsMath.Setup.UserEvent.onload = function () { - var easy = jsMath.Easy; - if (easy.tex2math) jsMath.Setup.Script("plugins/tex2math.js"); - var i; - if (easy.loadFiles) { - for (i = 0; i < easy.loadFiles.length; i++) - jsMath.Setup.Script(easy.loadFiles[i]); - } - if (easy.loadFonts) { - for (i = 0; i < easy.loadFonts.length; i++) - jsMath.Font.Load(easy.loadFonts[i]); - } - if (easy.macros) { - for (i in easy.macros) { - if (typeof(easy.macros[i]) == 'string') { - jsMath.Macro(i,easy.macros[i]); - } else { - jsMath.Macro(i,easy.macros[i][0],easy.macros[i][1]); - } - } - } - } - document.write(''+"\n"); -} - -jsMath.Easy.onload = function () { - if (jsMath.Easy.loaded) {return} else {jsMath.Easy.loaded = 1} - if (jsMath.Easy.autoloadCheck) jsMath.Autoload.Check(); - if (jsMath.Easy.tex2math) { - jsMath.Synchronize(function () { - if (jsMath.Easy.findCustomSettings) - jsMath.tex2math.Convert(document,jsMath.Easy.findCustomSettings); - if (jsMath.Easy.customDelimiters) { - var s = jsMath.Easy.customDelimiters; - jsMath.tex2math.CustomSearch(s[0],s[1],s[2],s[3]); - jsMath.tex2math.ConvertCustom(); - } - }); - } - (jsMath[jsMath.Easy.method])(); -} - -if (window.addEventListener) {window.addEventListener("load",jsMath.Easy.onload,false)} -else if (window.attachEvent) {window.attachEvent("onload",jsMath.Easy.onload)} -else {window.onload = jsMath.Easy.onload} diff --git a/literature/static/jsMath/jsMath-fallback-mac-mozilla.js b/literature/static/jsMath/jsMath-fallback-mac-mozilla.js deleted file mode 100644 index bd2d429fe..000000000 --- a/literature/static/jsMath/jsMath-fallback-mac-mozilla.js +++ /dev/null @@ -1,107 +0,0 @@ -/* - * jsMath-fallback-mac-mozilla.js - * - * Part of the jsMath package for mathematics on the web. - * - * This file makes changes needed by Mozilla-based browsers on the Mac - * for when the TeX fonts are not available. - * - * --------------------------------------------------------------------- - * - * Copyright 2004-2006 by Davide P. Cervone - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - -/******************************************************************** - * - * Fix the default non-TeX-font characters to work with Mozilla - * - */ - -jsMath.Update.TeXfonts({ - cmmi10: { -// '41': // leftharpoondown -// '43': // rightharpoondown - '44': {c: '˓'}, - '45': {c: '˒'}, - '47': {c: ''}, -// '92': // natural - '126': {c: ''} - }, - - cmsy10: { - '0': {c: '–', tclass: 'normal'}, - '11': {c: '/', tclass: 'normal'}, - '42': {c: '⥣'}, '43': {c: '⥥'}, - '48': {c: '', tclass: 'normal'}, - '93': {c: '∪+'}, - '104': {c: ''}, - '105': {c: ''}, - '109': {c: '⥣'} -//, '116': // sqcup -// '117': // sqcap -// '118': // sqsubseteq -// '119': // sqsupseteq - }, - - cmex10: { - '10': {c: ''}, - '11': {c: ''}, - '14': {c: '/'}, '15': {c: '\\'}, - '28': {c: ''}, - '29': {c: ''}, - '30': {c: '/'}, '31': {c: '\\'}, - '42': {c: ''}, - '43': {c: ''}, - '44': {c: '/'}, '45': {c: '\\'}, - '46': {c: '/'}, '47': {c: '\\'}, - '68': {c: ''}, - '69': {c: ''}, -// '70': // sqcup -// '71': // big sqcup - '72': {ic: .194}, '73': {ic: .444}, - '82': {tclass: 'bigop1cx', ic: .15}, '90': {tclass: 'bigop2cx', ic:.6}, - '85': {c: '∪+'}, - '93': {c: '∪+'} - } - -}); - -jsMath.Setup.Styles({ - '.typeset .symbol': "font-family: Osaka", - '.typeset .arrow1': "font-family: Osaka; position: relative; top: .125em; margin: -1px", - '.typeset .arrow2': "font-family: AppleGothic; font-size: 100%; position:relative; top: .11em; margin:-1px", - '.typeset .bigop1': "font-family: AppleGothic; font-size: 110%; position:relative; top: .9em; margin:-.05em", - '.typeset .bigop1b': "font-family: Osaka; font-size: 140%; position: relative; top: .8em; margin:-.1em", - '.typeset .bigop1c': "font-family: AppleGothic; font-size: 125%; position:relative; top: .85em; margin:-.3em", - '.typeset .bigop1cx': "font-family: 'Apple Chancery'; font-size: 125%; position:relative; top: .7em; margin:-.1em", - '.typeset .bigop2': "font-family: AppleGothic; font-size: 175%; position:relative; top: .85em; margin:-.1em", - '.typeset .bigop2b': "font-family: Osaka; font-size: 200%; position: relative; top: .75em; margin:-.15em", - '.typeset .bigop2c': "font-family: AppleGothic; font-size: 300%; position:relative; top: .75em; margin:-.35em", - '.typeset .bigop2cx': "font-family: 'Apple Chancery'; font-size: 250%; position:relative; top: .7em; margin-left:-.1em; margin-right:-.2em", - '.typeset .delim1b': "font-family: Times; font-size: 150%; position:relative; top:.8em; margin:.01em", - '.typeset .delim2b': "font-family: Times; font-size: 210%; position:relative; top:.8em; margin:.01em", - '.typeset .delim3b': "font-family: Times; font-size: 300%; position:relative; top:.75em; margin:.01em", - '.typeset .delim4b': "font-family: Times; font-size: 400%; position:relative; top:.725em; margin:.01em" -}); - - -/* - * replace \not and \joinrel with better dimensions - */ - -jsMath.Macro('not','\\mathrel{\\rlap{\\kern 3mu/}}'); -jsMath.Macro('joinrel','\\mathrel{\\kern-3mu}'); diff --git a/literature/static/jsMath/jsMath-fallback-mac-msie.js b/literature/static/jsMath/jsMath-fallback-mac-msie.js deleted file mode 100644 index 97bd15eb1..000000000 --- a/literature/static/jsMath/jsMath-fallback-mac-msie.js +++ /dev/null @@ -1,200 +0,0 @@ -/* - * jsMath-fallback-mac-msie.js - * - * Part of the jsMath package for mathematics on the web. - * - * This file makes changes needed by Internet Explorer on the Mac - * for when the TeX fonts are not available. - * - * --------------------------------------------------------------------- - * - * Copyright 2004-2006 by Davide P. Cervone - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - -/******************************************************************** - * - * Fix the default non-TeX-font characters to work with MSIE - * - */ - -jsMath.Update.TeXfonts({ - cmr10: { - '0': {c: 'G', tclass: 'greek'}, - '1': {c: 'D', tclass: 'greek'}, - '2': {c: 'Q', tclass: 'greek'}, - '3': {c: 'L', tclass: 'greek'}, - '4': {c: 'X', tclass: 'greek'}, - '5': {c: 'P', tclass: 'greek'}, - '6': {c: 'S', tclass: 'greek'}, - '7': {c: '¡', tclass: 'greek'}, - '8': {c: 'F', tclass: 'greek'}, - '9': {c: 'Y', tclass: 'greek'}, - '10': {c: 'W', tclass: 'greek'}, - '22': {c: '`', tclass: 'symbol3'} - }, - - cmti10: { - '0': {c: 'G', tclass: 'igreek'}, - '1': {c: 'D', tclass: 'igreek'}, - '2': {c: 'Q', tclass: 'igreek'}, - '3': {c: 'L', tclass: 'igreek'}, - '4': {c: 'X', tclass: 'igreek'}, - '5': {c: 'P', tclass: 'igreek'}, - '6': {c: 'S', tclass: 'igreek'}, - '7': {c: '¡', tclass: 'igreek'}, - '8': {c: 'F', tclass: 'igreek'}, - '9': {c: 'Y', tclass: 'igreek'}, - '10': {c: 'W', tclass: 'igreek'}, - '22': {c: '`', tclass: 'symbol3'} - }, - - cmbx10: { - '0': {c: 'G', tclass: 'bgreek'}, - '1': {c: 'D', tclass: 'bgreek'}, - '2': {c: 'Q', tclass: 'bgreek'}, - '3': {c: 'L', tclass: 'bgreek'}, - '4': {c: 'X', tclass: 'bgreek'}, - '5': {c: 'P', tclass: 'bgreek'}, - '6': {c: 'S', tclass: 'bgreek'}, - '7': {c: '¡', tclass: 'bgreek'}, - '8': {c: 'F', tclass: 'bgreek'}, - '9': {c: 'Y', tclass: 'bgreek'}, - '10': {c: 'W', tclass: 'bgreek'}, - '22': {c: '`', tclass: 'symbol3'} - }, - cmmi10: { - '0': {c: 'G', tclass: 'igreek'}, - '1': {c: 'D', tclass: 'igreek'}, - '2': {c: 'Q', tclass: 'igreek'}, - '3': {c: 'L', tclass: 'igreek'}, - '4': {c: 'X', tclass: 'igreek'}, - '5': {c: 'P', tclass: 'igreek'}, - '6': {c: 'S', tclass: 'igreek'}, - '7': {c: '¡', tclass: 'igreek'}, - '8': {c: 'F', tclass: 'igreek'}, - '9': {c: 'Y', tclass: 'igreek'}, - '10': {c: 'W', tclass: 'igreek'}, - '11': {c: 'a', tclass: 'greek'}, - '12': {c: 'b', tclass: 'greek'}, - '13': {c: 'g', tclass: 'greek'}, - '14': {c: 'd', tclass: 'greek'}, - '15': {c: 'e', tclass: 'greek'}, - '16': {c: 'z', tclass: 'greek'}, - '17': {c: 'h', tclass: 'greek'}, - '18': {c: 'q', tclass: 'greek'}, - '19': {c: 'i', tclass: 'greek'}, - '20': {c: 'k', tclass: 'greek'}, - '21': {c: 'l', tclass: 'greek'}, - '22': {c: 'm', tclass: 'greek'}, - '23': {c: 'n', tclass: 'greek'}, - '24': {c: 'x', tclass: 'greek'}, - '25': {c: 'p', tclass: 'greek'}, - '26': {c: 'r', tclass: 'greek'}, - '27': {c: 's', tclass: 'greek'}, - '28': {c: 't', tclass: 'greek'}, - '29': {c: 'u', tclass: 'greek'}, - '30': {c: 'f', tclass: 'greek'}, - '31': {c: 'c', tclass: 'greek'}, - '32': {c: 'y', tclass: 'greek'}, - '33': {c: 'w', tclass: 'greek'}, -// '41': // leftharpoondown -// '43': // rightharpoondown -// '44': // hook left -// '45': // hook right -// '92': // natural - '94': {c: ''}, - '95': {c: ''} -// '127': // half-circle down accent? - }, - - cmsy10: { - '0': {c: '–', tclass: 'normal'}, - '11': {c: '/', tclass: 'normal'}, - '16': {c: '', tclass: 'normal'}, - '48': {c: ''}, - '93': {c: '∪+'}, - '96': {c: '|', tclass: 'normal'}, - '104': {c: ''}, - '105': {c: ''}, - '109': {c: '⇑'}, - '110': {c: '\\', d:0, tclass: 'normal'} -// '111': // wr -//, '113': // amalg -// '116': // sqcup -// '117': // sqcap -// '118': // sqsubseteq -// '119': // sqsupseteq - }, - - cmex10: { - '10': {c: ''}, - '11': {c: ''}, - '14': {c: '/'}, '15': {c: '\\'}, - '28': {c: ''}, - '29': {c: ''}, - '30': {c: '/'}, '31': {c: '\\'}, - '42': {c: ''}, - '43': {c: ''}, - '44': {c: '/'}, '45': {c: '\\'}, - '46': {c: '/'}, '47': {c: '\\'}, - '68': {c: ''}, - '69': {c: ''}, -// '70': // sqcup -// '71': // big sqcup - '72': {ic: 0}, '73': {ic: 0}, - '82': {tclass: 'bigop1cx', ic: .15}, '90': {tclass: 'bigop2cx', ic:.6}, - '85': {c: '∪+'}, - '93': {c: '∪+'}, -// '96': // coprod -// '97': // big coprod - '98': {c: '︿', h: 0.722, w: .58, tclass: 'wide1'}, - '99': {c: '︿', h: 0.722, w: .58, tclass: 'wide2'}, - '100': {c: '︿', h: 0.722, w: .58, tclass: 'wide3'}, - '101': {c: '~', h: 0.722, w: .42, tclass: 'wide1a'}, - '102': {c: '~', h: 0.8, w: .73, tclass: 'wide2a'}, - '103': {c: '~', h: 0.8, w: 1.1, tclass: 'wide3a'} - } - -}); - -jsMath.Setup.Styles({ - '.typeset .arrow1': "font-family: Osaka; position: relative; top: .125em; margin: -1px", - '.typeset .arrow2': "font-family: Osaka; position: relative; top: .1em; margin:-1px", - '.typeset .bigop1': "font-family: Symbol; font-size: 110%; position:relative; top: .8em; margin:-.05em", - '.typeset .bigop1b': "font-family: Symbol; font-size: 140%; position: relative; top: .8em; margin:-.1em", - '.typeset .bigop1c': "font-family: Osaka; font-size: 125%; position:relative; top: .85em; margin:-.3em", - '.typeset .bigop1cx': "font-family: 'Apple Chancery'; font-size: 125%; position:relative; top: .7em; margin:-.1em", - '.typeset .bigop2': "font-family: Symbol; font-size: 175%; position:relative; top: .8em; margin:-.07em", - '.typeset .bigop2a': "font-family: Baskerville; font-size: 175%; position: relative; top: .65em", - '.typeset .bigop2b': "font-family: Symbol; font-size: 175%; position: relative; top: .8em; margin:-.07em", - '.typeset .bigop2c': "font-family: Osaka; font-size: 230%; position:relative; top: .85em; margin:-.35em", - '.typeset .bigop2cx': "font-family: 'Apple Chancery'; font-size: 250%; position:relative; top: .6em; margin-left:-.1em; margin-right:-.2em", - '.typeset .delim1b': "font-family: Times; font-size: 150%; position:relative; top:.8em", - '.typeset .delim2b': "font-family: Times; font-size: 210%; position:relative; top:.75em;", - '.typeset .delim3b': "font-family: Times; font-size: 300%; position:relative; top:.7em;", - '.typeset .delim4b': "font-family: Times; font-size: 400%; position:relative; top:.65em;", - '.typeset .symbol3': "font-family: Symbol", - '.typeset .wide1': "font-size: 50%; position: relative; top:-1.1em", - '.typeset .wide2': "font-size: 80%; position: relative; top:-.7em", - '.typeset .wide3': "font-size: 125%; position: relative; top:-.5em", - '.typeset .wide1a': "font-size: 75%; position: relative; top:-.5em", - '.typeset .wide2a': "font-size: 133%; position: relative; top: -.15em", - '.typeset .wide3a': "font-size: 200%; position: relative; top: -.05em", - '.typeset .greek': "font-family: Symbol", - '.typeset .igreek': "font-family: Symbol; font-style:italic", - '.typeset .bgreek': "font-family: Symbol; font-weight:bold" -}); diff --git a/literature/static/jsMath/jsMath-fallback-mac.js b/literature/static/jsMath/jsMath-fallback-mac.js deleted file mode 100644 index f1a3749a3..000000000 --- a/literature/static/jsMath/jsMath-fallback-mac.js +++ /dev/null @@ -1,29 +0,0 @@ -/* - * jsMath-fallback-mac.js - * - * Part of the jsMath package for mathematics on the web. - * - * This file makes changes needed for when the TeX fonts are not available - * with a browser on the Mac. - * - * --------------------------------------------------------------------- - * - * Copyright 2004-2010 by Davide P. Cervone - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -jsMath.Script.Uncompress([ - ['jsMath.Add(jsMath.TeX,{cmr10',':[{c:"Γ",','tclass:"greek"},{c:"&','Delta;",',2,'Theta;",',2,'Lambda;",',2,'Xi;",',2,'Pi;",',2,'Sigma;",',2,'Upsilon;",',2,'Phi;",',2,'Psi;",',2,'Omega;",','tclass:"','greek','"},{c:"','ff','",ic:0.0778,krn:{"39":0.0778,"63":0.0778,"33":0.0778,"41":0.0778,"93":0.0778},lig:{"105":','14,"108":15},','tclass:"normal"},{c',':"fi",',28,':"fl",',28,':"ffi",',28,':"ffl",',28,':"ı',';",a:0,',28,':"j",d:0.2,',28,':"`",',22,'accent','"},{c:"&#','xB4;",',22,44,45,'x2C7;",',22,44,45,'x2D8;",',22,44,'"},{c:\'ˉ',';\',',22,44,45,'x2DA;",',22,44,45,'x0327;",',28,':"ß",',28,':"æ',38,28,':"œ',38,28,':"ø",',28,':"Æ",',28,':"Œ",',28,':"Ø",',28,':"?",krn:{"108":-0.278,"76":-0.319},',28,':"!",lig:{"96":60},',28,':"”",',28,':"#",',28,':"$",',28,':"%",',28,':"&",',28,':"’",krn:{"63":0.111,"33":0.','111},','lig:{"39":34},',28,':"(",','d:0.2,',28,':")",',105,28,':"*",',28,':"+",','a:0.1,',28,':",",a:-0.3,d:0.2,','w:0.278,',28,':"-",a:0,lig:{"45":123},',28,':".",a:-0.','25,',28,':"/",',28,':"0",',28,':"1",',28,':"2",',28,':"3",',28,':"4",',28,':"5",',28,':"6",',28,':"7",',28,':"8",',28,':"9",',28,':":",',28,':";",',28,':"¡",',28,':"=",a:0,d:-0.1,',28,':"¿",',28,':"?",lig:{"96":62},',28,':"@",',28,':"A','",krn:{"','116','":-0.0278,"','67',162,'79',162,'71',162,'85',162,'81',162,'84','":-0.0833,"','89',174,'86','":-0.111',',"87":-0.',101,28,':"B",',28,':"C",',28,':"D',160,'88',162,'87',162,'65',162,'86',162,'89','":-0.0278','},',28,':"E",',28,':"F',160,'111',174,'101',174,'117','":-0.0833,"114":-0.0833,"97":-0.0833,"65":-0.','111,"79',162,'67',162,'71',162,'81',197,'},',28,':"G",',28,':"H",',28,':"I',160,'73":','0.0278','},',28,':"J",',28,':"K',160,'79',162,'67',162,'71',162,'81',197,'},',28,':"L',160,'84',174,'89',174,'86',178,179,101,28,':"M",',28,':"N",',28,':"O',160,'88',162,'87',162,'65',162,'86',162,'89',197,'},',28,':"P',160,'65',174,'111',162,'101',162,'97',162,'46',174,'44":-0.0833},',28,':"Q",','d:0.1,',28,':"R',160,'116',162,'67',162,'79',162,'71',162,'85',162,'81',162,'84',174,'89',174,'86',178,179,101,28,':"S",',28,':"T',160,'121',162,'101',174,'111',209,'0833,"117":-0.0833','},',28,':"U",',28,':"V",','ic:0.0139,krn:{"','111',174,'101',174,'117',209,'111,"79',162,'67',162,'71',162,'81',197,'},',28,':"W",',329,'111',174,'101',174,'117',209,'111,"79',162,'67',162,'71',162,'81',197,'},',28,':"X',160,'79',162,'67',162,'71',162,'81',197,'},',28,':"Y",ic:0.025,','krn:{"101',174,'111',209,323,'},',28,':"Z",',28,':"[",',288,28,':"“",',28,':"]",',288,28,':"ˆ",',22,44,45,'x2D9;",',22,44,45,'x2018;",lig:{"96":92},',28,':"a','",a:0,krn:{"','118',162,'106','":0.0556,"','121',162,'119',197,'},',28,':"b',160,'101','":0.0278,"','111',419,'120',162,'100',419,'99',419,'113',419,'118',162,'106',409,'121',162,'119',197,'},',28,':"c',405,'104',162,'107',197,'},',28,':"d",',28,':"e",a:0,',28,':"f',26,'12,"102":11,"108":13},',28,':"g','",a:0,d:0.2,',329,'106":',227,'},',28,':"h',160,'116',162,'117',162,'98',162,'121',162,'118',162,'119',197,'},',28,':"i",',28,40,28,':"k',160,'97','":-0.0556,"','101',162,'97',162,'111',162,'99',197,'},',28,':"l",',28,':"m',405,'116',162,'117',162,'98',162,'121',162,'118',162,'119',197,'},',28,':"n',405,'116',162,'117',162,'98',162,'121',162,'118',162,'119',197,'},',28,':"o',405,'101',419,'111',419,'120',162,'100',419,'99',419,'113',419,'118',162,'106',409,'121',162,'119',197,'},',28,':"p',457,377,419,'111',419,'120',162,'100',419,'99',419,'113',419,'118',162,'106',409,'121',162,'119',197,'},',28,':"q',457,28,':"','r",a:0,',28,':"s",a:0,',28,':"t',160,'121',162,'119',197,'},',28,':"u',405,'119',197,'},',28,':"v",a:0,',329,'97',486,'101',162,'97',162,'111',162,'99',197,'},',28,':"w",a:0,',329,'101',162,'97',162,'111',162,'99',197,'},',28,':"x",a:0,',28,':"y',457,329,'111',162,'101',162,'97',162,'46',174,'44":-0.0833},',28,':"z",a:0,',28,':"–',';",a:0.1,','ic:0.0278,','lig:{"45":124},',28,':"—',645,646,28,':"˝",',22,44,45,'x2DC;",',22,44,45,'xA8;",',22,44,'"}],cmmi10',1,'ic:0.139',',krn:{"61":-0.0556,"59":-0.111,"58":-0.111,"127":0.','0833},',22,'igreek"},{c:"&',3,'krn:{"127":0.','167},',22,670,5,'ic:',227,',krn:{"127":0.','0833},',22,670,7,672,'167},',22,670,9,'ic:0.0757',679,'0833},',22,670,11,'ic:0.0812,krn:{"61',486,'59":-0.0556,"58":-0.0556,"127":0.','0556},',22,670,13,'ic:0.0576',679,'0833},',22,670,15,'ic:0.139',667,'0556},',22,670,17,672,'0833},',22,670,19,'ic:0.11,krn:{"61',486,697,'0556},',22,670,21,'ic:0.0502',679,'0833},',22,670,'alpha',645,'ic:0.0037',679,'0278},',2,'beta',';",d:0.1,','ic:0.0528',679,'0833},',2,'gamma',645,288,'ic:0.0556,',2,'delta;",ic:0.0378,krn:{"',697,'0556},',2,'epsilon;",a:0',679,'0556},',22,'lucida"},{c:"&zeta',738,'ic:0.0738',679,'0833},',2,'eta',645,288,'ic:0.0359',679,'0556},',2,'theta;",ic:',227,679,'0833},',2,'iota;",a:0.1',679,'0556},',2,'kappa',645,2,'lambda;",',2,'mu',645,'d:0.1',679,'0278},',2,'nu',645,'ic:0.0637,krn:{"',697,'0278},',2,'xi',738,'ic:0.046',679,101,2,'pi',645,'ic:0.0359,',2,'rho',645,'d:0.1',679,'0833},',2,'sigma',645,803,'krn:{"59',486,'58":-0.0556','},',2,'tau',645,'ic:0.113,krn:{"',697,'0278},',2,'upsilon',645,'ic:0.0359',679,'0278},',2,'phi;",a:0.3,d:0.1',679,'0833},',2,'chi',645,'d:0.1',679,'0556},',2,'psi;",','a:0.3,d:0.1,','ic:0.0359',679,101,2,'omega',645,803,2,752,'.1',679,'0833},',22,'greek',45,'x3D1;",',672,'0833},',22,'greek',45,'x3D6',645,646,22,'lucida',45,'x3F1',645,'d:0.2',679,'0833},',22,'lucida',45,'x3C2',645,'d:0.2,ic:0.','0799',679,'0833},',22,'greek',45,'x3D5',645,'d:0.1',679,'0833},',22,'greek',45,'x21BC',';",a:0,d:-0.','2,',22,'harpoon',45,'x21BD',896,'1,',22,'harpoon',45,'x21C0',896,'2,',22,'harpoon',45,'x21C1',896,'1,',22,'harpoon',57,'font-size: 133%; ',58,':.1em; margin:-.2em; left:-.05em">&#','x02D3',60,113,22,'lucida',57,919,58,921,'x02D2',60,113,22,'lucida',57,'font-size:50%">&#','x25B7',';\',a:0,',22,'symbol',57,937,'x25C1',939,22,941,24,'0",',28,':"1",',28,':"2",',28,':"3",',28,':"4",',28,':"5",',28,':"6",',28,':"7",',28,':"8",',28,':"9",',28,120,'3,',28,115,28,':"<',645,28,':\'/\',',288,'krn:{"1',486,'65',486,'77',486,'78',486,'89',409,'90":-0.0556},',28,':">',645,28,977,937,'x2605',939,'tclass:"symbol"},{c:"&#','x2202;",ic:0.0556',679,'0833},',28,':"A",',672,'139','},tclass:"italic"},{c:"','B",ic:0.0502',679,'0833',1011,'C",ic:0.0715,krn:{"61',162,697,'0833',1011,'D",ic:',227,679,'0556',1011,'E",ic:0.0576',679,'0833',1011,'F",ic:0.139',667,'0833',1011,'G",',672,'0833',1011,'H",ic:0.0812,krn:{"61',486,697,'0556',1011,'I",ic:0.0785',679,'111',1011,'J",ic:0.0962',667,'167',1011,'K",ic:0.0715,krn:{"61',486,697,'0556',1011,'L",',672,'0278',1011,'M','",ic:0.109,krn:{"','61',486,697,'0833',1011,'N',1061,'61',174,'61',162,697,'0833',1011,'O",ic:',227,679,'0833',1011,'P",ic:0.139',667,'0833',1011,'Q",d:0.2',679,'0833',1011,'R",ic:0.00773',679,'0833',1011,'S",ic:0.0576,krn:{"61',486,697,'0833',1011,'T','",ic:0.139,krn:{"','61',162,697,'0833',1011,'U',1061,'59',178,',"58',178,',"61',486,'127":',227,1011,'V",ic:0.222,krn:{"59','":-0.167,"','58',1117,'61',178,1011,'W',1099,'59',1117,'58',1117,'61',178,1011,'X",ic:0.0785,krn:{"61',174,'61',162,697,'0833',1011,'Y",ic:0.222,krn:{"59',1117,'58',1117,'61',178,1011,'Z",ic:0.0715,krn:{"61',486,697,'0833},',22,'italic',45,'x266D;",',22,'symbol2',45,'x266E;",',22,'symbol2',45,'x266F;",',22,'symbol2',57,'position: relative; top',':.5em">⌣',939,'d:-0.1,',28,977,1165,':-.3em">⌢',939,'d:-0.1,',28,977,'margin:-.','2em">ℓ',60,672,101,22,941,24,'a",a:0,',22,'italic"},{c:"','b",',22,1187,'c",a:0',679,'0556',1011,'d',160,'89',409,'90',486,'106',178,',"102',1117,'127":0.167',1011,'e",a:0',679,'0556',1011,'f",',880,'108,krn:{"',697,'167',1011,'g',457,'ic:0.0359',679,'0278',1011,'h',160,'127',197,1011,'i",',22,1187,'j",',880,'0572,krn:{"59',486,816,1011,'k",ic:0.0315,',22,1187,'l",ic:0.0197',679,'0833',1011,'m",a:0,',22,1187,'n",a:0,',22,1187,'o",a:0',679,'0556',1011,'p",a:0,d:0.2',679,'0833',1011,'q',457,'ic:0.0359',679,'0833',1011,583,646,'krn:{"',697,'0556',1011,'s",a:0',679,'0556',1011,'t",',672,'0833',1011,'u",a:0',679,'0278',1011,'v",a:0,ic:0.0359',679,'0278',1011,'w",a:0,ic:0.0269',679,'0833',1011,'x",a:0',679,'0278',1011,'y',457,'ic:0.0359',679,'0556',1011,'z",a:0,ic:0.044',679,'0556},',22,'italic',45,'x131;",a:0',679,'0278},',22,'italic',45,'x237',38,'d:0.2',679,'0833},',22,'italic',45,'x2118;",d:0',679,101,22,'asymbol',57,'position:relative; left: .4em; top: -.8em; ',978,': 50%">→',60,'ic:0.154,',1003,'x0311;",ic:0.399,',22,'normal"}],cmsy10:[{c:"−',645,1003,'xB7',896,'2,',1003,'xD7',38,22,941,57,58,':.3em">*',939,1003,'xF7',38,1003,'x25CA;",',22,'lucida',45,'xB1',645,1003,'x2213;",',1003,'x2295;",',1003,'x2296;",',1003,'x2297;",',1003,'x2298;",',1003,'x2299;",',22,'symbol3',45,'x25EF;",',22,941,57,58,':.25em;">°',60,'a:0.3,d:-0.3,',1003,'x2022;",a:0.2,d:-0.25,',1003,'x224D',645,1003,'x2261',645,1003,'x2286;",',1003,'x2287;",',1003,'x2264;",',1003,'x2265;",',1003,'x2AAF;",',1003,'x2AB0;",',22,941,'"},{c:"~",a:0,d:-0.2,',28,':"≈',645,'d:-0.1,',1003,'x2282;",',1003,'x2283;",',1003,'x226A;",',1003,'x226B;",',1003,'x227A;",',1003,'x227B;",',1003,'x2190',896,'15,',22,'arrows',45,'x2192',896,'15,',22,'arrows',45,'x2191',';",h:0.85,',22,'arrow1a',45,'x2193',1435,22,'arrow1a',45,'x2194',38,22,'arrow1',45,'x2197',1435,288,22,'arrows',45,'x2198',1435,288,22,'arrows',45,'x2243',645,1003,'x21D0',645,22,'arrows',45,'x21D2',645,22,'arrows',45,'x21D1;",h:0.7,',22,'asymbol"},{c:"&#','x21D3;",h:0.7,',22,1476,'x21D4',645,22,'arrows',45,'x2196',1435,288,22,'arrows',45,'x2199',1435,288,22,'arrows',45,'x221D',645,'d:-0.1,',22,941,57,919,'margin-right',': -.1em; ',1165,':.4em">′',939,22,'lucida',45,'x221E',645,1003,'x2208;",',1003,'x220B;",',1003,'x25B3;",',1003,'x25BD;",',22,941,'"},{c:"/",',22,941,57,978,':50%; ',58,':-.3em; ',1504,':-.2em">|∖',60,842,22,'lucida',45,'x2240;",',22,'asymbol',57,58,': .86em">√',60,'h:0.04,d:0.9,',22,'lucida',45,'x2210',738,1003,'x2207;",',1003,'x222B;",h:1,',288,'ic:0.111,',22,'root',45,'x2294;",',1003,'x2293;",',1003,'x2291;",',1003,'x2292;",',1003,'xA7',738,28,':"†',738,28,':"‡',738,28,':"¶",',842,22,'lucida',45,'x2663;",',1003,'x2666;",',1003,'x2665;",',1003,'x2660;",',22,941,'"}],cmex10:[{c',104,'h:0.04,d:1.16,n:','16,',22,'delim1"},{c',107,1829,'17,',22,1832,386,1829,'104,',22,1832,391,1829,'105,',22,'delim1',45,1714,'",',1829,'106,',22,'delim1a',45,'x23A6;",',1829,'107,',22,'delim1a',45,'x23A1;",',1829,'108,',22,'delim1a',45,'x23A4;",',1829,'109,',22,'delim1a"},{c:"{",',1829,'110,',22,1832,1737,1829,'111,',22,'delim1',45,'x3008;",',1829,'68,',22,'delim1c',45,'x3009;",',1829,'69,',22,'delim1c"},{c:"|",','h:0.7,d:0.15,delim:{rep:','12},',22,'vertical1',1752,1894,'13},',22,'vertical1',45,'x2215;",',1829,'46,',22,'delim1b',45,'x2216;",',1829,'47,',22,'delim1b','"},{c:"(",','h:0.04,d:1.76,n:','18,',22,'delim2"},{c',107,1916,'19,',22,'delim2',1915,'h:0.04,d:2.36,n:','32,',22,'delim3"},{c',107,1926,'33,',22,1929,386,1926,'34,',22,1929,391,1926,'35,',22,'delim3',45,1714,';",',1926,'36,',22,'delim3a',45,'x23A6;",',1926,'37,',22,'delim3a',45,'x23A1;",',1926,'38,',22,'delim3a',45,'x23A4;",',1926,'39,',22,'delim3a',57,'margin: -.1em','">{}{}{\',',23,'26,',1,224,'"},{',255,256,'">}\',',23,'27,',1,224,'"},{c:\'\',h:0.','04,d:1.16,n:113,',1,'root',270,': 190',272,'925em">√\',',23,'114,',1,277,270,': 250',272,'925em',274,'06,d:2.36,n:115,',1,277,270,': 320',272,'92em',274,'08,d:2.96,n:116,',1,277,270,': 400',272,'92em',274,'1,d:3.75,n:117,',1,277,270,': 500',272,'9em',274,'12,d:4.5,n:118,',1,277,270,': 625',272,'9em',274,'14,d:5.7,',1,277,270,':130%">‖\',h:0.9,delim:{top:126,bot:127,rep:119},',1,2,3,'x2191',';",h:0.9,d:0,delim:{','top:120,rep:63},',1,'arrow1a',3,'x2193',332,'bot:121,rep:63},',1,335,270,': 67',272,'35em','; margin-left:-.','5em">&#','x256D',';\',h:0.1,',1,'symbol',270,': 67',272,'35em','; margin-right:-.',347,'x256E',349,1,351,270,': 67',272,'35em',346,347,'x2570',349,1,351,270,': 67',272,'35em',356,347,'x256F',349,1,351,3,'x21D1',';",h:0.7,delim:{','top:126,rep:119},',1,2,3,'x21D3',384,'bot:127,rep:119},',1,2,'"}],cmti10',':[{c:"Γ",','ic:0.133,',1,'igreek"},{c:"&','Delta;",',1,398,'Theta;",','ic:0.094,',1,398,'Lambda;",',1,398,'Xi;",ic:0.153,',1,398,'Pi;",ic:0.164,',1,398,'Sigma;",','ic',':0.12,',1,398,'Upsilon;",','ic:0.111,',1,398,'Phi;",','ic:0.0599,',1,398,'Psi;",','ic:0.111,',1,398,'Omega;",','ic:0.103,',1,'igreek','"},{c:"ff','",ic:0.212,krn:{"39":0.104,"63":0.104,"33":0.104,"41":0.104,"93":0.104},lig:{"105":','14,"108":15},','tclass:"italic"},{c',':"fi','",ic:0.103,',439,':"fl',441,439,':"ffi',441,439,':"ffl',441,439,':"ı",a:0,','ic:0.','0767,',439,':"j",d:0.2,','ic:0.0374,',439,':"`",',1,'iaccent',3,'xB4;",','ic:0.0969,',1,461,3,'x2C7;",','ic:0.083,',1,461,3,'x2D8;",','ic:0.108,',1,461,3,'x2C9;",',433,1,461,3,'x2DA;",',1,461,'"},{c:"?",','d:0.17,w:0.46,',439,':"ß",','ic:0.105,',439,':"æ",a:0,','ic:0.0751,',439,':"œ",a:0,',493,439,':"ø",','ic:0.0919,',439,':"Æ",','ic',417,439,':"Œ",','ic',417,439,':"Ø",',403,439,':"?",krn:{"108":-0.','256,"76":-0.321},',439,':"!",','ic:0.124,lig:{"96":','60},',439,':"”",','ic:0.0696,',439,':"#",ic:0.0662,',439,':"$",',439,':"%",ic:0.136,',439,':"&",','ic:0.0969,',439,':"’",','ic:0.124,','krn:{"63":0.','102,"33":0.102},lig:{"39":34},',439,':"(",d:0.2,','ic:0.162,',439,':")",d:0.2,','ic:0.0369,',439,':"*",ic:0.149,',439,':"+",a:0.1,','ic:0.0369,',439,':",",a:-0.3,d:0.2,w:0.278,',439,':"-",a:0,ic:0.0283',',lig:{"45":','123},',439,':".",a:-0.25,',439,':"/",ic:0.162,',439,':"0",ic:0.136,',439,':"1",ic:0.136,',439,':"2",ic:0.136,',439,':"3",ic:0.136,',439,':"4",ic:0.136,',439,':"5",ic:0.136,',439,':"6",ic:0.136,',439,':"7",ic:0.136,',439,':"8",ic:0.136,',439,':"9",ic:0.136,',439,':":",ic:0.0582,',439,':";",ic:0.0582,',439,':"¡",','ic:0.0756,',439,':"=",a:0,d:-0.1,','ic:0.0662,',439,':"¿",',439,':"?",','ic:0.122,','lig:{"96":','62},',439,':"@",ic:0.096,',439,':"A",','krn:{"110":-0.0256,"108":-0.0256,"114":-0.0256,"117":-0.0256,"109":-0.0256,"116":-0.0256,"105":-0.0256,"67":-0.0256,"79":-0.0256,"71":-0.0256,"104":-0.0256,"98":-0.0256,"85":-0.0256,"107":-0.0256,"118":-0.0256,"119":-0.0256,"81":-','0.0256,"84','":-0.0767,"','89',599,'86','":-0.102,"','87',603,'101','":-0.0511,"','97',607,'111',607,'100',607,'99',607,'103',607,'113','":-0.0511','},',439,':"B',441,439,':"C",','ic:0.145,',439,':"D",',403,'krn:{"88','":-0.0256,"','87',631,'65',631,'86',631,'89":-0.','0256},',439,':"E",ic',417,439,':"F','",ic:0.133,krn:{"','111',599,'101',599,'117','":-0.0767,"114":-0.0767,"97":-0.0767,"','65',603,'79',631,'67',631,'71',631,'81":-0.0256','},',439,':"G",ic:0.0872,',439,':"H",ic:0.164,',439,':"I",ic:0.158,',439,':"J",ic:0.14,',439,':"K",',626,'krn:{"79',631,'67',631,'71',631,660,'},',439,':"L",krn:{"84',599,'89',599,'86',603,'87',603,'101',607,'97',607,'111',607,'100',607,'99',607,'103',607,'113',619,'},',439,':"M",ic:0.164,',439,':"N",ic:0.164,',439,':"O",',403,'krn:{"88',631,'87',631,'65',631,'86',631,638,'0256},',439,':"P',441,'krn:{"65":-0.0767},',439,':"Q",d:0.1,',403,439,':"R",ic:0.0387,',597,'0.0256,"84',599,'89',599,'86',603,'87',603,'101',607,'97',607,'111',607,'100',607,'99',607,'103',607,'113',619,'},',439,':"S",ic',417,439,':"T',645,'121',599,'101',599,'111',651,'117',599,'65":-0.0767},',439,':"U",ic:0.164,',439,':"V",ic:0.','184,krn:{"','111',599,'101',599,'117',651,'65',603,'79',631,'67',631,'71',631,660,'},',439,':"W",ic:0.',774,'65":-0.0767},',439,':"X",ic:0.158,krn:{"79',631,'67',631,'71',631,660,'},',439,':"Y",ic:0.','194',',krn:{"101',599,'111',651,'117',599,'65":-0.0767},',439,':"Z",',626,439,':"[",d:0.1,','ic:0.188,',439,':"“",','ic:0.169,',439,':"]",d:0.1,','ic:0.105,',439,':"ˆ",','ic:0.0665,',1,461,3,'x2D9;",','ic:0.118,',1,461,3,'x2018;",',516,'92},',439,':"a','",a:0,ic:0.',454,439,':"b",ic:0.0631',807,607,'97',607,'111',607,'100',607,'99',607,'103',607,'113',619,'},',439,':"c',842,'0565',807,607,'97',607,'111',607,'100',607,'99',607,'103',607,'113',619,'},',439,':"d',441,'krn:{"108":','0.0511},',439,':"e',842,'0751',807,607,'97',607,'111',607,'100',607,'99',607,'103',607,'113',619,'},',439,':"f',437,'12,"102":11,"108":13},',439,':"g','",a:0,d:0.2,ic:0.','0885,',439,':"h",ic:0.',454,439,':"i",ic:0.102,',439,456,626,439,':"k",',474,439,':"l',441,883,'0.0511},',439,':"m',842,454,439,':"n',842,454,'krn:{"39":-0.102},',439,':"o',842,'0631',807,607,'97',607,'111',607,'100',607,'99',607,'103',607,'113',619,'},',439,':"p',910,'0631',807,607,'97',607,'111',607,'100',607,'99',607,'103',607,'113',619,'},',439,':"q',910,'0885,',439,':"r',842,'108',807,607,'97',607,'111',607,'100',607,'99',607,'103',607,'113',619,'},',439,':"s',842,'0821,',439,':"t",ic:0.0949,',439,':"u',842,454,439,':"v',842,'108,',439,':"w',842,1011,883,'0.0511},',439,':"x',842,'12,',439,':"y',910,'0885,',439,':"z',842,'123,',439,':"–",a:0.1,ic:0.','0921',550,'124},',439,':"—",a:0.1,ic:0.','0921,',439,':"˝",',590,1,461,3,'x2DC;",','ic:0.116,',1,461,3,'xA8;",',1,461,'"}],cmbx10',395,1,'bgreek"},{c:"&','Delta;",',1,1055,402,1,1055,'Lambda;",',1,1055,'Xi;",',1,1055,'Pi;",',1,1055,415,1,1055,420,1,1055,424,1,1055,428,1,1055,432,1,'bgreek','"},{c:"ff','",ic:0.0778,krn:{"39":0.0778,"63":0.0778,"33":0.0778,"41":0.0778,"93":0.0778},lig:{"105":','14,"108":15},','tclass:"bold"},{c',':"fi",',1089,':"fl",',1089,':"ffi",',1089,':"ffl",',1089,452,1089,456,1089,':"`",',1,'baccent',3,463,1,1104,3,468,1,1104,3,473,1,1104,3,478,1,1104,3,'x2DA;",',1,1104,486,1089,489,1089,492,1089,495,1089,498,1089,501,1089,505,1089,509,1089,512,'278,"76":-0.319},',1089,515,591,'60},',1089,519,1089,':"#",',1089,':"$",',1089,':"%",',1089,528,1089,531,533,'111,"33":0.111},lig:{"39":34},',1089,536,1089,539,1089,':"*",',1089,544,1089,':",",a:-0.3,d:0.2,w:0.278,',1089,':"-",a:0',550,'123},',1089,':".",a:-0.25,',1089,':"/",',1089,':"0",',1089,':"1",',1089,':"2",',1089,':"3",',1089,':"4",',1089,':"5",',1089,':"6",',1089,':"7",',1089,':"8",',1089,':"9",',1089,':":",',1089,':";",',1089,581,1089,584,1089,':"¿",',1089,589,591,'62},',1089,':"@",',1089,':"A",krn:{"116','":-0.0278,"','67',1217,'79',1217,'71',1217,'85',1217,'81',1217,'84','":-0.0833,"','89',1229,'86":-0.','111,"87":-0.111},',1089,':"B",',1089,625,1089,':"D",krn:{"88',1217,'87',1217,'65',1217,'86',1217,638,'0278},',1089,':"E",',1089,':"F",krn:{"111',1229,'101',1229,'117','":-0.0833,"114":-0.0833,"97":-0.0833,"65":-0.','111,"79',1217,'67',1217,'71',1217,'81":-0.0278','},',1089,':"G",',1089,':"H",',1089,':"I",krn:{"73":0.0278},',1089,':"J",',1089,':"K",krn:{"79',1217,'67',1217,'71',1217,1264,'},',1089,':"L",krn:{"84',1229,'89',1229,1232,'111,"87":-0.111},',1089,':"M",',1089,':"N",',1089,':"O",krn:{"88',1217,'87',1217,'65',1217,'86',1217,638,'0278},',1089,':"P",krn:{"65',1229,'111',1217,'101',1217,'97',1217,'46',1229,'44":-0.0833},',1089,727,1089,':"R",krn:{"116',1217,'67',1217,'79',1217,'71',1217,'85',1217,'81',1217,'84',1229,'89',1229,1232,'111,"87":-0.111},',1089,':"S",',1089,':"T",krn:{"121',1217,'101',1229,'111',1257,'0833,"117":-0.0833','},',1089,':"U",',1089,773,'0139,krn:{"','111',1229,'101',1229,'117',1257,'111,"79',1217,'67',1217,'71',1217,1264,'},',1089,792,1353,'111',1229,'101',1229,'117',1257,'111,"79',1217,'67',1217,'71',1217,1264,'},',1089,':"X",krn:{"79',1217,'67',1217,'71',1217,1264,'},',1089,805,'025',807,1229,'111',1257,1347,'},',1089,815,1089,818,1089,821,1089,824,1089,827,1,1104,3,832,1,1104,3,837,591,'92},',1089,':"a','",a:0,krn:{"','118',1217,'106":0.','0556,"121',1217,'119":-0.','0278},',1089,':"b",krn:{"101','":0.0278,"','111',1435,'120',1217,'100',1435,'99',1435,'113',1435,'118',1217,1428,'0556,"121',1217,1431,'0278},',1089,':"c',1425,'104',1217,'107":-0.0278},',1089,':"d",',1089,':"e",a:0,',1089,':"f',1087,'12,"102":11,"108":13},',1089,':"g',910,1353,1428,'0278},',1089,':"h",krn:{"116',1217,'117',1217,'98',1217,'121',1217,'118',1217,1431,'0278},',1089,':"i",',1089,456,1089,':"k",krn:{"97":-0.0556,"101',1217,'97',1217,'111',1217,'99":-0.','0278},',1089,':"l",',1089,':"m',1425,'116',1217,'117',1217,'98',1217,'121',1217,'118',1217,1431,'0278},',1089,':"n',1425,'116',1217,'117',1217,'98',1217,'121',1217,'118',1217,1431,'0278},',1089,':"o",a:0',807,1435,'111',1435,'120',1217,'100',1435,'99',1435,'113',1435,'118',1217,1428,'0556,"121',1217,1431,'0278},',1089,':"p",a:0,d:0.2',807,1435,'111',1435,'120',1217,'100',1435,'99',1435,'113',1435,'118',1217,1428,'0556,"121',1217,1431,'0278},',1089,':"q",a:0,d:0.2,',1089,':"r",a:0,',1089,':"s",a:0,',1089,':"t",krn:{"121',1217,1431,'0278},',1089,':"u',1425,1431,'0278},',1089,':"v',842,1353,'97":-0.0556,"101',1217,'97',1217,'111',1217,1497,'0278},',1089,':"w',842,'0139',807,1217,'97',1217,'111',1217,1497,'0278},',1089,':"x",a:0,',1089,':"y',910,1353,'111',1217,'101',1217,'97',1217,'46',1229,'44":-0.0833},',1089,':"z",a:0,',1089,1031,'0278',550,'124},',1089,1036,'0278,',1089,1039,1,1104,3,1044,1,1104,3,'xA8;",',1,1104,'"}]});','jsMath.Setup.Styles({".typeset .','cmr10','":"font-family: ','serif','",".typeset .','italic":"font-style: italic',1655,'bold":"font-weight: bold',1655,'lucida','":"font-family: \'','Lucida Grande','\'",".typeset .',2,'":"font-family: \'Apple Symbols\'; font-size: ','125','%",".typeset .','cal',1661,'Apple Chancery',1663,'arrows','":"font-family: \'Hiragino Mincho Pro',1663,'Arrows',1661,'AppleGothic',1663,'arrow1',1673,'\'; ','position: relative; top',': .075em; margin: -1px',1655,335,1673,'\'; margin:-.','3em',1655,'harpoon',1653,1677,'; ','font-size: ','90',1667,351,1673,1663,'symbol2',1673,1687,'2em',1655,'symbol3',1653,1677,1655,'delim1',1653,'Times; ',1694,'133',272,'7em',1655,'delim1a',1665,'125',272,'75em',1655,'delim1b',1673,'\'; ',1694,'133',272,'8em; ',256,1655,'delim1c',1653,'Symbol; ',1694,'120',272,'8em',';",".typeset .',224,1653,'Baskerville','; ',1694,'180',272,1721,1655,235,1665,'175',272,'8em',1655,'delim2b',1673,'\'; ',1694,'190',272,'8em; ',256,1655,26,1653,'Symbol; ',1694,'167',272,'8em',1739,'delim3',1653,1742,'; ',1694,'250',272,'725em',1655,'delim3a',1665,'240',272,'78em',1655,'delim3b',1673,'\'; ',1694,'250',272,'8em; ',256,1655,'delim3c',1653,351,'; ',1694,'240',272,'775em',1739,'delim4',1653,1742,'; ',1694,'325',272,'7em',1655,'delim4a',1665,'310',272,1721,1655,'delim4b',1673,'\'; ',1694,'325',272,'8em; ',256,1655,'delim4c',1653,'Symbol; ',1694,'300',272,'8em',1739,'vertical',1653,'Copperplate',1655,'vertical1',1653,1839,'; ',1694,'85%; margin: .','15em',1739,'vertical2',1653,1839,'; ',1694,1846,'17em',1739,'greek',1673,'\', serif',346,'2em',356,'2em',1739,435,1673,'\', serif','; font-style:italic',346,'2em',356,'1em',1655,1085,1673,'\', serif','; font-weight:bold',1655,37,1673,'\'; ',1694,'133%; ',1682,': .7em; margin:-.','05em',1655,92,1653,1742,'; ',1694,'100%; ',1682,': .775em',1739,110,1673,'\'; ',1694,'160%; ',1682,': .67em','; margin:-.1em',1655,48,1665,'125%; ',1682,': .',1721,1904,1739,42,1673,'\'; ',1694,'200%; ',1682,': .6em; margin:-.07em',1655,139,1653,1742,'; ',1694,'175%; ',1682,1903,1739,155,1673,'\'; ',1694,'270%; ',1682,': .62em',1904,1655,52,1665,'250%; ',1682,1885,'17em',1739,194,'":"',1694,'67%; ',1682,':-.8em',1655,199,'":"',1694,'110%; ',1682,':-.5em',1655,204,'":"',1694,'175%; ',1682,':-.32em',1655,210,'":"',1694,'75%; ',1682,1959,1655,215,'":"',1694,'133%; ',1682,': -.15em',1655,'wide3a":"',1694,'200%; ',1682,': -.05em',1655,277,1653,1742,1739,'accent":"',1682,': .02em',1655,461,'":"',1682,1994,1868,1655,1104,'":"',1682,1994,1877,'"});','if(jsMath.browser=="','OmniWeb"){jsMath.Update.TeXfonts({cmsy10:{"55":{',255,1694,'75%; position:relative; left:.3em; top:-.15em',346,'3em">˫\'},"104','":{c:\'\'},"105',2015,'right:-.55em">〉\'}}});',1651,'arrow2',1653,'Symbol; ',1694,'100%; ',1682,': -.1em; margin:-1px"})}',2008,'Opera"){',1651,48,'":"margin:0pt .12em 0pt 0pt',1739,52,2031,';"})}',2008,'Mozilla','"){jsMath.Setup.Script("jsMath-fallback-mac-','mozilla.js")}',2008,'MSIE',2038,'msie.js")}jsMath.Macro("not","\\\\mathrel{\\\\rlap{\\\\kern 4mu/}}");jsMath.Box.defaultH=0.8;'] -]); diff --git a/literature/static/jsMath/jsMath-fallback-pc.js b/literature/static/jsMath/jsMath-fallback-pc.js deleted file mode 100644 index aa3bf67b3..000000000 --- a/literature/static/jsMath/jsMath-fallback-pc.js +++ /dev/null @@ -1,29 +0,0 @@ -/* - * jsMath-fallback-pc.js - * - * Part of the jsMath package for mathematics on the web. - * - * This file makes changes needed for when the TeX fonts are not available - * with a browser on the PC. - * - * --------------------------------------------------------------------- - * - * Copyright 2004-2010 by Davide P. Cervone - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -jsMath.Script.Uncompress([ - ['jsMath.Add(jsMath.TeX,{cmr10',':[{c:"Γ",','tclass:"greek"},{c:"&','Delta;",',2,'Theta;",',2,'Lambda;",',2,'Xi;",',2,'Pi;",',2,'Sigma;",',2,'Upsilon;",',2,'Phi;",',2,'Psi;",',2,'Omega;",','tclass:"','greek','"},{c',':"ff','",ic:0.0778,krn:{"39":0.0778,"63":0.0778,"33":0.0778,"41":0.0778,"93":0.0778},lig:{"105":','14,"108":15},','tclass:"normal"},{c',':"fi",',28,':"fl",',28,':"ffi",',28,':"ffl",',28,':"ı',';",a:0,',28,':"j",d:0.2,',28,':"ˋ",',22,'accent','"},{c:"&#','x2CA;",',22,44,45,'x2C7;",',22,44,45,'x2D8;",',22,44,45,'x2C9;",',22,44,45,'x2DA;",',22,44,45,'x0327;",',28,':"ß",',28,':"æ',38,28,':"œ',38,28,':"ø",',28,':"Æ",',28,':"Œ",',28,':"Ø",',28,':"?",krn:{"108":-0.278,"76":-0.319},',28,':"!",lig:{"96":60},',28,':"”",',28,':"#",',28,':"$",',28,':"%",',28,':"&",',28,':"’",krn:{"63":0.111,"33":0.','111},','lig:{"39":34},',28,':"(",','d:0.2,',28,':")",',103,28,':"*",',28,':"+",a',':0.1,',28,':",",a:-','0.3,d:0.2,','w:0.278,',28,':"-",a:0,lig:{"45":123},',28,':".",a:-0.','25,',28,':"/",',28,':"0",',28,':"1",',28,':"2",',28,':"3",',28,':"4",',28,':"5",',28,':"6",',28,':"7",',28,':"8",',28,':"9",',28,':":",',28,':";",',28,':"¡",',28,':"=",a:0,d:-0.1,',28,':"¿",',28,':"?",lig:{"96":62},',28,':"@",',28,':"A','",krn:{"','116','":-0.0278,"','67',161,'79',161,'71',161,'85',161,'81',161,'84','":-0.0833,"','89',173,'86','":-0.111',',"87":-0.',99,28,':"B",',28,':"C",',28,':"D',159,'88',161,'87',161,'65',161,'86',161,'89','":-0.0278','},',28,':"E",',28,':"F',159,'111',173,'101',173,'117','":-0.0833,"114":-0.0833,"97":-0.0833,"65":-0.','111,"79',161,'67',161,'71',161,'81',196,'},',28,':"G",',28,':"H",',28,':"I',159,'73":0.','0278','},',28,':"J",',28,':"K',159,'79',161,'67',161,'71',161,'81',196,'},',28,':"L',159,'84',173,'89',173,'86',177,178,99,28,':"M",',28,':"N",',28,':"O',159,'88',161,'87',161,'65',161,'86',161,'89',196,'},',28,':"P',159,'65',173,'111',161,'101',161,'97',161,'46',173,'44":-0.0833},',28,':"Q",',103,28,':"R',159,'116',161,'67',161,'79',161,'71',161,'85',161,'81',161,'84',173,'89',173,'86',177,178,99,28,':"S",',28,':"T',159,'121',161,'101',173,'111',208,'0833,"117":-0.0833','},',28,':"U",',28,':"V",','ic:0.0139,krn:{"','111',173,'101',173,'117',208,'111,"79',161,'67',161,'71',161,'81',196,'},',28,':"W",',328,'111',173,'101',173,'117',208,'111,"79',161,'67',161,'71',161,'81',196,'},',28,':"X',159,'79',161,'67',161,'71',161,'81',196,'},',28,':"Y",ic:0.025,','krn:{"101',173,'111',208,322,'},',28,':"Z",',28,':"[",d',111,28,':"“",',28,':"]",d',111,28,':"ˆ",',22,44,45,'x2D9;",',22,44,45,'x2018;",lig:{"96":92},',28,':"a','",a:0,krn:{"','118',161,'106":0.','0556,"121',161,'119',196,'},',28,':"b',159,'101','":0.0278,"','111',417,'120',161,'100',417,'99',417,'113',417,'118',161,407,'0556,"121',161,'119',196,'},',28,':"c',404,'104',161,'107',196,'},',28,':"d",',28,':"e",a:0,',28,':"f',26,'12,"102":11,"108":13},',28,':"g",','a:0,d:0.2,ic:0.','0139,krn:{"',407,226,'},',28,':"h',159,'116',161,'117',161,'98',161,'121',161,'118',161,'119',196,'},',28,':"i",',28,40,28,':"k',159,'97','":-0.0556,"','101',161,'97',161,'111',161,'99',196,'},',28,':"l",',28,':"m',404,'116',161,'117',161,'98',161,'121',161,'118',161,'119',196,'},',28,':"n',404,'116',161,'117',161,'98',161,'121',161,'118',161,'119',196,'},',28,':"o',404,'101',417,'111',417,'120',161,'100',417,'99',417,'113',417,'118',161,407,'0556,"121',161,'119',196,'},',28,':"p",a:0,',103,376,417,'111',417,'120',161,'100',417,'99',417,'113',417,'118',161,407,'0556,"121',161,'119',196,'},',28,':"q",a:0,',103,28,':"','r",a:0,',28,':"s",a:0,',28,':"t',159,'121',161,'119',196,'},',28,':"u',404,'119',196,'},',28,':"v",a:0,',328,'97',483,'101',161,'97',161,'111',161,'99',196,'},',28,':"w",a:0,',328,'101',161,'97',161,'111',161,'99',196,'},',28,':"x",a:0,',28,':"y",',454,455,'111',161,'101',161,'97',161,'46',173,'44":-0.0833},',28,':"z",a:0,',28,':"–',';",a:0.1,','ic:0.0278,','lig:{"45":124},',28,':"—',640,641,28,':"˝",',22,44,45,'x2DC;",',22,44,45,'xA8;",',22,44,'"}],cmmi10',1,'ic:0.139',',krn:{"61":-0.0556,"59":-0.111,"58":-0.111,"127":0.','0833},',22,'igreek"},{c:"&',3,'krn:{"127":0.','167},',22,665,5,'ic:0.',226,',krn:{"127":0.','0833},',22,665,7,667,'167},',22,665,9,'ic:0.0757',674,'0833},',22,665,11,'ic:0.0812,krn:{"61',483,'59":-0.0556,"58":-0.0556,"127":0.','0556},',22,665,13,'ic:0.0576',674,'0833},',22,665,15,'ic:0.139',662,'0556},',22,665,17,667,'0833},',22,665,19,'ic:0.11,krn:{"61',483,692,'0556},',22,665,21,'ic:0.0502',674,'0833},',22,665,'alpha',';",a:0,ic:0.','0037',674,226,'},',2,'beta;",','d:0.2,ic:0.','0528',674,'0833},',2,'gamma;",',454,'0556,',2,'delta;",ic:0.0378,krn:{"',692,'0556},',2,'epsilon;",a:0',674,'0556},',22,'lucida',24,':"ζ",',734,'0738',674,'0833},',2,'eta;",',454,'0359',674,'0556},',2,'theta;",ic:0.',226,674,'0833},',2,'iota;",a:0',674,'0556},',2,'kappa',38,2,'lambda;",',2,'mu',38,'d:0.2',674,226,'},',2,'nu',727,'0637,krn:{"',692,226,'},',2,'xi;",',734,'046',674,99,2,'pi',727,'0359,',2,'rho',38,'d:0.2',674,'0833},',2,'sigma',727,801,'krn:{"59',483,'58":-0.0556','},',2,'tau',727,'113,krn:{"',692,226,'},',2,'upsilon',727,'0359',674,226,'},',2,'phi',640,'d:0.2',674,'0833},',2,'chi',38,'d:0.2',674,'0556},',2,'psi',640,734,'0359',674,99,2,'omega',727,801,2,'epsilon;",a:0',674,'0833},',22,'greek',45,'x3D1;",',667,'0833},',22,'lucida',45,'x3D6',727,226,',',22,'lucida',45,'x3F1',38,'d:0.2',674,'0833},',22,'lucida',45,'x3C2;",',454,'0799',674,'0833},',22,'lucida',45,'x3D5',640,'d:0.2',674,'0833},',22,'lucida',45,'x21BC',';",a:0,d:-0.','2,',22,'arrows',45,'x21BD',898,'1,',22,'arrows',45,'x21C0',898,'2,',22,'arrows',45,'x21C1',898,'1,',22,'arrows',24,':\'&#','x02D3',';\',a:0','.1,',22,'symbol"},{c',921,922,'top:-.1em; ',924,'x02D2',926,'.1,','tclass:"symbol"},{c:"&#','x25B9;",',937,'x25C3;",',22,929,':"0",',28,':"1",',28,':"2",',28,':"3",',28,':"4",',28,':"5",',28,':"6",',28,':"7",',28,':"8",',28,':"9",',28,119,'3,',28,':",",a:-',114,28,':"<',640,28,921,'font-size:','133%; ',922,'top:.1em','; display:inline-block">/\',d:0.','1,krn:{"1',483,'65',483,'77',483,'78',483,'89":0.0556,"90":-0.0556},',28,':">',640,28,':"⋆',38,22,'arial',45,'x2202;",ic:0.0556',674,'0833},',28,':"A",',667,'139','},tclass:"italic"},{c:"','B",ic:0.0502',674,'0833',1003,'C",ic:0.0715,krn:{"61',161,692,'0833',1003,'D",ic:0.',226,674,'0556',1003,'E",ic:0.0576',674,'0833',1003,'F",ic:0.139',662,'0833',1003,'G",',667,'0833',1003,'H",ic:0.0812,krn:{"61',483,692,'0556',1003,'I",ic:0.0785',674,'111',1003,'J",ic:0.0962',662,'167',1003,'K",ic:0.0715,krn:{"61',483,692,'0556',1003,'L",',667,226,1003,'M','",ic:0.109,krn:{"','61',483,692,'0833',1003,'N',1053,'61',173,'61',161,692,'0833',1003,'O",ic:0.',226,674,'0833',1003,'P",ic:0.139',662,'0833',1003,'Q",d:0.2',674,'0833',1003,'R",ic:0.00773',674,'0833',1003,'S",ic:0.0576,krn:{"61',483,692,'0833',1003,'T','",ic:0.139,krn:{"','61',161,692,'0833',1003,'U',1053,'59',177,',"58',177,',"61',483,'127":0.',226,1003,'V",ic:0.222,krn:{"59','":-0.167,"','58',1109,'61',177,1003,'W',1091,'59',1109,'58',1109,'61',177,1003,'X",ic:0.0785,krn:{"61',173,'61',161,692,'0833',1003,'Y",ic:0.222,krn:{"59',1109,'58',1109,'61',177,1003,'Z",ic:0.0715,krn:{"61',483,692,'0833},',22,'italic',45,'x266D;",',937,'x266E;",',937,'x266F;",',22,929,921,922,'top:-.3em; ',973,'75%; ',924,'x203F',926,',d:-0.1,',22,994,24,921,922,'top',':.4em; ',973,'75%; ',924,'x2040',926,',d:-0.1,',22,994,45,'x2113;",',667,'111',1003,'a",a:0,',22,'italic"},{c:"','b",',22,1183,'c",a:0',674,'0556',1003,'d',159,'89":0.0556,"90',483,'106',177,',"102',1109,1105,'167',1003,'e",a:0',674,'0556',1003,'f",',734,'108,krn:{"',692,'167',1003,'g",',454,'0359',674,226,1003,'h',159,'127',196,1003,'i",',22,1183,'j",',734,'0572,krn:{"59',483,814,1003,'k",ic:0.0315,',22,1183,'l",ic:0.0197',674,'0833',1003,'m",a:0,',22,1183,'n",a:0,',22,1183,'o",a:0',674,'0556',1003,'p",a:0,d:0.2',674,'0833',1003,'q",',454,'0359',674,'0833',1003,578,641,'krn:{"',692,'0556',1003,'s",a:0',674,'0556',1003,'t",',667,'0833',1003,'u",a:0',674,226,1003,'v",a:0,ic:0.0359',674,226,1003,'w",a:0,ic:0.0269',674,'0833',1003,'x",a:0',674,226,1003,'y",',454,'0359',674,'0556',1003,'z",a:0,ic:0.044',674,'0556},',22,'italic',45,'x131;",a:0',674,226,1003,'j",d:0.2',674,'0833},',22,'italic',45,'x2118',38,'d:0.2',674,99,22,994,24,921,922,'left:.3em; top:-.65em; font-size: 67%; ',924,'x2192',';\',','ic:0.154,',937,'x0311;",ic:0.399,',22,'normal"}],cmsy10:[{c',921,922,'top:.1em; ',924,'x2212',926,'.1,',937,'xB7',898,'2,',28,':"×',38,28,921,922,'top:.3em; ',924,'x2A',926,',',28,':"÷',38,28,':"◊",',937,'xB1',640,28,':"∓",',937,'x2295;",',937,'x2296;",',937,'x2297;",',937,'x2298;",',937,'x2299;",',937,'x25EF;",',22,994,45,'x2218',898,'1,',22,'symbol2',45,'x2022',898,'2,',937,'x224D',640,22,'symbol2',45,'x2261',640,22,'symbol2',45,'x2286;",',937,'x2287;",',937,'x2264;",',937,'x2265;",',937,'x227C;",',937,'x227D;",',22,929,':"~",a:0,d:-0.2,',28,':"≈',640,'d:-0.1,',937,'x2282;",',937,'x2283;",',937,'x226A;",',937,'x226B;",',937,'x227A;",',937,'x227B;",',937,'x2190;",a:-0.1,',22,'arrow1',45,'x2192;",a:-0.1,',22,'arrow1',45,'x2191',';",a:0.2,d:0',',',22,'arrow1a',45,'x2193',1437,',',22,'arrow1a',45,'x2194;",a:-0.1,',22,'arrow1',45,'x2197',640,22,'arrows',45,'x2198',640,22,'arrows',45,'x2243',640,22,'symbol2',45,'x21D0;",a:-0.1,',22,'arrow2',45,'x21D2;",a:-0.1,',22,'arrow2',45,'x21D1',1437,'.1,',22,'arrow1a',45,'x21D3',1437,'.1,',22,'arrow1a',45,'x21D4;",a:-0.1,',22,'arrow2',45,'x2196',640,22,'arrows',45,'x2199',640,22,'arrows',45,'x221D',640,28,921,973,974,'margin-right:-.','1em; ','position: relative; top',1167,924,'x2032',926,',',22,'lucida',45,'x221E',640,937,'x2208;",',937,'x220B;",',22,929,921,973,'150%; ',922,'top:.2em; ',924,'x25B3',1324,22,929,921,973,'150%; ',922,'top:.2em; ',924,'x25BD',1324,22,929,921,973,974,922,'top:.2em',977,'2,',28,921,973,'67%; ',1509,':-.15em; ',1507,'3em; ',924,'x22A2',1324,937,'x2200;",',937,'x2203;",',937,'xAC',898,'1,',937,'x2205;",',937,'x211C;",',937,'x2111;",',937,'x22A4;",',937,'x22A5;",',937,'x2135;",',22,929,':"A',159,'48":0.194},',22,'cal"},{c:"','B",ic:0.0304',',krn:{"48":0.','139},',22,1590,'C",ic:0.0583',1592,'139},',22,1590,'D",ic:0.',226,1592,'0833},',22,1590,'E",ic:0.0894',1592,99,22,1590,'F",ic:0.0993',1592,99,22,1590,'G",',734,'0593',1592,99,22,1590,'H",ic:0.00965',1592,99,22,1590,'I",ic:0.0738',1592,226,'},',22,1590,'J",',734,'185',1592,'167},',22,1590,'K",ic:0.0144',1592,'0556},',22,1590,'L',159,'48":0.139},',22,1590,'M',159,'48":0.139},',22,1590,'N",ic:0.147',1592,'0833},',22,1590,'O",ic:0.',226,1592,99,22,1590,'P",ic:0.0822',1592,'0833},',22,1590,'Q",d:0.2',1592,99,22,1590,'R',159,'48":0.0833},',22,1590,'S",ic:0.075',1592,'139},',22,1590,'T",ic:0.254',1592,226,'},',22,1590,'U",ic:0.0993',1592,'0833},',22,1590,'V",ic:0.0822',1592,226,'},',22,1590,'W",ic:0.0822',1592,'0833},',22,1590,'X",ic:0.146',1592,'139},',22,1590,'Y",ic:0.0822',1592,'0833},',22,1590,'Z",ic:0.0794',1592,'139},',22,'cal',45,'x22C3;",',937,'x22C2;",',937,'x228E;",',937,'x22C0;",',937,'x22C1;",',937,'x22A2;",',937,'x22A3;",',937,'x230A;",','a:',114,22,'lucida',45,'x230B;",','a:',114,22,'lucida',45,'x2308;",','a:',114,22,'lucida',45,'x2309;",','a:',114,22,'lucida',24,':"{",',103,28,':"}",',103,28,':"&#','x2329;",','a:',114,937,'x232A;",','a:',114,937,'x2223;",d',111,937,'x2225;",d',111,937,'x2195',1437,',',22,'arrow1a',45,'x21D5;",a:0.3,d:0,',22,'arrow1a',45,'x2216;",','a:0.3,d',111,937,'x2240;",',22,'symbol','"},{c:\'√',1324,'h:0.04,d:0.8,',937,'x2210;",a:0.4,',937,'x2207;",',22,'symbol',1802,922,973,'85%; ','left:-.1em; margin-right:-.','2em">∫',926,'.4,d',111,'ic:0.111,',22,'lucida',45,'x2294;",',937,'x2293;",',937,'x2291;",',937,'x2292;",',937,'xA7;",d',111,28,':"†",d',111,28,':"‡",d',111,28,':"¶",a:0.3,d',111,22,'lucida',45,'x2663;",',22,994,45,'x2662;",',22,994,45,'x2661;",',22,994,45,'x2660;",',22,994,'"}],cmex10:[{c',102,'h:0.04,d:1.16,n:','16,',22,'delim1','"},{c:")",',1865,'17,',22,'delim1','"},{c:"[",',1865,'104,',22,'delim1','"},{c:"]",',1865,'105,',22,'delim1',45,1740,1865,'106,',22,'delim1a',45,1746,1865,'107,',22,'delim1a',45,1752,1865,'108,',22,'delim1a',45,1758,1865,'109,',22,'delim1a',1802,'margin-left',':-.1em">{\',',1865,'110,',22,'delim1',1802,1507,'1em">}{}{}|{\',',6,'26',8,212,243,244,'; position:relative',249,'1em; ','left:-.05em">}\',',6,'27',8,212,243,'font-size:','150%; ','position:relative; top:.','8em; ',244,'">√\',h:0.','04,d:1.16,n:113',8,'root',243,266,'220%; ',268,269,244,271,'04,d:1.76,n:114',8,274,243,266,'310%; ',268,'8em',249,'01em; ',244,271,'06,d:2.36,n:115',8,274,243,266,'400%; ',268,'8em',249,'025em; ',244,271,'08,d:2.96,n:116',8,274,243,266,'490%; ',268,'8em',249,'03em; ',244,271,'1,d:3.75,n:117',8,274,243,266,'580%; ',268,'775em',249,'04em; ',244,271,'12,d:4.5,n:118',8,274,243,266,'750%; ',268,'775em',249,'04em; ',244,271,'14,d:5.7',8,274,243,244,'; margin-left:.','04em">||\',delim:{top:126,bot:127,rep:119},',2,'normal',4,'x2191',';",h:0.7,d:0,delim:{','top:120,rep:63},',2,'arrow1a',4,'x2193',357,'bot:121,rep:63},',2,360,243,'margin-left:-.','1em">◜',';\',h:0.','05',8,'symbol',243,368,'3em">◝',377,'05',8,380,243,368,'1em">◟',377,'05',8,380,243,368,'3em">◞',377,'05',8,380,4,'x21D1',';",h:0.65,d:0,delim:{','top:126,rep:119},',2,360,4,'x21D3',425,'bot:127,rep:119},',2,360,'"}],cmti10:[{c:"Γ",ic:0.133',8,'igreek"},{c:"&','Delta;",',2,437,'Theta;",ic:0.094',8,437,'Lambda;",',2,437,'Xi;",ic:0.153',8,437,'Pi;",ic:0.164',8,437,'Sigma;",ic:0.12',8,437,'Upsilon;",ic:0.111',8,437,'Phi;",ic:0.0599',8,437,'Psi;",ic:0.111',8,437,'Omega;",','ic:0.103',8,'igreek',203,':"ff','",ic:0.212,krn:{"39":0.104,"63":0.104,"33":0.104,"41":0.104,"93":0.104},lig:{"105":','14,"108":15},','tclass:"italic"},{c',':"fi','",ic:0.103,',473,':"fl',475,473,':"ffi',475,473,':"ffl',475,473,0,'x131;",a:0,','ic:0.','0767,',473,':"j",d:0.2,','ic:0.0374,',473,0,'x2CB;",',2,'iaccent',4,'x2CA;",ic:0.0969',8,497,4,'x2C7;",ic:0.083',8,497,4,'x2D8;",ic:0.108',8,497,4,'x2C9;",ic:0.103',8,497,4,'x2DA;",',2,497,'"},{c:"?",','d:0.17,w:0.46,',473,0,'xDF;",','ic:0.105,',473,0,'xE6;",a:0,','ic:0.0751,',473,0,'x153;",a:0,',527,473,0,'xF8;",','ic:0.0919,',473,0,'xC6;",','ic:0.12,',473,0,'x152;",','ic:0.12,',473,0,'xD8;",','ic:0.094,',473,':"?",krn:{"108":-0.','256,"76":-0.321},',473,':"!",','ic:0.124,lig:{"96":','60},',473,0,'x201D;",','ic:0.0696,',473,':"#",ic:0.0662,',473,':"$",',473,':"%",ic:0.136,',473,':"&",','ic:0.0969,',473,0,'x2019;",ic:0.124,krn:{"63":0.102,"33":0.102},lig:{"39":34},',473,':"(",d:0.2,','ic:0.162,',473,':")",d:0.2,','ic:0.0369,',473,':"*",ic:0.149,',473,':"+",a:0.1,','ic:0.0369,',473,':",",a:-0.3,d:0.2,w:0.278,',473,':"-",a:0,ic:0.0283',',lig:{"45":','123},',473,':".",a:-0.25,',473,':"/",ic:0.162,',473,':"0",ic:0.136,',473,':"1",ic:0.136,',473,':"2",ic:0.136,',473,':"3",ic:0.136,',473,':"4",ic:0.136,',473,':"5",ic:0.136,',473,':"6",ic:0.136,',473,':"7",ic:0.136,',473,':"8",ic:0.136,',473,':"9",ic:0.136,',473,':":",ic:0.0582,',473,':";",ic:0.0582,',473,0,'xA1;",','ic:0.0756,',473,':"=",a:0,d:-0.1,','ic:0.0662,',473,0,'xBF;",',473,':"?",ic:0.122,','lig:{"96":','62},',473,':"@",ic:0.096,',473,':"A",','krn:{"110":-0.0256,"108":-0.0256,"114":-0.0256,"117":-0.0256,"109":-0.0256,"116":-0.0256,"105":-0.0256,"67":-0.0256,"79":-0.0256,"71":-0.0256,"104":-0.0256,"98":-0.0256,"85":-0.0256,"107":-0.0256,"118":-0.0256,"119":-0.0256,"81":-','0.0256,"84','":-0.0767,"','89',636,'86','":-0.102,"','87',640,'101','":-0.0511,"','97',644,'111',644,'100',644,'99',644,'103',644,'113','":-0.0511','},',473,':"B',475,473,':"C",','ic:0.145,',473,':"D",',547,'krn:{"88','":-0.0256,"','87',668,'65',668,'86',668,'89":-0.','0256},',473,':"E",ic:0.12,',473,':"F','",ic:0.133,krn:{"','111',636,'101',636,'117','":-0.0767,"114":-0.0767,"97":-0.0767,"','65',640,'79',668,'67',668,'71',668,'81":-0.0256','},',473,':"G",ic:0.0872,',473,':"H",ic:0.164,',473,':"I",ic:0.158,',473,':"J",ic:0.14,',473,':"K",',663,'krn:{"79',668,'67',668,'71',668,696,'},',473,':"L",krn:{"84',636,'89',636,'86',640,'87',640,'101',644,'97',644,'111',644,'100',644,'99',644,'103',644,'113',656,'},',473,':"M",ic:0.164,',473,':"N",ic:0.164,',473,':"O",',547,'krn:{"88',668,'87',668,'65',668,'86',668,675,'0256},',473,':"P',475,'krn:{"65":-0.0767},',473,':"Q",d:0.2,',547,473,':"R",ic:0.0387,',634,'0.0256,"84',636,'89',636,'86',640,'87',640,'101',644,'97',644,'111',644,'100',644,'99',644,'103',644,'113',656,'},',473,':"S",ic:0.12,',473,':"T',681,'121',636,'101',636,'111',687,'117',636,'65":-0.0767},',473,':"U",ic:0.164,',473,':"V",ic:0.','184,krn:{"','111',636,'101',636,'117',687,'65',640,'79',668,'67',668,'71',668,696,'},',473,':"W",ic:0.',809,'65":-0.0767},',473,':"X",ic:0.158,krn:{"79',668,'67',668,'71',668,696,'},',473,':"Y",ic:0.','194',',krn:{"101',636,'111',687,'117',636,'65":-0.0767},',473,':"Z",',663,473,':"[",d:0.1,','ic:0.188,',473,0,'x201C;",','ic:0.169,',473,':"]",d:0.1,','ic:0.105,',473,0,'x2C6;",ic:0.0665',8,497,4,'x2D9;",ic:0.118',8,497,4,'x2018;",',553,'92},',473,':"a','",a:0,ic:0.',489,473,':"b",ic:0.0631',842,644,'97',644,'111',644,'100',644,'99',644,'103',644,'113',656,'},',473,':"c',877,'0565',842,644,'97',644,'111',644,'100',644,'99',644,'103',644,'113',656,'},',473,':"d',475,'krn:{"108":','0.0511},',473,':"e',877,'0751',842,644,'97',644,'111',644,'100',644,'99',644,'103',644,'113',656,'},',473,':"f',471,'12,"102":11,"108":13},',473,':"g','",a:0,d:0.2,ic:0.','0885,',473,':"h",ic:0.',489,473,':"i",ic:0.102,',473,491,663,473,':"k",ic:0.','108,',473,':"l',475,918,'0.0511},',473,':"m',877,489,473,':"n',877,489,'krn:{"39":-0.102},',473,':"o',877,'0631',842,644,'97',644,'111',644,'100',644,'99',644,'103',644,'113',656,'},',473,':"p',945,'0631',842,644,'97',644,'111',644,'100',644,'99',644,'103',644,'113',656,'},',473,':"q',945,'0885,',473,':"r',877,'108',842,644,'97',644,'111',644,'100',644,'99',644,'103',644,'113',656,'},',473,':"s',877,'0821,',473,':"t",ic:0.0949,',473,':"u',877,489,473,':"v',877,957,473,':"w',877,957,918,'0.0511},',473,':"x',877,'12,',473,':"y',945,'0885,',473,':"z',877,'123,',473,0,'x2013',';",a:0.1,ic:0.','0921',586,'124},',473,0,'x2014',1068,'0921,',473,0,'x2DD;",ic:0.122',8,497,4,'x2DC;",ic:0.116',8,497,4,'xA8;",',2,497,'"}],cmbx10:[{c:"&Gamma',';",tclass:"bgreek"},{c:"&','Delta',1091,'Theta',1091,'Lambda',1091,'Xi',1091,'Pi',1091,'Sigma',1091,'Upsilon',1091,'Phi',1091,'Psi',1091,465,2,'bgreek',203,':"ff','",ic:0.0778,krn:{"39":0.0778,"63":0.0778,"33":0.0778,"41":0.0778,"93":0.0778},lig:{"105":','14,"108":15},','tclass:"bold"},{c',':"fi",',1117,':"fl",',1117,':"ffi",',1117,':"ffl",',1117,0,487,1117,491,1117,0,'x2CB',';",tclass:"baccent',4,'x2CA',1133,4,'x2C7',1133,4,'x2D8',1133,4,'x2C9',1133,4,'x2DA',1133,518,1117,0,522,1117,0,526,1117,0,530,1117,0,534,1117,0,538,1117,0,542,1117,0,546,1117,549,'278,"76":-0.319},',1117,552,628,'60},',1117,0,557,1117,':"#",',1117,':"$",',1117,':"%",',1117,566,1117,0,'x2019;",krn:{"63":0.111,"33":0.111},lig:{"39":34},',1117,572,1117,575,1117,':"*",',1117,580,1117,':",",a:-0.3,d:0.2,w:0.278,',1117,':"-",a:0',586,'123},',1117,':".",a:-0.25,',1117,':"/",',1117,':"0",',1117,':"1",',1117,':"2",',1117,':"3",',1117,':"4",',1117,':"5",',1117,':"6",',1117,':"7",',1117,':"8",',1117,':"9",',1117,':":",',1117,':";",',1117,0,618,1117,621,1117,0,'xBF;",',1117,':"?",',628,'62},',1117,':"@",',1117,':"A",krn:{"116','":-0.0278,"','67',1250,'79',1250,'71',1250,'85',1250,'81',1250,'84','":-0.0833,"','89',1262,'86":-0.','111,"87":-0.111},',1117,':"B",',1117,662,1117,':"D",krn:{"88',1250,'87',1250,'65',1250,'86',1250,675,'0278},',1117,':"E",',1117,':"F",krn:{"111',1262,'101',1262,'117','":-0.0833,"114":-0.0833,"97":-0.0833,"65":-0.','111,"79',1250,'67',1250,'71',1250,'81":-0.0278','},',1117,':"G",',1117,':"H",',1117,':"I",krn:{"73":0.0278},',1117,':"J",',1117,':"K",krn:{"79',1250,'67',1250,'71',1250,1297,'},',1117,':"L",krn:{"84',1262,'89',1262,1265,'111,"87":-0.111},',1117,':"M",',1117,':"N",',1117,':"O",krn:{"88',1250,'87',1250,'65',1250,'86',1250,675,'0278},',1117,':"P",krn:{"65',1262,'111',1250,'101',1250,'97',1250,'46',1262,'44":-0.0833},',1117,763,1117,':"R",krn:{"116',1250,'67',1250,'79',1250,'71',1250,'85',1250,'81',1250,'84',1262,'89',1262,1265,'111,"87":-0.111},',1117,':"S",',1117,':"T",krn:{"121',1250,'101',1262,'111',1290,'0833,"117":-0.0833','},',1117,':"U",',1117,808,'0139,krn:{"','111',1262,'101',1262,'117',1290,'111,"79',1250,'67',1250,'71',1250,1297,'},',1117,827,1386,'111',1262,'101',1262,'117',1290,'111,"79',1250,'67',1250,'71',1250,1297,'},',1117,':"X",krn:{"79',1250,'67',1250,'71',1250,1297,'},',1117,840,'025',842,1262,'111',1290,1380,'},',1117,850,1117,853,1117,0,857,1117,860,1117,0,'x2C6',1133,4,'x2D9',1133,4,872,628,'92},',1117,':"a','",a:0,krn:{"','118',1250,'106":0.','0556,"121',1250,'119":-0.','0278},',1117,':"b",krn:{"101','":0.0278,"','111',1468,'120',1250,'100',1468,'99',1468,'113',1468,'118',1250,1461,'0556,"121',1250,1464,'0278},',1117,':"c',1458,'104',1250,'107":-0.0278},',1117,':"d",',1117,':"e",a:0,',1117,':"f',1115,'12,"102":11,"108":13},',1117,':"g',945,1386,1461,'0278},',1117,':"h",krn:{"116',1250,'117',1250,'98',1250,'121',1250,'118',1250,1464,'0278},',1117,':"i",',1117,491,1117,':"k",krn:{"97":-0.0556,"101',1250,'97',1250,'111',1250,'99":-0.','0278},',1117,':"l",',1117,':"m',1458,'116',1250,'117',1250,'98',1250,'121',1250,'118',1250,1464,'0278},',1117,':"n',1458,'116',1250,'117',1250,'98',1250,'121',1250,'118',1250,1464,'0278},',1117,':"o",a:0',842,1468,'111',1468,'120',1250,'100',1468,'99',1468,'113',1468,'118',1250,1461,'0556,"121',1250,1464,'0278},',1117,':"p",a:0,d:0.2',842,1468,'111',1468,'120',1250,'100',1468,'99',1468,'113',1468,'118',1250,1461,'0556,"121',1250,1464,'0278},',1117,':"q",a:0,d:0.2,',1117,':"r",a:0,',1117,':"s",a:0,',1117,':"t",krn:{"121',1250,1464,'0278},',1117,':"u',1458,1464,'0278},',1117,':"v',877,1386,'97":-0.0556,"101',1250,'97',1250,'111',1250,1530,'0278},',1117,':"w',877,'0139',842,1250,'97',1250,'111',1250,1530,'0278},',1117,':"x",a:0,',1117,':"y',945,1386,'111',1250,'101',1250,'97',1250,'46',1262,'44":-0.0833},',1117,':"z",a:0,',1117,0,'x2013',1068,'0278',586,'124},',1117,0,'x2014',1068,'0278,',1117,0,'x2DD',1133,4,'x2DC',1133,4,'xA8',1133,'"}]});','jsMath.Setup.Styles({".typeset .','cmr10','":"font-family: ','serif','",".typeset .','italic":"font-style: italic',1690,'bold":"font-weight: bold',1690,'lucida','":"font-family: \'',1695,' sans unicode','\'",".typeset .','arial','":"font-family: \'Arial unicode MS',1699,'cal',1696,'Script MT\', \'Script MT Bold\', cursive',1690,'arrows',1701,1699,'arrow1',1701,1699,360,1701,'\'; ',268,'05em;left:-.15em',249,'15em','; display:inline-block",".typeset .','arrow2',1701,'\'; ',246,'top:-.',259,244,';",".typeset .','arrow3',1701,'\'; margin',':.1em',1690,380,1701,1699,'symbol2',1701,1699,'delim1','":"font-family: \'Times New Roman\'; font-','size: ','133%; ',268,'7em',1720,'delim1a',1696,'Lucida',1698,'\'; font-size: ','133%; ',268,'8em',1720,'delim1b',1701,1751,'133%; ',268,'7em',1720,212,1741,1742,'180%; ',268,'75em',1720,224,1696,'Lucida',1698,1751,'180%; ',268,'8em',1720,9,1701,1751,'180%; ',268,'7em',1720,'delim3',1741,1742,'250%; ',268,'725em',1720,'delim3a',1696,'Lucida',1698,1751,'250%; ',268,'775em',1720,'delim3b',1701,1751,'250%; ',268,'7em',1720,'delim4',1741,1742,'325%; ',268,'7em',1720,'delim4a',1696,'Lucida',1698,1751,'325%; ',268,'775em',1720,'delim4b',1701,1751,'325%; ',268,'7em',1720,3,1688,'Symbol',1690,'greek',1696,'Times New Roman',1699,468,1741,'style:italic',1690,1112,1741,'weight:bold',1690,21,1701,1751,'130','%; position: relative; top',': .7em; margin:-.05em',1720,79,1701,1751,'110',1852,': .85em; ',244,1728,97,1701,1751,'180',1852,': .6em',1720,33,1701,1751,'85',1852,': 1em',1720,27,1701,1751,'230',1852,': .6em; margin:-.05em',1720,127,1701,1751,'185',1852,': .75em',1720,143,1701,1751,'275',1852,': .55em',1720,37,1701,1751,'185',1852,': 1em',249,'1em',1720,184,1701,1751,'67',1852,':-.75em; ',244,1728,189,1701,1751,'110',1852,':-.4em; ',244,1728,194,1701,1751,'175',1852,':-.25em',1720,198,1741,1742,'75',1852,':-.5em',1720,202,1741,1742,'133',1852,':-.2em',1720,206,1741,1742,'200',1852,248,1720,274,1701,1731,'-right:-.075em',1720,'accent',1701,'\'; ',268,'05em; left:.','15em',1720,497,1701,'\'; ',268,1960,'15em; font-',1842,1720,'baccent',1701,'\'; ',268,1960,1968,1846,'; ',244,'"});','if(jsMath.browser=="','Mozilla"){jsMath.Update.TeXfonts({cmex10:{"48":{c',0,'xF8EB;"},"49":{c',0,'xF8F6;"},"50":{c',0,'xF8EE;"},"51":{c',0,'xF8F9;"},"52":{c',0,'xF8F0;"},"53":{c',0,'xF8FB;"},"54":{c',0,'xF8EF;"},"55":{c',0,'xF8FA;"},"56":{c',0,'xF8F1;"},"57":{c',0,'xF8FC;"},"58":{c',0,'xF8F3;"},"59":{c',0,'xF8FE;"},"60":{c',0,'xF8F2;"},"61":{c',0,'xF8FD;"},"62":{c',0,'xF8F4;"},"64":{c',0,'xF8ED;"},"65":{c',0,'xF8F8;"},"66":{c',0,'xF8EC;"},"67":{c',0,'xF8F7;"}}});',1686,'accent',1688,'Arial unicode MS; ',268,1960,'05em"})}',1981,'MSIE"){jsMath.Browser.msieFontBug=1}jsMath.Macro("not","\\\\mathrel{\\\\rlap{\\\\kern 3mu/}}");jsMath.Macro("bowtie","\\\\mathrel\\\\triangleright\\\\kern-6mu\\\\mathrel\\\\triangleleft");jsMath.Box.defaultH=0.8;'] -]); \ No newline at end of file diff --git a/literature/static/jsMath/jsMath-fallback-symbols.js b/literature/static/jsMath/jsMath-fallback-symbols.js deleted file mode 100644 index 8db31f49d..000000000 --- a/literature/static/jsMath/jsMath-fallback-symbols.js +++ /dev/null @@ -1,28 +0,0 @@ -/* - * jsMath-fallback-symbols.js - * - * Part of the jsMath package for mathematics on the web. - * - * This file makes changes needed to use image fonts for symbols - * but standard native fonts for letters and numbers. - * - * --------------------------------------------------------------------- - * - * Copyright 2004-2006 by Davide P. Cervone - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -jsMath.Script.Uncompress([ - ['jsMath.','Add(','jsMath.Img',',{','UpdateTeXFonts',':function(_1){for(var _2 in _1){for(var _3 in _1[_2]){',0,'TeX[_2][_3',']=_1[_2][_3];',0,7,'].tclass="i"+_2;}}}});',2,'.',4,'({cmr10',':{"33":{c:"!",lig:{"96":60}},"35":{c:"#"},"36":{c:"$"},"37":{c:"%"},"38":{c:"&"},"40":{c:"(",d:0.2},"41":{c:")",d:0.2},"42":{c',':"*",d:-0.3},"','43":{c:"+",a:0.1},"44":{c:",",a:-0.3','},"45":{c:"-",a:0',',lig:{"45":123}},"46":{c:".",a:-0.25},"47":{c',':"/"},"','48":{c:"0','"},"49":{c:"1"},"50":{c:"2"},"51":{c:"3"},"52":{c:"4"},"53":{c:"5"},"54":{c:"6"},"55":{c:"7"},"56":{c:"8"},"57":{c:"9"},"58":{c:":"},"59":{c:";"},"61":{c:"=",a:0,d:-0.1},"63":{c:"?",lig:{"96":62}},"64":{c:"@"},"65":{c:"A",krn:{"116','":-0.0278,"','67',24,'79',24,'71',24,'85',24,'81',24,'84":-0.0833,"89":-0.0833,"86":-0.111,"87":-0.111}},"','66":{c:"B','"},"','67":{c:"C',37,'68":{c:"D','",krn:{"','88',24,'87',24,'65',24,'86',24,'89','":-0.0278}},"','69":{c:"E',37,'70":{c:"F",','krn:{"111":-0.0833,"101":-0.0833,"117":-0.0833,"114":-0.0833,"97":-0.0833,"65":-0.111,"79":-0.0278,"67":-0.0278,"71":-0.0278,"81":-0.0278}},"','71":{c:"G',37,'72":{c:"H',37,'73":{c:"I',41,'73','":0.0278}},"','74":{c:"J',37,'75":{c:"K',41,'79',24,'67',24,'71',24,'81',51,'76":{c:"L",krn:{"',35,'77":{c:"M',37,'78":{c:"N',37,'79":{c:"O',41,'88',24,'87',24,'65',24,'86',24,'89',51,'80":{c:"P",','krn:{"65":-0.','0833,"111',24,'101',24,'97',24,'46":-0.0833,"44":-0.0833}},"','81":{c:"Q",d:','1},"82":{c:"R',41,'116',24,'67',24,'79',24,'71',24,'85',24,'81',24,35,'83":{c:"S',37,'84":{c:"T',41,'121',24,'101":-0.0833,"111":-0.0833,"114":-0.0833,"97":-0.0833,"65":-0.0833,"117":-0.0833}},"','85":{c:"U',37,'86":{c:"V",ic:0.','0139,',55,'87":{c:"W",ic:0.','0139,',55,'88":{c:"X",','krn:{"79',24,'67',24,'71',24,'81',51,'89":{c:"Y",ic:0.','025',',krn:{"',125,'90":{c:"Z',37,'91":{c:"[",d:0.1','},"93":{c:"]",d:0.1','},"97":{c:"a','",a:0,krn:{"','118',24,'106":0.0556,"121',24,'119',51,'98":{c:"b",','krn:{"101":0.0278,"111":0.0278,"120":-0.0278,"100":0.0278,"99":0.0278,"113":0.0278,"118":-0.0278,"106":0.0556,"121":-0.0278,"119":-0.0278}},"','99":{c:"c',152,'104',24,'107',51,'100":{c:"d',37,'101":{c:"e",a',':0},"102":{c:"f",ic:0.0778,krn:{"39":0.0778,"63":0.0778,"33":0.0778,"41":0.0778,"93":0.0778},lig:{"105":12,"102":11,"108":13}},"103":{c:"g",a:0,d:0.2,ic:0.0139,krn:{"106":0.0278}},"104":{c:"h",krn:{"116',24,'117',24,'98',24,'121',24,'118',24,'119',51,'105":{c:"i"},"106":{c:"j",d:','1},"107":{c:"k',41,'97','":-0.0556,"','101',24,'97',24,'111',24,'99',51,'108":{c:"l',37,'109":{c:"m',152,'116',24,'117',24,'98',24,'121',24,'118',24,'119',51,'110":{c:"n',152,'116',24,'117',24,'98',24,'121',24,'118',24,'119',51,'111":{c:"o",a:0,',160,'112":{c:"p",a:0,d:0.2,',160,'113":{c:"q",a:0,d:','1','},"114":{c:"r",a:0','},"','115":{c:"s",a:0','},"116":{c:"t',41,'121',24,'119',51,'117":{c:"u',152,'119',51,'118":{c:"v','",a:0,ic:0.','0139',145,'97',186,'101',24,'97',24,'111',24,'99',51,'119":{c:"w',245,'0139',145,'101',24,'97',24,'111',24,'99',51,'120":{c:"x",a:0','},"121":{c:"y','",a:0,d:0.2,ic:0.','0139',145,'111',24,'101',24,'97',24,102,'122":{c:"z",a:0','}},cmmi10:{"65":{c:"A',41,'127":0.139}},"',36,'",ic:0.','0502,','krn:{"127":0.0833}},"',38,287,'0715',145,'61',24,'59":-0.0556,"58":-0.0556,"127":0.','0833}},"','68":{c:"D',287,'0278',',krn:{"127":0.0556}},"',52,287,'0576,',289,54,'ic:0.139',',krn:{"61":-0.0556,"59":-0.111,"58":-0.111,"127":0.',297,56,'",',289,58,287,'0812',145,'61',186,296,'0556}},"','73":{c:"I",ic:0.','0785',145,'127":0.111}},"',64,287,'0962',308,'167}},"75":{c:"K',287,'0715',145,'61',186,296,320,'76":{c:"L",','krn:{"127":0.0278}},"',78,287,'109',145,'61',186,296,297,80,287,'109',145,'61":-0.0833,"61',24,296,297,'79":{c:"O',287,300,',',289,94,'ic:0.139',308,297,103,'0.2,',289,'82":{c:"R',287,'00773,',289,119,287,'0576',145,'61',186,296,297,'84":{c:"T",ic:0.','139',145,'61',24,296,297,126,287,'109',145,'59":-0.111,"58":-0.111,"61',186,'127',63,128,'222',',krn:{"59":-0.167,"58":-0.167,"61":-0.111}},"',131,'139',396,134,'ic:0.0785',145,'61":-0.0833,"61',24,296,297,143,'222',396,147,287,'0715',145,'61',186,296,297,'97":{c:"a",a:0},"98":{c:"b',37,'99":{c:"c",a:0',301,167,41,'89":0.0556,"90',186,'106":-0.111,"102":-0.167,"127":0.167}},"101":{c:"e",a:0',301,'102":{c:"f",d:','0.2,ic:0.','108',145,296,'167}},"103":{c:"g',272,'0359,',338,'104":{c:"h',41,'127',51,182,429,'0572',145,'59',186,'58":-0.',320,'107":{c:"k',287,'0315},"',195,287,'0197,',289,'109":{c:"m",a:0},"110":{c:"n",a:0},"111":{c:"o",a:0',301,227,289,'113":{c:"q',272,'0359,',289,'114":{c:"r',245,300,145,296,320,233,301,'116":{c:"t",',289,'117":{c:"u",a:0,',338,'118":{c:"v',245,'0359,',338,'119":{c:"w',245,'0269,',289,270,',',338,'121":{c:"y',272,'0359',301,'122":{c:"z',245,'044',145,'127":0.0556}}},cmsy10:{"0":{c:"−",a:0.1}},cmti10:{"33":{c:"!",lig:{"96":60}},"35":{c:"#",ic:0.0662},"37":{c:"%",ic:0.136},"38":{c:"&",ic:0.0969},"40":{c:"(",d:',429,'162},"41":{c:")",d:',429,'0369},"42":{c:"*",ic:0.149},"43":{c:"+",a:0.1,ic:0.0369},"44":{c:",",a:-0.3,d:0.2,w:0.278},"45":{c:"-",a:0,ic:0.0283',20,':"/",ic:0.162},"',22,'",ic:0.136},"','49":{c:"1',503,'50":{c:"2',503,'51":{c:"3',503,'52":{c:"4',503,'53":{c:"5',503,'54":{c:"6',503,'55":{c:"7',503,'56":{c:"8',503,'57":{c:"9',503,'58":{c:":",ic:0.0582},"59":{c:";",ic:0.0582},"61":{c:"=",a:0,d:-0.1,ic:0.0662},"63":{c:"?",ic:0.122,lig:{"96":62}},"64":{c:"@",ic:0.096},"65":{c:"A",','krn:{"110":-0.0256,"108":-0.0256,"114":-0.0256,"117":-0.0256,"109":-0.0256,"116":-0.0256,"105":-0.0256,"67":-0.0256,"79":-0.0256,"71":-0.0256,"104":-0.0256,"98":-0.0256,"85":-0.0256,"107":-0.0256,"118":-0.0256,"119":-0.0256,"81":-','0.0256,"84','":-0.0767,"','89',525,'86','":-0.102,"','87',529,'101":-0.0511,"97":-0.0511,"111":-0.0511,"100":-0.0511,"99":-0.0511,"103":-0.0511,"113":-0.0511}},"',36,'",ic:0.103','},"',38,287,'145},"','68":{c:"D','",ic:0.094,krn:{"88":-0.0256,"87":-0.0256,"65":-0.0256,"86":-0.0256,"89":-0.0256}},"',52,'",ic:0.12},"',54,'ic:0.133',145,'111',525,'101',525,'117','":-0.0767,"114":-0.0767,"97":-0.0767,"','65',529,'79":-0.0256,"67":-0.0256,"71":-0.0256,"81":-0.0256}},"',56,287,'0872},"',58,'",ic:0.164},"',321,'158},"',64,287,'14},"75":{c:"K',287,'145',145,554,76,'84',525,'89',525,'86',529,'87',529,532,78,559,80,559,'79":{c:"O',540,94,'ic:0.103',145,'65":-0.0767}},"',103,429,'094},"82":{c:"R',287,'0387,',523,'0.0256,"84',525,'89',525,'86',529,'87',529,532,119,542,379,'133',145,'121',525,'101',525,'111',551,'117',525,588,126,559,128,'184',145,'111',525,'101',525,'117',551,'65',529,554,131,'184',145,588,134,'ic:0.158',145,554,143,'194',145,'101',525,'111',551,'117',525,588,147,287,538,149,',ic:0.188',150,',ic:0.105},"97":{c:"a',245,'0767},"',159,'ic:0.0631',145,532,'99":{c:"c',245,'0565',145,532,167,534,145,'108":0.0511}},"','101":{c:"e',245,'0751',145,532,'102":{c:"f',287,'212',145,'39":0.104,"63":0.104,"33":0.104,"41":0.104,"93":0.104},lig:{"105":12,"102":11,"108":13}},"103":{c:"g',272,'0885},"','104":{c:"h',287,658,'105":{c:"i',287,'102},"106":{c:"j",d:',429,538,'107":{c:"k',287,'108},"',195,534,145,671,'109":{c:"m',245,658,'110":{c:"n',245,'0767',145,'39":-0.102}},"111":{c:"o',245,'0631',145,532,'112":{c:"p',272,'0631',145,532,'113":{c:"q',272,683,'114":{c:"r',245,'108',145,532,'115":{c:"s',245,'0821},"116":{c:"t',287,'0949},"117":{c:"u',245,658,'118":{c:"v',245,694,'119":{c:"w',245,'108',145,671,'120":{c:"x',245,'12},"121":{c:"y',272,683,'122":{c:"z',245,'123}},cmbx10',16,':"*"},"',18,',d:0.2,w:0.278},"45":{c:"-",a:0',20,':"/"},"',22,23,24,'67',24,'79',24,'71',24,'85',24,'81',24,35,36,37,38,37,'68":{c:"D',41,'88',24,'87',24,'65',24,'86',24,'89',51,52,37,54,55,56,37,58,37,'73":{c:"I',41,'73',63,64,37,'75":{c:"K',41,'79',24,'67',24,'71',24,'81',51,76,35,78,37,80,37,'79":{c:"O',41,'88',24,'87',24,'65',24,'86',24,'89',51,94,95,'0833,"111',24,'101',24,'97',24,102,103,'1},"82":{c:"R',41,'116',24,'67',24,'79',24,'71',24,'85',24,'81',24,35,119,37,'84":{c:"T',41,'121',24,125,126,37,128,'0139,',55,131,'0139,',55,134,'krn:{"79',24,'67',24,'71',24,'81',51,143,'025',145,125,147,37,149,150,'},"97":{c:"a',152,'118',24,'106":0.0556,"121',24,'119',51,159,160,'99":{c:"c',152,'104',24,'107',51,167,37,'101":{c:"e",a',170,24,'117',24,'98',24,'121',24,'118',24,'119',51,182,'1},"107":{c:"k',41,'97',186,'101',24,'97',24,'111',24,'99',51,195,37,'109":{c:"m',152,'116',24,'117',24,'98',24,'121',24,'118',24,'119',51,'110":{c:"n',152,'116',24,'117',24,'98',24,'121',24,'118',24,'119',51,225,160,227,160,229,'1',231,'},"',233,'},"116":{c:"t',41,'121',24,'119',51,'117":{c:"u',152,'119',51,'118":{c:"v',245,'0139',145,'97',186,'101',24,'97',24,'111',24,'99',51,'119":{c:"w',245,'0139',145,'101',24,'97',24,'111',24,'99',51,270,'},"121":{c:"y',272,'0139',145,'111',24,'101',24,'97',24,102,282,'}}});if(',0,'browser=="MSIE"&&',0,'platform=="mac"){','jsMath.Setup.Styles({".typeset .math":"font-style: normal",".typeset .typeset":"font-style: normal",".typeset .icmr10":"font-family: ','Times','",".typeset .icmmi10":"font-family: ',1020,'; font-style: italic",".typeset .icmbx10":"font-family: ',1020,'; font-weight: bold",".typeset .icmti10":"font-family: ',1020,'; font-style: italic"});}','else{',1019,'serif',1021,1030,1023,1030,1025,1030,1027,0,'Add(',2,',{symbols:[0,','1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,','34,39,60,62,92,94,95,96',',123,124,125,126,127',']});',2,'.SetFont',15,':',2,'.symbols',',cmmi10:[0,',1042,'33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,','91,92,93,94,95,96',1044,'],cmsy10:[',1042,1054,'65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122',1044,'],cmex10:["all"],cmti10:',2,1051,'.concat(36),cmbx10:',2,1051,'});',2,'.LoadFont("cm-fonts");'] -]); diff --git a/literature/static/jsMath/jsMath-fallback-unix.js b/literature/static/jsMath/jsMath-fallback-unix.js deleted file mode 100644 index 543c1fdee..000000000 --- a/literature/static/jsMath/jsMath-fallback-unix.js +++ /dev/null @@ -1,29 +0,0 @@ -/* - * jsMath-fallback-unix.js - * - * Part of the jsMath package for mathematics on the web. - * - * This file makes changes needed for when the TeX fonts are not available - * with a browser under Unix. - * - * --------------------------------------------------------------------- - * - * Copyright 2004-2006 by Davide P. Cervone - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -jsMath.Script.Uncompress([ - ['jsMath.Add(jsMath.TeX,{cmr10',':[{c:"Γ",','tclass:"greek"},{c:"&','Delta;",',2,'Theta;",',2,'Lambda;",',2,'Xi;",',2,'Pi;",',2,'Sigma;",',2,'Upsilon;",',2,'Phi;",',2,'Psi;",',2,'Omega;",','tclass:"','greek','"},{c',':"ff','",ic:0.0778,krn:{"39":0.0778,"63":0.0778,"33":0.0778,"41":0.0778,"93":0.0778},lig:{"105":','14,"108":15},','tclass:"normal"},{c',':"fi",',28,':"fl",',28,':"ffi",',28,':"ffl",',28,':"&#','x131',';",a:0,',28,':"j",d:0.2,',28,37,'x60;",',22,'accent','"},{c:"&#','xB4;",',22,46,47,'x2C7;",',22,46,47,'x2D8;",',22,46,24,':"ˉ',';",',22,46,47,'x2DA;",',22,46,47,'x0327;",',28,37,'xDF;",',28,37,'xE6',39,28,37,'x153',39,28,37,'xF8;",',28,37,'xC6;",',28,37,'x152;",',28,37,'xD8;",',28,':"?",krn:{"108":-0.278,"76":-0.319},',28,':"!",lig:{"96":60},',28,37,'x201D;",',28,':"#",',28,':"$",',28,':"%",',28,':"&",',28,37,'x2019;",krn:{"63":0.111,"33":0.','111},','lig:{"39":34},',28,':"(",','d:0.2,',28,':")",',117,28,':"*",',28,':"+",a',':0.1,',28,':",",a:-','0.3,d:0.2,','w:0.278,',28,':"-",a:0,lig:{"45":123},',28,':".",a:-0.','25,',28,':"/",',28,':"0",',28,':"1",',28,':"2",',28,':"3",',28,':"4",',28,':"5",',28,':"6",',28,':"7",',28,':"8",',28,':"9",',28,':":",',28,':";",',28,37,'xA1;",',28,':"=",','a:0,d:-0.','1,',28,37,'xBF;",',28,':"?",lig:{"96":62},',28,':"@",',28,':"A','",krn:{"','116','":-0.0278,"','67',179,'79',179,'71',179,'85',179,'81',179,'84','":-0.0833,"','89',191,'86','":-0.111',',"87":-0.',113,28,':"B",',28,':"C",',28,':"D',177,'88',179,'87',179,'65',179,'86',179,'89','":-0.0278','},',28,':"E",',28,':"F',177,'111',191,'101',191,'117','":-0.0833,"114":-0.0833,"97":-0.0833,"65":-0.','111,"79',179,'67',179,'71',179,'81',214,'},',28,':"G",',28,':"H",',28,':"I',177,'73":0.','0278','},',28,':"J",',28,':"K',177,'79',179,'67',179,'71',179,'81',214,'},',28,':"L',177,'84',191,'89',191,'86',195,196,113,28,':"M",',28,':"N",',28,':"O',177,'88',179,'87',179,'65',179,'86',179,'89',214,'},',28,':"P',177,'65',191,'111',179,'101',179,'97',179,'46',191,'44":-0.0833},',28,':"Q",d:1,',28,':"R',177,'116',179,'67',179,'79',179,'71',179,'85',179,'81',179,'84',191,'89',191,'86',195,196,113,28,':"S",',28,':"T',177,'121',179,'101',191,'111',226,'0833,"117":-0.0833','},',28,':"U",',28,':"V",','ic:0.0139,krn:{"','111',191,'101',191,'117',226,'111,"79',179,'67',179,'71',179,'81',214,'},',28,':"W",',345,'111',191,'101',191,'117',226,'111,"79',179,'67',179,'71',179,'81',214,'},',28,':"X',177,'79',179,'67',179,'71',179,'81',214,'},',28,':"Y",ic:0.025,','krn:{"101',191,'111',226,339,'},',28,':"Z",',28,':"[",','d',125,28,37,'x201C;",',28,':"]",','d',125,28,37,'x2C6;",',22,46,47,'x2D9;",',22,46,47,'x2018;",lig:{"96":92},',28,':"a','",a:0,krn:{"','118',179,'106":0.','0556,"121',179,'119',214,'},',28,':"b',177,'101','":0.0278,"','111',438,'120',179,'100',438,'99',438,'113',438,'118',179,428,'0556,"121',179,'119',214,'},',28,':"c',425,'104',179,'107',214,'},',28,':"d",',28,':"e",a:0,',28,':"f',26,'12,"102":11,"108":13},',28,':"g",','a:0,d:0.2,ic:0.','0139,krn:{"',428,244,'},',28,':"h',177,'116',179,'117',179,'98',179,'121',179,'118',179,'119',214,'},',28,':"i",',28,41,28,':"k',177,'97','":-0.0556,"','101',179,'97',179,'111',179,'99',214,'},',28,':"l",',28,':"m',425,'116',179,'117',179,'98',179,'121',179,'118',179,'119',214,'},',28,':"n',425,'116',179,'117',179,'98',179,'121',179,'118',179,'119',214,'},',28,':"o',425,'101',438,'111',438,'120',179,'100',438,'99',438,'113',438,'118',179,428,'0556,"121',179,'119',214,'},',28,':"p",a:0,',117,393,438,'111',438,'120',179,'100',438,'99',438,'113',438,'118',179,428,'0556,"121',179,'119',214,'},',28,':"q",a:0,',117,28,':"','r",a:0,',28,':"s",a:0,',28,':"t',177,'121',179,'119',214,'},',28,':"u',425,'119',214,'},',28,':"v",a:0,',345,'97',504,'101',179,'97',179,'111',179,'99',214,'},',28,':"w",a:0,',345,'101',179,'97',179,'111',179,'99',214,'},',28,':"x",a:0,',28,':"y",',475,476,'111',179,'101',179,'97',179,'46',191,'44":-0.0833},',28,':"z",a:0,',28,37,'x2013',';",a:0.1,','ic:0.0278,','lig:{"45":124},',28,37,'x2014',662,663,28,37,'x2DD;",',22,46,47,'x2DC;",',22,46,47,'xA8;",',22,46,'"}],cmmi10',1,'ic:0.139',',krn:{"61":-0.0556,"59":-0.111,"58":-0.111,"127":0.','0833},',22,'igreek"},{c:"&',3,'krn:{"127":0.','167},',22,689,5,'ic:0.',244,',krn:{"127":0.','0833},',22,689,7,691,'167},',22,689,9,'ic:0.0757',698,'0833},',22,689,11,'ic:0.0812,krn:{"61',504,'59":-0.0556,"58":-0.0556,"127":0.','0556},',22,689,13,'ic:0.0576',698,'0833},',22,689,15,'ic:0.139',686,'0556},',22,689,17,691,'0833},',22,689,19,'ic:0.11,krn:{"61',504,716,'0556},',22,689,21,'ic:0.0502',698,'0833},',22,689,'alpha',';",a:0,ic:0.','0037',698,244,'},',2,'beta;",','d:0.2,ic:0.','0528',698,'0833},',2,'gamma;",',475,'0556,',2,'delta;",ic:0.0378,krn:{"',716,'0556},',2,'epsilon;",a:0',698,'0556},',22,'symbol"},{c',':"ζ",',758,'0738',698,'0833},',2,'eta;",',475,'0359',698,'0556},',2,'theta;",ic:0.',244,698,'0833},',2,'iota;",a:0',698,'0556},',2,'kappa',39,2,'lambda;",',2,'mu',39,'d:0.2',698,244,'},',2,'nu',751,'0637,krn:{"',716,244,'},',2,'xi;",',758,'046',698,113,2,'pi',751,'0359,',2,'rho',39,'d:0.2',698,'0833},',2,'sigma',751,824,'krn:{"59',504,'58":-0.0556','},',2,'tau',751,'113,krn:{"',716,244,'},',2,'upsilon',751,'0359',698,244,'},',2,'phi',662,'d:0.2',698,'0833},',2,'chi',39,'d:0.2',698,'0556},',2,'psi',662,758,'0359',698,113,2,'omega',751,824,2,'epsilon;",a:0',698,'0833},',22,'greek',47,'x3D1;",',691,'0833},',28,37,'x3D6',751,244,',',28,37,'x3F1',39,'d:0.2',698,'0833},',28,37,'x3C2;",',475,'0799',698,'0833},',28,37,'x3D5',662,'d:0.2',698,'0833},',28,37,'x21BC',';",a:0,d:-0.','2,',22,'harpoon',47,'x21BD',916,'1,',22,'harpoon',47,'x21C0',916,'2,',22,'harpoon',47,'x21C1',916,'1,',22,'harpoon',24,60,'font-size: 133%; ',61,':-.1em; margin:-.2em; left:-.05em\\">&#','x02D3',63,'a',125,22,'symbol"},{c:"&#','x25B7',63,22,948,958,'x25C1',63,22,775,':"0",',28,':"1",',28,':"2",',28,':"3",',28,':"4",',28,':"5",',28,':"6",',28,':"7",',28,':"8",',28,':"9",',28,133,'3,',28,':",",a:-',128,28,':"<',662,28,136,'krn:{"1',504,'65',504,'77',504,'78',504,'89":0.0556,"90":-0.0556},',28,':">',662,28,60,958,'x2605',63,'a:0,','tclass:"symbol"},{c:"&#','x2202;",ic:0.0556',698,'0833},',28,':"A",',691,'139','},tclass:"italic"},{c:"','B",ic:0.0502',698,'0833',1024,'C",ic:0.0715,krn:{"61',179,716,'0833',1024,'D",ic:0.',244,698,'0556',1024,'E",ic:0.0576',698,'0833',1024,'F",ic:0.139',686,'0833',1024,'G",',691,'0833',1024,'H",ic:0.0812,krn:{"61',504,716,'0556',1024,'I",ic:0.0785',698,'111',1024,'J",ic:0.0962',686,'167',1024,'K",ic:0.0715,krn:{"61',504,716,'0556',1024,'L",',691,244,1024,'M','",ic:0.109,krn:{"','61',504,716,'0833',1024,'N',1074,'61',191,'61',179,716,'0833',1024,'O",ic:0.',244,698,'0833',1024,'P",ic:0.139',686,'0833',1024,'Q",d:0.2',698,'0833',1024,'R",ic:0.00773',698,'0833',1024,'S",ic:0.0576,krn:{"61',504,716,'0833',1024,'T','",ic:0.139,krn:{"','61',179,716,'0833',1024,'U',1074,'59',195,',"58',195,',"61',504,'127":0.',244,1024,'V",ic:0.222,krn:{"59','":-0.167,"','58',1130,'61',195,1024,'W',1112,'59',1130,'58',1130,'61',195,1024,'X",ic:0.0785,krn:{"61',191,'61',179,716,'0833',1024,'Y",ic:0.222,krn:{"59',1130,'58',1130,'61',195,1024,'Z",ic:0.0715,krn:{"61',504,716,'0833},',22,'italic',47,'x266D;",',22,'symbol2',47,'x266E;",',22,'symbol2',47,'x266F;",',22,'symbol2',47,'x2323',916,'1,',28,37,'x2322',916,'1,',28,37,'x2113;",',691,113,22,775,':"a",a:0,',22,'italic"},{c:"','b",',22,1195,'c",a:0',698,'0556',1024,'d',177,'89":0.0556,"90',504,'106',195,',"102',1130,1126,'167',1024,'e",a:0',698,'0556',1024,'f",',758,'108,krn:{"',716,'167',1024,'g",',475,'0359',698,244,1024,'h',177,'127',214,1024,'i",',22,1195,'j",',758,'0572,krn:{"59',504,837,1024,'k",ic:0.0315,',22,1195,'l",ic:0.0197',698,'0833',1024,'m",a:0,',22,1195,'n",a:0,',22,1195,'o",a:0',698,'0556',1024,'p",a:0,d:0.2',698,'0833',1024,'q",',475,'0359',698,'0833',1024,599,663,'krn:{"',716,'0556',1024,'s",a:0',698,'0556',1024,'t",',691,'0833',1024,'u",a:0',698,244,1024,'v",a:0,ic:0.0359',698,244,1024,'w",a:0,ic:0.0269',698,'0833',1024,'x",a:0',698,244,1024,'y",',475,'0359',698,'0556',1024,'z",a:0,ic:0.044',698,'0556},',22,'italic',47,'x131;",a:0',698,244,1024,'j",d:0.2',698,'0833},',22,'italic',47,'x2118',39,'d:0.2',698,113,28,60,'position:relative; left: .4em; top: -.8em; font-size: 50%\\">→',63,'ic:0.154,',1016,'x0311;",ic:0.399,',22,'normal"}],cmsy10:[{c',37,'x2212',662,1016,'xB7',916,'2,',1016,'xD7',39,22,948,61,':.2em\\">*',63,'a:0,',1016,'xF7',39,1016,'x25CA;",',1016,'xB1',662,1016,'x2213;",',1016,'x2295;",',1016,'x2296;",',1016,'x2297;",',1016,'x2298;",',1016,'x2299;",',1016,'x25EF;",',22,948,61,':.25em;\\">°',63,166,'1,',1016,'x2022',916,'2,',1016,'x224D',662,1016,'x2261',662,1016,'x2286;",',1016,'x2287;",',1016,'x2264;",',1016,'x2265;",',1016,'x227C;",',1016,'x227D;",',22,775,':"~",',166,'2,',28,37,'x2248',662,'d:-0.1,',1016,'x2282;",',1016,'x2283;",',1016,'x226A;",',1016,'x226B;",',1016,'x227A;",',1016,'x227B;",',1016,'x2190',916,'15,',22,'arrows"},{c:"&#','x2192',916,'15,',22,1431,'x2191',';",h:1,',22,1431,'x2193',1438,22,1431,'x2194',39,22,1431,'x2197',1438,22,1431,'x2198',1438,22,1431,'x2243',662,1016,'x21D0',662,22,1431,'x21D2',662,22,1431,'x21D1;",h:0.9,d',125,22,1431,'x21D3;",h:0.9,d',125,22,1431,'x21D4',662,22,1431,'x2196',1438,22,1431,'x2199',1438,22,1431,'x221D',662,22,948,940,'margin-right',': -.1em; position: relative; top:.4em\\">′',63,'a:0,',1016,'x221E',662,1016,'x2208;",',1016,'x220B;",',1016,'x25B3;",',1016,'x25BD;",',22,775,136,22,948,'font-size:50%; ',61,':-.3em; ',1493,':-.2em\\">|",a:0,',28,37,'x2200;",',1016,'x2203;",',1016,'xAC',916,'1,',22,'symbol1',47,'x2205;",',1016,'x211C;",',1016,'x2111;",',1016,'x22A4;",',1016,'x22A5;",',1016,'x2135;",',22,775,':"A',177,'48":0.194},',22,'cal"},{c:"','B",ic:0.0304',',krn:{"48":0.','139},',22,1547,'C",ic:0.0583',1549,'139},',22,1547,'D",ic:0.',244,1549,'0833},',22,1547,'E",ic:0.0894',1549,113,22,1547,'F",ic:0.0993',1549,113,22,1547,'G",',758,'0593',1549,113,22,1547,'H",ic:0.00965',1549,113,22,1547,'I",ic:0.0738',1549,244,'},',22,1547,'J",',758,'185',1549,'167},',22,1547,'K",ic:0.0144',1549,'0556},',22,1547,'L',177,'48":0.139},',22,1547,'M',177,'48":0.139},',22,1547,'N",ic:0.147',1549,'0833},',22,1547,'O",ic:0.',244,1549,113,22,1547,'P",ic:0.0822',1549,'0833},',22,1547,'Q",d:0.2',1549,113,22,1547,'R',177,'48":0.0833},',22,1547,'S",ic:0.075',1549,'139},',22,1547,'T",ic:0.254',1549,244,'},',22,1547,'U",ic:0.0993',1549,'0833},',22,1547,'V",ic:0.0822',1549,244,'},',22,1547,'W",ic:0.0822',1549,'0833},',22,1547,'X",ic:0.146',1549,'139},',22,1547,'Y",ic:0.0822',1549,'0833},',22,1547,'Z",ic:0.0794',1549,'139},',22,'cal',47,'x22C3;",',1016,'x22C2;",',1016,'x228E;",',1016,'x22C0;",',1016,'x22C1;",',1016,'x22A2;",',1016,'x22A3;",',22,'symbol2',47,'xF8F0;",','a:',128,28,37,'xF8FB;",','a:',128,28,37,'xF8EE;",','a:',128,28,37,'xF8F9;",','a:',128,28,':"{",',117,28,':"}",',117,28,37,'x3008;",','a:',128,28,37,'x3009;",','a:',128,28,':"|",d',125,22,'vertical"},{c',':"||",','d:0,',22,'vertical',47,'x2195',1438,'d:0.15,',22,1431,'x21D5;",a:0.2,d',125,22,1431,'x2216;",','a:0.3,d',125,28,37,'x2240;",',22,948,61,': .8em\\">√',63,'h:0.04,d:0.9,',28,37,'x2210;",a:0.4,',1016,'x2207;",',1016,'x222B',1438,'d',125,'ic:0.111,',22,'root',47,'x2294;",',1016,'x2293;",',1016,'x2291;",',1016,'x2292;",',1016,'xA7;",d',125,28,37,'x2020;",d',125,28,37,'x2021;",d',125,28,37,'xB6;",a:0.3,d',125,28,37,'x2663;",',1016,'x2666;",',1016,'x2665;",',1016,'x2660;",',22,'symbol"}],cmex10:[{c',116,'h:0.04,d:1.16,n:','16,',22,'delim1"},{c',119,1812,'17,',22,1815,402,1812,'104,',22,1815,409,1812,'105,',22,'delim1',47,'xF8F0",',1812,'106,',22,'delim1',47,1704,1812,'107,',22,'delim1',47,1709,1812,'108,',22,'delim1',47,1714,1812,'109,',22,1815,1718,1812,'110,',22,1815,1721,1812,'111,',22,'delim1',47,1725,1812,'68,',22,'delim1c',47,1730,1812,'69,',22,'delim1c',24,':"|",','h:0.7,d:0,delim:{rep:','12},',22,1737,1738,1879,'13},',22,1737,136,1812,'46,',22,'delim1b',47,1752,1812,'47,',22,'delim1b','"},{c:"(",','h:0.04,d:1.76,n:','18,',22,'delim2',24,119,1900,'19,',22,'delim2',1899,'h:0.04,d:2.36,n:','32,',22,'delim3"},{c',119,1911,'33,',22,1914,402,1911,'34,',22,1914,409,1911,'35,',22,'delim3',47,1699,1911,'36,',22,'delim3',47,1704,1911,'37,',22,'delim3',47,1709,1911,'38,',22,'delim3',47,1714,1911,'39,',22,1914,1718,1911,'40,',22,1914,1721,1911,'41,',22,'delim3',47,1725,1911,'42,',22,'delim3c',47,1730,1911,'43,',22,'delim3c',24,136,1911,'44,',22,'delim3b',47,1752,1911,'45,',22,'delim3b',1899,'h:0.04,d:2.96,','n:48,',22,'delim4"},{c',119,1989,'n:49,',22,1992,402,1989,'n:50,',22,1992,409,1989,'n:51,',22,'delim4',47,1699,1989,'n:52,',22,'delim4',47,1704,1989,'n:53,',22,'delim4',47,1709,1989,'n:54,',22,'delim4',47,1714,1989,'n:55,',22,1992,1718,1989,'n:56,',22,1992,1721,1989,'n:57,',22,'delim4',47,1725,1989,22,'delim4c',47,1730,1989,22,'delim4c',24,136,1989,22,'delim4b',47,1752,1989,22,'delim4b',24,136,1900,'30,',22,'delim2b',47,1752,1900,'31,',22,'delim2b',47,'xF8EB;",h:0.8,d:0.15,delim:{top:48,bot:64,rep:66},',22,'delim',24,':"&'], - ['#xF8F6',';",h:0.8,d:0.15,delim:{','top:','49,bot:65,rep:67','},tclass:"delim"},{c:"&#','xF8EE',1,2,'50,bot:52,rep:54',4,'xF8F9',1,2,'51,bot:53,rep:55',4,'xF8F0',1,'bot:52,rep:54',4,'xF8FB',1,'bot:53,rep:55',4,'xF8EF',1,2,'50,rep:54',4,'xF8FA',1,2,'51,rep:55',4,'xF8F1',1,2,'56,mid:60,bot:58,rep:62',4,'xF8FC',1,2,'57,mid:61,bot:59,rep:62',4,'xF8F3',1,'top:56,bot:','58,rep:62',4,'xF8FE',1,'top:57,bot:','59,rep:62',4,'xF8F2',1,'rep:63',4,'xF8FD',1,'rep:119',4,'xF8F4',1,'rep:62},tclass:"delim"},{c:"|",','h:0.65,d:0,delim:{top:','120,bot:121',',rep:63},tclass:"','vertical','"},{c:"&#','xF8ED',1,45,'59,rep:62',4,'xF8F8',1,50,'58,rep:62',4,'xF8EC',1,'rep:66',4,'xF8F7',1,'rep:67',4,'x3008;",','h:0.04,d:1.76,n:','28',',tclass:"','delim2c',68,'x3009;",',88,'29',90,91,68,'x2294',';",h:0,d:1,n:','71',90,'bigop1',68,'x2294',';",h:0.1,d:1.5,tclass:"','bigop2',68,'x222E',';",h:0,d:1.11,ic:0.095,n:','73',90,'bigop1c',68,'x222E;",h:0,d:2.22,ic:0.222',90,'bigop2c',68,'x2299',100,'75',90,103,68,'x2299',106,107,68,'x2295',100,'77',90,103,68,'x2295',106,107,68,'x2297',100,'79',90,103,68,'x2297',106,107,68,'x2211',100,'88',90,'bigop1a',68,'x220F',100,'89',90,153,68,'x222B',110,'90',90,113,68,'x222A',100,'91',90,'bigop1b',68,'x2229',100,'92',90,171,68,'x228E',100,'93',90,171,68,'x2227',100,'94',90,103,68,'x2228',100,'95',90,103,68,'x2211;",h:0.1,d:1.6',90,'bigop2a',68,'x220F',106,199,68,'x222B;",h:0,d:2.22,ic:0.222',90,117,68,'x222A',106,'bigop2b',68,'x2229',106,211,68,'x228E',106,211,68,'x2227',106,107,68,'x2228',106,107,68,'x2210',100,'97',90,153,68,'x2210',106,199,68,'xFE3F;",h:0.','722,w:0.65,n:99',90,'wide1',68,239,'85,w:1.1,n:100',90,'wide2',68,239,'99,w:1.65',90,'wide3',68,'x2053;",h:0.','722,w:0.75,n:102',90,'wide1a',68,254,'8,w:1.35,n:103',90,'wide2a',68,254,'99,w:2',90,'wide3a','"},{c:"[",',88,'20',90,'delim2','"},{c:"]",',88,'21',90,272,68,'xF8F0;",',88,'22',90,272,68,'xF8FB;",',88,'23',90,272,68,'xF8EE;",',88,'24',90,272,68,10,'",',88,'25',90,272,'"},{c:"{",',88,'26',90,272,'"},{c:"}",',88,'27',90,272,'"},{c:"",h:0.','04,d:1.16,n:113',90,'root',313,'190',315,'925em',317,'04,d:1.76,n:114',90,320,313,'250',315,'925em',317,'06,d:2.36,n:115',90,320,313,'320',315,'92em',317,'08,d:2.96,n:116',90,320,313,'400',315,'92em',317,'1,d:3.75,n:117',90,320,313,'500',315,'9em',317,'12,d:4.5,n:118',90,320,313,'625',315,'9em',317,'14,d:5.7',90,320,'"},{c:"||",',64,'126,bot:127',',rep:119},tclass:"',67,68,'x25B5;",h:0.','45,delim:{',2,'120',66,'arrow1',68,'x25BF;",h:0.',376,'bot:121',66,380,313,'67',315,'35em; margin-','left:-.5em\\">&#','x256D',';",h:0.','1',90,'symbol',313,'67',315,390,'right:-.5em\\">&#','x256E',393,'1',90,396,313,'67',315,390,391,'x2570',393,'1',90,396,313,'67',315,390,401,'x256F',393,'1',90,396,68,375,'5,delim:{',2,'126',372,'arrow2',68,382,429,'bot:127',372,433,'"}],cmti10:[{c:"Γ",ic:0.133,','tclass:"igreek"},{c:"&','Delta;",',441,'Theta;",','ic:0.094,',441,'Lambda;",',441,'Xi;",ic:0.153,',441,'Pi;",ic:0.164,',441,'Sigma;",ic',':0.12,',441,'Upsilon;",ic:0.111,',441,'Phi;",ic:0.0599,',441,'Psi;",ic:0.111,',441,'Omega;",ic:0.103',90,'igreek','"},{c:"ff','",ic:0.212,krn:{"39":0.104,"63":0.104,"33":0.104,"41":0.104,"93":0.104},lig:{"105":','14,"108":15},','tclass:"italic"},{c',':"fi','",ic:0.103,',468,':"fl',470,468,':"ffi',470,468,':"ffl',470,468,':"ı",a:0,','ic:0.','0767,',468,':"j",d:0.2,','ic:0.0374,',468,':"`",','tclass:"iaccent"},{c:"&#','xB4;",ic:0.0969,',489,'x2C7;",ic:0.083,',489,'x2D8;",','ic:0.108,',489,'x2C9;",ic:0.103,',489,'x2DA;",tclass:"','iaccent','"},{c:"?",','d:0.17,w:0.46,',468,':"ß",','ic:0.105,',468,':"æ",a:0,','ic:0.0751,',468,':"œ",a:0,',508,468,':"ø",','ic:0.0919,',468,':"Æ",','ic',454,468,':"Œ",','ic',454,468,':"Ø",',445,468,':"?",krn:{"108":-0.','256,"76":-0.321},',468,':"!",','ic:0.124,lig:{"96":','60},',468,':"”",','ic:0.0696,',468,':"#",ic:0.0662,',468,':"$",',468,':"%",ic:0.136,',468,':"&",','ic:0.0969,',468,':"’",','ic:0.124,','krn:{"63":0.','102,"33":0.102},lig:{"39":34},',468,':"(",d:0.2,','ic:0.162,',468,':")",d:0.2,','ic:0.0369,',468,':"*",ic:0.149,',468,':"+",a:0.1,','ic:0.0369,',468,':",",a:-0.3,d:0.2,w:0.278,',468,':"-",a:0,ic:0.0283',',lig:{"45":','123},',468,':".",a:-0.25,',468,':"/",ic:0.162,',468,':"0",ic:0.136,',468,':"1",ic:0.136,',468,':"2",ic:0.136,',468,':"3",ic:0.136,',468,':"4",ic:0.136,',468,':"5",ic:0.136,',468,':"6",ic:0.136,',468,':"7",ic:0.136,',468,':"8",ic:0.136,',468,':"9",ic:0.136,',468,':":",ic:0.0582,',468,':";",ic:0.0582,',468,':"¡",','ic:0.0756,',468,':"=",a:0,d:-0.1,','ic:0.0662,',468,':"¿",',468,':"?",','ic:0.122,','lig:{"96":','62},',468,':"@",ic:0.096,',468,':"A",','krn:{"110":-0.0256,"108":-0.0256,"114":-0.0256,"117":-0.0256,"109":-0.0256,"116":-0.0256,"105":-0.0256,"67":-0.0256,"79":-0.0256,"71":-0.0256,"104":-0.0256,"98":-0.0256,"85":-0.0256,"107":-0.0256,"118":-0.0256,"119":-0.0256,"81":-','0.0256,"84','":-0.0767,"','89',614,'86','":-0.102,"','87',618,'101','":-0.0511,"','97',622,'111',622,'100',622,'99',622,'103',622,'113','":-0.0511','},',468,':"B',470,468,':"C",','ic:0.145,',468,':"D",',445,'krn:{"88','":-0.0256,"','87',646,'65',646,'86',646,'89":-0.','0256},',468,':"E",ic',454,468,':"F','",ic:0.133,krn:{"','111',614,'101',614,'117','":-0.0767,"114":-0.0767,"97":-0.0767,"','65',618,'79',646,'67',646,'71',646,'81":-0.0256','},',468,':"G",ic:0.0872,',468,':"H",ic:0.164,',468,':"I",ic:0.158,',468,':"J",ic:0.14,',468,':"K",',641,'krn:{"79',646,'67',646,'71',646,675,'},',468,':"L",krn:{"84',614,'89',614,'86',618,'87',618,'101',622,'97',622,'111',622,'100',622,'99',622,'103',622,'113',634,'},',468,':"M",ic:0.164,',468,':"N",ic:0.164,',468,':"O",',445,'krn:{"88',646,'87',646,'65',646,'86',646,653,'0256},',468,':"P',470,'krn:{"65":-0.0767},',468,':"Q",d:1,',445,468,':"R",ic:0.0387,',612,'0.0256,"84',614,'89',614,'86',618,'87',618,'101',622,'97',622,'111',622,'100',622,'99',622,'103',622,'113',634,'},',468,':"S",ic',454,468,':"T',660,'121',614,'101',614,'111',666,'117',614,'65":-0.0767},',468,':"U",ic:0.164,',468,':"V",ic:0.','184,krn:{"','111',614,'101',614,'117',666,'65',618,'79',646,'67',646,'71',646,675,'},',468,':"W",ic:0.',789,'65":-0.0767},',468,':"X",ic:0.158,krn:{"79',646,'67',646,'71',646,675,'},',468,':"Y",ic:0.','194',',krn:{"101',614,'111',666,'117',614,'65":-0.0767},',468,':"Z",',641,468,':"[",d:0.1,','ic:0.188,',468,':"“",','ic:0.169,',468,':"]",d:0.1,','ic:0.105,',468,':"ˆ",ic:0.0665,',489,'x2D9;",ic:0.118,',489,'x2018;",',531,'92},',468,':"a','",a:0,ic:0.',483,468,':"b",ic:0.0631',822,622,'97',622,'111',622,'100',622,'99',622,'103',622,'113',634,'},',468,':"c',851,'0565',822,622,'97',622,'111',622,'100',622,'99',622,'103',622,'113',634,'},',468,':"d',470,'krn:{"108":','0.0511},',468,':"e',851,'0751',822,622,'97',622,'111',622,'100',622,'99',622,'103',622,'113',634,'},',468,':"f',466,'12,"102":11,"108":13},',468,':"g','",a:0,d:0.2,ic:0.','0885,',468,':"h",ic:0.',483,468,':"i",ic:0.102,',468,485,641,468,':"k",',495,468,':"l',470,892,'0.0511},',468,':"m',851,483,468,':"n',851,483,'krn:{"39":-0.102},',468,':"o',851,'0631',822,622,'97',622,'111',622,'100',622,'99',622,'103',622,'113',634,'},',468,':"p',919,'0631',822,622,'97',622,'111',622,'100',622,'99',622,'103',622,'113',634,'},',468,':"q',919,'0885,',468,':"r',851,'108',822,622,'97',622,'111',622,'100',622,'99',622,'103',622,'113',634,'},',468,':"s',851,'0821,',468,':"t",ic:0.0949,',468,':"u',851,483,468,':"v',851,'108,',468,':"w',851,1020,892,'0.0511},',468,':"x',851,'12,',468,':"y',919,'0885,',468,':"z',851,'123,',468,':"–",a:0.1,ic:0.','0921',565,'124},',468,':"—",a:0.1,ic:0.','0921,',468,':"˝",',605,489,'x2DC;",ic:0.116,',489,'xA8;",tclass:"',500,'"}],cmbx10:[{c:"&Gamma',';",tclass:"bgreek"},{c:"&','Delta',1056,'Theta',1056,'Lambda',1056,'Xi',1056,'Pi',1056,'Sigma',1056,'Upsilon',1056,'Phi',1056,'Psi',1056,'Omega;",tclass:"bgreek"},{c:"ff','",ic:0.0778,krn:{"39":0.0778,"63":0.0778,"33":0.0778,"41":0.0778,"93":0.0778},lig:{"105":','14,"108":15},','tclass:"bold"},{c',':"fi",',1078,':"fl",',1078,':"ffi",',1078,':"ffl",',1078,481,1078,485,1078,':"`',';",tclass:"baccent"},{c:"&#','xB4',1092,'x2C7',1092,'x2D8',1092,'x2C9',1092,499,'baccent',501,1078,504,1078,507,1078,510,1078,513,1078,516,1078,520,1078,524,1078,527,'278,"76":-0.319},',1078,530,606,'60},',1078,534,1078,':"#",',1078,':"$",',1078,':"%",',1078,543,1078,546,548,'111,"33":0.111},lig:{"39":34},',1078,551,1078,554,1078,':"*",',1078,559,1078,':",",a:-0.3,d:0.2,w:0.278,',1078,':"-",a:0',565,'123},',1078,':".",a:-0.25,',1078,':"/",',1078,':"0",',1078,':"1",',1078,':"2",',1078,':"3",',1078,':"4",',1078,':"5",',1078,':"6",',1078,':"7",',1078,':"8",',1078,':"9",',1078,':":",',1078,':";",',1078,596,1078,599,1078,':"¿",',1078,604,606,'62},',1078,':"@",',1078,':"A",krn:{"116','":-0.0278,"','67',1195,'79',1195,'71',1195,'85',1195,'81',1195,'84','":-0.0833,"','89',1207,'86":-0.','111,"87":-0.111},',1078,':"B",',1078,640,1078,':"D",krn:{"88',1195,'87',1195,'65',1195,'86',1195,653,'0278},',1078,':"E",',1078,':"F",krn:{"111',1207,'101',1207,'117','":-0.0833,"114":-0.0833,"97":-0.0833,"65":-0.','111,"79',1195,'67',1195,'71',1195,'81":-0.0278','},',1078,':"G",',1078,':"H",',1078,':"I",krn:{"73":0.0278},',1078,':"J",',1078,':"K",krn:{"79',1195,'67',1195,'71',1195,1242,'},',1078,':"L",krn:{"84',1207,'89',1207,1210,'111,"87":-0.111},',1078,':"M",',1078,':"N",',1078,':"O",krn:{"88',1195,'87',1195,'65',1195,'86',1195,653,'0278},',1078,':"P",krn:{"65',1207,'111',1195,'101',1195,'97',1195,'46',1207,'44":-0.0833},',1078,742,1078,':"R",krn:{"116',1195,'67',1195,'79',1195,'71',1195,'85',1195,'81',1195,'84',1207,'89',1207,1210,'111,"87":-0.111},',1078,':"S",',1078,':"T",krn:{"121',1195,'101',1207,'111',1235,'0833,"117":-0.0833','},',1078,':"U",',1078,788,'0139,krn:{"','111',1207,'101',1207,'117',1235,'111,"79',1195,'67',1195,'71',1195,1242,'},',1078,807,1331,'111',1207,'101',1207,'117',1235,'111,"79',1195,'67',1195,'71',1195,1242,'},',1078,':"X",krn:{"79',1195,'67',1195,'71',1195,1242,'},',1078,820,'025',822,1207,'111',1235,1325,'},',1078,830,1078,833,1078,836,1078,839,1078,':"ˆ',1092,'x2D9',1092,846,606,'92},',1078,':"a','",a:0,krn:{"','118',1195,'106":0.','0556,"121',1195,'119":-0.','0278},',1078,':"b",krn:{"101','":0.0278,"','111',1409,'120',1195,'100',1409,'99',1409,'113',1409,'118',1195,1402,'0556,"121',1195,1405,'0278},',1078,':"c',1399,'104',1195,'107":-0.0278},',1078,':"d",',1078,':"e",a:0,',1078,':"f',1076,'12,"102":11,"108":13},',1078,':"g',919,1331,1402,'0278},',1078,':"h",krn:{"116',1195,'117',1195,'98',1195,'121',1195,'118',1195,1405,'0278},',1078,':"i",',1078,485,1078,':"k",krn:{"97":-0.0556,"101',1195,'97',1195,'111',1195,'99":-0.','0278},',1078,':"l",',1078,':"m',1399,'116',1195,'117',1195,'98',1195,'121',1195,'118',1195,1405,'0278},',1078,':"n',1399,'116',1195,'117',1195,'98',1195,'121',1195,'118',1195,1405,'0278},',1078,':"o",a:0',822,1409,'111',1409,'120',1195,'100',1409,'99',1409,'113',1409,'118',1195,1402,'0556,"121',1195,1405,'0278},',1078,':"p",a:0,d:0.2',822,1409,'111',1409,'120',1195,'100',1409,'99',1409,'113',1409,'118',1195,1402,'0556,"121',1195,1405,'0278},',1078,':"q",a:0,d:0.2,',1078,':"r",a:0,',1078,':"s",a:0,',1078,':"t",krn:{"121',1195,1405,'0278},',1078,':"u',1399,1405,'0278},',1078,':"v',851,1331,'97":-0.0556,"101',1195,'97',1195,'111',1195,1471,'0278},',1078,':"w',851,'0139',822,1195,'97',1195,'111',1195,1471,'0278},',1078,':"x",a:0,',1078,':"y',919,1331,'111',1195,'101',1195,'97',1195,'46',1207,'44":-0.0833},',1078,':"z",a:0,',1078,1040,'0278',565,'124},',1078,1045,'0278,',1078,':"˝',1092,'x2DC',1092,1053,1102,'"}]});','jsMath.Setup.Styles','({".typeset .math','":"font-style: ','normal','",".typeset .','italic',1622,1625,1624,'bold":"','font-weight: bold',1624,'cmr10','":"font-family: ','serif',1624,'cal',1633,'cursive',1624,'arrows','":"",".typeset .',380,1641,433,1641,'harpoon','":"font-size: ','125%",".typeset .',396,1641,'symbol2',1641,'delim1',1647,'133',315,'75em',1624,'delim1b',1647,'133',315,'8em; margin',': -.1em',1624,'delim1c',1647,'120',315,'8em',';",".typeset .',272,1647,'180',315,1657,1624,'delim2b',1647,'190',315,1663,': -.1em',1624,91,1647,'167',315,'8em',1671,'delim3',1647,'250',315,'725em',1624,'delim3b',1647,'250',315,1663,': -.1em',1624,'delim3c',1647,'240',315,'775em',1671,'delim4',1647,'325',315,'7em',1624,'delim4b',1647,'325',315,1663,': -.1em',1624,'delim4c',1647,'300',315,'8em',1671,'delim',1641,67,1641,'greek',1641,464,1622,1625,1624,'bgreek":"',1630,1624,103,1647,'133%; ','position: relative; top',': .85em; margin:-.05em',1624,153,1647,'100%; ',1745,': .775em',1671,171,1647,'160%; ',1745,': .7em','; margin:-.1em',1624,113,1647,'125%; ',1745,': .',1657,1759,1671,107,1647,'200%; ',1745,': .',1663,':-.07em',1624,199,1647,'175%; ',1745,1758,1671,211,1647,'270%; ',1745,': .62em',1759,1624,117,1647,'250%; ',1745,1758,'; margin:-.17em',1671,242,1647,'67%; ',1745,':-.8em',1624,247,1647,'110%; ',1745,':-.5em',1624,252,1647,'175%; ',1745,':-.32em',1624,257,1647,'75%; ',1745,1807,1624,262,1647,'133%; ',1745,': -.15em',1624,267,1647,'200%; ',1745,': -.05em',1624,320,1641,'accent":"',1745,': .02em',1624,500,'":"',1745,1837,'; font-style: ',1625,1624,1102,'":"',1745,1837,'; ',1630,'"});',1620,'();jsMath.Macro("not','","\\\\mathrel{\\\\','rlap{\\\\kern 4mu/}}");jsMath.Macro("joinrel',1855,'kern-2mu}");jsMath.Box.DelimExtend=jsMath.Box.DelimExtendRelative;jsMath.Box.defaultH=0.8;'] -]); \ No newline at end of file diff --git a/literature/static/jsMath/jsMath-global-controls.html b/literature/static/jsMath/jsMath-global-controls.html deleted file mode 100644 index daec4b69d..000000000 --- a/literature/static/jsMath/jsMath-global-controls.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - - - - -
- - - -
- - - - - - - - - -
-
- - - diff --git a/literature/static/jsMath/jsMath-global.html b/literature/static/jsMath/jsMath-global.html deleted file mode 100644 index 1732662f2..000000000 --- a/literature/static/jsMath/jsMath-global.html +++ /dev/null @@ -1,414 +0,0 @@ - - - -jsMath Global Frame - - - - - - - - diff --git a/literature/static/jsMath/jsMath-loader-omniweb4.js b/literature/static/jsMath/jsMath-loader-omniweb4.js deleted file mode 100644 index 051110eaf..000000000 --- a/literature/static/jsMath/jsMath-loader-omniweb4.js +++ /dev/null @@ -1,39 +0,0 @@ -/* - * jsMath-loader-omniweb4.js - * - * Part of the jsMath package for mathematics on the web. - * - * This file synchronizes the jsMath-loader.html file with - * the actual loading of the source javascript file. - * OmniWeb 4 has a serious bug where the loader file is run - * several times (and out of sequence), which plays havoc - * with the Start() and End() calls. - * - * --------------------------------------------------------------------- - * - * Copyright 2006 by Davide P. Cervone - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -if (window.jsMath.Autoload) { - jsMath.Autoload.Script.endLoad(); -} else { - if (!window.phase2) { - jsMath.Script.Start(); - window.phase2 = 1; - } else { - jsMath.Script.End(); - jsMath.Script.endLoad(); - } -} \ No newline at end of file diff --git a/literature/static/jsMath/jsMath-loader-post.html b/literature/static/jsMath/jsMath-loader-post.html deleted file mode 100644 index 0de7cb983..000000000 --- a/literature/static/jsMath/jsMath-loader-post.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - diff --git a/literature/static/jsMath/jsMath-loader.html b/literature/static/jsMath/jsMath-loader.html deleted file mode 100644 index ae9c81ed2..000000000 --- a/literature/static/jsMath/jsMath-loader.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - - diff --git a/literature/static/jsMath/jsMath-msie-mac.js b/literature/static/jsMath/jsMath-msie-mac.js deleted file mode 100644 index cf19f76f0..000000000 --- a/literature/static/jsMath/jsMath-msie-mac.js +++ /dev/null @@ -1,53 +0,0 @@ -/* - * jsMath-msie-mac.js - * - * Part of the jsMath package for mathematics on the web. - * - * This file makes changes needed for use with MSIE on the Mac. - * - * --------------------------------------------------------------------- - * - * Copyright 2004-2006 by Davide P. Cervone - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - -/* - * MSIE crashes if it changes the page too quickly, so we add a - * delay between processing math entries. Unfortunately, this really - * slows down math in MSIE on the mac. - */ - -jsMath.Add(jsMath,{ - - msieProcess: jsMath.Process, - msieProcessBeforeShowing: jsMath.ProcessBeforeShowing, - - Process: function () { - // we need to delay a bit before starting to process the page - // in order to avoid an MSIE display bug - jsMath.Message.Set("Processing Math: 0%"); - setTimeout('jsMath.msieProcess()',jsMath.Browser.delay); - }, - - ProcessBeforeShowing: function () { - // we need to delay a bit before starting to process the page - // in order to avoid an MSIE display bug - setTimeout('jsMath.msieProcessBeforeShowing()',5*jsMath.Browser.delay); - } - -}); - -jsMath.Browser.delay = 75; // hope this is enough of a delay! diff --git a/literature/static/jsMath/jsMath-old-browsers.js b/literature/static/jsMath/jsMath-old-browsers.js deleted file mode 100644 index 35dcf189a..000000000 --- a/literature/static/jsMath/jsMath-old-browsers.js +++ /dev/null @@ -1,58 +0,0 @@ -/* - * jsMath-old-browsers.js - * - * Part of the jsMath package for mathematics on the web. - * - * This file makes changes needed by older versions of some browsers - * - * --------------------------------------------------------------------- - * - * Copyright 2004-2006 by Davide P. Cervone - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -jsMath.Add(jsMath.HTML,{ - /* - * Use the blank GIF image for spacing and rules - */ - Blank: function (w,h,d,isRule) { - var style = ''; - if (isRule) { - if (h*jsMath.em < 1.5) {h = '1px'} else {h = jsMath.HTML.Em(h)} - style = 'border-top:'+h+' solid;'; h = 0; - } - if (d == null) {d = 0} - style += 'width:'+this.Em(w)+'; height:'+this.Em(h+d)+';'; - if (d) {style += 'vertical-align:'+this.Em(-d)} - return ''; - } -}); - -if (jsMath.browser == 'Konqueror') { - - jsMath.Package(jsMath.Box,{Remeasured: function() {return this}}); - - jsMath.Add(jsMath.HTML,{ - Spacer: function (w) { - if (w == 0) {return ''}; - return '' - + ' '; - } - }); - - jsMath.Browser.spaceWidth = this.EmBoxFor('     ').w/5; - -} - -jsMath.styles['.typeset .spacer'] = ''; diff --git a/literature/static/jsMath/jsMath.js b/literature/static/jsMath/jsMath.js deleted file mode 100644 index 4dc9cf00b..000000000 --- a/literature/static/jsMath/jsMath.js +++ /dev/null @@ -1,51 +0,0 @@ -/***************************************************************************** - * - * jsMath: Mathematics on the Web - * - * This jsMath package makes it possible to display mathematics in HTML pages - * that are viewable by a wide range of browsers on both the Mac and the IBM PC, - * including browsers that don't process MathML. See - * - * http://www.math.union.edu/locate/jsMath - * - * for the latest version, and for documentation on how to use jsMath. - * - * Copyright 2004-2010 by Davide P. Cervone - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - *****************************************************************************/ - -if (!window.jsMath) {jsMath = {}} -if (!jsMath.Script) {jsMath.Script = {}} - -jsMath.Script.Uncompress = function (data) { - for (var k = 0; k < data.length; k++) { - var d = data[k]; var n = d.length; - for (var i = 0; i < n; i++) {if (typeof(d[i]) == 'number') {d[i] = d[d[i]]}} - data[k] = d.join(''); - } - eval(data.join('')); -} - -//start = new Date().getTime(); -jsMath.Script.Uncompress([ - ['if(!','window.','jsMath','||!',1,'jsMath.','loaded','){var ','jsMath_old','=',1,2,';',0,'document.','getElementById','||!',14,'childNodes||!',14,'createElement','){','alert("','The',' mathematics ','on this page requires W3C DOM support in its JavaScript. Unfortunately, your ','browser',' doesn\'t seem to have this.")}','else{',1,2,'={version:"3.6e",document:document,','window',':',32,',','platform',':(','navigator.',36,'.match(/','Mac/)?"mac":',38,36,40,'Win/)?"pc":"unix"),','sizes',':[50,60,70,85,100,120,144,173,207,249],styles:{".math','":{"font-family":"serif","font-style":"normal","font-weight":"normal','"},".typeset',48,'","line-height":"normal','","text-indent":"0px','","white-space":"','normal','"},".typeset .',54,48,'"},"div.','typeset','":{"text-align":"','center",margin:"1em 0px"},"span.',59,60,'left',49,' span',60,'left",border',':"0px",margin:"0px','",padding',':"0px"},"a .',59,' img, .',59,' a img','":{border:"0px','","border-bottom":"','1px solid',' blue;"},".',59,' .size0','":{"font-size":"','50','%"},".typeset .','size1',82,'60',84,'size2',82,'70',84,'size3',82,'85',84,'size4',82,'100',84,'size5',82,'120',84,'size6',82,'144',84,'size7',82,'173',84,'size8',82,'207',84,'size9',82,'249',84,'cmr10','":{"font-family":"jsMath-',121,', serif',55,'cmbx10',122,126,', ',2,'-cmr10',55,'cmti10',122,133,', ',2,131,55,'cmmi10',122,140,55,'cmsy10',122,144,55,'cmex10',122,148,55,'textit','":{"font-family":"','serif","','font-style":"italic',55,'textbf',153,'serif","font-weight":"bold',55,'link":{"','text-decoration":"none',55,'error',82,'90%","',155,'","background-color','":"#FFFFCC',70,':"1px','",border:"',78,' #CC0000',55,'blank','":{display:"','inline-block','",overflow:"','hidden',172,'0px none",width:"0px",height:"0px',55,'spacer',177,178,'"},"#','jsMath_hiddenSpan":{','visibility:"hidden",position:"absolute",','top:"0px",left:"0px',51,52,187,'jsMath_message','":{position:"fixed",bottom:"','1px",left:"2px',168,'":"#E6E6E6','",border:"solid 1px #959595",margin:"0px",padding:"','1px 8px','","z-index":"','102','",color:"black","font-size":"','small",width:"auto','"},"#jsMath_panel',195,'1.75em",right:"1.5em',70,':".8em 1.6em',168,'":"#DDDDDD',172,'outset 2px',201,'103",','width:"auto',203,'10pt","font-style":"',54,205,' .disabled":{color:"#888888',205,' .infoLink',82,'85%"},"#jsMath_panel *":{"','font-size":"inherit","font-style":"inherit","font-family":"inherit',51,205,' div":{"','background-color":"inherit",color:"inherit"},"#jsMath_panel ','span":{"',230,'td',76,70,69,'","',230,'tr',76,70,69,'","',230,'table',76,70,69,168,'":"inherit",color:"inherit",height:"auto",',216,187,'jsMath_button',195,'1px",right:"2px',168,'":"white',199,'0px 3px 1px 3px',201,'102",color:"black","',162,'","font-size":"x-',204,'",cursor:"hand"},"#',253,' *":{padding:"0px",border',69,51,'","',226,187,'jsMath_global":{"',155,187,'jsMath_noFont',' .message":{"text-align":"center",padding:".8em 1.6em",border:"3px solid #DD0000","background-color":"#FFF8F8",color:"#AA0000","font-size":"',204,187,'jsMath_noFont .link":{padding:"0px 5px 2px 5px',172,'2px outset',168,'":"#E8E8E8',203,'80%",',216,265,'jsMath_PrintWarning',277,'x-',204,'"},"@media print":{"#',253,177,'none',187,'jsMath_Warning',177,'none"}},"@media screen":{"#',289,177,'none"}}},Element',':function(','a){','return ',5,14,15,'("jsMath_"+a)},BBoxFor',304,'a','){this.','hidden.innerHTML','=\'<','span class="',59,'"><',316,'scale">\'+a+"";var b=(',5,'Browser.','msieBBoxBug?this.','hidden.firstChild','.firstChild',':this.hidden',');var c={w:','b.offsetWidth',',h',326,'.offsetHeight','};this.',314,'="";',306,'c},EmBoxFor',304,'b){var a=',5,'Global.cache','.R;',0,'a[this.em',']){',343,']={}}',0,343,'][b]){','var c=','this.BBoxFor','(b);',343,'][b]={w:c.w/this.em,h:c.h/this.em}}',306,343,'][b]},Init',':function(){','if(',5,'Setup.inited','!=1){',0,5,361,'){',5,'Setup.','Body()}if(',5,361,'!=1){if(',5,361,'==-100','){return}',22,'It looks like ',2,' failed to set up properly (error code "+',5,361,'+"). I will try to keep going, but it could get ugly.");',5,361,'=1}}this.em=this.CurrentEm();','var a=',5,340,'.B;',0,343,']){',343,']={};',343,'].bb=',351,'("x");',350,343,'].bb.h;',343,'].d=',351,'("x"+',5,'HTML.Strut','(c/this.em)).h-c}',5,322,'italicCorrection=',343,'].ic;var g=',343,'].bb;var e=g.h;var f=',343,'].d;this.h=(e-f)/this.em;this.d=f/this.em;this.hd=this.h+','this.d;this.',368,'TeXfonts','();var b=this.EmBoxFor(\'<',316,121,'">M\').w/2;this.TeX.M_height=b*(26/14);this.TeX.h=this.h;this.TeX.d=',419,'TeX.hd=this.hd;this.Img.Scale();',0,'this.initialized',313,368,'Sizes','();this.','Img.UpdateFonts()}this.p_height=(','this.TeX.cmex10[0].','h+',435,'d)/0.85;',429,'=1},ReInit',358,'if(this.','em!=this.CurrentEm()){this.Init()}},CurrentEm',358,387,351,'(\'\').','w/27;if(a>0){',306,'a}',306,351,'(\'\').w/13},Loaded',358,'if(',8,7,'b=["Process","ProcessBeforeShowing","ProcessElement","ConvertTeX","ConvertTeX2","ConvertLaTeX","ConvertCustom","CustomSearch","Synchronize","Macro","document"];','for(var a=0;a<','b','.length;a++){','if(',8,'[b[a]]){','delete ',8,'[b[a]]}}}if(',8,'){this.Insert(',2,',',8,')}',8,'=null;',5,6,'=1},Add',304,'c,a){for(var b in a){','c[b]=a[b]}},Insert',304,487,'if(c[b]&&typeof(a[b])=="object"&&(','typeof(c[b])=="','object"||',492,'function")){this.Insert(c[b],a[b])}',28,'c[b]=a[b]}}},Package',304,'b,a',476,'b.prototype,a)}};',5,'Global={isLocal:1,cache:{','T:{},D:{},R:{},B',':{}},ClearCache',358,5,340,'={',504,':{}}},GoGlobal',304,338,'String(',5,1,'location',');var d=(',5,'isCHMmode','?"#":"?");if(b){a=a.replace(/\\?.*/,"")+"?"+b}',5,'Controls.','Reload(',5,'root+"',2,'-global.html"+d+escape(a))},Init',358,'if(',5,'Controls.cookie.','global=="always"&&!',5,'noGoGlobal','){if(',38,'accentColorName',376,0,5,32,'){',5,32,'=',32,'}',5,523,6,'=1;',5,523,'defaults.hiddenGlobal=null;this.GoGlobal(',5,523,'SetCookie(2))}},Register',358,387,5,1,'parent;',0,5,520,'){',5,520,'=(',5,1,517,'.protocol','=="mk:")}try{',0,5,520,313,'Domain()}if(a.',2,'&&a.',5,'isGlobal){a.',5,'Register(',5,32,')}}catch(b){',5,535,'=1}},Domain',358,'if(',38,'appName=="Microsoft Internet Explorer"&&',5,36,'=="mac"&&',38,'userProfile','!=null',376,'if(',5,14,'all&&!',5,1,'opera',376,'if(',32,'==parent',376,'var b=',5,14,'domain',';try{while(true){try{if(parent.',14,'title',602,'){return}}','catch(a){}',0,14,619,'.match(/\\..*\\./)){break}',5,14,619,'=',5,14,619,'.replace(/^[^.]*\\./,"")}}',625,5,14,619,'=b}};',5,'Script={request:null,Init',358,'if(!(',5,532,'asynch&&',5,532,'progress',')){if(',1,'XMLHttpRequest','){try{','this.request','=new ',655,'}catch(c){}if(',657,'&&',5,'root.match','(/^file:\\/\\//)){try{',657,'.open("GET",',5,526,5,'js",false);',657,'.send(null)}catch(','c){',657,'=null;if(',1,'postMessage&&',1,'addEventListener',313,'mustPost','=1;',5,1,680,'("message",',5,'Post.','Listener,false)}}}}',0,657,'&&',1,'ActiveXObject','&&!this.',682,7,'a=["MSXML2.XMLHTTP.6','.0","MSXML2.XMLHTTP','.5',700,'.4',700,'.3',700,'","Microsoft.XMLHTTP"];','for(var b=0;b<','a.length&&!',657,';b++){try{',657,658,695,'(a[b])}catch(c){}}}}',0,657,'||',5,368,'domainChanged',313,'Load=this.delayedLoad;this.needsBody=1}},Load',304,'b,a){','if(a){',5,'Message.Set("Loading "+','b);',5,'Script.','Delay(1);',5,'Script.Push(','this,"xmlRequest",b',');',5,734,5,'Message',',"Clear")}',28,5,734,735,')}},xmlRequest',304,'url){','this.blocking','=1;try{',657,667,'url,false);',657,673,'err){',749,'=0;if(',5,'Translate.','restart&&',5,'Translate.asynchronous){return""}throw Error("jsMath can\'t load the file \'"+url+"\'\\','nMessage: "+err.message)}if(',657,'.status',602,'&&(',657,766,'>=400||',657,766,'<0)){',749,'=0;if(',5,760,'restart&&',5,763,'nError status: "+',657,766,')}',0,'url','.match(/\\.js$/)){','return(',657,'.responseText',')}var tmpQueue','=this.queue;this.queue','=[];',5,1,'eval(',657,791,');',749,'=0;','this.queue=this.queue.','concat(','tmpQueue);this.Process();return""},cancelTimeout:30*1000,blocking:0,cancelTimer:null,needsBody:0,queue:[],Synchronize',304,'a,b','){if(typeof(','a)!="string"){',5,734,'null,a,b)}',28,5,734,5,32,',"eval",a)}},Push',304,'a,c,b',313,'queue[','this.queue.length',']=[a,c,b];if(!(',749,'||(this.needsBody&&!',5,14,'body','))){this.Process()}},Process',358,'while(',823,'&&!',749,7,'c=this.queue[0];',803,'slice(1);',387,'this.SaveQueue();var b=c[0];var e=c[1];var d=c[2];if(b){b[e](d)}',28,'if(e){e(d)}}this.','RestoreQueue','(a)}},SaveQueue',358,'var a',793,'=[];',306,'a},',844,304,'a){',803,804,'a)},delayedLoad',304,'a',313,'Push(','this,"','startLoad','",a)},',863,304,'a',7,'b=',5,14,20,'("iframe");b','.style.visibility="',180,'";b.style.','position="absolute";','b','.style.width="','0px";b','.style.height="','0px";if(',5,14,829,325,'){',5,14,829,'.insertBefore(','b,',5,14,829,325,')}',28,5,14,829,'.appendChild(','b)}',749,'=1;this.','url=a;if(a','.substr(0,',5,'root.length',')==',5,'root){a=a.substr(',5,909,')}',5,728,'a);this.cancelTimer=setTimeout("',5,731,'cancelLoad','()",this.cancelTimeout);',442,682,'){','b.src=',5,689,863,'(a,b)}',28,'if(a',788,926,5,526,2,'-loader.html"}',28,926,'this.url}}},','endLoad',304,'a){if(this.cancelTimer){clearTimeout(this.cancelTimer);this.cancelTimer=null}',5,689,942,'();',5,740,'.Clear();if(a!="cancel"){',749,'=0;this.Process','()}},Start',358,'this.tmpQueue',793,'=[]},End',358,803,804,956,');',472,956,'},',921,304,'b,',944,'if(b==null){b','="Can\'t load file"}if(a==null){a=2000}',5,740,'.Set(b);setTimeout(\'',5,731,942,'("cancel")\',a)},Delay',304,'a){',749,'=1;setTimeout("',5,731,'endDelay','()",a)},',986,358,749,953,'()},','imageCount',':0,WaitForImage',304,'b){',749,905,993,'++;',442,'img==null',313,'img=[]}',387,'new Image',433,'img[this.img.length]=a;a.onload=function(){if(--',5,731,993,'==0){',5,731,986,'()}};a.onerror=a.onload;a.onabort=a.onload;a.src=b},Uncompress',304,'data){for(var k=0;k\'+a[65].c','+"").h;a.d=',5,1572,'+',5,408,'(a.hd)+"").h-a.hd;a.h=a.hd-a.d;','if(b=="',140,'"){a.skewchar=','127}',28,1580,144,1582,'48}}},',421,358,466,5,1555,468,'if(',5,1555,'[a]){this.TeXfont(',5,1555,'[a])}}},Sizes',358,5,'TeXparams','=[];var b;var a;for(a=0;a<',5,46,468,5,1604,'[a]={}}for(b in ',5,'TeX',808,5,'TeX[b])!="object"){for(a=0;a<',5,46,468,5,1604,'[a][b]=',5,46,'[a]*',5,'TeX[b]/100}}}},Styles',304,'a){',0,'a){a=',5,'styles;a[".',59,' .scale"]={"font-size":',5,532,'scale+"%"};this.stylesReady=1}',5,734,862,'AddStyleSheet','",a);if(',5,322,'styleChangeDelay','){',5,734,5,'Script,"Delay",1)}},StyleString',304,'e',7,'a={},f;for(f in e){if(typeof e[f]==="string"){a[f]=e[f]}',28,'if(f',907,'1)==="@"){a[f]=','this.StyleString(','e[f])}',28,'if(e[f]!=null',7,'d=[];for(var c in e[f]){if(e[f][c]!=null){d[d.length]=c+": "+e[f][c]}}a[f]=d.join("; ")}}}}var b="";for(f in a){b+=f+" {"+a[f]+"}\\n"}',306,'b},',1642,304,'d',7,'b=',5,14,1379,'head")[0];if(',338,1660,'d);if(',5,14,'createStyleSheet){b.insertAdjacentHTML("beforeEnd",\'<','span style="display:','none">x")}',28,350,5,14,20,'("style");c.type="text/css";c',902,5,14,1162,'(a));b',902,'c)}}',28,0,5,'noHEAD){',5,'noHEAD=1;',22,'Document is missing its section. Style sheet can\'t be created without it.")}}},Body',358,442,'inited',376,'this.inited=-','1;',5,368,'Hidden();',1710,'2;',5,322,1184,1710,'3;if(',5,532,176,'){',5,740,'.Blank()}',1710,'4;',5,368,'Styles();',1710,'5;',5,523,1184,1710,'6;',5,734,5,'Setup,"User","pre-font");',1710,'7;',5,734,5,'Font,"Check");if(',5,'Font.register.length){',5,734,5,'Font,"LoadRegistered")}this.inited=1},User',304,'a){if(',5,'Setup.UserEvent[a',']){(',5,1760,'])()}},UserEvent:{"pre-font":null,onload:null}};',5,'Update={',421,304,'d){for(var a in d){for(var b in d[a]){for(var c in d[a',349,5,'TeX[a][b][c]=d[a][b][c]}}}},TeXfontCodes',304,'c){',1320,708,'c[a].',1384,5,'TeX[a][b].c=c[a][b]}}}};',5,'Browser={allowAbsolute:1,allowAbsoluteDelim:0,','separateSkips',':0,valignBug:0,operaHiddenFix:"",','msieCenterBugFix',':"",','msieInlineBlockFix',':"",msieSpaceFix:"",imgScale:1,renameOK:1,',1646,':0,delay:1,','processAtOnce',':16,version:0,','TestSpanHeight',358,5,314,'=\'<','span style="\'+this.block','+\';height:2em',';width:1px','">x','\';var b=',5,324,';',387,'b',325,';this.spanHeightVaries=(b',331,'>=a',331,'&&b',331,'>0);this.spanHeightTooBig=(b',331,'>a',331,');',5,314,'=""},','TestInlineBlock',358,'this.block="display',':-','moz-inline-box";','this.hasInlineBlock','=',5,'BBoxFor(\'\').w>0;if','(',1828,'){',5,'styles[".typeset',' .',176,'"].display="-',1827,472,5,1837,' .spacer"].display','}',28,1825,':',178,'";',1828,'=',5,1831,1832,'(!',1828,624,'this.block+=";overflow:',180,'";var d=',5,'BBoxFor("x").h;this.mozInlineBlockBug=',5,1831,'+";height:"+d+\'px;width:1px',1801,'<',1798,'+";height:"+d+"px',1800,';vertical-align:-"+d+\'px',451,'h>2*d;this.widthAddsBorder=',5,1831,'+\';overflow:',180,';height:1px;width:10px',';border-left:','10px solid',451,'w>10;',350,5,1831,1867,1801,'\').h,b=',5,1831,1867,1881,78,1801,'\').h,a=',5,1831,1799,451,'h;this.msieBlockDepthBug=(c==d);','this.msieRuleDepthBug','=(b==d',');this.blankWidthBug=(','a==0)},','TestRenameOK',358,5,314,'="";',387,5,324,';a.setAttribute("name","','jsMath_test','");this.renameOK=(',5,14,'getElementsByName("',1916,'").length>0);',5,314,1822,'TestStyleChange',358,5,314,'=\'x\';var b=',5,324,';',387,328,';',5,368,1642,'({"#',1916,'":"font-size:200%"});this.',1646,'=(',328,'==a);',5,314,1822,'VersionAtLeast',304,338,1430,'this.version',').split(".");','b=',1430,'b',1957,'if(b[1]==null){b[1]="0"}',306,'a[0]>b[0]||(a[0]==b[0]&&a[1]>=b[1])},Init',358,5,26,'="unknown";this.',1823,433,1793,433,1907,433,1926,433,'MSIE',433,'Mozilla',433,'Opera',433,'OmniWeb',433,'Safari',433,'Konqueror();if(','this.allowAbsoluteDelim','){',5,'Box.DelimExtend=',5,'Box.DelimExtendAbsolute;',5,'Box.Layout=',5,'Box.LayoutAbsolute}',28,5,'Box.DelimExtend=',5,'Box.DelimExtendRelative;',5,'Box.Layout=',5,'Box.LayoutRelative}',442,1783,'){',5,'HTML.Place=',5,'HTML.','PlaceSeparateSkips',';',5,'Typeset.prototype.','Place=',5,2017,2014,'}},MSIE',358,'if(',5,'BBoxFor("").w','){',5,26,'="MSIE";if(',5,36,'=="pc"){this.','IE7=(',1,655,'!=null);this.','IE8=(',5,2026,'gte IE 8]>IE8',2028,'>0);','this.isReallyIE8','=(',5,14,'documentMode',2039,'quirks=(',5,14,'compatMode=="BackCompat");','this.msieMode','=(',5,14,2050,'||(this.quirks?5:7));this.msieStandard6=!this.quirks&&!this.IE7;',1988,905,1783,'=1',';this.buttonCheck=1;this.','msieBlankBug=1;this.','msieAccentBug',905,'msieRelativeClipBug','=1;this.msieDivWidthBug=1;this.',1271,905,'msieIntegralBug',905,'waitForImages',905,'msieAlphaBug','=!this.IE7;this.','alphaPrintBug',2079,1785,'="position:relative; ";this.',1787,'=" display:',178,';";this.msie8HeightBug=this.msieBBoxBug=(',2056,'==8',1905,2056,'!=8);this.msieSpaceFix=(',2046,'?\'<',1683,178,'; ','margin-right:-1px; width:1px">\':\'‹\',"',54,'"];',5,2137,'width="42em";',5,532,'printwarn=0}}this.',1791,'=Math.max(Math.floor((this.',1791,'+1)/2),1);',5,2103,'not',2105,2121,'kern3mu/}}");',5,'Macro("angle","\\\\raise1.','84pt','{\\\\kern2.5mu\\\\rlap{\\\\scriptstyle/}\\\\','kern.5pt\\\\','rule{.4em}{-','1.5pt}{1.84pt}\\\\kern2.5mu}")}},',1979,358,'if(',5,180,'.ATTRIBUTE_NODE&&',5,1,'directories){',5,26,'="',1979,'";if(',5,36,2035,2080,'=1}',1988,'=1;',5,2144,'cursor=',5,2179,'cursor="pointer",',5,2103,'not',2105,2121,'kern3mu/}}");',5,2271,'34pt',2273,2275,'1pt}{1.34pt}\\\\kern2.5mu}");if(',38,'vendor=="Firefox"){',1956,'=',38,'vendorSub}',28,'if(',38,'userAgent.match(" Firefox/([0-9.]+)([a-z ]|$)")){',1956,'=RegExp.$1}}',442,1952,'("3.0")){this.mozImageSizeBug=this.lineBreakBug=1}}},',1983,358,'if(',38,'accentColorName){',5,26,'="',1983,'";','this.allowAbsolute','=',1828,';',1988,'=',2341,';this.valignBug=!',2341,2066,1191,'=1;',5,'noChangeGlobal=1;',0,1828,'){',5,368,'Scri'], - ['pt("','jsMath','-old-browsers.js','")}}},Opera',':function(){','if(this.','spanHeightTooBig){',1,'.browser="','Opera";','var b=','navigator.userAgent.match','("Opera 7");','this.allowAbsolute=0;this.','delay=10;this.operaHiddenFix="[Processing]";if(b){',1,'.Setup.','Script','("',1,2,'")}','var a=','navigator.appVersion.match','(/^(\\d+\\.\\d+)/);if(a){','this.version=a','[1]}else{this.vesion=0}this.operaAbsoluteWidthBug=this.operaLineHeightBug=(a[1]>=9.5&&a[1]<9.6)}},Safari',4,'if(',23,'(/Safari\\//)){',1,8,'Safari";if(navigator.vendor','.match(/','Google/)){',1,8,'Chrome"}',22,11,'("Safari/([0-9]+)");a=(a)?a[1]:400;',25,';',1,'.TeX.','axis_height','+=0.05;this.','allowAbsoluteDelim=','a>=125;this.safariIFRAMEbug=a>=312&&a<412;this.safariButtonBug=a<412;this.safariImgBug=1;this.textNodeBug=1;this.lineBreakBug=a>=526;this.buttonCheck=a<500;this.styleChangeDelay=1;',1,'.Macro("not","\\\\mathrel{\\\\rlap{\\\\kern3.25mu/}}")}},','Konqueror',4,'if(','navigator.product','&&',55,'.match("',52,'")){',1,8,52,'";',13,48,'0;if(',11,'(/',52,'\\/(\\d+)\\.(\\d+)/)){if(RegExp.$1<3||(RegExp.$1==3&&RegExp.$2<3)){this.separateSkips=1;this.valignBug=1;',1,16,17,'("',1,2,'")}}',1,'.Add(',1,'.styles,{".typeset .cmr10":"','font-family: ',1,'-','cmr10, ',1,' cmr10',', serif','",".typeset .','cmbx10":"',83,1,'-cmbx10, ',1,' cmbx10, ',1,'-',86,1,88,90,'cmti10":"',83,1,'-cmti10, ',1,' cmti10, ',1,'-',86,1,88,90,'cmmi10":"',83,1,'-cmmi10, ',1,' cmmi10',90,'cmsy10":"',83,1,'-cmsy10, ',1,' cmsy10',90,'cmex10":"',83,1,'-cmex10',', ',1,' cmex10"});',1,'.Font.testFont','="',1,132,', ',1,' cmex10"}}};',1,'.Font={testFont:"',1,132,'",fallback:"symbol",register:[],message:"No ',1,' TeX fonts ','found -- using',' image fonts instead','.
\\nThese may be slow and might not print well.
\\nUse the ',1,' control panel to get additional information','.",','extra_message',':\'Extra',150,'not found:
Using',152,'. This may be slow and might not print well.
\\nUse the ',1,155,'.\',','print_message',':"To print higher-resolution math symbols, click the
\\nHi-Res Fonts for Printing button on the ',1,' control panel.
\\n",','alpha_message',':"If the math symbols print as black boxes, turn off image alpha channels
\\nusing the Options pane of the ',1,169,'Test1',':function(','c,','f,d,e){if(f==null){f=124}if(d==null){d=2}if(e==null){e=""}var b=jsMath.BBoxFor(\'\'+jsMath.TeX[c][f].c+"");var a=jsMath.BBoxFor(\'\'+jsMath.TeX[c][f].c+"");return(','b.w>d*a.w&&b.h!=0)},Test2',175,'c,',177,'a.w>d*b.w&&b.h!=0)},CheckTeX',4,22,1,'.BBoxFor(\'\'+',1,45,'cmex10[1].c+"");',1,'.nofonts','=((a.w*3>a.h||a.h==0)&&!this.Test1("cmr10",null,null,"',1,'-"));if(!',1,196,'){return}},Check',4,22,1,'.Controls.','cookie;this.CheckTeX();if(',1,196,'){if(a.autofont||a','.font=="tex"){','a.font=this.fallback;if(a.warn){',1,'.nofontMessage=1;a.warn=0;',1,206,'SetCookie(0);if','(',1,'.window.NoFontMessage','){',1,220,'()}else{','this.Message(this.','message)}}}}else{if(a.autofont){a.font="tex"}if(a',211,'return}}if(',1,'.noImgFonts){','a.font="unicode"}if(a','.font=="unicode','"){',1,16,17,'("',1,'-fallback','-"+',1,'.platform+".js");',1,'.Box.TeXnonfallback=',1,'.Box.TeX',';',1,246,'=',1,'.Box.TeXfallback;return}','if(!a.print&&a.printwarn){this.','PrintMessage','((',1,'.Browser.','alphaPrintBug&&',1,206,'cookie.alpha)?this.',166,'+this.',170,':this.',166,')}if(',1,257,'waitForImages){',1,'.Script.','Push(',1,'.',17,',"WaitForImage",',1,'.blank)}if(a.font=="symbol"){',1,16,17,'("',1,239,'-symbols.js");',1,'.Box.TeXnonfallback=',1,246,';',1,246,'=',1,252,1,'.Img.SetFont','({cmr10:["all"],cmmi10:["all"],cmsy10:["all"],cmex10:["all"],cmbx10:["all"],cmti10:["all"]});',1,'.Img.LoadFont','("cm-fonts")},Message',175,'a){if(',1,'.Element("Warning',60,'return}',10,1,16,'DIV("Warning','",{});b.innerHTML=\'
\'+a','+\'
',1,323,'


\'},',331,4,22,1,306,'");if(a','){a.style.display="none"}},',254,175,304,1,'.Element','("PrintWarning',60,308,10,1,16,'DIV',350,313,315,'+\'',1,'
\';if(!',1,'.Global.','isLocal&&!',1,'.noShowGlobal){a',426,'+=\'Global \'}if(a.offsetWidth<30){a.style.width="auto"}if(!','this.cookie','.button',344,'MoveButton',4,'var a=(',1,257,'quirks?document.body:document.documentElement);',1,'.fixedDiv.style.','left=a.scrollLeft+"px";',1,554,'top=a.scrollTop+a.clientHeight+"px";',1,554,'width=a.clientWidth+"px"},GetCookie',4,'if(','this.defaults','==null){',564,'={}}',1,80,564,',',544,');this.userSet={};var c=',1,'.document.cookie',';if(',1,'.window.location','.protocol.match(this.',481,')){c=this.','localGetCookie','();this.','isLocalCookie','=1}if(c',34,1,'=([^;]+)/)){var d=unescape(RegExp.$1).split(/,/);for(',10,'0;b\'},Blank',941,'b,f,i,g){var a','="";var e="";','if(g){e+="border-left',':"+this.Em(','b)+" solid;";if(',1023,'widthAddsBorder){b=0}}if(b==0){if(',1023,'blankWidthBug){if(',1023,'quirks','){e+="width:1px',';";a=\'<',1035,'right:-1px">\'}else{if(!g',1050,';margin-right:-1px;"}}}}else{e+="width',1042,'b)+";"}if(i==null){i=0}if(f){var c=this.Em(f+i);if(g&&f*jsMath.em<=1.5){c="1.5px";f=1.5/jsMath.em}e+="height:"+c+";"}if(',1023,'mozInlineBlockBug){i=-f}if(',1023,'msieBlockDepthBug','&&!g){i-=jsMath.d}if(i){e+="','vertical-align:"+','this.Em(-i)}return a+\'\'},Rule',941,'a,b){if(b==null){b','=jsMath.TeX.default_rule_thickness}',1001,'Blank(a,b,0,1)},Strut',941,'a){',1001,'Blank(1,a,0,1)},msieStrut',941,'a){return','\'\'},Class',941,'a,b){return\'\'+b+""},Place',941,'b,a,d){',990,'a)<0.0001){a=0}',990,'d)<0.0001){d=0}if(a||d){var c=\'<','span style="position',': relative',';\';if(a){c+=" margin-left',1042,'a)+";"}if(d){c+=" top:"+this.Em(-d)+";"}b=c',1081,'>"}return b},PlaceSeparateSkips',941,'e',',g,f,i,a,h){if(Math.abs(g)<0.0001){g=0}if(Math.abs(f)<0.0001){f=0}','if(f){var d=0;var c=0;','var b="";if(','i!=null){c=','a-h;d=i;b=" width',1042,'a-i)+";"}e=','this.Spacer','(d-c)+\'<',1089,1090,'; top:\'+this.Em(-f)+";left',1042,'c',')+";"+b+\'">\'+',1105,'(-d)+e+',1105,'(c)+""}if(g){e=',1105,'(g)+e}return e},PlaceAbsolute',941,'d',1098,'var c',1040,1100,1023,'msieRelativeClipBug&&',1101,1105,'(-i);g+=i;e=',1105,'(a-h)}if(',1023,'operaAbsoluteWidthBug){b=" width: "+this.Em(h+2)}d=\'<',1089,':absolute; ',1036,'g)+"; top',1042,'f',1112,'c+d+e+" ";','return d},','Absolute',941,'b,a,c,e,f){if(f!="none"){',990,'f)<0.0001){f=0}b=\'<',1089,1135,'top:\'+','jsMath.HTML.','Em(f)+\'; left:0em;">\'+b+" "}if(e=="none"){e=0}b+=this.Blank((',1023,'lineBreakBug','?0:a),c-e,e);if(',1023,'msieAbsoluteBug){b=\'<',1089,':relative',';">\'+b+""}b=\'<',1089,1159,';\'+',1023,'msieInlineBlockFix',1081,'>";if(',1023,1154,'){b=\'\'+b+""}return b}};jsMath.Box=function(c,f,a,b,e){','if(e==null){','e=jsMath.d}this.type="typeset";this.w=a;this.h=b;this.d=e;this.bh=b;this.bd=e;this.x=0;this.y=0;this.mw=0;this.Mw=a;this.html=f;this.format=c};jsMath.Add(jsMath.Box,{defaultH:0,Null',959,'return ','new jsMath.Box("','null","",0,0,0)},Text',941,'l,k,b,m,j,i){var g=','jsMath.Typeset.AddClass(','k,l);g=','jsMath.Typeset.','AddStyle(','b,m,g);var c','=jsMath.EmBoxFor(','g);',960,1183,'TeX(b,m);var h=((k=="cmsy10"||k=="cmex10")?c.h-e.h:e.d*c.h/e.hd);var f=',1177,'text",l,c.w,c.h-h,h);f.style=b;f.size=m;f.tclass=k;if(i!=null){f.d=i*e.scale}else{f.d=0}if(j==null||j==1){f.h=0.9*e.M_height}else{f.h=1.1*e.x_height+e.scale*j}return f},TeX',941,'g,a,d,b){var h=',965,'a][g];if(h.d==null){h.d=0}if(h.h==null){h.h=0}if(h.img!=null&&h.c!=""){this.TeXIMG(a,g,',1183,'StyleSize(d,b))}var f=',1183,'TeX(d,b).scale;',960,1177,'text",h.c,h.w*f,h.h*f,h.d*f);e.style=d;e.size=b;if(h.tclass){e.tclass=h.tclass;if(h.img){e.bh=h.img.bh;e.bd=h.img.bd}else{e.bh=f*jsMath.h;e.bd=f*jsMath.d}}else{e.tclass=a;e.bh=f*',965,'a].h;e.bd=f*',965,'a].d;if(',1023,'msieFontBug&&','e','.html.match(/&#/)){','e','.html+=\'x\'}}return e},TeXfallback',941,'b,f,e,o){var m=',965,'f][b];if(!m.tclass){m.tclass=f}if(m.img!=null){',1001,'TeXnonfallback(b,f,e,o)}if(m.h!=null&&m.a==null){m.a=m.h-1.1*jsMath.TeX.x_height}var n=m.a;var l=m.d;var k=this.Text(m.c,m.tclass,e,o,n,l);var g=',1183,'TeX(e,o).scale;if(m.bh!=null){k.bh=m.bh*g;k.bd=m.bd*g}else{var j=k.bd+k.bh;var i=',1181,'k.tclass,k.html);i=',1183,1184,'e,o,i);k.bd',1186,'i+',1151,'Strut(j)).h-j;k.bh=j-k.bd;if(g==1){m.bh=k.bh;m.bd=k.bd}}if(jsMath.',1209,'k',1211,'k',1213,'>\'}return k},TeXIMG',941,'f,a,t){var o=',965,'f][a];if(o.img.size!=null&&o.img.size==t&&o.img.best!=null&&o.img.best==','jsMath.Img.best','){return}var g=(',939,'.scale!=1);var b=',1242,'+t-4;if(b<0){b=0;g=1','}else{if(','b>=','jsMath.Img.fonts','.length){','b=',1250,'.length-1',';g=1}}var s=',939,'[',1250,'[b]];var k=s[f][a];var i=1/',939,'.w[',1250,'[b]];if(b!=',1242,'+t-4){if(o.w!=null){i=o.w/k[0]}else{i*=',1250,'[t]/',1250,'[4]*',1250,'[',1242,']/',1250,'[b]}}var p=k[0]*i;var l=k[1]*i;var n=-k[2]*i;var q;var j=(o.w==null||Math.abs(o.w-p)<0.01)?"":" margin-right:"+',1151,'Em(o.w-p)+";";var e="";a=',939,'.HexCode[a];if(!g&&!',997,'scaleImg){if(',1023,'mozImageSizeBug||2*p"}else{',1326,'m+\'" ',1065,1023,1330,'+\'" />\'}o.tclass="normal";o.img.bh=l+n;o.img.bd=-n;o.img.size=t;o.img.best=',1242,'},Space',941,1077,' ','new jsMath.Box("html",',1151,'Spacer(a),a,0,0)},Rule',941,'a,c){if(c==null){c',1069,'var b=',1151,'Rule(a,c);return ',1343,'b,a,c,0)},GetChar',941,'b,a){var d=',965,'a][b];','if(d.img!=null){this.TeXIMG(a,b',',4)}if(d.tclass',999,'.tclass=a}if(!d.computedW){d.w',1186,1181,'d.tclass,d.c)).w',';if(d.h',999,'.h=jsMath.Box.defaultH}if(','d.d',999,'.d=0}d.computedW=1}',1142,'DelimBestFit',941,'e,j,d,g){if(j==0&&d==0){return null}var i;var f;d','=jsMath.TeX.fam[','d];var a=(g.charAt(1)=="S");var b=(g.charAt(0)=="S");while(j!=null){i=',965,'d][j];if(i.h==null){i',1367,'i.d==null){i.d=0}f=i.h+i.d;if(i.delim','){return[j,d',',"",e]}if(a&&0.5*f>=e',1381,',"SS",0.5*f]}if(b&&0.7*f>=e',1381,',"S",0.7*f]}if(f>=e||i.n==null',1381,',"T",f]}j=i.n}return null},DelimExtendRelative',941,'k,x,r,A,e){var s=',965,'r][x];var q','=this.GetChar(s.delim.','top?s','.delim.top',':s.delim.rep,r);var ','b',1393,'rep,r);var p',1393,'bot?s','.delim.bot',1396,'f=',1181,'b.tclass,b.c);','var l=b.w;var v=b.h+b.d;var g;var d;var m;var o;var u;var t;if(s','.delim.mid){var ','z',1393,'mid,r);t','=Math.ceil((k-(','q.h+q.d)-(','z.h+z.d)-(p.h+p.d))/(2*(b.h+b.d',')));k=2*','t*(b.h+b.d)+(q.h+q.d)+(','z.h+z.d)+(p.h+p.d);if(e){g=0}else{g=k/2+A}d=g;m=',1151,'Place(',1181,'q.tclass,q.c),0,g-q.h',')+',1151,1419,1181,'p.tclass,p.c),-(','q.w+p.w)/2,g-(k-p.d))+',1151,1419,1181,'z.tclass,z.c),-(p.w+z.w)/2,g-(k+z.h-z.d)/2);o=(l-z','.w)/2;if(Math.abs(o)<0.0001){o=0}if(o){m+=jsMath.HTML.Spacer(o)}g-=q.h+q.d+b.h;for(u=0;uv[E]){v[E]=o[C].h}if(o[C].d>x[E]){x[E]=o[C].d}if(C>=g',1251,'g[C]=o[C].w',1248,'o[C].w>g[C]){',1608,'}}if(o[C].bh>f){f=o[C].bh}if(o[C].bd>m){m=o[C].bd}}}if(l[J','.length]==null){','l[J.length]=0}if(f==e){f=0}if(m==e){m=0}var a=G','*(jsMath.hd-0.01)*','L;var u=(p||1)*L/6;var t="";var n=0;var I=0;var s;var F;var q;var r;var c;var b;for(C=0;C0){r',1574,'(c,"T",z);t+=',1151,1419,'r.html,I,0);I=g[C]-r.w+k[C]}else{I+=k[C]}}s=-k[g',1254,'];q=(v',1254,')*u+l[0];for(E=0;Eq[A]){q[A]=g[v].h}if(g[v].d>s[A]){s[A]=g[v].d}if(v>=c',1251,'c[v]=g[v].w',1248,'g[v].w>c[v]){',1658,'}}}}if(f[E',1613,'f[E.length]=0}l=(q',1254,')*p+f[0];for(A=0;A")}if(!h.match(/\\$|\\\\\\(/)){',1001,'Text(this.safeHTML(h),"normal","T",l).Styled()}',960,'0;var d=0;var g;var f="";var a=[];var b,j;while(e/g,">")}','return ','a},Set',1,'c,b,a',',d){if(','c&&c.type){if(c','.type=="','typeset"){',5,'c}if(c',11,'mlist"){c.mlist.','Atomize','(b,a);',5,'c.mlist','.Typeset(','b,a)}if(c',11,'text"){c=this.Text(c.text,c.tclass,b,a,c.ascend||null,c.descend||null);if(d!=0){c','.Styled()}',5,'c}c=this','.TeX(','c.c,c.font,b,a);if(d!=0){c',25,5,'c}',5,3,'Box.Null','()},SetList',1,'d,f,c){var a=[];var g;','for(var b=0;b<','d.length;b++){g=d[b];if(g',11,12,'g=','jsMath.mItem',21,'g)}a[a','.length]=','g}var e=new ','jsMath.Typeset','(a);',5,'e',21,'f,c)}});',3,'Package(',3,'Box,{Styled',':function(){','if(this.','format=="text"){','this.html','=',49,'.AddClass(','this.tclass',',',62,');',62,'=',49,'.AddStyle(','this.style',',this.size,',62,');delete ',66,';delete ',74,';this.format="html"}',5,'this},Remeasured',59,60,'w>0){var a=this.w;this.w=',3,'EmBoxFor(',62,').w;',60,'w','>this.Mw){this.Mw=this.w','}a=this.w/a;if(Math.abs(a-1)>0.05){this.h*=a;this.d*=a}}',5,'this}});',44,'=function(a',',b','){this.type','=a;',3,'Add(this,b)};',3,'Add(',44,',{Atom',1,'b,a){',5,'new ',44,'(b,{atom:1,nuc',':a})},TextAtom',1,'e,h,c,b,g','){var f=','new ',44,'(e,{atom:1,nuc:{type:"text",text:h,tclass:c}});if(b','!=null){f.nuc.','ascend=b}if(g',121,'descend=g}',5,'f},TeXAtom',1,'b,d,a){',5,'new ',44,113,':{type:"TeX",c:d,font:a}})},Fraction',1,'b,a,f,d,e,c){',5,'new ',44,'("fraction",{from:b,num:a,den:f,','thickness',':d,left:e,right:c})},Space',1,'a){',5,'new ',44,'("space",{w:a})},','Typeset',1,'a){',5,'new ',44,'("ord",{atom:1,nuc:a})},HTML',1,'a){',5,'new ',44,'("html",{html:a})}});',3,'mList','=function(d,a,b,c){','if(d){','this.mlist','=d}else{',165,'=[]}','if(c==null){c','="T"}if(b==null){b=4}','this.data','={openI:null,overI:null,overF:null,font:a,','size:b,style:c','};this.init={',173,'}};',3,'Package(',3,162,',{Add',1,'a){return(',165,'[','this.mlist.length',']=a)},Get',1,'a){',5,165,'[a]},Length',59,5,186,'},Last',59,'if(',186,'==0){',5,'null}',5,165,'[',186,'-1]},Range',1,'b,',2,'a==null){a=',186,'}',5,'new ',3,162,'(',165,'.slice(b,a+1))},Delete',1,'d,c){',169,'=d}if(',165,'.splice){',165,'.splice(d,c-d+1)}else{var a=[];',39,186,';b++){if(bc){a[a',47,165,'[b]}}',165,'=a}},Open',1,'d){var c=this.Add(new ',44,'("boundary",{','data:',171,'}));var a=',171,';',171,'={};for(var b in a){',171,'[b]=a[b]}delete ',171,'.overI',79,171,'.overF;',171,'.openI=',186,'-1;if(d!=null){c.left=d}',5,'c},Close',1,'c){if(c!=null){c=new ',44,240,'right:c})}var e;var b=',171,'.openI;var f=',171,'.overI;var ','g=',171,254,171,'=',165,'[b].data;if(f){e=',44,'.Fraction(','g.name,{','type:"mlist",mlist:this.Range(','b+1,f-1)},{',280,'f)},g.',140,',g.left,g.right);if(c){var a=new ',3,162,'([',165,'[b],e,c]);e=',44,'.Atom("inner",{type:"mlist",mlist:a})}}else{var d=b+1;if(c){this.Add(c);d--}e=',44,'.Atom((c)?"inner":"ord",{',280,'d)})}this.Delete(b,this.Length());',5,'this.Add(e)},Over',59,'var b=',171,269,'c=',171,254,'var a=',44,278,'c.name,{',280,'open+1,b-1)},{',280,'b)},c.',140,',c.left,c.right);',165,'=[a]},',17,1,222,'var a;var e="";',74,'=d;this.size=c;',39,186,';b++){a=',165,'[b];a.delta=0;if(a',11,'choice"){',165,'=this.',17,'.choice(',74,',a,b,',165,');b--}else{',60,17,'[a.type]){var g=this.',17,'[a.type];g(',74,75,'a,e,this,b)}}e=a}if(a&&a',11,'bin"){a','.type="ord"}','if(',186,'>=2&&a',11,'boundary"&&',165,'[0].type=="boundary"){this.','AddDelimiters','(d,c)}},',357,1,'b,q){var p=-10000;var g=p;var k=p;for(var f=0;f<',186,';f++){var j=',165,'[f];if(j.atom||j',11,'box"){g','=Math.max(','g,j.nuc.h+j.nuc.y);k',368,'k,j.nuc.d-j.nuc.y)}}var e=',3,'TeX;var l=',49,28,'b,q).','axis_height',';var o',368,'g-l,k+l);var n',368,'Math.floor(e.integer*o/500)*e.delimiterfactor,e.integer*(2*o-e.delimitershortfall))/e.integer;var c=',165,'[0];var m=',165,'[',186,'-1];c.nuc=',3,'Box.Delimiter(','n,c.left,b);m.nuc=',3,390,'n,m.right,b);c.type="open";c.atom=1',79,'c.left;m.type="close";m.atom=1',79,'m.right},',148,1,'c,a){var b=new ',49,'(',165,');',5,'b',21,'c,a)}});',3,'Add(',3,162,'.prototype.',17,',{style',1,'d,c,a,e,b){b.','style=a.style},size',1,418,'size=a.size},phantom',1,8,'){var d=','a.nuc','=jsMath.Box.Set(','a.phantom',',c,b);if(a.h){d.','Remeasured();','d.html=',3,'HTML.Spacer','(d.w)}else{d.html="",d.w=d.Mw=d.mw=0}if(!a.v){','d.h=d.d=0','}d.bd=d.bh=0',79,428,';a.type="box"},','smash',1,8,425,'a.nuc',427,'a.smash',',c,b).',430,435,79,446,439,'raise',1,8,'){a.nuc',427,'a.nuc,c,b);var ','d=a.raise;','a.nuc.html','=',3,'HTML.Place(',460,',0,d,a.nuc.mw,a.nuc.Mw,a.nuc.w);a.nuc.h+=d;a.nuc.d-=d;a','.type="ord";','a.atom=1},lap',1,'d,c,a){var ','e',427,'a.nuc,','d,c).',430,'var b=[e];if(a.lap=="llap"){e.x=-e.w}','else{if(a.lap=="','rlap"){b[1]=',44,'.Space(-e.w)}',476,'ulap"){e.y=e.d;e.h=e.d=0}',476,'dlap"){e.y=-e.h;e.h=e.d=0}}}}a','.nuc=jsMath.Box.SetList','(b,d,c);if(a.lap=="ulap"||a.lap=="dlap"){a.nuc.h=a.nuc.d=0}a.type="box";delete a.atom},bin',1,'d,b,a,e){if(e&&e.type){var c=e.type;if(c=="bin"||c=="op"||c=="rel"||c=="open"||c=="punct"||c==""||(c=="',354,'e.left!="")){a.type="ord"}}else{a',349,'jsMath.mList.prototype.Atomize.SupSub(','d,b,a)},rel',1,8,9,'d.type&&','d',11,'bin"){d',349,491,8,')},close',1,8,9,496,'d',11,'bin"){d',349,491,8,')},punct',1,8,9,496,'d',11,'bin"){d',349,491,8,')},open',1,8,'){',491,8,')},inner',1,8,'){',491,8,')},','vcenter',1,8,'){var d',427,458,'e=',49,28,'c,b);d.y=e.',377,'-(d.h-d.d)/2;a.nuc=d;a',466,491,8,')},','overline',1,469,'g=',49,28,'d,c);var e',427,472,49,'.PrimeStyle(d),c).Remeasured();var b=g.default_rule_thickness;var f=jsMath.Box.Rule(e.w,b);f.x=-f.w;f.y','=e.h+3*b;a',484,'([e,f],d,c);a.nuc.','h+=b;a',466,491,'d,c,a)},','underline',1,469,'g=',49,28,'d,c);var e',427,472,49,564,'=-e.d-3*b-b;a',484,567,'d+=b;a',466,491,571,'radical',1,'b,m,g',425,49,28,'b,m);var k=',49,'.PrimeStyle(b);var ','f',427,'g.nuc,k,m).',430,'var l=d','.default_rule_thickness',';var c=l;if(b=="D"||b=="D\'"){c=d.x_height}var a=l+c/4;var e=',3,390,'f.h+f.d+a+l,[0,2,112,3,112],b,1);if(e.d>f.h+f.d+a){a=(a+e.d-f.h-f.d)/2}e.y=f.h+a;var j=',3,'Box.Rule(','f.w,l);j.y=e.y-l/2;j.h+=3*l/2;f.x=-f.w;var i=',49,'.UpStyle(',49,613,'b));var h',427,'g.root||null,i,m).',430,'if(g.root){h.y=0.55*(f.h+f.d+3*l+a)-f.d;e.x',368,'h.w-(11/18)*e.w,0);j.x=(7/18)*e.w;h.x=-(h.w+j.x)}g',484,'([e,h,j,f],b,m);g',466,491,'b,m,g)},accent',1,'b,q,j',117,49,28,'b,q);var m=',49,598,'i',427,'j.nuc,m,q);var o=i.w;var p;var k;var d=0;if(j.nuc',11,'TeX"){k=',3,'TeX[j.nuc.font];if(k[j.nuc.c].krn&&k.skewchar){p=k[j.nuc.c].krn[k.skewchar]}d=k[j.nuc.c].ic;if(d==null){d=0}}if(p==null){p=0}var l=j.accent[2];var e=',3,'TeX.fam[j.accent[1]];k=',3,'TeX[e];while(k[l].n&&k[k[l].n].w<=o){l=k[l].n}var n=Math.min(i.h,f.x_height);if(j.nuc',11,'TeX"){var ','h=',44,'.Atom("ord",j.nuc);h.sup=j.sup;h.sub=j.sub;h.delta=0;',491,'b,q,h);n+=(h.nuc.h-i.h);i=j.nuc=h.nuc',79,'j.sup',79,'j.sub}var g=',3,'Box',28,'l,e,b,q);g.y=i.h-n;g.x=-i.w+p+(o-g.w)/2;if(',3,'Browser.msieAccentBug){g.html+=',3,433,'(0.1);g.w+=0.1;g.Mw+=0.1}if(k[l].ic||d){g.x+=(d-(k[l].ic||0))*f.scale}j',484,'([i,g],b,q);if(j.nuc.w!=i.w){var a=',44,'.Space(','i.w-j.nuc.w);j',484,'([j.nuc,a],b,q)}j',466,491,'b,q,j)},op',1,'c,n,i',117,49,28,'c,n);var h;i.delta=0;var m=(c','.charAt(0)=="','D");if(i.limits==null&&m){i.limits=1}if(i.nuc',11,648,'b=',3,'TeX[i.nuc.font][','i.nuc.c];if(m&&b.n){i.nuc.c=b.n;b=',3,689,'b.n]}h=i.nuc',427,'i.nuc,c,n',');if(b.ic){i.delta=b.ic*f.scale;if(i.limits||!i.sub||',3,'Browser.msieIntegralBug','){h=i',484,'([h,',44,670,'i.delta)],c,n)}}h.y=-((h.h+h.d)/2-h.d-f.',377,');if(Math.abs(h.y)<0.0001){h.y=0}}if(!h){h=i.nuc',427,695,').Remeasured()}if(i.limits){var e=h.w;var k=h.w;var d=[h];var j=0;var l=0;if(i.sup){var g',427,'i.sup,',49,613,'c),n).',430,'g.x=((h.w-g.w)/2+i.delta/2)-k;j=f.big_op_spacing5;e',368,'e,g.w);k+=g.x+g.w;g.y=h.h+g.d+h.y+Math.max(f.big_op_spacing1,f.big_op_spacing3-g.d);d[d',47,'g',79,'i.sup}if(i.sub){var a',427,'i.sub,',49,'.DownStyle(','c),n).',430,'a.x=((h.w-a.w)/2-i.delta/2)-k;l=f.big_op_spacing5;e',368,'e,a.w);k+=a.x+a.w;a.y=-h.d-a.h+h.y-Math.max(f.big_op_spacing2,f.big_op_spacing4-a.h);d[d',47,'a',79,'i.sub}if(e>h.w){h.x=(e-h.w)/2;k+=h.x}if(ke;c--){f.mlist[c+1]=f.mlist[c]}f.mlist[e+1]=',44,670,'h[d.nuc.c])}}}}',491,'a,j,g)},fraction',1,'x,n,c){var A=',49,28,'x,n);var l=0;if(c.',140,'!=null){l=c.',140,742,'c.from.match(/over/)){l=A',604,'}}var s=(x',683,'D");var g=(x=="D")?"T":(x=="D\'")?"T\'":',49,613,'x);var q=(s)?"T\'":',49,726,'x);var f',427,'c.num,g,n).',430,'var e',427,'c.den,q,n).',430,'var k;var j;var i;var o;var m;var h=(s)?A.delim1:A.delim2;var b=[',3,390,'h,c.left,x)];var y=',3,390,'h,c.right,x);if(f.w0){n+=f;m-=f}}i.',430,'a.',430,'i.y=n;a.y=-m;i.x=k.delta;if(i.w+i.x>a.w){i.x-=a.w;k',484,'([j,a,i],e,w)}else{a.x-=(i.w+i.x);k',484,'([j,i,a],e,w)}delete k.sup',79,'k.sub}});',49,98,100,'="typeset";',165,'=a};',3,'Add(',49,',{upStyle:{D:"S",T:"S","','D\'":"S\'","T\'":"S\'",S:"SS','",SS:"SS","','S\'":"SS\'","SS\'":"SS\'"},','downStyle:{D:"S\'",T:"S\'","',942,'\'",SS:"SS\'","',944,'UpStyle',1,'a){',5,'this.upStyle[a]},DownStyle',1,'a){',5,'this.downStyle[a]},PrimeStyle',1,2,'a',902,'a',904,5,'a}',5,'a+"\'"},StyleValue',1,'b,',2,'b=="S"||b=="S\'"){',5,'0.7*a}if(b=="SS"||b=="SS\'"){',5,'0.5*a}',5,'a},StyleSize',1,'b,a){if(b=="S"||b=="S\'"){a=Math.max(0,a-2)}else{if(b=="SS"||b=="SS\'"){a=Math.max(0,a-4)}}return ','a},TeX',1,979,3,'TeXparams[a]},AddStyle',1,8,'){if(c=="S"||c=="S\'"){b',368,'0,b-2)}else{if(c=="SS"||c=="SS\'"){b',368,'0,b-4)}}if(b!=4){a=\'\'+a+""}',5,'a},AddClass',1,'a,b){if(a!=""&&a!="normal"){b=',3,'HTML.Class(a,b)}',5,'b}});',3,'Package(',49,',{DTsep:{ord',':{op:1,bin:2,rel:3,inner:1},','op',':{ord:1,op:1',',rel:3,inner:1},bin:{ord:2,op:2,open:2,inner:2},rel:{ord:3,op:3,open:3,inner:3},open:{},close',1004,'punct',1006,',rel:1,open:1,close',':1,punct:1,inner:1','},inner',1006,',bin:2,rel:3,open',1012,'}},SSsep:{ord:{op:1},op',1006,'},bin:{},rel:{},open:{},close:{op:1},punct:{},inner:{op:1}},sepW:["","thinmuskip","medmuskip","thickmuskip"],','GetSeparation',1,'a,d,b){if(a&&a.atom&&d.atom){var c=this.DTsep;if(b',683,'S"){c=this.SSsep}var e=c[a.type];if(e&&e[d.type]!=null){',5,3,'TeX[this.sepW[e[d.type]]]}}',5,'0},',148,1,222,74,323,'var g=-10000;this.w=0;this.mw=0;this.Mw=0;this.h=g;this.d=g;this.bh=this.h;this.bd=this.d;this.tbuf="";this.tx=0;',66,'="";','this.cbuf','="";this.hbuf="";this.hx=0;var a=null;var f;this.x=0;','this.dx=0;',39,186,';b++){f=a;a=',165,'[b];switch(a.type){case"size":','this.FlushClassed();','this.size=a.size;','a=f;break;case"','style":',1046,'if(',74,902,74,904,74,'=a.style+"\'"}else{',74,'=a.style}',1048,'space":if(typeof(a.w)=="object"){if(',74,902,'1)=="S"){a.w=0.5*a.w[0]/18',742,74,683,'S"){a.w=0.7*a.w[0]/18}else{a.w=a.w[0]/18}}}this.dx+=a.w-0;',1048,'html":',1046,'if(this.hbuf==""){this.hx=this.','x}','this.hbuf+=','a.html;a=f;break;default:if(!a.atom&&a.type!="box"){break}a.nuc.x+=this.dx+this.',1020,'(f,a,',74,');','if(a.nuc.x||a.nuc.y){','a.nuc',25,1040,'this.x=this.x+this.w;',60,'x','+a.nuc.x+a.nuc.','mw','\'+b.html+"";','b.h+=b.y;b.d-=b.y;b.x=0;b.y=0','},PlaceSeparateSkips',1,'b){if(b.y',425,'b.Mw-b.w;var c=b.mw;var a=b.Mw-b.mw;b.html=',3,433,'(c-d)+\'<',1192,'; top:\'+',3,1195,'(-b.y)+"; left:"+',3,1195,'(d)+"; width:"+',3,1195,'(a)+\';">\'+',3,433,'(-c)+b.html+',3,433,'(d)+""}if(b.x){b.html=',3,433,'(b.x)+b.html}',1200,'}});',3,'Parse',163,'var e=new ',3,'Parser','(d,a,b,c);e.Parse();',5,'e};',3,1236,163,'this.string=d;this.i=0;',165,'=new ',3,162,'(null,a,b,c)};',3,'Package(',3,1236,',{cmd:"\\\\",open:"{",close:"}",letter:/[a-z]/i,number:/[0-9]/,scriptargs:/^((math|text)..|mathcal|[hm]box)$/,mathchar:{"!":[5,0,33],"(":[4,0,40],")":[5,0,41],"*":[2,2,3],"+":[2,0,43],",":[6,1,59],"-":[2,2,0],".":[0,1,58],"/":[0,1,61],":":[3,0,58],";":[6,0,59],"<":[3,1,60],"=":[3,0,61],">":[3,1,62],"?":[5,0,63],"[":[4,0,91],"]":[5,0,93],"|":[0,2,106]},special:{"~":"Tilde","^":"HandleSuperscript",_:"HandleSubscript"," ":"Space","\\01','":"Space","\\','t',1254,'r',1254,'n":"Space","\'":"Prime","%":"HandleComment","&":"HandleEntry","#":"Hash"},mathchardef:{braceld:[0,3,122],bracerd:[0,3,123],bracelu:[0,3,124],braceru:[0,3,125],alpha:[0,1,11],beta:[0,1,12],gamma:[0,1,13],delta:[0,1,14],epsilon:[0,1,15],zeta:[0,1,16],eta:[0,1,17],theta:[0,1,18],iota:[0,1,19],kappa:[0,1,20],lambda:[0,1,21],mu:[0,1,22],nu:[0,1,23],xi:[0,1,24],pi:[0,1,25],rho:[0,1,26],sigma:[0,1,27],tau:[0,1,28],upsilon:[0,1,29],phi:[0,1,30],chi:[0,1,31],psi:[0,1,32],omega:[0,1,33],varepsilon:[0,1,34],vartheta:[0,1,35],varpi:[0,1,36],varrho:[0,1,37],varsigma:[0,1,38],varphi:[0,1,39],Gamma:[7,0,0],Delta:[7,0,1],Theta:[7,0,2],Lambda:[7,0,3],Xi:[7,0,4],Pi:[7,0,5],Sigma:[7,0,6],Upsilon:[7,0,7],Phi:[7,0,8],Psi:[7,0,9],Omega:[7,0,10],aleph:[0,2,64],imath:[0,1,123],jmath:[0,1,124],ell:[0,1,96],wp:[0,1,125],Re:[0,2,60],Im:[0,2,61],partial:[0,1,64],infty:[0,2,49],prime:[0,2,48],emptyset:[0,2,59],nabla:[0,2,114],surd:[1,2,112],top:[0,2,62],bot:[0,2,63],triangle:[0,2,52],forall:[0,2,56],exists:[0,2,57],neg:[0,2,58],lnot:[0,2,58],flat:[0,1,91],natural:[0,1,92],sharp:[0,1,93],clubsuit:[0,2,124],diamondsuit:[0,2,125],heartsuit:[0,2,126],spadesuit:[0,2,127],coprod:[1,3,96],bigvee:[1,3,87],bigwedge:[1,3,86],biguplus:[1,3,85],bigcap:[1,3,84],bigcup:[1,3,83],intop:[1,3,82],prod:[1,3,81],sum:[1,3,80],bigotimes:[1,3,78],bigoplus:[1,3,76],bigodot:[1,3,74],ointop:[1,3,72],bigsqcup:[1,3,70],smallint:[1,2,115],triangleleft:[2,1,47],triangleright:[2,1,46],bigtriangleup:[2,2,52],bigtriangledown:[2,2,53],wedge:[2,2,94],land:[2,2,94],vee:[2,2,95],lor:[2,2,95],cap:[2,2,92],cup:[2,2,91],ddagger:[2,2,122],dagger:[2,2,121],sqcap:[2,2,117],sqcup:[2,2,116],uplus:[2,2,93],amalg:[2,2,113],diamond:[2,2,5],bullet:[2,2,15],wr:[2,2,111],div:[2,2,4],odot:[2,2,12],oslash:[2,2,11],otimes:[2,2,10],ominus:[2,2,9],oplus:[2,2,8],mp:[2,2,7],pm:[2,2,6],circ:[2,2,14],bigcirc:[2,2,13],setminus:[2,2,110],cdot:[2,2,1],ast:[2,2,3],times:[2,2,2],star:[2,1,63],propto:[3,2,47],sqsubseteq:[3,2,118],sqsupseteq:[3,2,119],parallel:[3,2,107],mid:[3,2,106],dashv:[3,2,97],vdash:[3,2,96],leq:[3,2,20],le:[3,2,20],geq:[3,2,21],ge:[3,2,21],lt:[3,1,60],gt:[3,1,62],succ:[3,2,31],prec:[3,2,30],approx:[3,2,25],succeq:[3,2,23],preceq:[3,2,22],supset:[3,2,27],subset:[3,2,26],supseteq:[3,2,19],subseteq:[3,2,18],"in":[3,2,50],ni:[3,2,51],owns:[3,2,51],gg:[3,2,29],ll:[3,2,28],not:[3,2,54],sim:[3,2,24],simeq:[3,2,39],perp:[3,2,63],equiv:[3,2,17],asymp:[3,2,16],smile:[3,1,94],frown:[3,1,95],Leftrightarrow:[3,2,44],Leftarrow:[3,2,40],Rightarrow:[3,2,41],leftrightarrow:[3,2,36],leftarrow:[3,2,32],gets:[3,2,32],rightarrow:[3,2,33],to:[3,2,33],mapstochar:[3,2,55],leftharpoonup:[3,1,40],leftharpoondown:[3,1,41],rightharpoonup:[3,1,42],rightharpoondown:[3,1,43],nearrow:[3,2,37],searrow:[3,2,38],nwarrow:[3,2,45],swarrow:[3,2,46],minuschar:[3,2,0],hbarchar:[0,0,22],lhook:[3,1,44],rhook:[3,1,45],ldotp:[6,1,58],cdotp:[6,2,1],colon:[6,0,58],"#":[7,0,35],"$":[7,0,36],"%":[7,0,37],"&":[7,0,38]},delimiter:{"(":[0,0,40,3,0],")":[0,0,41,3,1],"[":[0,0,91,3,2],"]":[0,0,93,3,3],"<":[0,2,104,3,10],">":[0',',2,105,3,11],"\\\\','lt":[0',',2,104,3,10],"\\\\','gt":[0,2,105,3,11],"/":[0,0,47,3,14],"|":[0,2,106,3,12],".":[0,0,0,0,0],"\\\\":[','0,2,110,3,15],"\\\\','lmoustache":[4,3,122,3,64],"\\\\rmoustache":[5,3,123,3,65],"\\\\lgroup":[4,6,40,3,58],"\\\\rgroup":[5,6,41,3,59],"\\\\arrowvert','":[0,2,106,3,','60],"\\\\Arrowvert":[0,2,107,3,61],"\\\\bracevert',1266,'62],"\\\\Vert":[0,2,107,3,13],"\\\\|":[0,2,107,3,13],"\\\\vert',1266,'12],"\\\\uparrow":[3,2,34,3,120],"\\\\downarrow":[3,2,35,3,121],"\\\\updownarrow":[3,2,108,3,63],"\\\\Uparrow":[3,2,42,3,126],"\\\\Downarrow":[3,2,43,3,127],"\\\\Updownarrow":[3,2,109,3,119],"\\\\backslash":[',1264,'rangle":[5',1260,'langle":[4',1262,'rbrace":[5,2,103,3,9],"\\\\lbrace":[4,2,102,3,8],"\\\\}":[5,2,103,3,9],"\\\\{":[4,2,102,3,8],"\\\\rceil":[5,2,101,3,7],"\\\\lceil":[4,2,100,3,6],"\\\\rfloor":[5,2,99,3,5],"\\\\lfloor":[4,2,98,3,4],"\\\\lbrack":[0,0,91,3,2],"\\\\rbrack":[0,0,93,3,3]},macros:{displaystyle',':["HandleStyle","','D"],textstyle',1278,'T"],scriptstyle',1278,'S"],scriptscriptstyle',1278,'SS"],rm',':["HandleFont",','0],mit',1286,'1],oldstyle',1286,'1],cal',1286,'2],it',1286,'4],bf',1286,'6],font',':["Extension","','font"],left:"HandleLeft",right:"HandleRight",arcsin',':["NamedOp",0],','arccos',1300,'arctan',1300,'arg',1300,'cos',1300,'cosh',1300,'cot',1300,'coth',1300,'csc',1300,'deg',1300,'det',':"NamedOp",','dim',1300,'exp',1300,'gcd',1320,'hom',1300,'inf',1320,'ker',1300,'lg',1300,'lim',1320,'liminf',':["NamedOp",null,\'lim','inf\'],limsup',1338,'sup\'],ln',1300,'log',1300,'max',1320,'min',1320,'Pr',1320,'sec',1300,'sin',1300,'sinh',1300,'sup',1320,'tan',1300,'tanh',1300,538,':["HandleAtom","',538,'"],',554,1364,554,'"],',572,1364,572,'"],over',':"HandleOver",','overwithdelims',1375,'atop',1375,'atopwithdelims',1375,'above',1375,'abovewithdelims',1375,'brace',':["HandleOver','","\\\\{","\\\\}"],brack',1387,'","[","]"],choose',1387,'","(",")"],overbrace',':["Extension","leaders"],','underbrace',1393,'overrightarrow',1393,'underrightarrow',1393,'overleftarrow',1393,'underleftarrow',1393,'overleftrightarrow',1393,'underleftrightarrow',1393,'overset',':["Extension","underset-overset"],','underset',1409,'llap',':"HandleLap",','rlap',1413,'ulap',1413,'dlap',1413,'raise:"RaiseLower",lower:"RaiseLower",moveleft',':"MoveLeftRight",','moveright',1421,'frac:"Frac",root:"Root",sqrt:"Sqrt",hbar',':["Macro","\\\\','hbarchar\\\\kern-.5em h"],ne',1425,'not="],neq',1425,'not="],notin',1425,'mathrel{\\\\','rlap{\\\\kern2mu/}}\\\\in"],cong',1425,1432,'lower2mu{\\\\mathrel{{\\\\rlap{=}\\\\raise6mu\\\\sim}}}}"],bmod',1425,'mathbin{\\\\rm mod}"],pmod',1425,'kern 18mu ({\\\\rm mod}\\\\,\\\\,#1)",1],"int":["Macro","\\\\intop\\\\nolimits"],oint',1425,'ointop\\\\nolimits"],doteq',1425,'buildrel\\\\textstyle.\\\\over="],ldots',1425,'mathinner{\\\\','ldotp\\\\ldotp\\\\ldotp}"],cdots',1425,1446,'cdotp\\\\cdotp\\\\cdotp}"],vdots',1425,1446,'rlap{\\\\raise8pt{.\\\\rule 0pt 6pt 0pt}}\\\\rlap{\\\\raise4pt{.}}.}"],ddots',1425,1446,'kern1mu\\\\raise7pt{\\\\rule 0pt 7pt 0pt .}\\\\kern2mu\\\\raise4pt{.}\\\\kern2mu\\\\raise1pt{.}\\\\kern1mu}"],joinrel',1425,1432,'kern-4mu}"],relbar',1425,1432,'smash-}"],Relbar',1425,'mathrel="],bowtie',1425,'mathrel\\\\triangleright\\\\joinrel\\\\mathrel\\\\triangleleft"],models',1425,'mathrel|\\\\joinrel="],mapsto',1425,1432,'mapstochar\\\\','rightarrow}"],rightleftharpoons',1425,538,'{\\\\',1432,'rlap{\\\\raise3mu{\\\\rightharpoonup}}}\\\\leftharpoondown}"],hookrightarrow',1425,'lhook','\\\\joinrel\\\\rightarrow','"],hookleftarrow',1425,'leftarrow\\\\joinrel\\\\','rhook"],Longrightarrow',1425,'Relbar\\\\joinrel\\\\','Rightarrow"],','longrightarrow',1425,'relbar',1480,'"],longleftarrow',1425,1483,'relbar"],Longleftarrow',1425,'Leftarrow\\\\joinrel\\\\','Relbar"],longmapsto',1425,1432,1471,'minuschar',1480,'}"],longleftrightarrow',1425,'leftarrow',1480,'"],','Longleftrightarrow',1425,1497,1487,'iff:["Macro","\\\\;\\\\',1509,'\\\\;"],mathcal',':["Macro","{\\\\','cal #1}",1],mathrm',1516,'rm #1}",1],mathbf',1516,'bf #1}",1],','mathbb',1516,1521,'mathit',1516,'it #1}",1],textrm',1425,'mathord{\\\\hbox{#1}}",1],textit',1425,'mathord{\\\\class{','textit','}{\\\\hbox{#1}}}",1],','textbf',1425,1531,1534,1533,'pmb',1425,'rlap{#1}\\\\kern1px{#1}",1],TeX:["Macro","T\\\\kern-.1667em\\\\lower.5ex{E}\\\\kern-.125em X"],limits:["Limits",1],nolimits:["Limits",0],",":["Spacer",1/6],":":["Spacer",1/6],">":["Spacer",2/9],";":["Spacer",5/18],"!":["Spacer",-1/6],enspace:["Spacer",1/2],quad:["Spacer",1],qquad:["Spacer",2],thinspace:["Spacer",1/6],negthinspace:["Spacer",-1/6],hskip:"Hskip",kern:"Hskip",rule:["Rule","colored"],space:["Rule","blank"],big',':["MakeBig","','ord",0.85],Big',1542,'ord",1.15],bigg',1542,'ord",1.45],Bigg',1542,'ord",1.75],bigl',1542,'open",0.85],Bigl',1542,'open",1.','15],biggl',1542,1553,'45],Biggl',1542,1553,'75],bigr',1542,'close",0.85],Bigr',1542,'close",1.','15],biggr',1542,1564,'45],Biggr',1542,1564,'75],bigm',1542,'rel",0.85],Bigm',1542,'rel",1.15],biggm',1542,'rel",1.45],Biggm',1542,'rel",1.75],mathord',1364,'ord"],mathop',1364,'op"],mathopen',1364,'open"],mathclose',1364,'close"],mathbin',1364,'bin"],mathrel',1364,'rel"],mathpunct',1364,'punct"],mathinner',1364,'inner"],','mathchoice',1298,1596,'"],buildrel:"BuildRel",hbox:"HBox",text:"HBox",mbox:"HBox",fbox',1298,'fbox"],strut:"Strut",mathstrut',1425,'vphantom{(}"],phantom:["Phantom",1,1],vphantom:["Phantom",1,0],hphantom:["Phantom",0,1],smash:"Smash",acute:["MathAccent",[7,0,19]],grave:["MathAccent",'], - ['[','7,0,','18]],ddot',':["MathAccent",[',1,'127]],tilde',3,1,'126]],bar',3,1,'22]],breve',3,1,'21]],check',3,1,'20]],hat',3,1,'94]],vec',3,'0,1,126]],dot',3,1,'95]],widetilde',3,'0,3,101]],widehat',3,'0,3,98]],_:["Replace","ord","_","normal",-0.4,0.1]," ":["Replace","','ord"," ","normal','"],angle:["Macro","\\\\kern2.5mu\\\\raise1.54pt{\\\\rlap{\\\\scriptstyle \\\\char{cmsy10}{54}}\\\\kern1pt\\\\rule{.45em}{-1.2pt}{1.54pt}\\\\kern2.5mu}"],matrix:"Matrix",array:"Matrix",pmatrix:["Matrix','","(",")","c"],','cases:["Matrix","\\\\{",".",["l","l"],null,2],eqalign',':["Matrix",null,null,["','r","l"],[5/18],3,"D"],displaylines',34,'c"],null,3,"D"],cr:"','HandleRow','","\\\\":"',38,'",newline:"',38,'",noalign:"','HandleNoAlign','",eqalignno',34,'r","l","r"],[5/8,3],3,"D"],','leqalignno',34,47,'begin:"Begin",end:"End",tiny',':["HandleSize",','0],Tiny',52,'1],scriptsize',52,'2],small',52,'3],normalsize',52,'4],large',52,'5],Large',52,'6],LARGE',52,'7],huge',52,'8],Huge',52,'9],dots:["Macro","\\\\ldots"],','newcommand',':["Extension","',72,'"],newenvironment',73,72,'"],def',73,72,'"],color',73,'HTML"],','href',73,'HTML"],"class":["','Extension','","',83,'style',73,83,'cssId',73,83,'unicode',73,83,'bbox',73,'bbox"],require:"Require","char":"Char"},','environments',':{array:"Array",matrix',':["Array','",null,null,"c"],pmatrix',104,32,'bmatrix',104,'","[","]","c"],Bmatrix',104,'","\\\\{","\\\\}","c"],vmatrix',104,'","\\\\vert","\\\\vert","c"],Vmatrix',104,'","\\\\Vert","\\\\Vert","c"],cases',104,'","\\\\{",".","ll",null,2],eqnarray:["','Array",null,null,"rcl",[5/18,5/18],3,"D','"],"eqnarray*":["',119,'"],equation:"Equation","equation*":"Equation",align',73,'AMSmath','"],"align','*":["Extension","AMSmath"],','aligned',73,124,'"],','multline',73,124,'"],"',131,126,'split',73,124,'"],gather',73,124,'"],"gather',126,'gathered',73,124,'"]},AddSpecial',':function(','a){for(var b in a){','jsMath.Parser.prototype','.special[',151,'[b]]=a[b]}},Error',149,'a){this.i=','this.string','.length;','if(a','.error){this.error=a','.error}','else{if(!','this',160,'}}},nextIsSpace',':function(){','return ','this.string.charAt(this.i',').match(/[ \\n\\r\\t]/)},trimSpaces',149,'a){if(typeof(a)!="string"){',167,'a}',167,'a.replace(/^\\s+|\\s+$/g',',"")},','Process',149,'a){var ','c=','this.mlist.data',';a','=jsMath.Parse(','a,c.font,c.size,c.style);if(a','.error){this.Error(','a);','return null','}if(a.mlist.Length()==','0){',187,188,'1','){var b=','a.mlist.','Last();if(','b.atom&&b.type=="ord"&&b.nuc&&!b.sub&&!b.sup&&(b.nuc.type=="text"||b.nuc.type=="TeX")){',167,'b.nuc}}return{type:"mlist",mlist:a.mlist}},GetCommand',':function(){var ','a=/^([a-z]+|.) ?/i;var b=a.exec(','this.string.slice(this.i','));if(b){this.i+=b[1].length;',167,'b[1]}','this.i++;','return" "},GetArgument',149,'b,d){while','(this.nextIsSpace()){this.i','++}','if(this.','i>=',157,'.length){','if(!d){','this.Error("','Missing',' argument for "+b)}',187,'}if(',168,')==this.close){',215,216,'Extra close brace','")}',187,'}if(',168,')==this.cmd){',205,167,'this.cmd+','this.GetCommand','()}if(',168,')!=this.open){',167,168,'++)}var a=++this.i;var e=1;var f="";','while(this.i0){e--;this.i+=2}}}',247,'if(',201,427,'d.length)==d){f=',168,'+d','.length);','if(f.match(/[^a-z]/i)||!d.match(/[a-z]/i)){',273,157,'.slice(g,this.i-1);this.i+=d',158,167,'a}}}this.i++}}}}',216,401,403,'+d+" for "+b);',187,'},','ProcessUpto',149,'b,c){var ','a=this.GetUpto(b,c);',267,268,269,'GetEnd',149,'c){var a="";var b="";while(b!=c){a+=this.GetUpto("begin{"+c+"}","end");',267,268,'b=','this.GetArgument(this.cmd','+"end");',267,324,167,'a},Space',':function(){},','Prime',149,'d',193,'this.mlist.',195,'b==null||(!b.atom&&b','.type!="box"&&','b','.type!="frac")){','b=','this.mlist.Add(jsMath.mItem.','Atom("ord",{type:null}))}','if(b.sup){',216,'Prime causes double exponent',': use braces to clarify");return','}var a','="";while(d=="\'"){a+=this.cmd+"prime";d',381,'d=="\'"){this.i++}}b.sup=this.',177,'(a);b.sup.isPrime=1},RaiseLower',149,179,'b','=this.GetDimen(this.cmd+','a,1);',267,'}var c','=this.ProcessScriptArg','(',233,'a);',267,'}if(a=="lower"){b=-b}','this.mlist.Add(new jsMath.mItem("','raise",{nuc:c,raise:b}))},MoveLeftRight',149,263,'a',499,'b,1);',267,'}var c',503,'(',233,'b);',267,'}if(b=="moveleft"){a=-a}',484,'Space(a','));',484,'Atom("ord",c));',484,'Space(-a))},Require',149,179,'b=',466,404,267,'}b=','jsMath.Extension','.URL(b);if(','jsMath.Setup.','loaded[b]){return}','this.Extension(null,[','b])},',87,149,'a,b){','jsMath.Translate','.restart=1;if(a','!=null){','delete ',151,'[b[1]||"macros"][a]}',538,'.Require(b[0],',547,'.asynchronous',');throw"restart"},Frac',149,263,'a','=this.ProcessArg(this.cmd+','b);',267,'}var c',561,'b);',267,'}',484,'Fraction("over",a,c))},Sqrt',149,263,'d=',291,233,'b);',267,490,561,'b);',267,'}var c=jsMath.mItem.Atom("','radical",a);','if(d!=""){c.root=this.',177,'(d);',267,'}}',477,'Add(c)},','Root',149,263,'d=this.',453,'(',233,'b,"of");',267,490,561,'b);',267,582,583,'c.root=d;',477,590,'BuildRel',149,179,'b=this.',453,'(',233,'a,"over");',267,'}var d',561,'a);',267,582,'op",d);c.limits=1;c.sup=b;',477,590,'MakeBig',149,337,'c=d[0];var b=d[1]*jsMath.p_height;var e','=this.GetDelimiter(this.cmd+','a);',267,'}',484,'Atom(c,','jsMath.Box.Delimiter(','b,e,"T")))},Char',149,263,'a=',466,'+b);',267,'}var c=',466,'+b);',267,'}if(!',365,'[a]){',365,'[a]=[];',542,'jsMath.Font.URL(a',')])}else{',484,'Typeset(','jsMath.Box.TeX(c-0,a,',181,'.style,',181,'.size)))}},Matrix',149,'b,h){var e=',181,';var a=',466,'+b);',267,'}var g=','new jsMath.','Parser(a','+this.cmd+"\\\\",null,','e.size,h[5]||"T");g.matrix=b;g.row=[];g.table=[];g.rspacing=[];g.Parse();if(g',185,'g);return}g.',38,'(',515,'var d','=jsMath.Box.','Layout(e.size,g.table,h[2]||null,h[3]||null,g.rspacing,h[4]||null);if(h[0]&&h[1]){',412,636,'d.h+d','.d-jsMath.hd/4,this.delimiter[','h[0]],"T");var c=',636,'d.h+d',686,'h[1]],"T");d',681,'SetList([','f,d,c],e.style,e.size)}',484,'Atom((h','[0]?"inner":"ord"),','d))},HandleEntry',149,'b){if(!this.matrix){this.Error(b','+" can only appear in a matrix or array");return}if(',181,'.openI',549,273,477,'Get(',181,'.openI);if','(a.left){',216,217,403,'+"right','")}else{',216,257,'")}}if(',181,'.overI',549,477,'Over()}var d=',181,';',477,'Atomize(','d.style,d.size);','var c=',477,657,728,'c.entry=d.entry;delete d.entry;if(!c.entry){c.entry={}}this.row[','this.row.length',']=c;this.mlist=',671,'mList(null,null,d.size,d.style)},',38,149,'a,c){var b;if(!this.matrix){','this.Error(this.cmd+a',701,'a=="\\\\"){b=',291,233,'a);',267,'}if(b){b=',348,'b,',233,'a,0,1)}}this.HandleEntry(a);if(!c||',734,'>1||this.row[0].format!="null"){this.table[this.table.length]=this.row}if(b){','this.rspacing[this.table.length',']=b}this.row=[]},',44,149,263,'a=',466,'+b);',267,644,'a.replace(/^.*(vskip|vspace)([^a-z])/i,"$2");if(c.length==a',214,'return}var ','e=',348,'c,',233,'RegExp.$1,0,1);',267,'}',755,']=(',755,']||0)+e},Array',149,455,'e=c[2];var i=c[3];if(!e){e=',466,'+"begin{"+b+"}");',267,'}}e=e.replace(/[^clr]/g,"");e=e.split("");var g=',181,666,'c[5]||"T";var k=this.GetEnd(b);',267,'}',412,671,'Parser(k',673,'g.size,a);f.matrix=b;f.row=[];f.table=[];f.rspacing=[];f.Parse();if(f',185,'f);return}f.',38,'(',515,'var h',681,'Layout(g.size,f.table,e,i,f.rspacing,c[4],c[6],c[7]);if(c[0]&&c[1]){var d=',636,'h.h+h',686,'c[0]],"T");var j=',636,'h.h+h',686,'c[1]],"T");h',681,693,'d,h,j],g.style,g.size)}',484,'Atom((c',697,'h))},Begin',149,179,'b=',466,404,267,'}if(b.match(/[^a-z*]/i)){this.Error(\'Invalid environment name "\'+b+\'"\');return}if(!this.',102,'[b]){this.Error(\'Unknown environment "\'+b+\'"\');return',644,'this.',102,'[b];if(typeof(','c',')=="string"){','c=[c]}this[c[0]](b,c.slice(1))},End',149,179,'b=',466,404,267,'}',741,'+"{"+b+"} without matching',403,'+"begin")},Equation',149,263,'a=this.GetEnd(b);',267,'}',157,'=a+',201,');this.i=0},Spacer',149,'b,a){',484,525,'-0))},Hskip',149,263,'a',499,'b);',267,'}',484,525,'))},HBox',149,179,'c=',466,404,267,'}var b',681,'InternalMath(c,',181,'.size);',484,657,'b))},Rule',149,'b,f){var a',499,515,267,'}var e',499,515,267,'}var g',499,515,267,'}e+=g;var c;if(e!=0){e=Math.max(1.05/jsMath.em,e)}if(e==0||a==0||f=="blank"){c=','jsMath.HTML.','Blank(a,e)}else{c=',898,'Rule(a,e)}if(g){c=\'\'+c','+""}',484,657,671,'Box("html",c,a,e-g,g)))},Strut',199,'a=',181,'.size;var b',681,'Text("","normal","T",a).Styled();b.bh=b.bd=0;b.h=0.8;b.d=0.3;b.w=b.Mw=0;',484,657,'b))},Phantom',149,455,'a',561,'b);',267,'}',509,'phantom",{phantom:a,v:c[0],h:c[1]}))},Smash',149,455,'a',561,'b);',267,'}',509,'smash",{smash:a}))},MathAccent',149,'b,',179,'e',561,'b);',267,'}var d','=jsMath.mItem.','Atom("accent",e);d.accent=a[0];',477,'Add(d)},NamedOp',149,'c,f){var b=(c.match(/[^acegm-su-z]/))?1:0;var g=(c.match(/[gjpqy]/))?0.2:0;if(f[1]){c=f[1]}var e',944,'TextAtom("','op",c,',365,'.fam[0],b,g);if(f[0]!=null){e.limits=f[0]}',477,'Add(e)},Limits',149,'a,c',193,477,'Last();if(!b||b.type!="op"){',741,'+" is allowed only on operators");return}b.limits=c[0]},Macro',149,'b,d){var e=d[0];if(d[1]){var a=[];','for(var c=0;c<','d[1];c++){a[a.length]=',466,'+b);',267,'}}e=this.','SubstituteArgs','(a,e)}',157,'=','this.AddArgs(e,',201,'));this.i=0},',972,149,'b,',179,'f="";var e="";var g;var d=0;while(db',214,216,'Illegal ','macro parameter ','reference");',187,'}e=this.AddArgs(',976,'f),b[g-1]);f=""}}else{f+=g}}}',167,976,'f)},AddArgs',149,856,'if(a.match','(/^[a-z]/i)&&b.match(/(^|[^\\\\])(\\\\\\\\)*\\\\[a-z]+$/i)){b+=" "}',167,'b+a},Replace',149,546,484,'TextAtom(','b[0],b[1],b[2','],b[3]))},Hash',149,'a){',216,'You can\'t use \'',995,'character #\' in math mode")},Tilde',149,'a){',484,951,30,'"))},HandleLap',149,179,612,261,'();',267,'}b=',509,'lap",{nuc:b,lap:a}))},HandleAtom',149,455,'a',561,'b);',267,'}',484,'Atom(c[0],a))},HandleMathCode',149,'a,b','){this.HandleTeXchar(',1014,'])},HandleTeXchar',149,'b,a,c){if(b==7&&',181,'.font',549,'a=',181,'.font}a=',365,'.fam[a];if(!',365,'[a]){',365,'[a]=[];',542,654,')])}else{',484,'TeXAtom(',365,'.atom[b],c,a))}},','HandleVariable',149,'a',1048,'7,1,','a.charCodeAt(0))},','HandleNumber',149,'a',1048,1,1077,'HandleOther',149,'a){',484,951,'ord",a,"normal"))},HandleComment',199,'a;',241,'a=',168,'++);if(a=="\\r"||a=="\\n"){return}}},HandleStyle',149,546,181,'.style=b[0];',509,'style",{style:b[0]}))},HandleSize',149,546,181,'.size=b[0];',509,'size",{size:b[0]}))},HandleFont',149,856,181,'.font=a[0]},HandleCS',199,'b=',234,'();',267,'}',211,'macros[b]){',273,'this','.macros',831,'a',833,'a=[a]}this[a[0]](b,a.slice(1','));return}',211,'mathchardef','[','b]){this.HandleMathCode(b,this.',1129,'[b]);return}if(',326,233,1131,'delimiter[',233,'b].slice(0,3',1127,216,'Unknown control sequence \'"+',233,'b+"\'")},HandleOpen',166,477,'Open()},HandleClose',166,'if(',181,703,'==null){',216,225,'");',767,'a=',477,'Get(',181,709,'(!a||a.left',1152,477,'Close()}else{',216,225,' or missing',403,714,'");return}},HandleLeft',149,179,'b',630,'a);',267,'}',477,'Open(b)},HandleRight',149,263,'c',630,'b);',267,490,'=',477,'Get(',181,709,'(a&&a.left',549,477,'Close(c)}else{',216,'Extra open brace or missing',403,'+"left")}},HandleOver',149,546,'if(',181,720,549,216,'Ambiguous use of',403,404,'return}',181,720,'=',477,'Length();',181,'.overF={name:a};if(b.length>0){',181,'.overF.','left=',326,'b[0]];',181,1220,'right=',326,'b[1]]}else{',1006,'(/withdelims$/)){',181,1220,'left',630,'a);',267,'}',181,1220,'right',630,'a);',267,'}}else{',181,1220,'left=null;',181,1220,1226,'null}}',1006,'(/^above/)){',181,1220,'thickness',499,'a,1);',267,1244,181,1220,'thickness=null}},HandleSuperscript',199,'a=',477,195,181,720,'==',477,'Length()){a=null}','if(a==null','||(!a.atom&&a',480,'a',482,'a=',484,485,'if(a.sup){if(a.sup.isPrime){a=',484,485,'else{',216,'Double exponent',489,'}}a.sup',503,'("superscript");',267,'}},HandleSubscript',199,'a=',477,195,181,720,'==',477,'Length()){a=null}',1273,'||(!a.atom&&a',480,'a',482,'a=',484,485,'if(a.sub){',216,'Double subscripts',489,'}a.sub',503,'("subscript");',267,'}},Parse',199,'b;',241,'b=',168,'++);',211,'mathchar[',1131,'mathchar[b])}else{',211,'special[b]){this[this',152,'b]](b)}else{',211,'letter','.test(b)){this.',1072,'(b)}else{',211,'number',1335,1078,1337,'this.',1084,'(b)}}}}}if(',181,703,549,273,477,'Get(',181,709,'(a.left){',216,217,403,714,715,216,257,'")}}if(',181,720,549,477,'Over()}},Atomize',199,'a=',477,'init;if(!this.error){',477,727,'a.style,a.size)}},Typeset',199,'f=',477,'init;var ',594,'typeset=',477,657,'f.style,f',880,267,'\'\'+this.error',904,'if(d.format=="null"){return""}d.Styled().Remeasured();var e=0;var c=0;if(d.bh>d.h&&','d.bh>jsMath.h+0.001','){e=1}if(d.bd>d.d&&d.bd>jsMath.d+0.001){e=1}if(d.h>jsMath.h||d.d>jsMath.d){c=1}var b=d.html;if(e){if(','jsMath.Browser.','allowAbsolute){var g=(',1389,'?jsMath.h-d.bh:0);b=',898,'Absolute(b,d.w,jsMath.h,0,g)}else{if(',1391,'valignBug){','b=\'\'+b',904,162,1391,'operaLineHeightBug){',273,898,'Em(Math.max(0,d.bd-jsMath.hd)/3);',1399,')+"; position:relative; top:"+a+"; vertical-align:"+a+\'">\'+b+""}}}c=1}if(c){b+=',898,'Blank(0,d.h+0.05,d.d+0.05)}return\'\'+b+""}});',151,'.AddSpecial({cmd:"HandleCS",open:"HandleOpen",close:"HandleClose"});','jsMath.Add(jsMath,{','Macro',149,179,'c=',151,1122,';c[a]=["Macro"];for(var b=1;b=0){','c=c.replace(/&','lt;/g,"<");',1574,'gt;/g,">");',1574,'quot;/g,\'"\');',1574,'amp;/g,"&")}',167,'c},',1572,149,1560,'b.nodeValue',549,'if(b.nodeName!=="#',1565,167,1587,'}',167,1587,'.replace(/^\\[CDATA\\[((.|\\n)*)\\]\\]$/,"$1")}if(',1561,'===0){return" "}var c="";for(',273,'0;a<',1561,';a++){c+=this.',1572,'(',1563,'a])}',167,'c},ResetHidden',149,'a){a.innerHTML=\'\'+',1391,'operaHiddenFix;a','.className','="";','jsMath.hidden','=a.firstChild;if(!jsMath.BBoxFor("x").w){','jsMath.hidden=jsMath.hiddenTop','}jsMath.ReInit()},ConvertMath',149,'c,b,',179,594,1558,'(b);this.ResetHidden(b);if(d.match(/^\\s*\\\\nocache([^a-zA-Z])/)){a=true;d=d.replace(/\\s*\\\\nocache/,"")}',594,'Parse(c,d,a);b',1613,'="typeset";b.innerHTML=d},',1520,149,'c){this.restart=0;if(!c',1613,'.match(/(^| )math( |$)/)){',767,'a=(c',1613,'.toLowerCase','().match(/(^| )nocache( |$)/)!=null);try{var d=(c.tagName',1637,'()=="div"?"D":"T");this.ConvertMath(d,c,a);c.onclick=jsMath.Click.CheckClick;c.ondblclick=jsMath.Click.CheckDblClick}catch(e){if(c.alt',193,'c.alt;b=b.replace(/&/g,"&").replace(//g,">");c.innerHTML=b;c',1613,'="math";if(a){c',1613,'+=" nocache"}}',1617,'}},','ProcessElements',149,'b){',1498,'blocking=','1;',966,1391,'processAtOnce;c++,b++){if(b>=','this.element','.length||this.cancel){this.','ProcessComplete','();',211,'cancel){','jsMath.Message.','Set("',177,' Math: Canceled");',1664,'Clear()}',1498,1653,'0;',1498,177,'();return}','else{',273,1498,'SaveQueue();','this.ProcessElement(this.element[','b]);',211,'restart){',1498,1499,'this,"',1649,'",b);',1498,'RestoreQueue(a);',1498,1653,'0;setTimeout("',1498,177,'()",',1391,'delay);return}}}',1498,1690,'var d=Math.floor(100*b/',1658,439,'jsMath.Message.Set("Processing Math',': "+d+"%");setTimeout("',547,'.',1649,'("+b+")",',1391,'delay)},',1502,149,'a','){if(!jsMath.initialized){jsMath.Init()}this.element','=this.GetMathElements(','a);',1498,1653,'1;this.cancel=0;this',556,'=1;',1704,': 0%",1);setTimeout("',547,'.',1649,'(0)",',1391,1711,1514,149,856,1273,1715,1716,'b);a=0}this',556,'=0;while(a<',1658,214,1680,'a]);',211,'restart){','jsMath.Synchronize','("',547,'.',1514,'(null,"+a+")");',1498,177,1675,'a++}this.',1660,'(1)},ProcessOne',149,'a',1715,'=[a];this.',1514,'(null,0)},GetMathElements',149,'d){var b=[];var a;',215,'d=','jsMath.document','}if(typeof(d',833,'d=',1768,'.getElementById(d)}if(!','d.getElementsByTagName','){',187,644,1774,'("div','");for(a=0;a=0;a--){b[a].removeAttribute("name")}}',1617,';',1658,'=[];this.restart=null;if(!c){',1704,': Done");',1664,'Clear()}',1664,'UnBlank();if(',1391,'safariImgBug&&(',1510,'font=="symbol"||',1510,'font=="image")){',211,'timeout){clearTimeout(this.timeout)}this.timeout=setTimeout("','jsMath.window.resizeBy','(-1,0); ',1836,'(1,0); ',547,'.timeout = null",2000)}},Cancel',166,547,'.cancel=1;if(',1498,'cancelTimer){',1498,'cancelLoad()}}};',1414,'ConvertTeX',149,'a){',1498,'Push(jsMath.tex2math,"',1850,1503,'ConvertTeX2',149,'a){',1498,1854,1857,1503,'ConvertLaTeX',149,'a){',1498,1854,1864,1503,'ConvertCustom',149,'a){',1498,1854,1871,1503,'CustomSearch',149,'c,b,a,d){',1498,1499,'null,function(){jsMath.tex2math.',1878,'(c,b,a,d)})},tex2math:{',1850,472,1857,472,1864,472,1871,472,1878,':function(){}}});',1746,'=',1498,'Synchronize;try{if(','window.parent','!=window&&window.jsMathAutoload){',1900,'.jsMath=jsMath;',1768,'=',1900,'.document;jsMath.window=',1900,'}}catch(err){}',1535,'Register();jsMath.Loaded();jsMath.Controls.GetCookie();',540,'Source();',1535,'Init();',1498,'Init();',540,'Fonts();if(',1768,'.body){',540,'Body()}',540,'User("onload")}};'] - -]); -//end = new Date().getTime(); -//alert(end-start); diff --git a/literature/static/jsMath/plugins/CHMmode.js b/literature/static/jsMath/plugins/CHMmode.js deleted file mode 100644 index 1bab915f0..000000000 --- a/literature/static/jsMath/plugins/CHMmode.js +++ /dev/null @@ -1,85 +0,0 @@ -/* - * CHMmode.js - * - * Part of the jsMath package for mathematics on the web. - * - * This file makes jsMath work with MicroSoft's HTML Help system - * from within .chm files (compiled help archives). - * - * This file should be loaded BEFORE jsMath.js. - * - * --------------------------------------------------------------------- - * - * Copyright 2006-2007 by Davide P. Cervone - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -if (!window.jsMath) {window.jsMath = {}} -if (!jsMath.Controls) {jsMath.Controls = {}} -if (!jsMath.Controls.cookie) {jsMath.Controls.cookie = {}} - -jsMath.isCHMmode = 1; - -jsMath.noChangeGlobal = 1; -jsMath.noShowGlobal = 1; -jsMath.noImgFonts = 1; -jsMath.Controls.cookie.global = 'always'; -jsMath.Controls.cookie.hiddenGlobal = 1; - -if (window.location.protocol == "mk:") { - - /* - * Work around bug in hh.exe that causes it to run at 100% CPU - * and not exit if the page is reloaded after an IFRAME is used - * to load the controls file, so fake it using XMLHttpRequest. - * Load the data into a DIV instead of an IFRAME, and make sure - * that the styles are correct for it. Change the GetPanel() - * call to hide the other panel and open the correct one. - */ - - jsMath.Controls.Init = function () { - this.controlPanels = jsMath.Setup.DIV("controlPanels"); - if (!jsMath.Browser.msieButtonBug) {this.Button()} - else {setTimeout("jsMath.Controls.Button()",500)} - } - - jsMath.Controls.Panel = function () { - jsMath.Translate.Cancel(); - jsMath.Setup.AddStyleSheet({ - '#jsMath_options': jsMath.styles['#jsMath_panel'], - '#jsMath_options .disabled': jsMath.styles['#jsMath_panel .disabled'], - '#jsMath_options .infoLink': jsMath.styles['#jsMath_panel .infoLink'] - }); - if (this.loaded) {this.panel = jsMath.Element("panel"); this.Main(); return} - var html = jsMath.Script.xmlRequest(jsMath.root+"jsMath-controls.html"); - var body = (html.match(/([\s\S]*)<\/body>/))[1]; - this.controlPanels.innerHTML = body; - var script = (body.match(/ - - - -
- -

jsMath Image Mode Test Page

- -If you see typeset mathematics below, then jsMath Image Mode is working. If you see -TeX code instead, jsMath Image Mode is not working for you. -

- -


- - -
-\left(\, \sum_{k=1}^n a_k b_k \right)^2 \le -\left(\, \sum_{k=1}^n a_k^2 \right) \left(\, \sum_{k=1}^n b_k^2 \right) -
-

- -

-\warning{       jsMath image mode is not working!       } -
- - -
-

-If the mathematics does not show up properly, you may not have not -installed the jsMath -image fonts file correctly. Follow the instructions on the linked -page. -

- -Once you have jsMath working, go on to the sample -page to see if easy/load.js is configured properly. - -

- - - - - - -

-


- - - -
- - - - - - -
[HOME]jsMath web pages
-Created: 14 Feb 2007
- -Last modified: Jun 16, 2007 8:56:17 AM - -
-Comments to: dpvc@union.edu
-
 
-
- - - diff --git a/literature/static/jsMath/test/index.html b/literature/static/jsMath/test/index.html deleted file mode 100644 index 559d9e4fd..000000000 --- a/literature/static/jsMath/test/index.html +++ /dev/null @@ -1,114 +0,0 @@ - - -jsMath (Test): jsMath Test Page - - - - - - - - -
- - -
jsMath (Test)
-
-

- - - - - - - -

-Warning: jsMath -requires JavaScript to process the mathematics on this page.
-If your browser supports JavaScript, be sure it is enabled. -
-
- - -
- -
- -
- -

jsMath Test Page

- -If you see typeset mathematics below, then jsMath is working. If you see -TeX code instead, jsMath is not working for you. -

- -


- - -
-\left(\, \sum_{k=1}^n a_k b_k \right)^2 \le -\left(\, \sum_{k=1}^n a_k^2 \right) \left(\, \sum_{k=1}^n b_k^2 \right) -
-

- -

-\warning{       jsMath is not working!       } -
- - -
-

- -Once you have jsMath working properly, view the image mode test page to make sure that the -image fallback mode is working as well. - -

- - - - - - -

-


- - - -
- - - - - - -
[HOME]jsMath web pages
-Created: 14 Feb 2007
- -Last modified: Feb 12, 2009 6:14:47 PM - -
-Comments to: dpvc@union.edu
-
 
-
- - - diff --git a/literature/static/jsMath/test/jsMath40.jpg b/literature/static/jsMath/test/jsMath40.jpg deleted file mode 100644 index db5379477e1447bee1e9230fb5229e43b8eec859..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1953 zcmbV|cT|&E8pgl$z`%qq)qoTckP-q(SjHeALvR!jQ6o5P2mvBZ0V&GRbPY(!AdWb= z2Sh-msZ_y2qzE!NA}EQ38bFGpYeM}L$Tvav%-KJ8_qq4J=e_5-_r1UOLT{i+K*__6 z<_5rEFu+|l07wd)^N9+Mjb}u&9GpxIchMpkA*=(85H>SRpJ++2r07#9R@SmdQ za`NB60K`{M7QedxVJgWQKp@~q#1^Wo%ug~8Kq{kD3~ctIRlOOQ9jDa@X?Z1BL+847 z^+N+`7#bgNy4vx9{C)9zKVCj~qQlKh6wd1&4&P zPsYTaiHlE2JbV7aKQ3}IGA~`uzw*n~f@{AP-YhLEzg2O&vZ}tJv8nlfOY4J<&aS83 zJn02NqI>45<4Jtm>sEglRKi&ZsiMM@bjg-$cU zMmsH@9b2T$6fUJ?P{m$U+=kI>gTXd)=_{$CxM`@PVPpi%rw=Um8vBm4+#FT2Krg?r z&FSQ)Iy|HbZKrZe*%~Dk;5cQn$gWUM)X zkICvAKZvQF2X^{r(OSWR=}oKlS79pm+#2e_Tr6hCvP}J2lUiySfd>VxDyTRo?xN?0 zI&Rez#52U^ojeo-gmBZ6RhuMpU3i_n<;N1zKfms;xp$HOhgWOM^~0CVvxdh#>uREH z-RZ*Vm{y&7*fM@YRcHDK{B|lMfU}3N?%O4}`XipxdA4+{HF12+6VJR%({0dTJEqxB z(RO$plr!7o0RicP4QDV@!k=~pag+N&i$}0qN$xKl)u(=sqp%Vq9qB0%-#w4p1&rvv z93I9-n)E@yorh^?e&%XwGAHSPEB8r!U3ZDEE9|fW;5aiWzvuvb#!Rnudcwi}X=85I zBVSQ<*g6C#jBeg{E?gjO=FaYS&8f)oga=sEbGi@PGPUj&N+~A^V2@N@Pn`ecL73fW z5k~Bpy~o6VLCG_`-ji6@UPdoiLcjGN4=~dksEpRETg(9Pqy*|THyZ*N#lnYE74Mfs zR-CoCv%KysJ=G~(2NiRoE3$SO0@O|h9Upf|UVT5Gw=X*QYFzG-RKJCThI#Znohn)T zziikINVjcJHvhRtQ5c}p(+Wy%jJ*>qx&Hin)jNV?ZQ^bJPac(Xo~Pq2?l|Fz6`F`t zT$9u^85D=cS9DOv;3-fZKv8gy`MQ1{Z4FQTPeTugJMSODO*nXe-u)Z*QHWt|* zdFSGZ$Iek+?pov*$u1yc-BQY*zYb>vXIj=@rdfx7S3B5JABE0WoLl~XUA$hEaXjR(by)RFNwZ-_0;E!j2RqkfIK>7iw;;G=4=l`BGOR}M~udRy=`N_U~n zVCeb$$J=ae#5}*vyYRcb^6Jsid-~rVdp?r6Q{EbbaN6D@5v=|S>WFw*+WnlB0DOmK zO+~J7VfP11OAX3ZHJsLE(_vCIyynJRI^9p93}*#$CA`&SkjscD?~@4p26va9OH2Hg zTj5ceg5(d5G(CP+^uqsX=A-rorkr8U`M)bU**Ti8yCwHYvEsJtlRWu^JLY;;?)UBw zE{~WJvxY8>^ELV8n|o)(RT)*78`TgX=BG5QZQ>x{lgDESm?pxCr;3H7$)4;+N|LQ; mLc3<|euRo&$12I1!`RVG>eaqY_DOZ`eWGO~KO2gGhW`YyvRs=0 diff --git a/literature/static/jsMath/test/sample.html b/literature/static/jsMath/test/sample.html deleted file mode 100644 index 4497e7a35..000000000 --- a/literature/static/jsMath/test/sample.html +++ /dev/null @@ -1,165 +0,0 @@ - - -jsMath (Test): jsMath Sample Page - - - - - - - - - -
- -

jsMath Sample Page

- -This is a sample file showing you how to use jsMath to display mathematics -in your web pages. Be sure you have followed the installation -instructions before loading this file. Also, you may need to edit the -jsMath/easy/load.js file to set the root URL for where jsMath -can be found on your web site. The rest of this document gives examples of -how to enter mathematics in your pages. Depending on the settings in -jsMath/easy/load.js, not all of the mathematics below will be -processed by jsMath. Experiment with the settings in that file to see how -they work. -

- -


-

- -

Some mathematics using tex2math

- -The easiest way to enter mathematics is to use jsMath's tex2math -plugin to identify the mathematics in your document by looking for \rm\TeX-like math delimiters. Here are some math -equations using those markers. Some inline math: $\sqrt{1-x^2}$ or \(ax^2+bx+c\), -and some displayed math: -$$\int {1\over x}\,dx = \ln(x)+C$$ -and -\[\sum_{i=1}^n i = {n(n+1)\over 2}.\] -Note that the first of these will not be processed unless you have enabled -processSingleDollars in jsMath/easy/load.js, -which is disabled by default. That is because a single dollar sign can -appear in normal text (as in "That will cost from $3.50 to -$5.00 to repair"), and you don't want jsMath to try to typeset -the "3.50 to " as mathematics. -

- -If you enable processSingleDollars, you might also want to -enable fixEscapedDollars, so that it is possible to enter -dollar signs by preceding them with a backslash. Here's one that you can -use to see the results of these settings: \$ (an escaped dollar) and $x+1$ -(not escaped). -

- -It is also possible to use your own custom delimiters for marking the -mathematics within your pages. If you uncomment the customDelimiters -array in jsMath/easy/load.js, then the following math will be -typeset by jsMath: some inline math [math]\sin(2\pi x)[/math] and some -display math [display]x={-b\pm \sqrt{b^2-4ac}\over 2a}.[/display] -You may change the delimiters to nearly anything you want, but they can not -look like HTML tags, since some browsers will eliminate unknown tags, and -jsMath doesn't get to look for the custom delimiters until after the -browser has interpreted the page. -

- -

-You can prevent the tex2math plugin from processing a portion -of a page by enclosing it in a tag that is of -CLASS="tex2math_ignore". Often, that tag will be a -DIV or SPAN, but it can be anything. This -paragraph is wrapped in a DIV tag with -CLASS="tex2math_ignore", and so no math delimiters will be -processed: $f\colon X\to Y$, \(x^2 \gt 5\), $$1\over 1+x^2$$ and -\[\matrix{a& b\cr c& d}.\] -Note that this includes the processing of escaped dollars (\$) and -custom delimiters ([math]a \mapsto a^2[/math]) as well. -This makes it possible to produce examples of how to enter mathematics on -your site, for instance. -
-

-JsMath will automatically ignore the text within -PRE tags, so you can easily enter examples that way as well: -

-   $f\colon X\to Y$, \(x^2 \gt 5\),
-   $$1\over 1+x^2$$ and \[\matrix{a& b\cr c& d}.\]
-
-

- -Note that since the < and > symbols are used to denote HTML tags, -these can be hard to incorporate into your \rm\TeX -code. Often, putting spaces around the < or > will make it work, but -it is probably better to use \lt and \gt instead. -Also note that the tex2math plugin does not allow any HTML -tags to be within the math delimiters, with the exception of -<BR>, which is ignored. -

- -See the tex2math -documentation for more information. -

- -


-

- -

Mathematics without tex2math

-

- -If you are not using tex2math, then you will need to enclose -your mathematics within SPAN or DIV tags that -are of CLASS="math". Use a SPAN for in-line math -and a DIV for displayed math. For instance, P = (x_1,\ldots,x_n) and -

- A = \left\lgroup\matrix{a_{11}& \cdots& a_{1m}\cr - \vdots& \ddots& \vdots\cr - a_{n1}& \cdots& a_{nm}\cr}\right\rgroup. -
-

-


-

-

More information

-

- -See the jsMath -example files for more examples of using jsMath. There are several extensions -to \rm\TeX that allow jsMath to interact better -with HTML. These provide features such as colored text, tagging mathematics -with CSS styles, and so on. -

- -More information is available from the jsMath author's -documentation site. JsMath also has a home page at -SourceForge, and that includes public forums -for jsMath where you can ask the jsMath user community for help. -

- - - diff --git a/literature/static/jsMath/uncompressed/def.js b/literature/static/jsMath/uncompressed/def.js deleted file mode 100644 index 0b5b6a199..000000000 --- a/literature/static/jsMath/uncompressed/def.js +++ /dev/null @@ -1,1442 +0,0 @@ -jsMath.Img.AddFont(50,{ - cmr10: [ - [5,5,0], [6,6,0], [6,6,1], [5,6,0], [5,5,0], [6,5,0], [5,5,0], [6,5,0], - [5,5,0], [6,5,0], [5,5,0], [5,5,0], [4,5,0], [4,5,0], [6,5,0], [6,5,0], - [2,4,0], [3,6,2], [3,2,-3], [3,2,-3], [3,2,-3], [3,2,-3], [4,2,-3], [4,3,-3], - [3,3,2], [4,6,1], [5,5,1], [6,5,1], [4,5,1], [7,5,0], [7,6,1], [6,7,1], - [2,2,-1], [2,6,0], [3,3,-2], [6,7,2], [4,7,1], [6,7,1], [6,7,1], [2,3,-2], - [3,8,2], [3,8,2], [4,4,-2], [6,6,1], [2,3,2], [2,1,-1], [2,1,0], [4,8,2], - [4,6,1], [3,5,0], [4,5,0], [4,6,1], [4,5,0], [4,6,1], [4,6,1], [4,6,1], - [4,6,1], [4,6,1], [2,4,0], [2,6,2], [2,6,2], [6,3,0], [3,6,2], [3,5,0], - [6,6,1], [6,6,0], [5,5,0], [5,6,1], [5,5,0], [5,5,0], [5,5,0], [6,6,1], - [6,5,0], [3,5,0], [4,6,1], [6,5,0], [5,5,0], [7,5,0], [6,5,0], [6,6,1], - [5,5,0], [6,7,2], [6,6,1], [4,6,1], [5,5,0], [6,6,1], [6,6,1], [8,6,1], - [6,5,0], [6,5,0], [4,5,0], [2,8,2], [4,3,-2], [2,8,2], [3,2,-3], [2,2,-3], - [2,3,-2], [4,5,1], [4,6,1], [3,5,1], [4,6,1], [3,5,1], [3,5,0], [4,6,2], - [4,5,0], [2,5,0], [3,7,2], [4,5,0], [2,5,0], [6,4,0], [4,4,0], [4,5,1], - [4,6,2], [4,6,2], [3,4,0], [3,5,1], [3,6,1], [4,5,1], [4,5,1], [5,5,1], - [4,4,0], [4,6,2], [3,4,0], [4,1,-1], [7,1,-1], [3,2,-3], [3,1,-4], [3,2,-3] - ], - cmmi10: [ - [6,5,0], [6,6,0], [6,6,1], [5,6,0], [6,5,0], [7,5,0], [6,5,0], [5,5,0], - [5,5,0], [5,5,0], [6,5,0], [5,5,1], [5,7,2], [4,6,2], [4,6,1], [3,5,1], - [4,7,2], [4,6,2], [4,6,1], [3,5,1], [4,5,1], [4,6,1], [4,6,2], [4,4,0], - [4,7,2], [4,5,1], [4,6,2], [4,5,1], [4,5,1], [4,5,1], [5,7,2], [5,6,2], - [5,7,2], [5,5,1], [3,5,1], [4,6,1], [6,5,1], [4,6,2], [3,5,1], [5,6,2], - [7,3,-1], [7,3,1], [7,3,-1], [7,3,1], [2,3,-1], [2,3,-1], [4,5,1], [4,5,1], - [4,5,1], [3,4,0], [4,4,0], [4,6,2], [4,6,2], [4,6,2], [4,6,1], [4,6,2], - [4,6,1], [4,6,2], [2,1,0], [2,3,2], [5,5,1], [4,8,2], [5,5,1], [4,4,0], - [4,7,1], [6,6,0], [6,5,0], [6,6,1], [6,5,0], [6,5,0], [6,5,0], [6,6,1], - [7,5,0], [4,5,0], [5,6,1], [7,5,0], [5,5,0], [8,5,0], [7,5,0], [6,6,1], - [6,5,0], [6,7,2], [6,6,1], [5,6,1], [5,5,0], [6,6,1], [6,6,1], [8,6,1], - [6,5,0], [6,5,0], [6,5,0], [3,7,1], [3,8,2], [3,8,2], [7,3,0], [7,3,0], - [3,6,1], [4,5,1], [3,6,1], [4,5,1], [4,6,1], [4,5,1], [4,7,2], [4,6,2], - [4,6,1], [3,6,1], [4,7,2], [4,6,1], [2,6,1], [6,5,1], [4,5,1], [4,5,1], - [5,6,2], [4,6,2], [4,5,1], [3,5,1], [3,6,1], [4,5,1], [4,5,1], [5,5,1], - [4,5,1], [4,6,2], [4,5,1], [3,5,1], [4,6,2], [5,6,2], [5,2,-3], [5,2,-3] - ], - cmsy10: [ - [5,1,-1], [2,2,-1], [5,4,0], [4,4,0], [6,5,1], [4,4,0], [6,5,0], [6,6,2], - [6,6,1], [6,6,1], [6,6,1], [6,6,1], [6,6,1], [7,8,2], [4,4,0], [4,4,0], - [6,4,0], [6,4,0], [5,6,1], [5,6,1], [5,6,1], [5,6,1], [5,6,1], [5,6,1], - [6,3,0], [6,4,0], [5,5,1], [5,5,1], [7,5,1], [7,5,1], [5,5,1], [5,5,1], - [7,3,0], [7,3,0], [3,7,2], [3,7,2], [7,3,0], [7,7,2], [7,7,2], [6,4,0], - [7,5,1], [7,5,1], [5,7,2], [5,7,2], [7,5,1], [7,7,2], [7,7,2], [6,5,1], - [2,4,0], [7,5,1], [5,5,1], [5,5,1], [6,6,0], [6,6,2], [5,8,2], [1,4,0], - [4,6,1], [4,5,0], [5,3,0], [4,7,1], [5,7,1], [5,6,1], [6,5,0], [6,5,0], - [4,5,0], [6,7,1], [5,6,1], [4,6,1], [6,5,0], [4,6,1], [6,6,1], [5,6,1], - [6,6,1], [6,5,0], [6,6,1], [6,6,1], [5,6,1], [8,6,1], [8,7,1], [6,6,1], - [6,6,1], [6,6,1], [6,6,1], [5,6,1], [6,6,0], [6,6,1], [5,6,1], [8,6,1], - [6,5,0], [6,6,1], [6,5,0], [5,6,1], [5,6,1], [5,6,1], [5,6,1], [5,6,1], - [4,5,0], [4,5,0], [3,8,2], [2,8,2], [3,8,2], [2,8,2], [3,8,2], [3,8,2], - [3,8,2], [2,8,2], [2,8,2], [3,8,2], [3,8,2], [5,8,2], [4,8,2], [2,6,1], - [6,8,7], [5,5,0], [6,6,1], [4,8,2], [5,5,0], [5,5,0], [5,6,1], [5,6,1], - [3,7,2], [3,7,2], [3,7,2], [5,7,2], [6,7,1], [6,8,2], [6,7,1], [6,7,1] - ], - cmex10: [ - [3,10,9], [3,10,9], [3,10,9], [2,10,9], [4,10,9], [2,10,9], [4,10,9], [2,10,9], - [4,10,9], [4,10,9], [3,10,9], [3,10,9], [2,6,5], [3,6,5], [4,10,9], [4,10,9], - [4,14,13], [3,14,13], [5,18,17], [4,18,17], [4,18,17], [2,18,17], [4,18,17], [3,18,17], - [4,18,17], [3,18,17], [5,18,17], [5,18,17], [5,18,17], [5,18,17], [7,18,17], [7,18,17], - [6,22,21], [4,22,21], [4,22,21], [3,22,21], [5,22,21], [3,22,21], [5,22,21], [3,22,21], - [5,22,21], [5,22,21], [5,22,21], [5,22,21], [9,22,21], [9,22,21], [6,14,13], [6,14,13], - [6,14,13], [5,14,13], [5,14,13], [3,14,13], [5,14,13], [3,14,13], [3,6,5], [3,6,5], - [6,8,7], [4,8,7], [6,8,7], [4,8,7], [4,14,13], [6,14,13], [4,4,3], [3,6,5], - [6,14,13], [5,14,13], [3,6,5], [5,6,5], [4,14,13], [4,14,13], [6,8,7], [8,11,10], - [5,9,8], [7,17,16], [8,8,7], [11,11,10], [8,8,7], [11,11,10], [8,8,7], [11,11,10], - [7,8,7], [7,8,7], [5,9,8], [6,8,7], [6,8,7], [6,8,7], [6,8,7], [6,8,7], - [10,11,10], [9,11,10], [7,17,16], [8,11,10], [8,11,10], [8,11,10], [8,11,10], [8,11,10], - [7,8,7], [9,11,10], [5,3,-3], [9,2,-4], [12,2,-4], [4,2,-4], [7,2,-4], [11,2,-4], - [4,14,13], [2,14,13], [4,14,13], [3,14,13], [4,14,13], [3,14,13], [4,14,13], [4,14,13], - [8,10,9], [8,14,13], [8,18,17], [8,22,21], [6,14,13], [6,6,5], [8,6,5], [4,6,5], - [4,6,5], [4,6,5], [5,3,2], [5,3,2], [5,3,0], [5,3,0], [6,6,5], [6,6,5] - ], - cmbx10: [ - [5,5,0], [7,5,0], [6,6,1], [6,5,0], [6,5,0], [7,5,0], [6,5,0], [6,5,0], - [6,5,0], [6,5,0], [6,5,0], [6,5,0], [5,5,0], [5,5,0], [7,5,0], [7,5,0], - [2,4,0], [3,6,2], [3,2,-3], [4,2,-3], [4,2,-3], [4,2,-3], [4,2,-3], [4,2,-3], - [4,3,2], [4,6,1], [6,5,1], [7,5,1], [4,5,1], [8,5,0], [8,6,1], [6,7,1], - [3,2,-1], [2,5,0], [4,3,-2], [7,7,2], [4,7,1], [7,7,1], [6,6,1], [2,3,-2], - [3,8,2], [3,8,2], [4,4,-2], [6,6,1], [2,4,2], [3,1,-1], [2,2,0], [4,8,2], - [4,6,1], [4,5,0], [4,5,0], [4,6,1], [4,5,0], [4,6,1], [4,6,1], [4,6,1], - [4,6,1], [4,6,1], [2,4,0], [2,6,2], [2,6,2], [6,3,0], [4,6,2], [4,5,0], - [6,6,1], [6,5,0], [6,5,0], [6,6,1], [6,5,0], [6,5,0], [5,5,0], [6,6,1], - [7,5,0], [3,5,0], [4,6,1], [6,5,0], [5,5,0], [8,5,0], [7,5,0], [6,6,1], - [6,5,0], [6,7,2], [6,6,1], [5,6,1], [6,5,0], [6,6,1], [6,6,1], [9,6,1], - [6,5,0], [6,5,0], [5,5,0], [3,8,2], [4,3,-2], [2,8,2], [4,2,-3], [2,2,-3], - [2,3,-2], [4,5,1], [5,6,1], [4,5,1], [5,6,1], [4,5,1], [4,5,0], [4,6,2], - [5,5,0], [2,5,0], [3,7,2], [5,5,0], [3,5,0], [7,4,0], [5,4,0], [4,5,1], - [5,6,2], [5,6,2], [4,4,0], [3,5,1], [3,6,1], [5,5,1], [5,5,1], [6,5,1], - [5,4,0], [5,6,2], [4,4,0], [5,2,-1], [9,2,-1], [4,2,-3], [4,1,-4], [4,2,-3] - ], - cmti10: [ - [5,5,0], [6,6,0], [6,6,1], [5,6,0], [6,5,0], [6,5,0], [6,5,0], [6,5,0], - [6,5,0], [6,5,0], [6,5,0], [7,7,2], [6,7,2], [6,7,2], [8,7,2], [8,7,2], - [3,5,1], [4,6,2], [4,2,-3], [4,2,-3], [4,2,-3], [4,2,-3], [4,2,-3], [5,3,-3], - [3,3,2], [6,7,2], [6,5,1], [6,5,1], [4,5,1], [7,5,0], [8,6,1], [6,7,1], - [3,2,-1], [3,6,0], [4,3,-2], [6,7,2], [5,6,1], [6,7,1], [6,7,1], [3,3,-2], - [4,8,2], [3,8,2], [5,4,-2], [6,5,1], [2,3,2], [3,1,-1], [2,1,0], [5,8,2], - [4,6,1], [4,5,0], [4,6,1], [4,6,1], [4,7,2], [4,6,1], [4,6,1], [5,6,1], - [4,6,1], [4,6,1], [3,4,0], [3,6,2], [3,6,2], [6,3,0], [4,6,2], [4,6,0], - [6,6,1], [5,6,0], [6,5,0], [6,6,1], [6,5,0], [6,5,0], [6,5,0], [6,6,1], - [6,5,0], [4,5,0], [5,6,1], [7,5,0], [5,5,0], [8,5,0], [6,5,0], [6,6,1], - [6,5,0], [6,7,2], [6,6,1], [5,6,1], [6,5,0], [6,6,1], [7,6,1], [8,6,1], - [6,5,0], [7,5,0], [5,5,0], [4,8,2], [5,3,-2], [4,8,2], [4,2,-3], [3,2,-3], - [3,3,-2], [4,5,1], [4,6,1], [4,5,1], [4,6,1], [4,5,1], [5,7,2], [4,6,2], - [4,6,1], [3,6,1], [4,7,2], [4,6,1], [3,6,1], [6,5,1], [5,5,1], [4,5,1], - [4,6,2], [4,6,2], [4,5,1], [3,5,1], [3,6,1], [4,5,1], [4,5,1], [5,5,1], - [4,5,1], [4,6,2], [4,5,1], [4,1,-1], [8,1,-1], [5,2,-3], [4,2,-3], [4,2,-3] - ] -}); - -jsMath.Img.AddFont(60,{ - cmr10: [ - [5,6,0], [7,6,0], [6,7,1], [6,6,0], [5,6,0], [6,6,0], [6,6,0], [6,6,0], - [6,6,0], [6,6,0], [6,6,0], [6,6,0], [5,6,0], [5,6,0], [7,6,0], [7,6,0], - [2,4,0], [3,6,2], [3,2,-4], [4,2,-4], [4,2,-4], [4,2,-4], [4,1,-4], [4,2,-4], - [3,3,2], [4,7,1], [6,5,1], [6,5,1], [4,6,1], [7,6,0], [8,7,1], [6,7,1], - [3,2,-2], [2,6,0], [3,3,-3], [7,8,2], [4,7,1], [7,7,1], [6,7,1], [2,3,-3], - [3,8,2], [3,8,2], [4,4,-2], [6,6,1], [2,3,2], [3,1,-1], [2,1,0], [4,8,2], - [4,7,1], [4,6,0], [4,6,0], [4,7,1], [4,6,0], [4,7,1], [4,7,1], [4,7,1], - [4,7,1], [4,7,1], [2,4,0], [2,6,2], [2,6,2], [6,2,-1], [4,6,2], [4,6,0], - [6,7,1], [6,6,0], [6,6,0], [6,7,1], [6,6,0], [6,6,0], [5,6,0], [6,7,1], - [6,6,0], [3,6,0], [4,7,1], [6,6,0], [5,6,0], [8,6,0], [6,6,0], [6,7,1], - [5,6,0], [6,8,2], [6,7,1], [4,7,1], [6,6,0], [6,7,1], [6,7,1], [9,7,1], - [6,6,0], [6,6,0], [5,6,0], [3,8,2], [4,3,-3], [2,8,2], [4,2,-4], [2,2,-4], - [2,3,-3], [4,5,1], [5,7,1], [4,5,1], [5,7,1], [4,5,1], [3,6,0], [4,6,2], - [5,6,0], [2,6,0], [3,8,2], [5,6,0], [3,6,0], [7,4,0], [5,4,0], [4,5,1], - [5,6,2], [5,6,2], [3,4,0], [3,5,1], [3,6,1], [5,5,1], [5,5,1], [6,5,1], - [5,4,0], [5,6,2], [4,4,0], [4,1,-2], [8,1,-2], [4,2,-4], [4,2,-4], [4,2,-4] - ], - cmmi10: [ - [6,6,0], [7,6,0], [6,7,1], [6,6,0], [7,6,0], [8,6,0], [7,6,0], [6,6,0], - [6,6,0], [6,6,0], [7,6,0], [5,5,1], [5,8,2], [5,6,2], [4,7,1], [4,5,1], - [4,8,2], [4,6,2], [4,7,1], [3,5,1], [5,5,1], [5,7,1], [5,6,2], [5,4,0], - [4,8,2], [5,5,1], [5,6,2], [5,5,1], [5,5,1], [5,5,1], [5,8,2], [5,6,2], - [6,8,2], [5,5,1], [4,5,1], [5,7,1], [7,5,1], [5,6,2], [4,5,1], [5,6,2], - [8,4,-1], [8,4,1], [8,4,-1], [8,4,1], [2,3,-1], [2,3,-1], [4,6,1], [4,6,1], - [4,5,1], [4,4,0], [4,4,0], [4,6,2], [4,6,2], [4,6,2], [4,7,1], [4,6,2], - [4,7,1], [4,6,2], [2,1,0], [2,3,2], [6,6,1], [4,8,2], [6,6,1], [4,4,0], - [5,7,1], [6,6,0], [7,6,0], [7,7,1], [7,6,0], [7,6,0], [7,6,0], [7,7,1], - [8,6,0], [4,6,0], [6,7,1], [8,6,0], [6,6,0], [9,6,0], [8,6,0], [6,7,1], - [7,6,0], [6,8,2], [7,7,1], [6,7,1], [6,6,0], [7,7,1], [7,7,1], [9,7,1], - [7,6,0], [7,6,0], [6,6,0], [3,7,1], [3,8,2], [3,8,2], [8,2,-1], [8,3,-1], - [4,7,1], [4,5,1], [4,7,1], [4,5,1], [5,7,1], [4,5,1], [5,8,2], [4,6,2], - [5,7,1], [3,7,1], [5,8,2], [5,7,1], [3,7,1], [7,5,1], [5,5,1], [4,5,1], - [5,6,2], [4,6,2], [4,5,1], [4,5,1], [3,7,1], [5,5,1], [4,5,1], [6,5,1], - [5,5,1], [4,6,2], [4,5,1], [3,5,1], [4,6,2], [5,6,2], [5,2,-4], [6,2,-4] - ], - cmsy10: [ - [6,2,-1], [2,2,-1], [6,4,0], [4,4,0], [6,6,1], [4,4,0], [6,6,0], [6,6,2], - [6,6,1], [6,6,1], [6,6,1], [6,6,1], [6,6,1], [8,8,2], [4,4,0], [4,4,0], - [6,4,0], [6,4,0], [6,8,2], [6,8,2], [6,8,2], [6,8,2], [6,8,2], [6,8,2], - [6,2,-1], [6,4,0], [6,6,1], [6,6,1], [8,6,1], [8,6,1], [6,6,1], [6,6,1], - [8,4,0], [8,4,0], [4,8,2], [4,8,2], [8,4,0], [8,8,2], [8,8,2], [6,4,0], - [8,6,1], [8,6,1], [5,8,2], [5,8,2], [8,6,1], [8,8,2], [8,8,2], [6,5,1], - [3,5,0], [8,5,1], [5,6,1], [5,6,1], [7,6,0], [7,6,2], [6,8,2], [1,4,0], - [5,7,1], [4,6,0], [5,3,0], [4,8,1], [6,7,1], [6,7,1], [6,6,0], [6,6,0], - [5,6,0], [7,7,1], [6,7,1], [5,7,1], [7,6,0], [5,7,1], [7,7,1], [5,7,1], - [7,7,1], [7,6,0], [7,7,1], [6,7,1], [6,7,1], [9,7,1], [9,8,1], [7,7,1], - [6,7,1], [7,7,1], [7,7,1], [6,7,1], [7,6,0], [7,7,1], [6,7,1], [9,7,1], - [7,6,0], [6,8,2], [7,6,0], [5,6,1], [5,6,1], [5,6,1], [5,6,1], [5,6,1], - [5,6,0], [5,6,0], [4,8,2], [3,8,2], [4,8,2], [3,8,2], [4,8,2], [4,8,2], - [3,8,2], [3,8,2], [2,8,2], [3,8,2], [4,10,3], [5,10,3], [4,8,2], [2,6,1], - [7,9,8], [6,6,0], [7,7,1], [4,8,2], [5,5,0], [5,5,0], [6,8,2], [6,8,2], - [3,8,2], [4,8,2], [4,8,2], [5,8,2], [6,8,2], [6,8,2], [6,7,1], [6,8,2] - ], - cmex10: [ - [4,11,10], [3,11,10], [4,11,10], [2,11,10], [4,11,10], [3,11,10], [4,11,10], [3,11,10], - [4,11,10], [4,11,10], [4,11,10], [3,11,10], [2,6,5], [4,6,5], [5,11,10], [5,11,10], - [5,16,15], [4,16,15], [6,20,19], [5,20,19], [5,20,19], [3,20,19], [5,20,19], [3,20,19], - [5,20,19], [3,20,19], [5,20,19], [5,20,19], [6,20,19], [5,20,19], [8,20,19], [8,20,19], - [7,25,24], [5,25,24], [5,25,24], [3,25,24], [6,25,24], [3,25,24], [6,25,24], [3,25,24], - [6,25,24], [6,25,24], [6,25,24], [6,25,24], [10,25,24], [10,25,24], [7,16,15], [7,16,15], - [7,16,15], [5,16,15], [6,16,15], [3,16,15], [6,16,15], [3,16,15], [4,6,5], [3,6,5], - [6,9,8], [5,9,8], [6,9,8], [5,9,8], [5,16,15], [6,16,15], [5,4,3], [3,6,5], - [7,16,15], [5,16,15], [4,6,5], [5,6,5], [5,16,15], [4,16,15], [7,9,8], [9,13,12], - [5,10,9], [8,19,18], [9,9,8], [12,13,12], [9,9,8], [12,13,12], [9,9,8], [12,13,12], - [8,9,8], [8,9,8], [5,10,9], [7,9,8], [7,9,8], [7,9,8], [7,9,8], [7,9,8], - [12,13,12], [10,13,12], [8,19,18], [9,13,12], [9,13,12], [9,13,12], [9,13,12], [9,13,12], - [8,9,8], [10,13,12], [6,2,-4], [10,3,-4], [13,3,-4], [5,2,-4], [8,2,-4], [12,2,-4], - [4,16,15], [2,16,15], [5,16,15], [3,16,15], [5,16,15], [3,16,15], [5,16,15], [5,16,15], - [9,11,10], [9,16,15], [9,20,19], [9,25,24], [6,16,15], [6,6,5], [9,6,5], [5,6,5], - [5,6,5], [5,6,5], [5,3,2], [5,3,2], [5,3,0], [5,3,0], [6,6,5], [6,6,5] - ], - cmbx10: [ - [6,6,0], [8,6,0], [7,7,1], [7,6,0], [6,6,0], [7,6,0], [7,6,0], [7,6,0], - [7,6,0], [7,6,0], [7,6,0], [6,6,0], [5,6,0], [5,6,0], [8,6,0], [8,6,0], - [3,4,0], [4,6,2], [3,2,-4], [4,2,-4], [4,2,-4], [4,2,-4], [4,1,-4], [5,2,-4], - [4,3,2], [5,7,1], [7,5,1], [7,5,1], [5,6,1], [9,6,0], [10,7,1], [7,7,1], - [3,2,-2], [3,6,0], [4,4,-2], [8,8,2], [5,7,1], [8,7,1], [7,7,1], [3,4,-2], - [4,8,2], [3,8,2], [4,4,-2], [7,8,2], [2,4,2], [3,2,-1], [2,2,0], [5,8,2], - [5,7,1], [4,6,0], [5,6,0], [5,7,1], [5,6,0], [5,7,1], [5,7,1], [5,7,1], - [5,7,1], [5,7,1], [2,4,0], [2,6,2], [3,6,2], [7,4,0], [4,6,2], [4,6,0], - [7,7,1], [7,6,0], [7,6,0], [7,7,1], [7,6,0], [6,6,0], [6,6,0], [7,7,1], - [7,6,0], [4,6,0], [5,7,1], [7,6,0], [6,6,0], [9,6,0], [7,6,0], [7,7,1], - [6,6,0], [7,8,2], [7,7,1], [5,7,1], [7,6,0], [7,7,1], [7,7,1], [10,7,1], - [7,6,0], [7,6,0], [6,6,0], [3,8,2], [5,4,-2], [2,8,2], [4,2,-4], [2,2,-4], - [2,4,-2], [5,5,1], [5,7,1], [4,5,1], [5,7,1], [4,5,1], [4,6,0], [5,6,2], - [5,6,0], [3,6,0], [4,8,2], [5,6,0], [3,6,0], [8,4,0], [5,4,0], [5,5,1], - [5,6,2], [5,6,2], [4,4,0], [4,5,1], [4,7,1], [5,5,1], [5,5,1], [7,5,1], - [5,4,0], [5,6,2], [4,4,0], [5,1,-2], [10,1,-2], [4,2,-4], [4,2,-4], [4,2,-4] - ], - cmti10: [ - [6,6,0], [7,6,0], [7,7,1], [6,6,0], [7,6,0], [7,6,0], [7,6,0], [7,6,0], - [6,6,0], [7,6,0], [7,6,0], [8,8,2], [6,8,2], [7,8,2], [9,8,2], [9,8,2], - [3,5,1], [4,6,2], [4,2,-4], [5,2,-4], [5,2,-4], [5,2,-4], [5,1,-4], [6,2,-4], - [3,3,2], [6,8,2], [6,5,1], [6,5,1], [5,6,1], [8,6,0], [9,7,1], [7,7,1], - [3,2,-2], [3,6,0], [5,3,-3], [7,8,2], [6,7,1], [7,7,1], [7,7,1], [3,3,-3], - [5,8,2], [4,8,2], [5,4,-2], [7,6,1], [2,3,2], [3,1,-1], [2,1,0], [5,8,2], - [5,7,1], [4,6,0], [5,7,1], [5,7,1], [4,8,2], [5,7,1], [5,7,1], [5,7,1], - [5,7,1], [5,7,1], [3,4,0], [3,6,2], [3,6,2], [7,2,-1], [4,6,2], [5,6,0], - [7,7,1], [6,6,0], [6,6,0], [7,7,1], [7,6,0], [6,6,0], [6,6,0], [7,7,1], - [7,6,0], [5,6,0], [5,7,1], [7,6,0], [5,6,0], [9,6,0], [7,6,0], [7,7,1], - [6,6,0], [7,8,2], [6,7,1], [6,7,1], [7,6,0], [7,7,1], [7,7,1], [9,7,1], - [7,6,0], [7,6,0], [6,6,0], [4,8,2], [5,3,-3], [4,8,2], [5,2,-4], [3,2,-4], - [3,3,-3], [5,5,1], [4,7,1], [4,5,1], [5,7,1], [4,5,1], [5,8,2], [4,6,2], - [5,7,1], [3,7,1], [4,8,2], [5,7,1], [3,7,1], [7,5,1], [5,5,1], [5,5,1], - [5,6,2], [4,6,2], [4,5,1], [4,5,1], [3,7,1], [5,5,1], [4,5,1], [6,5,1], - [5,5,1], [5,6,2], [4,5,1], [5,1,-2], [9,1,-2], [5,2,-4], [5,2,-4], [5,2,-4] - ] -}); - -jsMath.Img.AddFont(70,{ - cmr10: [ - [6,7,0], [8,8,0], [8,9,1], [7,8,0], [7,7,0], [8,7,0], [7,7,0], [8,8,0], - [7,7,0], [8,7,0], [7,8,0], [7,8,0], [6,8,0], [6,8,0], [9,8,0], [9,8,0], - [3,5,0], [4,8,3], [3,2,-5], [4,2,-5], [4,2,-5], [4,2,-5], [5,1,-5], [5,3,-5], - [4,4,3], [5,9,1], [7,6,1], [8,6,1], [5,8,2], [9,7,0], [10,9,1], [8,9,1], - [3,2,-2], [2,8,0], [4,4,-3], [8,9,2], [5,9,1], [8,9,1], [8,9,1], [3,4,-3], - [4,11,3], [3,11,3], [5,5,-3], [8,7,1], [3,4,2], [3,2,-1], [2,2,0], [5,11,3], - [5,8,1], [5,7,0], [5,7,0], [5,8,1], [5,7,0], [5,8,1], [5,8,1], [5,8,1], - [5,8,1], [5,8,1], [2,5,0], [2,7,2], [2,8,3], [8,3,-1], [5,8,3], [5,8,0], - [8,9,1], [8,8,0], [7,7,0], [7,9,1], [8,7,0], [7,7,0], [7,7,0], [8,9,1], - [8,7,0], [4,7,0], [5,8,1], [8,7,0], [6,7,0], [9,7,0], [8,7,0], [8,9,1], - [7,7,0], [8,10,2], [8,8,1], [5,9,1], [7,7,0], [8,8,1], [8,8,1], [11,8,1], - [8,7,0], [8,7,0], [6,7,0], [3,11,3], [5,4,-3], [2,11,3], [4,2,-5], [2,2,-5], - [2,4,-3], [5,6,1], [6,8,1], [5,6,1], [6,8,1], [5,6,1], [4,8,0], [5,8,3], - [6,7,0], [3,7,0], [4,10,3], [6,7,0], [3,7,0], [9,5,0], [6,5,0], [5,6,1], - [6,7,2], [6,7,2], [4,5,0], [4,6,1], [4,8,1], [6,6,1], [6,6,1], [8,6,1], - [6,5,0], [6,8,3], [5,5,0], [5,1,-2], [10,1,-2], [5,2,-5], [5,2,-5], [4,2,-5] - ], - cmmi10: [ - [8,7,0], [8,8,0], [8,9,1], [7,8,0], [8,7,0], [9,7,0], [9,7,0], [8,8,0], - [7,7,0], [7,7,0], [8,8,0], [7,6,1], [6,10,2], [6,8,3], [5,9,1], [4,6,1], - [5,10,3], [5,8,3], [5,9,1], [4,6,1], [6,6,1], [6,8,1], [6,8,3], [6,5,0], - [5,10,3], [6,6,1], [6,8,3], [6,6,1], [6,6,1], [6,6,1], [6,10,3], [6,8,3], - [7,10,3], [7,6,1], [5,6,1], [6,9,1], [9,6,1], [6,7,2], [5,7,2], [7,8,3], - [10,4,-2], [10,4,1], [10,4,-2], [10,4,1], [3,3,-2], [3,3,-2], [5,7,1], [5,7,1], - [5,6,1], [5,5,0], [5,5,0], [5,8,3], [5,7,2], [5,8,3], [5,8,1], [5,8,3], - [5,8,1], [5,8,3], [2,2,0], [3,4,2], [7,7,1], [5,11,3], [7,7,1], [5,5,0], - [6,9,1], [8,8,0], [8,7,0], [8,9,1], [9,7,0], [8,7,0], [8,7,0], [8,9,1], - [9,7,0], [5,7,0], [7,8,1], [9,7,0], [7,7,0], [11,7,0], [9,7,0], [8,9,1], - [8,7,0], [8,10,2], [8,8,1], [7,9,1], [8,7,0], [8,8,1], [8,8,1], [11,8,1], - [9,7,0], [8,7,0], [8,7,0], [4,9,1], [4,11,3], [4,11,3], [10,3,-1], [10,3,-1], - [4,9,1], [5,6,1], [5,8,1], [5,6,1], [6,8,1], [5,6,1], [6,11,3], [5,8,3], - [6,8,1], [3,8,1], [5,10,3], [6,8,1], [3,8,1], [9,6,1], [6,6,1], [5,6,1], - [6,7,2], [5,7,2], [5,6,1], [5,6,1], [4,8,1], [6,6,1], [5,6,1], [7,6,1], - [6,6,1], [5,8,3], [5,6,1], [3,6,1], [5,8,3], [7,8,3], [7,3,-5], [7,2,-5] - ], - cmsy10: [ - [7,1,-2], [2,3,-1], [7,5,0], [5,5,0], [8,7,1], [5,5,0], [8,7,0], [8,7,2], - [8,7,1], [8,7,1], [8,7,1], [8,7,1], [8,7,1], [10,11,3], [5,5,0], [5,5,0], - [8,5,0], [8,5,0], [7,9,2], [7,9,2], [7,9,2], [7,9,2], [7,9,2], [7,9,2], - [8,3,-1], [8,5,0], [7,7,1], [7,7,1], [10,7,1], [10,7,1], [7,7,1], [7,7,1], - [10,5,0], [10,5,0], [5,9,2], [5,9,2], [10,5,0], [10,9,2], [10,9,2], [8,5,0], - [10,7,1], [10,7,1], [6,9,2], [6,9,2], [10,7,1], [10,9,2], [10,9,2], [8,6,1], - [3,6,0], [10,6,1], [6,7,1], [6,7,1], [9,8,0], [9,8,3], [7,11,3], [2,5,0], - [6,8,1], [5,7,0], [7,4,0], [5,9,1], [8,9,1], [7,9,1], [8,7,0], [8,7,0], - [6,7,0], [8,9,1], [7,9,1], [6,9,1], [8,7,0], [6,9,1], [9,8,1], [7,10,2], - [9,8,1], [8,7,0], [9,9,2], [8,9,1], [7,9,1], [12,9,1], [11,9,1], [8,9,1], - [8,8,1], [8,10,2], [9,8,1], [7,9,1], [8,8,0], [8,8,1], [7,8,1], [11,8,1], - [9,7,0], [8,9,2], [8,7,0], [7,7,1], [7,7,1], [7,7,1], [7,7,1], [7,7,1], - [6,7,0], [6,7,0], [5,11,3], [3,11,3], [5,11,3], [3,11,3], [5,11,3], [5,11,3], - [4,11,3], [3,11,3], [2,11,3], [4,11,3], [5,11,3], [6,11,3], [5,11,3], [3,7,1], - [9,11,10], [8,7,0], [8,8,1], [5,11,3], [7,6,0], [7,6,0], [8,9,2], [7,9,2], - [4,11,3], [4,11,3], [4,11,3], [6,9,2], [8,10,2], [8,10,2], [8,9,1], [8,10,2] - ], - cmex10: [ - [5,13,12], [4,13,12], [4,13,12], [3,13,12], [5,13,12], [3,13,12], [5,13,12], [3,13,12], - [5,13,12], [5,13,12], [4,13,12], [4,13,12], [2,8,7], [5,8,7], [6,13,12], [6,13,12], - [6,19,18], [5,19,18], [7,25,24], [6,25,24], [6,25,24], [3,25,24], [6,25,24], [4,25,24], - [6,25,24], [4,25,24], [7,25,24], [7,25,24], [7,25,24], [7,25,24], [10,25,24], [10,25,24], - [8,31,30], [6,31,30], [6,31,30], [4,31,30], [7,31,30], [4,31,30], [7,31,30], [4,31,30], - [7,31,30], [7,31,30], [7,31,30], [7,31,30], [13,31,30], [13,31,30], [8,19,18], [8,19,18], - [9,19,18], [6,19,18], [7,19,18], [4,19,18], [7,19,18], [4,19,18], [4,8,7], [4,8,7], - [8,11,10], [6,11,10], [8,10,9], [6,10,9], [6,20,19], [8,20,19], [6,5,4], [4,8,7], - [9,19,18], [6,19,18], [5,8,7], [6,8,7], [6,19,18], [5,19,18], [8,11,10], [11,15,14], - [7,13,12], [10,24,23], [11,11,10], [15,15,14], [11,11,10], [15,15,14], [11,11,10], [15,15,14], - [10,11,10], [9,11,10], [7,13,12], [8,11,10], [8,11,10], [8,11,10], [8,11,10], [8,11,10], - [14,15,14], [13,15,14], [10,24,23], [11,15,14], [11,15,14], [11,15,14], [11,15,14], [11,15,14], - [9,11,10], [13,15,14], [7,3,-5], [12,3,-5], [16,3,-5], [6,2,-6], [10,2,-6], [15,2,-6], - [5,19,18], [3,19,18], [6,19,18], [4,19,18], [6,19,18], [4,19,18], [6,19,18], [6,19,18], - [11,13,12], [11,19,18], [11,25,24], [11,31,30], [8,19,18], [8,8,7], [11,7,6], [6,8,7], - [6,7,6], [6,7,6], [6,5,3], [6,5,3], [6,4,0], [6,4,0], [8,7,6], [8,7,6] - ], - cmbx10: [ - [7,7,0], [9,7,0], [9,8,1], [8,7,0], [8,7,0], [9,7,0], [8,7,0], [9,7,0], - [8,7,0], [9,7,0], [8,7,0], [8,7,0], [7,7,0], [7,7,0], [10,7,0], [10,7,0], - [3,5,0], [4,7,2], [4,3,-5], [5,3,-5], [5,2,-5], [5,2,-5], [5,2,-5], [6,3,-5], - [5,3,2], [6,8,1], [8,6,1], [9,6,1], [6,8,2], [11,7,0], [12,8,1], [9,9,1], - [4,3,-2], [3,8,0], [5,4,-3], [9,9,2], [6,9,1], [9,9,1], [9,9,1], [3,4,-3], - [4,11,3], [4,11,3], [5,5,-3], [9,9,2], [3,4,2], [4,2,-1], [3,2,0], [6,11,3], - [6,8,1], [5,7,0], [6,7,0], [6,8,1], [6,7,0], [6,8,1], [6,8,1], [6,8,1], - [6,8,1], [6,8,1], [3,5,0], [3,7,2], [3,8,3], [9,3,-1], [5,7,2], [5,7,0], - [9,8,1], [9,7,0], [8,7,0], [8,8,1], [9,7,0], [8,7,0], [7,7,0], [9,8,1], - [9,7,0], [5,7,0], [6,8,1], [9,7,0], [7,7,0], [11,7,0], [9,7,0], [8,8,1], - [8,7,0], [9,9,2], [9,8,1], [6,8,1], [8,7,0], [9,8,1], [9,8,1], [12,8,1], - [9,7,0], [9,7,0], [7,7,0], [3,11,3], [6,4,-3], [2,11,3], [5,2,-5], [3,2,-5], - [3,4,-3], [6,6,1], [6,8,1], [5,6,1], [7,8,1], [5,6,1], [5,7,0], [6,8,3], - [7,7,0], [3,7,0], [4,9,2], [6,7,0], [3,7,0], [10,5,0], [7,5,0], [6,6,1], - [6,7,2], [7,7,2], [5,5,0], [5,6,1], [4,8,1], [7,6,1], [6,6,1], [9,6,1], - [6,5,0], [6,7,2], [5,5,0], [6,1,-2], [12,1,-2], [5,3,-5], [5,2,-5], [5,2,-5] - ], - cmti10: [ - [8,7,0], [8,8,0], [8,9,1], [7,8,0], [8,7,0], [9,7,0], [8,7,0], [9,8,0], - [8,7,0], [9,7,0], [8,8,0], [9,11,3], [7,11,3], [8,11,3], [11,11,3], [11,11,3], - [4,6,1], [5,8,3], [5,2,-5], [6,2,-5], [6,2,-5], [6,2,-5], [6,1,-5], [7,3,-5], - [4,3,2], [7,11,3], [8,6,1], [8,6,1], [6,8,2], [10,7,0], [11,9,1], [9,9,1], - [4,2,-2], [4,8,0], [6,4,-3], [9,9,2], [7,9,1], [9,9,1], [9,9,1], [4,4,-3], - [6,11,3], [4,11,3], [6,5,-3], [8,7,1], [3,4,2], [4,2,-1], [3,2,0], [7,11,3], - [6,8,1], [5,7,0], [6,8,1], [6,8,1], [5,9,2], [6,8,1], [6,8,1], [7,8,1], - [6,8,1], [6,8,1], [4,5,0], [4,7,2], [4,8,3], [8,3,-1], [5,8,3], [6,8,0], - [8,9,1], [7,8,0], [8,7,0], [9,9,1], [8,7,0], [8,7,0], [8,7,0], [9,9,1], - [9,7,0], [6,7,0], [7,8,1], [9,7,0], [7,7,0], [11,7,0], [9,7,0], [8,9,1], - [8,7,0], [8,10,2], [8,8,1], [7,9,1], [9,7,0], [9,8,1], [9,8,1], [12,8,1], - [9,7,0], [9,7,0], [8,7,0], [5,11,3], [7,4,-3], [5,11,3], [6,2,-5], [4,2,-5], - [4,4,-3], [6,6,1], [5,8,1], [5,6,1], [6,8,1], [5,6,1], [6,11,3], [5,8,3], - [6,8,1], [4,8,1], [5,10,3], [6,8,1], [4,8,1], [9,6,1], [6,6,1], [6,6,1], - [6,7,2], [5,7,2], [5,6,1], [5,6,1], [4,8,1], [6,6,1], [5,6,1], [7,6,1], - [6,6,1], [6,8,3], [5,6,1], [6,1,-2], [11,1,-2], [6,2,-5], [6,2,-5], [6,2,-5] - ] -}); - -jsMath.Img.AddFont(85,{ - cmr10: [ - [7,9,0], [10,9,0], [9,10,1], [8,9,0], [8,9,0], [9,9,0], [8,9,0], [9,9,0], - [8,9,0], [9,9,0], [9,9,0], [8,9,0], [7,9,0], [7,9,0], [10,9,0], [10,9,0], - [3,6,0], [4,9,3], [4,3,-6], [5,3,-6], [5,2,-6], [5,3,-6], [6,2,-6], [6,3,-6], - [5,4,3], [6,10,1], [9,7,1], [9,7,1], [6,9,2], [11,9,0], [12,10,1], [9,10,1], - [4,2,-3], [3,9,0], [5,5,-4], [10,12,3], [6,10,1], [10,10,1], [9,10,1], [3,5,-4], - [4,12,3], [4,12,3], [6,6,-3], [9,8,1], [3,5,3], [4,1,-2], [3,2,0], [6,12,3], - [6,9,1], [6,8,0], [6,8,0], [6,9,1], [6,9,0], [6,9,1], [6,9,1], [6,10,1], - [6,9,1], [6,9,1], [3,6,0], [3,9,3], [3,9,3], [9,4,-1], [5,9,3], [5,9,0], - [9,10,1], [9,9,0], [8,9,0], [8,10,1], [9,9,0], [8,9,0], [8,9,0], [9,10,1], - [9,9,0], [4,9,0], [6,10,1], [9,9,0], [7,9,0], [11,9,0], [9,9,0], [9,10,1], - [8,9,0], [9,12,3], [9,10,1], [6,10,1], [9,9,0], [9,10,1], [9,10,1], [13,10,1], - [9,9,0], [9,9,0], [7,9,0], [4,12,3], [6,5,-4], [2,12,3], [5,3,-6], [3,3,-6], - [3,5,-4], [6,7,1], [7,10,1], [5,7,1], [7,10,1], [5,7,1], [5,9,0], [6,9,3], - [7,9,0], [3,9,0], [4,12,3], [7,9,0], [4,9,0], [10,6,0], [7,6,0], [6,7,1], - [7,9,3], [7,9,3], [5,6,0], [5,7,1], [4,9,1], [7,7,1], [7,7,1], [9,7,1], - [7,6,0], [7,9,3], [5,6,0], [6,1,-3], [12,1,-3], [6,3,-6], [5,3,-6], [5,3,-6] - ], - cmmi10: [ - [9,9,0], [10,9,0], [9,10,1], [8,9,0], [10,9,0], [11,9,0], [10,9,0], [9,9,0], - [8,9,0], [9,9,0], [10,9,0], [8,7,1], [8,12,3], [7,9,3], [6,10,1], [5,7,1], - [6,12,3], [6,9,3], [6,10,1], [4,7,1], [7,7,1], [7,10,1], [7,9,3], [7,6,0], - [6,12,3], [7,7,1], [7,9,3], [7,7,1], [7,7,1], [7,7,1], [7,12,3], [8,9,3], - [8,12,3], [8,7,1], [6,7,1], [7,10,1], [10,7,1], [7,9,3], [5,8,2], [8,9,3], - [12,5,-2], [12,5,1], [12,5,-2], [12,5,1], [3,4,-2], [3,4,-2], [6,8,1], [6,8,1], - [6,7,1], [6,6,0], [6,6,0], [6,9,3], [6,9,3], [6,9,3], [6,9,1], [6,9,3], - [6,9,1], [6,9,3], [3,2,0], [3,5,3], [9,8,1], [6,12,3], [9,8,1], [6,6,0], - [7,10,1], [9,9,0], [10,9,0], [10,10,1], [10,9,0], [10,9,0], [10,9,0], [10,10,1], - [11,9,0], [6,9,0], [8,10,1], [11,9,0], [8,9,0], [13,9,0], [11,9,0], [9,10,1], - [10,9,0], [9,12,3], [10,10,1], [8,10,1], [9,9,0], [10,10,1], [10,10,1], [13,10,1], - [11,9,0], [10,9,0], [9,9,0], [4,10,1], [4,12,3], [4,12,3], [12,4,-1], [12,4,-1], - [5,10,1], [6,7,1], [5,10,1], [6,7,1], [7,10,1], [6,7,1], [7,12,3], [6,9,3], - [7,10,1], [4,9,1], [6,11,3], [7,10,1], [4,10,1], [11,7,1], [7,7,1], [6,7,1], - [7,9,3], [6,9,3], [6,7,1], [6,7,1], [4,9,1], [7,7,1], [6,7,1], [9,7,1], - [7,7,1], [6,9,3], [6,7,1], [4,7,1], [6,9,3], [8,9,3], [8,3,-6], [8,2,-6] - ], - cmsy10: [ - [9,2,-2], [3,2,-2], [8,6,0], [6,6,0], [9,8,1], [6,6,0], [9,8,0], [9,8,2], - [9,8,1], [9,8,1], [9,8,1], [9,8,1], [9,8,1], [12,12,3], [6,6,0], [6,6,0], - [9,6,0], [9,6,0], [9,10,2], [9,10,2], [9,10,2], [9,10,2], [9,10,2], [9,10,2], - [9,4,-1], [9,6,0], [9,8,1], [9,8,1], [12,8,1], [12,8,1], [9,8,1], [9,8,1], - [12,6,0], [12,6,0], [6,12,3], [6,12,3], [12,6,0], [12,12,3], [12,12,3], [9,6,0], - [12,8,1], [12,8,1], [7,12,3], [7,12,3], [12,8,1], [12,12,3], [12,12,3], [9,7,1], - [4,7,0], [12,7,1], [7,8,1], [7,8,1], [10,9,0], [10,9,3], [8,12,3], [2,6,0], - [7,10,1], [6,9,0], [8,4,-1], [6,11,1], [9,10,1], [9,10,1], [9,8,0], [9,8,0], - [7,9,0], [10,10,1], [8,10,1], [7,10,1], [10,9,0], [7,10,1], [10,10,1], [8,11,2], - [10,10,1], [9,9,0], [11,11,2], [9,10,1], [8,10,1], [14,10,1], [13,11,1], [10,10,1], - [9,10,1], [10,11,2], [11,10,1], [8,10,1], [10,9,0], [10,10,1], [8,10,1], [13,10,1], - [10,9,0], [9,11,2], [10,9,0], [8,9,1], [8,9,1], [8,9,1], [8,9,1], [8,9,1], - [7,9,0], [7,9,0], [6,12,3], [4,12,3], [6,12,3], [4,12,3], [6,12,3], [6,12,3], - [4,12,3], [4,12,3], [2,12,3], [5,12,3], [6,14,4], [7,14,4], [6,12,3], [3,8,1], - [11,13,12], [9,9,0], [10,10,1], [6,12,3], [8,8,0], [8,8,0], [9,10,2], [9,10,2], - [5,12,3], [5,12,3], [5,12,3], [7,12,3], [9,11,2], [9,11,2], [9,10,1], [9,11,2] - ], - cmex10: [ - [5,15,14], [4,15,14], [5,15,14], [3,15,14], [6,15,14], [4,15,14], [6,15,14], [4,15,14], - [6,15,14], [6,15,14], [5,15,14], [5,15,14], [3,9,8], [5,9,8], [7,15,14], [7,15,14], - [7,23,22], [5,23,22], [9,30,29], [7,30,29], [7,30,29], [4,30,29], [7,30,29], [4,30,29], - [7,30,29], [4,30,29], [8,30,29], [8,30,29], [8,30,29], [8,30,29], [12,30,29], [12,30,29], - [10,37,36], [7,37,36], [7,37,36], [4,37,36], [8,37,36], [5,37,36], [8,37,36], [5,37,36], - [8,37,36], [8,37,36], [9,37,36], [8,37,36], [15,37,36], [15,37,36], [10,23,22], [10,23,22], - [11,23,22], [7,23,22], [8,23,22], [5,23,22], [8,23,22], [5,23,22], [5,9,8], [5,9,8], - [9,12,11], [7,12,11], [9,12,11], [7,12,11], [7,23,22], [9,23,22], [7,5,4], [5,9,8], - [11,23,22], [7,23,22], [5,9,8], [7,9,8], [7,23,22], [6,23,22], [10,13,12], [13,18,17], - [8,15,14], [12,28,27], [13,13,12], [18,18,17], [13,13,12], [18,18,17], [13,13,12], [18,18,17], - [12,13,12], [11,13,12], [8,15,14], [10,13,12], [10,13,12], [10,13,12], [10,13,12], [10,13,12], - [17,18,17], [15,18,17], [12,28,27], [13,18,17], [13,18,17], [13,18,17], [13,18,17], [13,18,17], - [11,13,12], [15,18,17], [8,3,-6], [14,4,-6], [19,4,-6], [7,2,-7], [12,2,-7], [18,2,-7], - [6,23,22], [3,23,22], [7,23,22], [4,23,22], [7,23,22], [4,23,22], [7,23,22], [7,23,22], - [13,15,14], [13,23,22], [13,30,29], [13,37,36], [9,23,22], [9,9,8], [13,8,7], [7,9,8], - [7,9,8], [7,9,8], [7,5,3], [7,5,3], [7,5,0], [7,5,0], [9,9,8], [9,9,8] - ], - cmbx10: [ - [8,9,0], [11,9,0], [10,10,1], [10,9,0], [9,9,0], [11,9,0], [10,9,0], [10,9,0], - [10,9,0], [10,9,0], [10,9,0], [9,9,0], [8,9,0], [8,9,0], [12,9,0], [12,9,0], - [4,6,0], [5,9,3], [5,3,-6], [6,3,-6], [6,2,-6], [6,3,-6], [6,2,-6], [7,3,-6], - [6,4,3], [7,10,1], [10,7,1], [11,7,1], [7,9,2], [13,9,0], [14,10,1], [10,10,1], - [4,2,-3], [4,9,0], [6,5,-4], [11,12,3], [7,10,1], [11,10,1], [11,10,1], [4,5,-4], - [5,12,3], [5,12,3], [6,6,-3], [10,10,2], [3,5,3], [4,2,-2], [3,2,0], [7,12,3], - [7,9,1], [6,8,0], [7,8,0], [7,9,1], [7,8,0], [7,9,1], [7,9,1], [7,10,1], - [7,9,1], [7,9,1], [3,6,0], [3,9,3], [4,9,3], [10,4,-1], [6,9,3], [6,9,0], - [10,10,1], [10,9,0], [10,9,0], [10,10,1], [10,9,0], [9,9,0], [9,9,0], [11,10,1], - [11,9,0], [5,9,0], [7,10,1], [11,9,0], [8,9,0], [13,9,0], [11,9,0], [10,10,1], - [9,9,0], [10,12,3], [11,10,1], [7,10,1], [10,9,0], [11,10,1], [11,10,1], [14,10,1], - [11,9,0], [11,9,0], [8,9,0], [4,12,3], [7,5,-4], [3,12,3], [6,3,-6], [3,3,-6], - [3,5,-4], [7,7,1], [8,10,1], [6,7,1], [8,10,1], [6,7,1], [6,9,0], [7,9,3], - [8,9,0], [4,9,0], [5,12,3], [8,9,0], [4,9,0], [12,6,0], [8,6,0], [7,7,1], - [8,9,3], [8,9,3], [6,6,0], [5,7,1], [5,9,1], [8,7,1], [7,7,1], [10,7,1], - [8,6,0], [7,9,3], [6,6,0], [7,1,-3], [14,1,-3], [6,3,-6], [6,2,-7], [6,3,-6] - ], - cmti10: [ - [9,9,0], [10,9,0], [10,10,1], [8,9,0], [10,9,0], [11,9,0], [10,9,0], [10,9,0], - [9,9,0], [10,9,0], [10,9,0], [11,12,3], [9,12,3], [9,12,3], [12,12,3], [13,12,3], - [4,7,1], [5,9,3], [6,3,-6], [7,3,-6], [7,2,-6], [7,3,-6], [7,2,-6], [9,3,-6], - [5,4,3], [8,12,3], [9,7,1], [9,7,1], [7,9,2], [12,9,0], [13,10,1], [10,10,1], - [5,2,-3], [5,9,0], [7,5,-4], [10,12,3], [9,10,1], [11,10,1], [10,10,1], [5,5,-4], - [7,12,3], [5,12,3], [7,6,-3], [10,8,1], [3,5,3], [5,1,-2], [3,2,0], [8,12,3], - [7,9,1], [6,8,0], [7,9,1], [7,9,1], [6,11,3], [7,9,1], [7,9,1], [8,9,1], - [7,9,1], [7,9,1], [4,6,0], [4,9,3], [4,9,3], [10,4,-1], [6,9,3], [7,9,0], - [10,10,1], [9,9,0], [9,9,0], [10,10,1], [10,9,0], [9,9,0], [9,9,0], [10,10,1], - [11,9,0], [7,9,0], [8,10,1], [11,9,0], [8,9,0], [13,9,0], [11,9,0], [10,10,1], - [9,9,0], [10,12,3], [9,10,1], [8,10,1], [10,9,0], [11,10,1], [11,10,1], [14,10,1], - [10,9,0], [11,9,0], [9,9,0], [6,12,3], [8,5,-4], [6,12,3], [7,3,-6], [5,3,-6], - [5,5,-4], [7,7,1], [6,10,1], [6,7,1], [7,10,1], [6,7,1], [7,12,3], [6,9,3], - [7,10,1], [4,9,1], [6,11,3], [7,10,1], [4,10,1], [11,7,1], [8,7,1], [7,7,1], - [7,9,3], [6,9,3], [6,7,1], [6,7,1], [5,9,1], [7,7,1], [6,7,1], [9,7,1], - [7,7,1], [7,9,3], [6,7,1], [7,1,-3], [13,1,-3], [7,3,-6], [7,3,-6], [7,3,-6] - ] -}); - -jsMath.Img.AddFont(100,{ - cmr10: [ - [9,10,0], [11,11,0], [11,11,1], [10,11,0], [9,10,0], [11,10,0], [10,10,0], [11,10,0], - [10,10,0], [11,10,0], [10,10,0], [9,10,0], [8,10,0], [8,10,0], [12,10,0], [12,10,0], - [4,7,0], [4,10,3], [5,3,-7], [6,3,-7], [6,2,-7], [6,3,-7], [7,2,-7], [7,4,-7], - [6,4,3], [7,11,1], [10,8,1], [11,8,1], [7,10,2], [13,10,0], [14,11,1], [11,12,1], - [4,3,-3], [3,11,0], [5,5,-5], [11,13,3], [7,12,1], [11,12,1], [11,12,1], [3,5,-5], - [5,15,4], [5,15,4], [7,7,-4], [11,11,2], [3,5,3], [4,2,-2], [3,2,0], [7,15,4], - [7,11,1], [6,10,0], [7,10,0], [7,11,1], [7,10,0], [7,11,1], [7,11,1], [7,11,1], - [7,11,1], [7,11,1], [3,7,0], [3,10,3], [3,11,4], [11,5,-1], [6,10,3], [6,10,0], - [11,11,1], [11,11,0], [10,10,0], [10,11,1], [10,10,0], [10,10,0], [9,10,0], [11,11,1], - [11,10,0], [5,10,0], [7,11,1], [11,10,0], [9,10,0], [13,10,0], [11,10,0], [11,11,1], - [9,10,0], [11,13,3], [11,11,1], [7,11,1], [10,10,0], [11,11,1], [11,11,1], [15,11,1], - [11,10,0], [11,10,0], [8,10,0], [4,15,4], [7,5,-5], [3,15,4], [6,3,-7], [3,3,-7], - [3,5,-5], [7,8,1], [8,11,1], [6,8,1], [8,11,1], [6,8,1], [5,10,0], [7,10,3], - [8,10,0], [4,10,0], [4,13,3], [8,10,0], [4,10,0], [12,7,0], [8,7,0], [7,8,1], - [8,10,3], [8,10,3], [6,7,0], [6,8,1], [5,10,1], [8,8,1], [8,8,1], [10,8,1], - [8,7,0], [8,10,3], [6,7,0], [7,1,-3], [14,1,-3], [6,3,-7], [6,2,-8], [6,3,-7] - ], - cmmi10: [ - [11,10,0], [12,11,0], [11,11,1], [10,11,0], [11,10,0], [13,10,0], [12,10,0], [10,10,0], - [9,10,0], [10,10,0], [11,10,0], [9,8,1], [9,13,3], [8,11,4], [7,11,1], [6,8,1], - [7,13,3], [7,11,4], [7,11,1], [5,8,1], [8,8,1], [8,11,1], [9,11,4], [8,7,0], - [7,13,3], [8,8,1], [8,11,4], [8,8,1], [8,8,1], [8,8,1], [9,13,3], [9,10,3], - [9,13,3], [9,8,1], [6,8,1], [8,11,1], [12,8,1], [8,10,3], [6,9,2], [9,11,4], - [14,5,-3], [14,5,1], [14,5,-3], [14,5,1], [4,4,-3], [4,4,-3], [7,9,1], [7,9,1], - [7,8,1], [6,7,0], [7,7,0], [7,11,4], [7,10,3], [7,11,4], [7,11,1], [7,11,4], - [7,11,1], [7,11,4], [3,2,0], [3,5,3], [10,9,1], [7,15,4], [10,9,1], [7,7,0], - [8,12,1], [11,11,0], [11,10,0], [11,11,1], [12,10,0], [11,10,0], [11,10,0], [11,11,1], - [13,10,0], [7,10,0], [9,11,1], [13,10,0], [9,10,0], [15,10,0], [13,10,0], [11,11,1], - [11,10,0], [11,13,3], [11,11,1], [10,11,1], [10,10,0], [11,11,1], [11,11,1], [15,11,1], - [12,10,0], [11,10,0], [11,10,0], [5,12,1], [5,15,4], [5,15,4], [14,5,-1], [14,5,-1], - [6,11,1], [7,8,1], [6,11,1], [7,8,1], [8,11,1], [7,8,1], [8,13,3], [7,10,3], - [8,11,1], [5,11,1], [7,13,3], [8,11,1], [4,11,1], [12,8,1], [8,8,1], [7,8,1], - [8,10,3], [7,10,3], [7,8,1], [6,8,1], [5,10,1], [8,8,1], [7,8,1], [10,8,1], - [8,8,1], [7,10,3], [7,8,1], [5,8,1], [7,10,3], [9,11,4], [9,3,-7], [10,3,-7] - ], - cmsy10: [ - [10,1,-3], [3,3,-2], [9,7,0], [7,7,0], [11,9,1], [7,7,0], [11,10,0], [11,10,3], - [11,11,2], [11,11,2], [11,11,2], [11,11,2], [11,11,2], [14,15,4], [7,7,0], [7,7,0], - [11,7,0], [11,7,0], [10,11,2], [10,11,2], [10,11,2], [10,11,2], [10,11,2], [10,11,2], - [11,5,-1], [11,7,0], [10,9,1], [10,9,1], [14,9,1], [14,9,1], [10,9,1], [10,9,1], - [14,5,-1], [14,5,-1], [6,13,3], [6,13,3], [14,5,-1], [14,13,3], [14,13,3], [11,7,0], - [14,9,1], [14,9,1], [9,13,3], [9,13,3], [14,9,1], [14,13,3], [14,13,3], [11,8,1], - [4,8,0], [14,8,1], [9,9,1], [9,9,1], [12,11,0], [12,11,4], [9,15,4], [2,7,0], - [8,11,1], [7,10,0], [9,4,-1], [7,13,2], [10,12,1], [10,11,1], [11,10,0], [11,10,0], - [8,10,0], [12,12,1], [10,11,1], [8,11,1], [11,10,0], [8,11,1], [12,11,1], [9,12,2], - [12,11,1], [10,10,0], [12,12,2], [11,11,1], [10,11,1], [16,11,1], [15,12,1], [11,11,1], - [11,11,1], [12,12,2], [12,11,1], [9,11,1], [12,11,0], [11,11,1], [10,11,1], [15,11,1], - [12,10,0], [11,12,2], [11,10,0], [9,10,1], [9,10,1], [9,10,1], [9,10,1], [9,10,1], - [8,10,0], [8,10,0], [6,15,4], [4,15,4], [6,15,4], [4,15,4], [6,15,4], [6,15,4], - [5,15,4], [4,15,4], [3,15,4], [6,15,4], [6,15,4], [9,15,4], [7,15,4], [4,11,2], - [12,15,14], [10,10,0], [11,11,1], [7,15,4], [9,9,0], [9,9,0], [10,11,2], [10,11,2], - [6,13,3], [6,14,4], [6,13,3], [9,13,3], [11,13,2], [11,14,3], [11,12,1], [11,13,2] - ], - cmex10: [ - [6,18,17], [5,18,17], [6,18,17], [3,18,17], [7,18,17], [4,18,17], [7,18,17], [4,18,17], - [7,18,17], [7,18,17], [6,18,17], [6,18,17], [3,10,9], [6,10,9], [8,18,17], [8,18,17], - [8,26,25], [6,26,25], [10,35,34], [8,35,34], [8,35,34], [4,35,34], [8,35,34], [5,35,34], - [8,35,34], [5,35,34], [9,35,34], [9,35,34], [10,35,34], [9,35,34], [14,35,34], [14,35,34], - [11,43,42], [8,43,42], [8,43,42], [5,43,42], [9,43,42], [6,43,42], [9,43,42], [6,43,42], - [10,43,42], [10,43,42], [10,43,42], [10,43,42], [18,43,42], [18,43,42], [11,26,25], [11,26,25], - [12,26,25], [9,26,25], [10,26,25], [5,26,25], [10,26,25], [5,26,25], [6,10,9], [5,10,9], - [11,14,13], [8,14,13], [11,14,13], [8,14,13], [8,27,26], [11,27,26], [8,6,5], [5,10,9], - [12,26,25], [9,26,25], [6,10,9], [9,10,9], [8,26,25], [7,26,25], [11,15,14], [15,21,20], - [9,17,16], [14,33,32], [15,15,14], [21,21,20], [15,15,14], [21,21,20], [15,15,14], [21,21,20], - [14,15,14], [13,15,14], [9,17,16], [11,15,14], [11,15,14], [11,15,14], [11,15,14], [11,15,14], - [20,21,20], [18,21,20], [14,33,32], [15,21,20], [15,21,20], [15,21,20], [15,21,20], [15,21,20], - [13,15,14], [18,21,20], [9,4,-7], [16,3,-8], [22,3,-8], [8,3,-8], [14,3,-8], [21,3,-8], - [7,26,25], [4,26,25], [8,26,25], [5,26,25], [8,26,25], [5,26,25], [8,26,25], [8,26,25], - [15,18,17], [15,26,25], [15,35,34], [15,43,42], [11,27,26], [11,10,9], [16,10,9], [8,10,9], - [8,10,9], [8,10,9], [8,5,3], [8,5,3], [8,5,0], [8,5,0], [11,10,9], [11,10,9] - ], - cmbx10: [ - [9,10,0], [13,10,0], [12,11,1], [11,10,0], [11,10,0], [13,10,0], [11,10,0], [12,10,0], - [11,10,0], [12,10,0], [11,10,0], [11,10,0], [9,10,0], [9,10,0], [13,10,0], [13,10,0], - [4,7,0], [5,10,3], [5,3,-7], [7,3,-7], [7,3,-7], [7,3,-7], [7,2,-7], [8,3,-7], - [7,4,3], [8,11,1], [12,8,1], [13,8,1], [8,10,2], [15,10,0], [16,11,1], [12,12,1], - [5,3,-3], [4,10,0], [7,6,-4], [13,13,3], [8,12,1], [13,12,1], [12,11,1], [4,6,-4], - [6,15,4], [5,15,4], [7,7,-4], [12,11,2], [4,6,3], [5,2,-2], [4,3,0], [8,15,4], - [8,11,1], [7,10,0], [8,10,0], [8,11,1], [8,10,0], [8,11,1], [8,11,1], [8,11,1], - [8,11,1], [8,11,1], [4,7,0], [4,10,3], [4,10,3], [12,5,-1], [7,10,3], [7,10,0], - [12,11,1], [12,10,0], [11,10,0], [11,11,1], [12,10,0], [11,10,0], [10,10,0], [12,11,1], - [13,10,0], [6,10,0], [8,11,1], [12,10,0], [9,10,0], [15,10,0], [13,10,0], [12,11,1], - [11,10,0], [12,13,3], [13,11,1], [9,11,1], [11,10,0], [12,11,1], [12,11,1], [17,11,1], - [12,10,0], [12,10,0], [10,10,0], [5,15,4], [8,6,-4], [3,15,4], [7,3,-7], [4,3,-7], - [4,6,-4], [8,8,1], [9,11,1], [7,8,1], [9,11,1], [7,8,1], [7,10,0], [8,10,3], - [9,10,0], [4,10,0], [5,13,3], [9,10,0], [5,10,0], [14,7,0], [9,7,0], [8,8,1], - [9,10,3], [9,10,3], [7,7,0], [6,8,1], [6,10,1], [9,8,1], [9,8,1], [12,8,1], - [9,7,0], [9,10,3], [7,7,0], [9,2,-3], [17,2,-3], [7,3,-7], [7,2,-8], [7,3,-7] - ], - cmti10: [ - [10,10,0], [11,11,0], [12,11,1], [9,11,0], [11,10,0], [12,10,0], [11,10,0], [12,10,0], - [11,10,0], [12,10,0], [11,10,0], [12,13,3], [10,13,3], [10,13,3], [14,13,3], [15,13,3], - [5,8,1], [6,10,3], [7,3,-7], [8,3,-7], [8,2,-7], [8,3,-7], [8,2,-7], [10,4,-7], - [5,4,3], [10,13,3], [11,8,1], [11,8,1], [8,10,2], [14,10,0], [15,11,1], [12,12,1], - [5,3,-3], [6,11,0], [8,5,-5], [12,13,3], [10,11,1], [12,12,1], [12,12,1], [6,5,-5], - [8,15,4], [6,15,4], [9,7,-4], [11,9,1], [4,5,3], [5,2,-2], [4,2,0], [9,15,4], - [8,11,1], [7,10,0], [8,11,1], [8,11,1], [7,13,3], [8,11,1], [8,11,1], [9,11,1], - [8,11,1], [8,11,1], [5,7,0], [5,10,3], [5,11,4], [11,5,-1], [7,11,4], [8,11,0], - [12,11,1], [10,11,0], [11,10,0], [12,11,1], [11,10,0], [11,10,0], [11,10,0], [12,11,1], - [12,10,0], [8,10,0], [9,11,1], [13,10,0], [9,10,0], [15,10,0], [12,10,0], [12,11,1], - [11,10,0], [12,13,3], [11,11,1], [9,11,1], [12,10,0], [12,11,1], [13,11,1], [16,11,1], - [12,10,0], [13,10,0], [10,10,0], [7,15,4], [9,5,-5], [7,15,4], [8,3,-7], [6,3,-7], - [6,5,-5], [8,8,1], [7,11,1], [7,8,1], [8,11,1], [7,8,1], [8,13,3], [7,10,3], - [8,11,1], [5,11,1], [6,13,3], [8,11,1], [5,11,1], [12,8,1], [9,8,1], [8,8,1], - [8,10,3], [7,10,3], [7,8,1], [6,8,1], [6,10,1], [8,8,1], [7,8,1], [10,8,1], - [8,8,1], [8,10,3], [7,8,1], [8,1,-3], [15,1,-3], [9,3,-7], [9,3,-7], [8,3,-7] - ] -}); - -jsMath.Img.AddFont(120,{ - cmr10: [ - [10,12,0], [14,13,0], [13,13,1], [12,13,0], [11,12,0], [13,12,0], [12,12,0], [13,12,0], - [12,12,0], [13,12,0], [12,12,0], [11,12,0], [9,12,0], [9,12,0], [14,12,0], [14,12,0], - [5,8,0], [5,12,4], [5,4,-8], [7,4,-8], [7,3,-8], [7,4,-8], [8,2,-9], [8,4,-9], - [7,5,4], [8,13,1], [12,9,1], [13,9,1], [8,12,2], [15,12,0], [17,13,1], [13,14,1], - [5,3,-4], [4,13,0], [6,6,-6], [14,16,4], [8,14,1], [14,14,1], [13,14,1], [4,6,-6], - [6,18,5], [5,18,5], [8,8,-5], [13,12,2], [4,6,4], [5,2,-3], [4,2,0], [8,18,5], - [8,13,1], [8,12,0], [8,12,0], [8,13,1], [8,12,0], [8,13,1], [8,13,1], [9,13,1], - [8,13,1], [8,13,1], [4,8,0], [4,12,4], [4,13,4], [13,5,-2], [8,13,4], [8,12,0], - [13,13,1], [13,13,0], [12,12,0], [12,13,1], [13,12,0], [12,12,0], [11,12,0], [13,13,1], - [13,12,0], [6,12,0], [8,13,1], [13,12,0], [10,12,0], [15,12,0], [13,12,0], [13,13,1], - [11,12,0], [13,16,4], [13,13,1], [9,13,1], [12,12,0], [13,13,1], [13,13,1], [18,13,1], - [13,12,0], [13,12,0], [10,12,0], [5,18,5], [8,6,-6], [3,18,5], [7,3,-9], [4,3,-9], - [4,6,-6], [9,9,1], [9,13,1], [8,9,1], [9,13,1], [8,9,1], [7,12,0], [9,12,4], - [10,12,0], [5,12,0], [5,16,4], [9,12,0], [5,12,0], [14,8,0], [10,8,0], [8,9,1], - [9,12,4], [9,12,4], [7,8,0], [7,9,1], [6,12,1], [10,9,1], [9,9,1], [12,9,1], - [9,8,0], [9,12,4], [7,8,0], [9,1,-4], [17,1,-4], [8,4,-8], [8,3,-9], [7,3,-9] - ], - cmmi10: [ - [13,12,0], [14,13,0], [13,13,1], [12,13,0], [14,12,0], [15,12,0], [14,12,0], [12,12,0], - [11,12,0], [12,12,0], [14,12,0], [11,9,1], [11,16,4], [10,12,4], [8,14,1], [7,9,1], - [9,16,4], [9,12,4], [8,13,1], [6,9,1], [10,9,1], [10,13,1], [10,12,4], [9,8,0], - [8,16,4], [10,9,1], [9,12,4], [10,9,1], [9,9,1], [9,9,1], [10,16,4], [11,12,4], - [11,16,4], [11,9,1], [8,9,1], [10,13,1], [14,9,1], [9,12,4], [7,10,2], [11,12,4], - [17,6,-3], [17,6,1], [17,6,-3], [17,6,1], [4,5,-3], [4,5,-3], [9,10,1], [9,10,1], - [8,9,1], [8,8,0], [8,8,0], [8,12,4], [8,12,4], [8,12,4], [8,13,1], [9,12,4], - [8,13,1], [8,12,4], [4,2,0], [4,6,4], [12,11,1], [8,18,5], [12,11,1], [9,9,0], - [10,14,1], [13,13,0], [13,12,0], [13,13,1], [14,12,0], [14,12,0], [13,12,0], [13,13,1], - [15,12,0], [9,12,0], [11,13,1], [16,12,0], [11,12,0], [18,12,0], [15,12,0], [13,13,1], - [13,12,0], [13,16,4], [13,13,1], [11,13,1], [12,12,0], [13,13,1], [14,13,1], [18,13,1], - [15,12,0], [13,12,0], [13,12,0], [6,14,1], [6,17,4], [6,17,4], [17,5,-2], [17,5,-2], - [7,13,1], [9,9,1], [8,13,1], [8,9,1], [9,13,1], [8,9,1], [10,16,4], [9,12,4], - [10,13,1], [5,13,1], [8,16,4], [9,13,1], [5,13,1], [15,9,1], [10,9,1], [8,9,1], - [10,12,4], [8,12,4], [8,9,1], [8,9,1], [6,12,1], [10,9,1], [8,9,1], [12,9,1], - [9,9,1], [9,12,4], [8,9,1], [5,9,1], [8,12,4], [11,12,4], [11,5,-8], [12,3,-9] - ], - cmsy10: [ - [12,2,-3], [4,3,-3], [11,9,0], [8,8,0], [13,11,1], [9,9,0], [13,12,0], [13,12,3], - [13,12,2], [13,12,2], [13,12,2], [13,12,2], [13,12,2], [17,17,4], [8,8,0], [8,8,0], - [13,9,0], [13,8,0], [12,14,3], [12,14,3], [12,14,3], [12,14,3], [12,14,3], [12,14,3], - [13,5,-2], [13,9,0], [12,11,1], [12,11,1], [17,12,2], [17,12,2], [12,11,1], [12,11,1], - [17,7,-1], [17,7,-1], [8,16,4], [8,16,4], [17,7,-1], [17,16,4], [17,16,4], [13,8,0], - [17,10,1], [17,10,1], [10,16,4], [10,16,4], [17,10,1], [17,16,4], [17,16,4], [13,9,1], - [5,10,0], [17,9,1], [10,11,1], [10,11,1], [15,13,0], [15,13,4], [11,17,4], [3,7,-1], - [10,13,1], [9,12,0], [11,6,-1], [8,16,2], [13,14,1], [12,13,1], [13,12,0], [13,12,0], - [10,12,0], [14,14,1], [12,13,1], [10,13,1], [14,12,0], [10,13,1], [15,13,1], [11,15,3], - [14,13,1], [12,12,0], [15,15,3], [13,13,1], [12,13,1], [19,13,1], [18,15,1], [14,13,1], - [13,13,1], [14,15,3], [15,13,1], [11,13,1], [14,13,0], [13,13,1], [12,13,1], [18,13,1], - [14,12,0], [13,15,3], [14,12,0], [11,12,1], [11,12,1], [11,12,1], [11,12,1], [11,12,1], - [10,12,0], [10,12,0], [8,18,5], [5,18,5], [8,18,5], [5,18,5], [8,18,5], [8,18,5], - [6,18,5], [5,18,5], [3,18,5], [7,18,5], [8,19,5], [10,19,5], [8,18,5], [4,12,2], - [15,18,17], [13,12,0], [14,13,1], [8,17,4], [11,11,0], [11,11,0], [13,14,3], [12,14,3], - [7,16,4], [7,16,4], [7,16,4], [10,16,4], [13,16,3], [13,16,3], [13,14,1], [13,16,3] - ], - cmex10: [ - [8,21,20], [6,21,20], [7,21,20], [4,21,20], [8,21,20], [5,21,20], [8,21,20], [5,21,20], - [8,21,20], [8,21,20], [7,21,20], [7,21,20], [4,12,11], [7,12,11], [9,21,20], [9,21,20], - [10,31,30], [8,31,30], [12,42,41], [9,42,41], [9,42,41], [5,42,41], [10,42,41], [6,42,41], - [10,42,41], [6,42,41], [11,42,41], [11,42,41], [12,42,41], [11,42,41], [17,42,41], [17,42,41], - [13,52,51], [10,52,51], [10,52,51], [6,52,51], [11,52,51], [7,52,51], [11,52,51], [7,52,51], - [12,52,51], [12,52,51], [12,52,51], [12,52,51], [21,52,51], [21,52,51], [13,31,30], [13,31,30], - [15,32,31], [10,32,31], [12,31,30], [6,31,30], [12,31,30], [6,31,30], [7,12,11], [6,12,11], - [13,17,16], [9,17,16], [13,17,16], [9,17,16], [9,32,31], [13,32,31], [9,7,6], [7,12,11], - [15,31,30], [10,31,30], [7,12,11], [10,12,11], [9,31,30], [9,31,30], [14,18,17], [18,25,24], - [11,20,19], [17,39,38], [18,18,17], [25,25,24], [18,18,17], [25,25,24], [18,18,17], [25,25,24], - [17,18,17], [16,18,17], [11,20,19], [14,18,17], [14,18,17], [14,18,17], [14,18,17], [14,18,17], - [24,25,24], [21,25,24], [17,39,38], [18,25,24], [18,25,24], [18,25,24], [18,25,24], [18,25,24], - [16,18,17], [21,25,24], [11,4,-9], [19,5,-9], [26,5,-9], [10,3,-10], [17,3,-10], [25,3,-10], - [8,31,30], [5,31,30], [9,31,30], [6,31,30], [9,31,30], [6,31,30], [10,31,30], [10,31,30], - [18,21,20], [18,31,30], [18,42,41], [18,52,51], [13,32,31], [13,12,11], [19,11,10], [9,12,11], - [10,12,11], [10,12,11], [9,7,4], [10,7,4], [9,6,0], [10,6,0], [13,12,11], [13,12,11] - ], - cmbx10: [ - [11,12,0], [16,12,0], [15,13,1], [13,12,0], [13,12,0], [15,12,0], [14,12,0], [15,12,0], - [14,12,0], [15,12,0], [14,12,0], [13,12,0], [11,12,0], [11,12,0], [16,12,0], [16,12,0], - [5,8,0], [6,12,4], [6,4,-8], [8,4,-8], [8,4,-8], [8,4,-8], [9,2,-9], [10,3,-9], - [8,5,4], [10,13,1], [14,9,1], [15,9,1], [10,12,2], [18,12,0], [20,13,1], [15,15,2], - [6,3,-4], [5,12,0], [8,7,-5], [16,16,4], [9,14,1], [16,14,1], [15,13,1], [5,7,-5], - [7,18,5], [6,18,5], [9,8,-5], [15,14,3], [5,7,4], [6,3,-2], [5,3,0], [9,18,5], - [9,13,1], [9,12,0], [9,12,0], [9,13,1], [10,12,0], [9,13,1], [9,13,1], [10,13,1], - [9,13,1], [9,13,1], [5,8,0], [5,12,4], [5,13,4], [15,6,-1], [9,13,4], [9,12,0], - [15,13,1], [15,12,0], [13,12,0], [14,13,1], [14,12,0], [13,12,0], [12,12,0], [15,13,1], - [15,12,0], [7,12,0], [9,13,1], [15,12,0], [11,12,0], [18,12,0], [15,12,0], [14,13,1], - [13,12,0], [14,16,4], [15,13,1], [10,13,1], [13,12,0], [15,13,1], [15,13,1], [20,13,1], - [15,12,0], [15,12,0], [11,12,0], [5,18,5], [10,7,-5], [4,18,5], [8,3,-9], [5,3,-9], - [5,7,-5], [10,9,1], [11,13,1], [9,9,1], [11,13,1], [9,9,1], [8,12,0], [10,12,4], - [11,12,0], [5,12,0], [6,16,4], [10,12,0], [5,12,0], [16,8,0], [11,8,0], [10,9,1], - [11,12,4], [11,12,4], [8,8,0], [8,9,1], [7,12,1], [11,9,1], [10,9,1], [14,9,1], - [10,8,0], [10,12,4], [8,8,0], [10,1,-4], [20,1,-4], [9,5,-8], [9,3,-9], [8,3,-9] - ], - cmti10: [ - [13,12,0], [13,13,0], [14,13,1], [11,13,0], [13,12,0], [15,12,0], [14,12,0], [15,12,0], - [13,12,0], [15,12,0], [13,12,0], [14,16,4], [12,16,4], [12,16,4], [17,16,4], [18,16,4], - [6,9,1], [7,12,4], [8,4,-8], [10,4,-8], [10,3,-8], [10,4,-8], [10,2,-9], [12,4,-9], - [6,5,4], [11,16,4], [13,9,1], [13,9,1], [10,12,2], [17,12,0], [18,13,1], [14,15,2], - [6,3,-4], [7,13,0], [9,6,-6], [15,16,4], [12,13,1], [15,14,1], [14,14,1], [7,6,-6], - [9,18,5], [7,18,5], [10,8,-5], [13,11,1], [4,6,4], [6,2,-3], [4,2,0], [11,18,5], - [10,13,1], [8,12,0], [10,13,1], [10,13,1], [9,16,4], [10,13,1], [10,13,1], [11,13,1], - [10,13,1], [10,13,1], [6,8,0], [6,12,4], [6,13,4], [14,5,-2], [8,13,4], [10,13,0], - [14,13,1], [12,13,0], [13,12,0], [14,13,1], [14,12,0], [13,12,0], [13,12,0], [14,13,1], - [15,12,0], [9,12,0], [11,13,1], [15,12,0], [11,12,0], [18,12,0], [15,12,0], [14,13,1], - [13,12,0], [14,16,4], [13,13,1], [11,13,1], [14,12,0], [15,13,1], [15,13,1], [20,13,1], - [15,12,0], [15,12,0], [12,12,0], [8,18,5], [11,6,-6], [8,18,5], [9,3,-9], [7,3,-9], - [7,6,-6], [10,9,1], [8,13,1], [8,9,1], [10,13,1], [8,9,1], [9,16,4], [9,12,4], - [10,13,1], [6,13,1], [8,16,4], [9,13,1], [6,13,1], [15,9,1], [10,9,1], [9,9,1], - [9,12,4], [9,12,4], [9,9,1], [8,9,1], [7,12,1], [10,9,1], [9,9,1], [12,9,1], - [9,9,1], [9,12,4], [8,9,1], [10,1,-4], [18,1,-4], [10,4,-8], [10,3,-9], [10,3,-9] - ] -}); - -jsMath.Img.AddFont(144,{ - cmr10: [ - [12,14,0], [16,15,0], [15,16,1], [14,15,0], [13,14,0], [15,14,0], [14,14,0], [15,15,0], - [14,14,0], [15,14,0], [14,15,0], [13,15,0], [11,15,0], [11,15,0], [17,15,0], [17,15,0], - [5,9,0], [6,14,5], [6,4,-10], [8,4,-10], [8,3,-10], [8,4,-10], [9,1,-11], [10,5,-10], - [8,6,5], [10,16,1], [14,10,1], [15,10,1], [10,14,3], [18,14,0], [20,16,1], [15,17,2], - [6,3,-5], [4,15,0], [7,7,-7], [16,18,4], [9,17,2], [16,17,2], [15,16,1], [5,7,-7], - [7,20,5], [6,20,5], [9,9,-6], [15,14,2], [5,7,4], [6,2,-3], [4,3,0], [9,20,5], - [10,15,1], [9,14,0], [9,14,0], [10,15,1], [10,14,0], [9,15,1], [10,15,1], [10,15,1], - [10,15,1], [10,15,1], [4,9,0], [4,13,4], [4,15,5], [15,6,-2], [9,15,5], [9,15,0], - [15,16,1], [15,15,0], [14,14,0], [14,16,1], [15,14,0], [14,14,0], [13,14,0], [15,16,1], - [15,14,0], [7,14,0], [10,15,1], [15,14,0], [12,14,0], [18,14,0], [15,14,0], [15,16,1], - [13,14,0], [15,19,4], [15,15,1], [10,16,1], [14,14,0], [15,15,1], [15,15,1], [21,15,1], - [15,14,0], [15,14,0], [12,14,0], [6,20,5], [10,7,-7], [4,20,5], [8,4,-10], [4,3,-11], - [4,7,-7], [10,10,1], [11,15,1], [9,10,1], [11,15,1], [9,10,1], [8,15,0], [10,15,5], - [11,14,0], [5,14,0], [6,19,5], [11,14,0], [6,14,0], [17,9,0], [11,9,0], [10,10,1], - [11,13,4], [11,13,4], [8,9,0], [8,10,1], [7,14,1], [11,10,1], [11,10,1], [15,10,1], - [11,9,0], [11,14,5], [9,9,0], [10,1,-5], [20,1,-5], [9,4,-10], [9,3,-11], [8,3,-11] - ], - cmmi10: [ - [15,14,0], [16,15,0], [15,16,1], [14,15,0], [16,14,0], [18,14,0], [17,14,0], [15,15,0], - [13,14,0], [14,14,0], [16,15,0], [13,10,1], [12,19,4], [11,14,5], [10,16,1], [8,10,1], - [10,19,5], [10,14,5], [10,16,1], [7,10,1], [11,10,1], [11,15,1], [12,14,5], [11,9,0], - [9,19,5], [12,10,1], [11,14,5], [12,10,1], [11,10,1], [11,10,1], [12,19,5], [12,14,5], - [13,19,5], [13,10,1], [9,11,1], [12,16,1], [17,10,1], [11,13,4], [9,12,3], [13,14,5], - [19,7,-4], [19,7,1], [19,7,-4], [19,7,1], [5,6,-4], [5,6,-4], [10,12,1], [10,12,1], - [10,11,1], [9,10,0], [9,10,0], [10,15,5], [10,14,4], [9,15,5], [10,15,1], [10,15,5], - [10,15,1], [10,15,5], [4,3,0], [5,7,4], [14,12,1], [9,20,5], [14,12,1], [10,10,0], - [12,16,1], [15,15,0], [16,14,0], [16,16,1], [17,14,0], [16,14,0], [16,14,0], [16,16,1], - [18,14,0], [10,14,0], [13,15,1], [18,14,0], [13,14,0], [21,14,0], [18,14,0], [15,16,1], - [16,14,0], [15,19,4], [16,15,1], [13,16,1], [15,14,0], [16,15,1], [16,15,1], [21,15,1], - [18,14,0], [16,14,0], [15,14,0], [7,16,1], [7,20,5], [7,20,5], [19,6,-2], [19,6,-2], - [8,16,1], [10,10,1], [9,15,1], [9,10,1], [11,15,1], [9,10,1], [12,20,5], [10,14,5], - [11,15,1], [6,15,1], [9,19,5], [11,15,1], [6,15,1], [17,10,1], [12,10,1], [10,10,1], - [11,13,4], [10,13,4], [9,10,1], [9,10,1], [7,14,1], [11,10,1], [10,10,1], [14,10,1], - [11,10,1], [10,14,5], [10,10,1], [6,10,1], [9,14,5], [13,15,5], [13,5,-10], [13,4,-10] - ], - cmsy10: [ - [14,2,-4], [4,4,-3], [13,10,0], [9,10,0], [15,12,1], [10,10,0], [15,14,0], [15,14,4], - [15,14,2], [15,14,2], [15,14,2], [15,14,2], [15,14,2], [19,20,5], [9,8,-1], [9,8,-1], - [15,10,0], [15,10,0], [14,16,3], [14,16,3], [14,16,3], [14,16,3], [14,16,3], [14,16,3], - [15,6,-2], [15,9,-1], [14,12,1], [14,12,1], [19,14,2], [19,14,2], [14,12,1], [14,12,1], - [19,8,-1], [19,8,-1], [9,18,4], [9,18,4], [19,8,-1], [19,18,4], [19,18,4], [15,10,0], - [19,12,1], [19,12,1], [12,18,4], [12,18,4], [20,12,1], [19,18,4], [19,18,4], [15,10,1], - [6,12,0], [19,10,1], [12,12,1], [12,12,1], [17,15,0], [17,15,5], [13,20,5], [3,8,-1], - [12,15,1], [10,14,0], [13,7,-1], [10,18,2], [15,16,1], [14,16,1], [15,14,0], [15,14,0], - [12,14,0], [16,16,1], [14,16,1], [11,16,1], [16,14,0], [12,16,1], [17,15,1], [13,18,3], - [17,15,1], [14,14,0], [17,17,3], [15,16,1], [14,16,1], [23,16,1], [21,17,1], [16,16,1], - [15,15,1], [16,18,3], [17,15,1], [13,16,1], [16,15,0], [15,15,1], [14,15,1], [21,15,1], - [17,14,0], [15,17,3], [16,14,0], [13,13,1], [13,13,1], [13,13,1], [13,13,1], [13,13,1], - [12,14,0], [12,14,0], [9,20,5], [6,20,5], [9,20,5], [6,20,5], [9,20,5], [9,20,5], - [7,20,5], [6,20,5], [4,20,5], [8,20,5], [9,22,6], [12,22,6], [9,20,5], [5,14,2], - [18,21,20], [15,14,0], [16,15,1], [10,20,5], [13,12,0], [13,12,0], [15,16,3], [14,16,3], - [8,20,5], [8,20,5], [8,20,5], [12,18,4], [15,18,3], [15,19,4], [15,16,1], [15,18,3] - ], - cmex10: [ - [9,25,24], [7,25,24], [8,25,24], [5,25,24], [9,25,24], [6,25,24], [9,25,24], [6,25,24], - [10,25,24], [10,25,24], [8,25,24], [8,25,24], [4,14,13], [9,14,13], [11,25,24], [11,25,24], - [12,37,36], [9,37,36], [14,49,48], [11,49,48], [11,49,48], [6,49,48], [12,49,48], [7,49,48], - [12,49,48], [7,49,48], [13,49,48], [13,49,48], [14,49,48], [13,49,48], [20,49,48], [20,49,48], - [16,61,60], [12,61,60], [12,61,60], [7,61,60], [13,61,60], [8,61,60], [13,61,60], [8,61,60], - [14,61,60], [14,61,60], [14,61,60], [14,61,60], [25,61,60], [25,61,60], [16,37,36], [16,37,36], - [17,37,36], [12,37,36], [14,37,36], [7,37,36], [14,37,36], [7,37,36], [8,14,13], [7,14,13], - [15,20,19], [11,20,19], [15,19,18], [11,19,18], [11,38,37], [15,38,37], [11,8,7], [8,14,13], - [17,37,36], [12,37,36], [9,14,13], [12,14,13], [11,37,36], [10,37,36], [16,21,20], [22,29,28], - [13,24,23], [19,46,45], [22,21,20], [30,29,28], [22,21,20], [30,29,28], [22,21,20], [30,29,28], - [20,21,20], [18,21,20], [13,24,23], [16,21,20], [16,21,20], [16,21,20], [16,21,20], [16,21,20], - [28,29,28], [25,29,28], [19,46,45], [22,29,28], [22,29,28], [22,29,28], [22,29,28], [22,29,28], - [18,21,20], [25,29,28], [13,4,-11], [22,5,-11], [30,5,-11], [12,3,-12], [20,3,-12], [29,3,-12], - [10,37,36], [5,37,36], [11,37,36], [7,37,36], [11,37,36], [7,37,36], [11,37,36], [11,37,36], - [21,25,24], [21,37,36], [21,49,48], [21,61,60], [15,37,36], [15,14,13], [22,13,12], [11,14,13], - [12,13,12], [12,13,12], [11,8,5], [11,8,5], [11,7,0], [11,7,0], [15,13,12], [15,13,12] - ], - cmbx10: [ - [13,14,0], [18,14,0], [17,15,1], [16,14,0], [15,14,0], [18,14,0], [16,14,0], [17,14,0], - [16,14,0], [17,14,0], [16,14,0], [15,14,0], [13,14,0], [13,14,0], [19,14,0], [19,14,0], - [6,9,0], [8,13,4], [7,5,-10], [10,5,-10], [9,4,-10], [10,4,-10], [10,2,-11], [12,5,-10], - [9,5,4], [12,15,1], [16,11,1], [18,11,1], [11,15,3], [21,14,0], [23,15,1], [17,17,2], - [7,4,-5], [6,15,0], [10,8,-6], [18,18,4], [11,17,2], [18,17,2], [17,16,1], [6,8,-6], - [8,20,5], [7,20,5], [10,9,-6], [17,16,3], [5,8,4], [7,3,-3], [5,4,0], [11,20,5], - [11,15,1], [10,14,0], [11,14,0], [11,15,1], [11,14,0], [11,15,1], [11,15,1], [12,15,1], - [11,15,1], [11,15,1], [5,9,0], [5,13,4], [6,15,5], [17,6,-2], [10,14,4], [10,14,0], - [17,15,1], [17,14,0], [16,14,0], [16,15,1], [17,14,0], [15,14,0], [14,14,0], [17,15,1], - [18,14,0], [9,14,0], [11,15,1], [18,14,0], [13,14,0], [22,14,0], [18,14,0], [16,15,1], - [15,14,0], [17,18,4], [18,15,1], [12,15,1], [16,14,0], [17,15,1], [17,15,1], [24,15,1], - [17,14,0], [17,14,0], [13,14,0], [6,20,5], [12,8,-6], [4,20,5], [9,4,-10], [5,4,-10], - [5,8,-6], [12,11,1], [12,15,1], [10,11,1], [13,15,1], [10,11,1], [9,14,0], [12,15,5], - [13,14,0], [6,14,0], [8,18,4], [12,14,0], [6,14,0], [19,9,0], [13,9,0], [11,11,1], - [12,13,4], [13,13,4], [9,9,0], [9,11,1], [8,14,1], [13,10,1], [12,10,1], [17,10,1], - [12,9,0], [12,13,4], [10,9,0], [12,1,-5], [23,1,-5], [10,5,-10], [10,3,-11], [10,3,-11] - ], - cmti10: [ - [15,14,0], [16,15,0], [16,16,1], [13,15,0], [16,14,0], [18,14,0], [16,14,0], [17,15,0], - [15,14,0], [17,14,0], [16,15,0], [17,20,5], [13,20,5], [14,20,5], [20,20,5], [20,20,5], - [7,10,1], [8,14,5], [9,4,-10], [12,4,-10], [11,3,-10], [12,4,-10], [12,1,-11], [14,5,-10], - [7,5,4], [13,20,5], [15,10,1], [15,10,1], [11,14,3], [20,14,0], [22,16,1], [17,17,2], - [7,3,-5], [8,15,0], [11,7,-7], [17,18,4], [14,16,1], [17,17,2], [17,16,1], [8,7,-7], - [11,20,5], [8,20,5], [12,9,-6], [16,14,2], [5,7,4], [7,2,-3], [5,3,0], [13,20,5], - [12,15,1], [10,14,0], [12,15,1], [12,15,1], [10,18,4], [12,15,1], [12,15,1], [13,15,1], - [12,15,1], [12,15,1], [7,9,0], [7,13,4], [7,15,5], [16,6,-2], [9,15,5], [12,15,0], - [16,16,1], [14,15,0], [15,14,0], [17,16,1], [16,14,0], [15,14,0], [15,14,0], [17,16,1], - [18,14,0], [11,14,0], [13,15,1], [18,14,0], [13,14,0], [21,14,0], [18,14,0], [16,16,1], - [15,14,0], [16,19,4], [15,15,1], [13,16,1], [17,14,0], [18,15,1], [18,15,1], [23,15,1], - [17,14,0], [18,14,0], [15,14,0], [9,20,5], [13,7,-7], [9,20,5], [11,4,-10], [8,3,-11], - [8,7,-7], [11,10,1], [10,15,1], [10,10,1], [12,15,1], [10,10,1], [11,20,5], [10,14,5], - [11,15,1], [7,15,1], [9,19,5], [11,15,1], [7,15,1], [17,10,1], [12,10,1], [11,10,1], - [11,13,4], [10,13,4], [10,10,1], [9,10,1], [8,14,1], [12,10,1], [10,10,1], [14,10,1], - [11,10,1], [11,14,5], [10,10,1], [12,1,-5], [21,1,-5], [12,4,-10], [12,3,-11], [11,3,-11] - ] -}); - -jsMath.Img.AddFont(173,{ - cmr10: [ - [14,17,0], [19,18,0], [18,18,1], [16,18,0], [15,17,0], [18,17,0], [16,17,0], [18,17,0], - [16,17,0], [18,17,0], [17,17,0], [16,17,0], [13,17,0], [13,17,0], [20,17,0], [20,17,0], - [6,11,0], [7,16,5], [8,5,-12], [10,5,-12], [10,4,-12], [10,5,-12], [11,2,-13], [12,6,-12], - [9,6,5], [12,18,1], [17,12,1], [18,12,1], [12,16,3], [21,17,0], [24,18,1], [18,20,2], - [7,4,-6], [5,18,0], [9,8,-9], [19,22,5], [11,20,2], [19,20,2], [18,19,1], [5,8,-9], - [8,24,6], [7,24,6], [11,11,-7], [18,16,2], [5,8,5], [7,2,-4], [5,3,0], [11,24,6], - [12,17,1], [11,16,0], [11,16,0], [11,17,1], [12,17,0], [11,17,1], [11,17,1], [12,18,1], - [11,17,1], [11,17,1], [5,11,0], [5,16,5], [5,18,6], [18,6,-3], [10,17,5], [10,17,0], - [18,18,1], [18,18,0], [16,17,0], [16,18,1], [17,17,0], [16,17,0], [15,17,0], [18,18,1], - [18,17,0], [8,17,0], [12,18,1], [18,17,0], [14,17,0], [22,17,0], [18,17,0], [18,18,1], - [15,17,0], [18,22,5], [18,18,1], [12,18,1], [17,17,0], [18,18,1], [18,18,1], [25,18,1], - [18,17,0], [18,17,0], [14,17,0], [7,24,6], [12,8,-9], [4,24,6], [10,5,-12], [5,4,-13], - [5,8,-9], [12,12,1], [13,18,1], [10,12,1], [13,18,1], [10,12,1], [9,17,0], [12,16,5], - [13,17,0], [6,17,0], [7,22,5], [13,17,0], [7,17,0], [20,11,0], [13,11,0], [12,12,1], - [13,16,5], [13,16,5], [9,11,0], [9,12,1], [8,16,1], [13,12,1], [13,12,1], [17,12,1], - [13,11,0], [13,16,5], [10,11,0], [12,1,-6], [24,1,-6], [11,5,-12], [10,4,-13], [10,4,-13] - ], - cmmi10: [ - [18,17,0], [19,18,0], [18,18,1], [16,18,0], [19,17,0], [22,17,0], [20,17,0], [17,17,0], - [16,17,0], [17,17,0], [19,17,0], [15,12,1], [15,22,5], [14,17,6], [11,19,1], [10,12,1], - [12,22,5], [12,17,6], [11,18,1], [8,12,1], [14,12,1], [14,18,1], [14,17,6], [13,11,0], - [11,22,5], [14,12,1], [13,17,6], [14,12,1], [13,12,1], [13,12,1], [14,22,5], [15,16,5], - [16,22,5], [15,12,1], [11,12,1], [14,18,1], [20,12,1], [13,16,5], [10,14,3], [15,17,6], - [23,8,-5], [23,8,1], [23,8,-5], [23,8,1], [6,7,-5], [6,7,-5], [12,14,1], [12,14,1], - [12,12,1], [11,11,0], [11,11,0], [11,17,6], [12,17,5], [11,17,6], [11,17,1], [12,18,6], - [11,17,1], [11,17,6], [5,3,0], [5,8,5], [17,14,1], [11,24,6], [17,14,1], [12,12,0], - [14,19,1], [18,18,0], [19,17,0], [19,18,1], [20,17,0], [19,17,0], [19,17,0], [19,18,1], - [22,17,0], [12,17,0], [16,18,1], [22,17,0], [16,17,0], [26,17,0], [22,17,0], [18,18,1], - [19,17,0], [18,22,5], [19,18,1], [16,18,1], [17,17,0], [19,18,1], [19,18,1], [26,18,1], - [21,17,0], [19,17,0], [18,17,0], [8,19,1], [8,24,6], [8,24,6], [23,6,-3], [23,7,-3], - [10,18,1], [12,12,1], [10,18,1], [11,12,1], [13,18,1], [11,12,1], [14,22,5], [12,16,5], - [14,18,1], [8,17,1], [11,21,5], [13,18,1], [7,18,1], [21,12,1], [14,12,1], [12,12,1], - [13,16,5], [11,16,5], [11,12,1], [11,12,1], [8,17,1], [14,12,1], [12,12,1], [17,12,1], - [13,12,1], [12,16,5], [12,12,1], [8,12,1], [10,16,5], [15,17,6], [15,6,-12], [16,4,-12] - ], - cmsy10: [ - [17,2,-5], [5,4,-4], [16,12,0], [11,12,0], [18,14,1], [12,12,0], [18,16,0], [18,16,4], - [18,16,2], [18,16,2], [18,16,2], [18,16,2], [18,16,2], [23,24,6], [11,10,-1], [11,10,-1], - [18,12,0], [18,12,0], [17,20,4], [17,20,4], [17,20,4], [17,20,4], [17,20,4], [17,20,4], - [18,6,-3], [18,11,-1], [17,14,1], [17,14,1], [23,16,2], [23,16,2], [17,14,1], [17,14,1], - [23,10,-1], [23,10,-1], [11,22,5], [11,22,5], [23,10,-1], [23,22,5], [23,22,5], [18,12,0], - [23,14,1], [23,14,1], [14,22,5], [14,22,5], [24,14,1], [23,22,5], [23,22,5], [18,12,1], - [7,13,-1], [23,12,1], [14,14,1], [14,14,1], [20,18,0], [20,18,6], [16,24,6], [3,10,-1], - [14,18,1], [12,17,0], [15,7,-2], [11,21,2], [18,19,1], [17,18,1], [18,16,0], [18,16,0], - [14,17,0], [20,20,2], [16,18,1], [13,18,1], [19,17,0], [14,18,1], [20,18,1], [15,20,3], - [20,19,2], [17,17,0], [21,20,3], [18,18,1], [16,18,1], [27,19,2], [25,21,2], [19,18,1], - [18,19,2], [19,20,3], [21,18,1], [16,18,1], [20,18,0], [18,18,1], [16,19,2], [25,19,2], - [20,17,0], [18,21,4], [19,17,0], [15,16,1], [15,16,1], [15,16,1], [15,16,1], [15,16,1], - [14,17,0], [14,17,0], [11,24,6], [7,24,6], [11,24,6], [7,24,6], [11,24,6], [11,24,6], - [8,24,6], [7,24,6], [4,24,6], [9,24,6], [11,26,7], [14,26,7], [11,24,6], [6,16,2], - [21,25,24], [18,17,0], [19,18,1], [12,24,6], [15,15,0], [15,15,0], [18,20,4], [17,20,4], - [9,22,5], [10,23,6], [10,22,5], [14,22,5], [18,22,4], [18,22,4], [18,19,1], [18,22,4] - ], - cmex10: [ - [10,29,28], [8,29,28], [10,29,28], [6,29,28], [11,29,28], [7,29,28], [11,29,28], [7,29,28], - [12,29,28], [12,29,28], [10,29,28], [9,29,28], [5,16,15], [10,16,15], [13,29,28], [13,29,28], - [14,44,43], [10,44,43], [17,58,57], [13,58,57], [13,58,57], [7,58,57], [14,58,57], [8,58,57], - [14,58,57], [8,58,57], [15,58,57], [15,58,57], [16,58,57], [15,58,57], [24,58,57], [24,58,57], - [19,73,72], [14,73,72], [14,73,72], [8,73,72], [16,73,72], [9,73,72], [16,73,72], [9,73,72], - [16,73,72], [16,73,72], [17,73,72], [16,73,72], [30,73,72], [30,73,72], [19,44,43], [19,44,43], - [21,44,43], [14,44,43], [16,44,43], [9,44,43], [16,44,43], [9,44,43], [10,16,15], [9,16,15], - [18,23,22], [13,23,22], [18,23,22], [13,23,22], [13,45,44], [18,45,44], [13,9,8], [9,16,15], - [21,45,43], [14,45,43], [10,16,15], [14,16,15], [13,44,43], [12,44,43], [19,25,24], [26,35,34], - [15,28,27], [23,55,54], [26,25,24], [35,35,34], [26,25,24], [35,35,34], [26,25,24], [35,35,34], - [24,25,24], [22,25,24], [15,28,27], [19,25,24], [19,25,24], [19,25,24], [19,25,24], [19,25,24], - [34,35,34], [30,35,34], [23,55,54], [26,35,34], [26,35,34], [26,35,34], [26,35,34], [26,35,34], - [22,25,24], [30,35,34], [15,5,-13], [26,6,-13], [36,6,-13], [14,4,-14], [24,4,-14], [35,4,-14], - [11,44,43], [6,44,43], [13,44,43], [8,44,43], [13,44,43], [8,44,43], [14,44,43], [14,44,43], - [25,29,28], [25,44,43], [25,58,57], [25,73,72], [18,45,44], [18,16,15], [26,15,14], [13,16,15], - [14,16,15], [14,16,15], [13,9,6], [13,9,6], [13,9,0], [13,9,0], [18,16,15], [18,16,15] - ], - cmbx10: [ - [16,17,0], [22,17,0], [20,18,1], [19,17,0], [18,17,0], [21,17,0], [19,17,0], [20,17,0], - [19,17,0], [20,17,0], [19,17,0], [18,17,0], [15,17,0], [15,17,0], [23,17,0], [23,17,0], - [7,11,0], [9,16,5], [9,5,-12], [11,5,-12], [11,4,-12], [12,5,-12], [12,2,-13], [14,5,-12], - [11,6,5], [14,18,1], [20,12,1], [21,12,1], [14,17,3], [25,17,0], [28,18,1], [20,20,2], - [8,4,-6], [7,17,0], [12,9,-8], [22,22,5], [13,20,2], [22,20,2], [21,18,1], [7,9,-8], - [10,24,6], [9,24,6], [12,11,-7], [20,20,4], [6,9,5], [8,3,-4], [6,4,0], [13,24,6], - [13,17,1], [12,16,0], [13,16,0], [13,17,1], [14,16,0], [13,17,1], [13,17,1], [14,18,1], - [13,17,1], [13,17,1], [6,11,0], [6,16,5], [7,17,5], [20,8,-2], [12,17,5], [12,17,0], - [20,18,1], [20,17,0], [19,17,0], [19,18,1], [20,17,0], [18,17,0], [17,17,0], [21,18,1], - [21,17,0], [10,17,0], [13,18,1], [21,17,0], [16,17,0], [26,17,0], [21,17,0], [20,18,1], - [18,17,0], [20,22,5], [21,18,1], [14,18,1], [19,17,0], [21,18,1], [21,18,1], [28,18,1], - [21,17,0], [21,17,0], [16,17,0], [8,24,6], [14,9,-8], [5,24,6], [11,5,-12], [6,5,-12], - [6,9,-8], [14,12,1], [15,18,1], [12,12,1], [15,18,1], [12,12,1], [11,17,0], [14,16,5], - [15,17,0], [7,17,0], [9,22,5], [15,17,0], [8,17,0], [23,11,0], [15,11,0], [14,12,1], - [15,16,5], [15,16,5], [11,11,0], [10,12,1], [10,17,1], [15,12,1], [14,12,1], [20,12,1], - [15,11,0], [14,16,5], [12,11,0], [14,2,-6], [28,2,-6], [12,6,-12], [12,3,-14], [12,4,-13] - ], - cmti10: [ - [17,17,0], [19,18,0], [19,18,1], [16,18,0], [19,17,0], [21,17,0], [19,17,0], [20,17,0], - [18,17,0], [20,17,0], [19,17,0], [20,22,5], [16,22,5], [17,22,5], [23,22,5], [24,22,5], - [8,12,1], [9,16,5], [11,5,-12], [14,5,-12], [13,4,-12], [14,5,-12], [14,2,-13], [17,6,-12], - [9,6,5], [15,22,5], [18,12,1], [18,12,1], [14,16,3], [23,17,0], [26,18,1], [20,20,2], - [9,4,-6], [9,18,0], [13,8,-9], [20,22,5], [17,18,1], [21,20,2], [20,19,1], [9,8,-9], - [13,24,6], [10,24,6], [14,11,-7], [19,16,2], [6,8,5], [9,2,-4], [6,3,0], [15,24,6], - [14,17,1], [12,16,0], [14,17,1], [14,17,1], [12,21,5], [14,17,1], [14,17,1], [15,17,1], - [14,17,1], [14,17,1], [8,11,0], [8,16,5], [8,18,6], [19,6,-3], [11,18,6], [14,18,0], - [19,18,1], [17,18,0], [18,17,0], [20,18,1], [19,17,0], [18,17,0], [18,17,0], [20,18,1], - [21,17,0], [13,17,0], [15,18,1], [21,17,0], [15,17,0], [25,17,0], [21,17,0], [19,18,1], - [18,17,0], [19,22,5], [18,18,1], [16,18,1], [20,17,0], [21,18,1], [21,18,1], [27,18,1], - [20,17,0], [21,17,0], [17,17,0], [11,24,6], [15,8,-9], [10,24,6], [13,5,-12], [9,4,-13], - [9,8,-9], [13,12,1], [12,18,1], [12,12,1], [14,18,1], [12,12,1], [12,22,5], [12,16,5], - [13,18,1], [8,17,1], [10,21,5], [13,18,1], [8,18,1], [21,12,1], [15,12,1], [13,12,1], - [13,16,5], [12,16,5], [12,12,1], [11,12,1], [9,17,1], [14,12,1], [12,12,1], [17,12,1], - [13,12,1], [13,16,5], [12,12,1], [14,1,-6], [25,1,-6], [14,5,-12], [14,4,-13], [14,4,-13] - ] -}); - -jsMath.Img.AddFont(207,{ - cmr10: [ - [17,20,0], [23,21,0], [21,22,1], [20,21,0], [19,20,0], [21,20,0], [20,20,0], [21,21,0], - [20,20,0], [21,20,0], [20,21,0], [19,21,0], [16,21,0], [16,21,0], [24,21,0], [24,21,0], - [8,13,0], [9,19,6], [9,7,-14], [12,7,-14], [12,5,-14], [12,6,-15], [13,2,-16], [14,6,-15], - [11,7,6], [14,22,1], [21,14,1], [22,14,1], [14,19,3], [26,20,0], [29,22,1], [21,24,2], - [8,4,-8], [6,21,0], [11,10,-11], [23,27,6], [13,24,2], [23,24,2], [22,22,1], [6,10,-11], - [10,30,8], [9,30,8], [13,13,-9], [21,20,3], [6,10,6], [8,3,-5], [6,4,0], [13,30,8], - [14,21,1], [13,20,0], [14,20,0], [14,21,1], [14,20,0], [14,21,1], [14,21,1], [15,21,1], - [14,21,1], [14,21,1], [6,13,0], [6,19,6], [6,22,7], [21,8,-3], [13,21,6], [13,21,0], - [21,22,1], [21,21,0], [19,20,0], [20,22,1], [21,20,0], [19,20,0], [18,20,0], [22,22,1], - [21,20,0], [10,20,0], [14,21,1], [22,20,0], [17,20,0], [26,20,0], [21,20,0], [21,22,1], - [19,20,0], [22,27,6], [22,21,1], [15,22,1], [20,20,0], [21,21,1], [22,21,1], [30,21,1], - [22,20,0], [22,20,0], [17,20,0], [8,30,8], [14,10,-11], [5,30,8], [12,6,-15], [6,4,-16], - [6,10,-11], [15,14,1], [16,22,1], [13,14,1], [16,22,1], [13,14,1], [11,21,0], [15,20,6], - [16,21,0], [8,20,0], [9,26,6], [15,21,0], [8,21,0], [24,13,0], [16,13,0], [14,14,1], - [16,19,6], [16,19,6], [11,13,0], [11,14,1], [10,19,1], [16,14,1], [15,14,1], [21,14,1], - [15,13,0], [15,19,6], [12,13,0], [15,2,-7], [29,2,-7], [13,7,-14], [13,4,-16], [12,4,-16] - ], - cmmi10: [ - [21,20,0], [23,21,0], [22,22,1], [20,21,0], [23,20,0], [26,20,0], [24,20,0], [21,21,0], - [19,20,0], [21,20,0], [23,21,0], [18,14,1], [18,27,6], [16,20,7], [14,22,1], [11,14,1], - [14,27,6], [15,20,7], [14,22,1], [10,14,1], [16,14,1], [16,22,1], [17,20,7], [16,13,0], - [13,27,6], [17,14,1], [15,20,7], [17,14,1], [15,14,1], [16,14,1], [17,27,6], [18,19,6], - [19,27,6], [18,14,1], [13,15,1], [17,22,1], [24,14,1], [15,19,6], [12,17,4], [18,20,7], - [28,9,-6], [28,9,1], [28,9,-6], [28,9,1], [7,8,-6], [7,8,-6], [14,16,1], [14,16,1], - [14,15,1], [13,14,0], [14,14,0], [14,21,7], [14,20,6], [14,21,7], [14,21,1], [15,21,7], - [14,21,1], [14,21,7], [6,4,0], [6,10,6], [21,18,2], [13,30,8], [21,18,2], [15,15,0], - [17,22,1], [21,21,0], [22,20,0], [23,22,1], [24,20,0], [23,20,0], [22,20,0], [23,22,1], - [26,20,0], [15,20,0], [19,21,1], [26,20,0], [19,20,0], [31,20,0], [26,20,0], [22,22,1], - [22,20,0], [22,27,6], [22,21,1], [19,22,1], [21,20,0], [23,21,1], [23,21,1], [31,21,1], - [25,20,0], [23,20,0], [21,20,0], [10,23,1], [9,29,7], [10,28,7], [28,8,-3], [28,9,-3], - [12,22,1], [15,14,1], [13,22,1], [13,14,1], [15,22,1], [13,14,1], [17,27,6], [14,19,6], - [16,22,1], [9,21,1], [13,26,6], [15,22,1], [8,22,1], [25,14,1], [17,14,1], [14,14,1], - [16,19,6], [14,19,6], [13,14,1], [13,14,1], [10,20,1], [16,14,1], [14,14,1], [21,14,1], - [16,14,1], [15,19,6], [14,14,1], [9,14,1], [12,19,6], [18,21,7], [19,7,-14], [19,5,-15] - ], - cmsy10: [ - [21,2,-6], [6,4,-5], [19,15,0], [13,14,0], [21,17,1], [15,15,0], [21,20,0], [21,20,5], - [21,20,3], [21,20,3], [21,20,3], [21,20,3], [21,20,3], [28,28,7], [13,12,-1], [13,12,-1], - [21,15,0], [21,13,-1], [21,23,4], [21,23,4], [21,23,4], [21,23,4], [21,23,4], [21,23,4], - [21,8,-3], [21,13,-1], [21,18,2], [21,18,2], [28,19,2], [28,19,2], [21,18,2], [21,18,2], - [28,11,-2], [28,11,-2], [13,27,6], [13,27,6], [28,11,-2], [28,27,6], [28,27,6], [21,13,-1], - [28,17,1], [28,17,1], [17,27,6], [17,27,6], [28,17,1], [28,27,6], [28,27,6], [21,14,1], - [8,16,-1], [28,14,1], [17,18,2], [17,18,2], [25,21,0], [25,22,7], [19,28,7], [4,12,-1], - [17,22,1], [15,21,0], [18,9,-2], [14,26,3], [21,22,1], [21,22,1], [21,20,0], [21,20,0], - [17,21,0], [24,23,2], [20,22,1], [16,22,1], [23,20,0], [17,22,1], [25,21,1], [18,25,4], - [24,22,2], [20,20,0], [25,24,4], [22,22,1], [20,22,1], [33,23,2], [30,25,2], [23,22,1], - [22,22,2], [23,25,4], [25,21,1], [19,22,1], [24,21,0], [21,21,1], [20,22,2], [31,22,2], - [24,20,0], [21,24,4], [23,20,0], [18,19,1], [18,19,1], [18,19,1], [18,19,1], [18,19,1], - [17,21,0], [17,21,0], [13,30,8], [8,30,8], [13,30,8], [8,30,8], [13,30,8], [13,30,8], - [10,30,8], [9,30,8], [5,30,8], [11,30,8], [13,31,8], [17,31,8], [13,30,8], [7,20,3], - [25,30,28], [21,20,0], [23,21,1], [14,28,7], [18,18,0], [18,18,0], [21,23,4], [21,23,4], - [11,27,6], [12,28,7], [12,27,6], [17,27,6], [22,26,4], [21,27,5], [21,22,1], [21,26,4] - ], - cmex10: [ - [12,36,34], [9,36,34], [12,36,34], [7,36,34], [14,36,34], [8,36,34], [14,36,34], [8,36,34], - [14,36,34], [14,36,34], [12,36,34], [11,36,34], [6,20,19], [12,20,19], [16,36,34], [16,36,34], - [17,54,52], [13,54,52], [21,71,69], [16,71,69], [15,71,69], [9,71,69], [17,71,69], [10,71,69], - [17,71,69], [10,71,69], [18,71,69], [18,71,69], [19,71,69], [19,71,69], [29,71,69], [29,71,69], - [22,88,86], [17,88,86], [17,88,86], [9,88,86], [19,88,86], [11,88,86], [19,88,86], [11,88,86], - [20,88,86], [20,88,86], [21,88,86], [20,88,86], [36,88,86], [36,88,86], [22,54,52], [22,54,52], - [25,54,52], [17,54,52], [20,54,52], [10,54,52], [20,54,52], [10,54,52], [12,19,18], [10,19,18], - [21,28,27], [15,28,27], [21,28,27], [15,28,27], [15,54,53], [21,54,53], [15,10,9], [11,19,18], - [25,54,52], [17,54,52], [12,19,18], [17,19,18], [16,54,52], [15,54,52], [23,30,29], [31,42,41], - [18,34,33], [28,66,65], [31,30,29], [43,42,41], [31,30,29], [43,42,41], [31,30,29], [43,42,41], - [29,30,29], [26,30,29], [18,34,33], [23,30,29], [23,30,29], [23,30,29], [23,30,29], [23,30,29], - [41,42,41], [36,42,41], [28,66,65], [31,42,41], [31,42,41], [31,42,41], [31,42,41], [31,42,41], - [26,30,29], [36,42,41], [18,6,-16], [31,7,-16], [43,7,-16], [17,4,-17], [29,4,-18], [42,4,-18], - [14,54,52], [8,54,52], [15,54,52], [9,54,52], [15,54,52], [9,54,52], [16,54,52], [16,54,52], - [30,36,34], [30,54,52], [30,71,69], [30,88,86], [22,54,53], [22,19,18], [32,19,17], [16,19,18], - [17,19,18], [17,19,18], [15,11,7], [15,11,7], [15,10,0], [15,10,0], [21,19,18], [21,19,18] - ], - cmbx10: [ - [19,20,0], [27,21,0], [25,22,1], [23,21,0], [21,20,0], [25,20,0], [23,20,0], [25,21,0], - [23,20,0], [25,20,0], [23,21,0], [22,21,0], [18,21,0], [18,21,0], [27,21,0], [27,21,0], - [9,14,0], [10,20,6], [10,7,-14], [14,7,-14], [13,4,-15], [14,7,-14], [15,2,-16], [17,6,-15], - [13,7,6], [17,22,1], [24,15,1], [25,15,1], [16,21,4], [30,20,0], [33,22,1], [25,24,2], - [10,4,-8], [8,21,0], [14,12,-9], [26,27,6], [15,24,2], [26,24,2], [25,22,1], [8,12,-9], - [12,30,8], [10,30,8], [15,14,-8], [25,23,4], [8,11,6], [10,3,-5], [7,5,0], [15,30,8], - [16,20,1], [15,19,0], [15,19,0], [16,20,1], [16,20,0], [15,20,1], [16,20,1], [17,21,1], - [16,20,1], [16,20,1], [7,13,0], [7,19,6], [8,21,6], [25,9,-3], [14,21,6], [14,21,0], - [25,22,1], [24,21,0], [22,20,0], [23,22,1], [24,20,0], [21,20,0], [20,20,0], [25,22,1], - [25,20,0], [12,20,0], [16,21,1], [25,20,0], [19,20,0], [31,20,0], [25,20,0], [24,22,1], - [21,20,0], [24,27,6], [25,21,1], [17,22,1], [22,20,0], [25,21,1], [25,21,1], [34,21,1], - [25,20,0], [25,20,0], [19,20,0], [9,30,8], [17,12,-9], [6,30,8], [13,6,-15], [7,6,-15], - [7,12,-9], [17,15,1], [18,22,1], [14,15,1], [18,22,1], [15,15,1], [13,21,0], [17,20,6], - [18,21,0], [9,21,0], [10,27,6], [18,21,0], [9,21,0], [28,14,0], [18,14,0], [16,15,1], - [18,20,6], [18,20,6], [13,14,0], [13,15,1], [12,20,1], [18,15,1], [17,14,1], [24,14,1], - [17,13,0], [17,19,6], [14,13,0], [17,2,-7], [34,2,-7], [15,7,-14], [14,4,-17], [14,6,-15] - ], - cmti10: [ - [21,20,0], [22,21,0], [23,22,1], [19,21,0], [22,20,0], [25,20,0], [23,20,0], [25,21,0], - [22,20,0], [24,20,0], [23,21,0], [23,27,6], [19,27,6], [20,27,6], [28,27,6], [29,27,6], - [10,14,1], [12,19,6], [13,7,-14], [16,7,-14], [16,5,-14], [17,6,-15], [17,2,-16], [20,6,-15], - [10,7,6], [18,27,6], [21,14,1], [21,14,1], [16,20,4], [28,20,0], [31,22,1], [24,24,2], - [10,4,-8], [11,21,0], [15,10,-11], [25,27,6], [21,22,1], [25,24,2], [24,22,1], [11,10,-11], - [15,30,8], [12,30,8], [17,13,-9], [22,19,2], [7,10,6], [10,3,-5], [7,4,0], [18,30,8], - [17,21,1], [14,20,0], [16,21,1], [17,21,1], [14,26,6], [17,21,1], [17,21,1], [19,21,1], - [17,21,1], [17,21,1], [9,13,0], [9,19,6], [10,22,7], [23,8,-3], [13,22,7], [16,21,0], - [23,22,1], [21,21,0], [22,20,0], [24,22,1], [23,20,0], [22,20,0], [22,20,0], [24,22,1], - [25,20,0], [15,20,0], [19,21,1], [25,20,0], [19,20,0], [30,20,0], [25,20,0], [23,22,1], - [22,20,0], [23,27,6], [21,21,1], [19,22,1], [24,20,0], [25,21,1], [26,21,1], [33,21,1], - [24,20,0], [26,20,0], [21,20,0], [13,30,8], [18,10,-11], [12,30,8], [16,6,-15], [11,4,-16], - [11,10,-11], [16,14,1], [14,22,1], [14,14,1], [17,22,1], [14,14,1], [15,27,6], [15,19,6], - [16,22,1], [10,21,1], [13,26,6], [15,22,1], [9,22,1], [25,14,1], [17,14,1], [15,14,1], - [15,19,6], [15,19,6], [15,14,1], [13,14,1], [11,20,1], [17,14,1], [15,14,1], [21,14,1], - [16,14,1], [15,19,6], [14,14,1], [16,2,-7], [31,2,-7], [17,7,-14], [17,4,-16], [16,4,-16] - ] -}); - -jsMath.Img.AddFont(249,{ - cmr10: [ - [20,24,0], [27,25,0], [25,25,1], [23,25,0], [22,24,0], [25,24,0], [23,24,0], [25,24,0], - [23,24,0], [25,24,0], [24,24,0], [22,24,0], [18,24,0], [18,24,0], [28,24,0], [28,24,0], - [9,16,0], [10,23,7], [10,7,-17], [14,7,-17], [13,5,-17], [14,7,-17], [15,2,-19], [16,7,-18], - [13,8,7], [17,25,1], [24,17,1], [26,17,1], [16,23,4], [30,24,0], [34,25,1], [25,28,2], - [9,5,-9], [7,25,0], [12,11,-13], [27,31,7], [16,28,2], [27,28,2], [25,26,1], [7,11,-13], - [12,35,9], [10,35,9], [15,16,-10], [25,23,3], [7,11,7], [10,3,-6], [7,4,0], [16,35,9], - [16,24,1], [15,23,0], [16,23,0], [16,24,1], [17,24,0], [16,24,1], [16,24,1], [17,24,1], - [16,24,1], [16,24,1], [7,15,0], [7,22,7], [7,25,8], [25,9,-4], [15,24,7], [15,24,0], - [25,25,1], [25,25,0], [23,24,0], [23,25,1], [25,24,0], [23,24,0], [21,24,0], [25,25,1], - [25,24,0], [12,24,0], [16,25,1], [26,24,0], [20,24,0], [30,24,0], [25,24,0], [25,25,1], - [22,24,0], [25,31,7], [25,25,1], [17,25,1], [24,24,0], [25,25,1], [25,25,1], [35,25,1], - [25,24,0], [26,24,0], [20,24,0], [9,35,9], [16,11,-13], [6,35,9], [14,6,-18], [7,4,-19], - [7,11,-13], [17,17,1], [18,25,1], [15,17,1], [18,25,1], [15,17,1], [13,24,0], [17,23,7], - [19,24,0], [9,23,0], [10,30,7], [18,24,0], [9,24,0], [28,16,0], [19,16,0], [17,17,1], - [18,23,7], [18,23,7], [13,16,0], [13,17,1], [12,22,1], [19,17,1], [18,16,1], [24,16,1], - [18,15,0], [18,22,7], [14,15,0], [17,2,-8], [34,2,-8], [15,7,-17], [15,4,-19], [14,4,-19] - ], - cmmi10: [ - [25,24,0], [27,25,0], [26,25,1], [23,25,0], [27,24,0], [30,24,0], [28,24,0], [24,24,0], - [22,24,0], [24,24,0], [27,24,0], [21,17,1], [21,31,7], [19,24,8], [16,26,1], [13,16,1], - [17,31,7], [17,24,8], [16,25,1], [12,17,1], [19,17,1], [19,25,1], [20,24,8], [18,16,0], - [16,31,7], [20,16,1], [18,24,8], [20,16,1], [18,16,1], [18,17,1], [20,31,7], [21,23,7], - [22,31,7], [21,17,1], [15,17,1], [20,25,1], [28,16,1], [18,23,7], [14,20,4], [22,24,8], - [33,11,-7], [33,11,1], [33,11,-7], [33,11,1], [8,9,-7], [8,9,-7], [17,19,1], [17,19,1], - [16,17,1], [15,16,0], [16,16,0], [16,24,8], [17,23,7], [16,24,8], [16,24,1], [17,24,8], - [16,24,1], [16,24,8], [7,4,0], [7,11,7], [24,21,2], [16,35,9], [24,21,2], [17,17,0], - [20,26,1], [25,25,0], [26,24,0], [26,25,1], [28,24,0], [27,24,0], [26,24,0], [26,25,1], - [30,24,0], [17,24,0], [22,25,1], [31,24,0], [22,24,0], [36,24,0], [30,24,0], [26,25,1], - [26,24,0], [26,31,7], [26,25,1], [22,25,1], [24,24,0], [26,25,1], [27,25,1], [36,25,1], - [29,24,0], [26,24,0], [25,24,0], [12,27,1], [11,33,8], [12,33,8], [33,9,-4], [33,9,-4], - [14,25,1], [17,17,1], [15,25,1], [15,17,1], [18,25,1], [15,17,1], [19,31,7], [17,23,7], - [19,25,1], [10,24,1], [15,30,7], [18,25,1], [9,25,1], [29,17,1], [20,17,1], [16,17,1], - [19,23,7], [16,23,7], [15,17,1], [15,17,1], [12,23,1], [19,17,1], [16,17,1], [24,17,1], - [18,17,1], [17,23,7], [16,17,1], [10,17,1], [14,23,7], [22,24,8], [22,8,-17], [23,5,-18] - ], - cmsy10: [ - [24,3,-7], [7,5,-6], [22,17,0], [15,15,-1], [25,21,2], [17,17,0], [25,23,0], [25,23,6], - [25,23,3], [25,23,3], [25,23,3], [25,23,3], [25,23,3], [33,33,8], [16,15,-1], [16,15,-1], - [25,17,0], [25,15,-1], [24,27,5], [24,27,5], [24,27,5], [24,27,5], [24,27,5], [24,27,5], - [25,9,-4], [25,16,-1], [24,21,2], [24,21,2], [33,23,3], [33,23,3], [24,21,2], [24,21,2], - [33,13,-2], [33,13,-2], [15,31,7], [15,31,7], [33,13,-2], [33,31,7], [33,31,7], [25,15,-1], - [33,19,1], [33,19,1], [20,31,7], [20,31,7], [33,19,1], [33,31,7], [33,31,7], [25,17,1], - [9,18,-1], [33,17,1], [20,21,2], [20,21,2], [29,25,0], [29,25,8], [22,33,8], [5,13,-2], - [19,25,1], [17,24,0], [21,10,-3], [16,30,3], [25,26,1], [24,25,1], [25,23,0], [25,23,0], - [19,24,0], [28,27,2], [23,25,1], [19,25,1], [27,24,0], [20,25,1], [29,26,2], [21,29,5], - [28,26,2], [23,24,0], [29,29,5], [25,25,1], [23,25,1], [38,26,2], [35,29,2], [27,25,1], - [25,26,2], [27,29,5], [29,25,1], [22,25,1], [28,25,0], [25,25,1], [23,26,2], [36,26,2], - [28,24,0], [25,29,5], [27,24,0], [21,22,1], [21,22,1], [21,22,1], [21,22,1], [21,22,1], - [19,24,0], [19,24,0], [15,35,9], [10,35,9], [15,35,9], [10,35,9], [15,35,9], [15,35,9], - [12,35,9], [10,35,9], [6,35,9], [13,35,9], [15,37,10], [20,37,10], [16,35,9], [8,23,3], - [29,35,33], [25,24,0], [27,26,2], [17,33,8], [21,21,0], [21,21,0], [25,27,5], [24,27,5], - [13,31,7], [14,32,8], [14,31,7], [20,31,7], [26,30,5], [25,31,6], [25,27,2], [25,30,5] - ], - cmex10: [ - [15,42,40], [11,42,40], [14,42,40], [8,42,40], [16,42,40], [10,42,40], [16,42,40], [10,42,40], - [16,42,40], [16,42,40], [14,42,40], [13,42,40], [7,23,22], [14,23,22], [18,42,40], [18,42,40], - [20,62,60], [15,62,60], [24,83,81], [18,83,81], [18,83,81], [10,83,81], [20,83,81], [12,83,81], - [20,83,81], [12,83,81], [22,83,81], [22,83,81], [23,83,81], [22,83,81], [34,83,81], [34,83,81], - [26,103,101], [19,103,101], [20,103,101], [11,103,101], [22,103,101], [13,103,101], [22,103,101], [13,103,101], - [23,103,101], [23,103,101], [24,103,101], [23,103,101], [42,103,101], [42,103,101], [26,62,60], [26,62,60], - [29,63,61], [20,63,61], [23,62,60], [12,62,60], [23,62,60], [12,62,60], [14,22,21], [12,22,21], - [25,32,31], [18,32,31], [25,32,31], [18,32,31], [18,63,62], [25,63,62], [18,12,11], [13,22,21], - [29,62,60], [20,62,60], [14,22,21], [20,22,21], [18,62,60], [17,62,60], [27,35,34], [36,49,48], - [21,39,38], [33,77,76], [36,35,34], [50,49,48], [36,35,34], [50,49,48], [36,35,34], [50,49,48], - [34,35,34], [31,35,34], [21,39,38], [27,35,34], [27,35,34], [27,35,34], [27,35,34], [27,35,34], - [48,49,48], [42,49,48], [33,77,76], [36,49,48], [36,49,48], [36,49,48], [36,49,48], [36,49,48], - [31,35,34], [42,49,48], [21,7,-19], [36,8,-19], [51,8,-19], [19,5,-20], [34,5,-21], [50,5,-21], - [16,62,60], [9,62,60], [18,62,60], [11,62,60], [18,62,60], [11,62,60], [19,62,60], [19,62,60], - [35,42,40], [35,62,60], [35,83,81], [35,103,101], [26,63,62], [26,23,22], [37,22,20], [18,22,21], - [19,22,21], [19,22,21], [17,13,8], [18,13,8], [17,12,0], [18,12,0], [25,22,21], [25,22,21] - ], - cmbx10: [ - [22,24,0], [31,24,0], [29,25,1], [27,24,0], [25,23,0], [30,24,0], [27,24,0], [29,24,0], - [27,24,0], [29,24,0], [27,24,0], [26,24,0], [21,24,0], [21,24,0], [32,24,0], [32,24,0], - [10,16,0], [12,23,7], [12,7,-17], [16,7,-17], [15,6,-17], [16,7,-17], [17,3,-18], [19,6,-18], - [15,8,7], [20,25,1], [28,17,1], [30,17,1], [19,23,4], [35,24,0], [39,25,1], [29,29,3], - [11,5,-9], [9,24,0], [16,13,-11], [31,31,7], [18,28,2], [31,28,2], [29,25,1], [9,13,-11], - [13,35,9], [12,35,9], [17,16,-10], [29,27,5], [9,13,7], [11,5,-5], [9,6,0], [18,35,9], - [18,24,1], [17,23,0], [18,23,0], [18,24,1], [19,23,0], [18,24,1], [18,24,1], [19,24,1], - [18,24,1], [18,24,1], [9,16,0], [9,23,7], [9,24,7], [29,11,-3], [17,24,7], [17,24,0], - [29,25,1], [29,24,0], [26,24,0], [27,25,1], [28,24,0], [25,24,0], [23,24,0], [29,25,1], - [30,24,0], [14,24,0], [18,25,1], [29,24,0], [22,24,0], [36,24,0], [30,24,0], [28,25,1], - [25,24,0], [28,31,7], [30,25,1], [20,25,1], [26,23,0], [29,25,1], [29,25,1], [40,25,1], - [29,24,0], [29,24,0], [22,24,0], [10,35,9], [20,13,-11], [7,35,9], [16,7,-17], [9,6,-18], - [9,13,-11], [19,17,1], [21,25,1], [17,17,1], [21,25,1], [17,17,1], [15,24,0], [19,23,7], - [21,24,0], [10,24,0], [12,31,7], [20,24,0], [10,24,0], [32,16,0], [21,16,0], [19,17,1], - [21,23,7], [21,23,7], [16,16,0], [15,17,1], [13,23,1], [21,17,1], [20,17,1], [28,17,1], - [20,16,0], [20,23,7], [16,16,0], [20,2,-8], [40,2,-8], [17,8,-17], [17,5,-19], [17,6,-18] - ], - cmti10: [ - [25,24,0], [26,25,0], [27,25,1], [22,25,0], [26,24,0], [29,24,0], [27,24,0], [29,24,0], - [25,24,0], [29,24,0], [26,24,0], [27,31,7], [22,31,7], [23,31,7], [33,31,7], [34,31,7], - [12,17,1], [13,23,7], [15,7,-17], [19,7,-17], [19,5,-17], [20,7,-17], [20,2,-19], [23,7,-18], - [12,8,7], [21,31,7], [25,17,1], [25,17,1], [19,23,4], [33,24,0], [36,25,1], [28,29,3], - [12,5,-9], [13,25,0], [18,11,-13], [29,31,7], [24,25,1], [29,28,2], [28,26,1], [13,11,-13], - [18,35,9], [13,35,9], [20,16,-10], [26,21,2], [8,11,7], [12,3,-6], [8,4,0], [21,35,9], - [19,24,1], [16,23,0], [19,24,1], [20,24,1], [17,30,7], [20,24,1], [20,24,1], [22,24,1], - [19,24,1], [19,24,1], [11,15,0], [11,22,7], [11,25,8], [27,9,-4], [16,25,8], [19,25,0], - [27,25,1], [24,25,0], [25,24,0], [28,25,1], [27,24,0], [26,24,0], [25,24,0], [28,25,1], - [29,24,0], [18,24,0], [22,25,1], [30,24,0], [22,24,0], [35,24,0], [29,24,0], [27,25,1], - [25,24,0], [27,31,7], [25,25,1], [22,25,1], [28,24,0], [29,25,1], [30,25,1], [39,25,1], - [29,24,0], [30,24,0], [24,24,0], [16,35,9], [21,11,-13], [14,35,9], [18,6,-18], [13,4,-19], - [13,11,-13], [19,17,1], [16,25,1], [16,17,1], [20,25,1], [16,17,1], [17,31,7], [17,23,7], - [19,25,1], [12,24,1], [15,30,7], [18,25,1], [11,25,1], [29,17,1], [20,17,1], [18,17,1], - [18,23,7], [17,23,7], [17,17,1], [15,17,1], [13,23,1], [20,17,1], [17,17,1], [24,17,1], - [18,17,1], [18,23,7], [16,17,1], [19,2,-8], [36,2,-8], [20,7,-17], [20,4,-19], [19,4,-19] - ] -}); - -jsMath.Img.AddFont(298,{ - cmr10: [ - [24,28,0], [33,30,0], [30,30,1], [28,30,0], [26,28,0], [30,28,0], [28,28,0], [30,29,0], - [28,28,0], [30,28,0], [28,29,0], [26,29,0], [22,29,0], [22,29,0], [33,29,0], [33,29,0], - [11,19,0], [11,28,9], [13,9,-20], [17,9,-20], [16,6,-21], [17,8,-21], [18,3,-22], [20,8,-22], - [16,10,9], [20,30,1], [29,20,1], [31,20,1], [20,27,5], [36,28,0], [41,30,1], [30,34,3], - [11,6,-11], [8,30,0], [15,13,-16], [32,37,8], [19,34,3], [32,34,3], [30,31,1], [9,13,-16], - [14,42,11], [12,42,11], [18,18,-13], [30,28,4], [9,13,8], [12,4,-7], [8,5,0], [19,42,11], - [19,29,1], [18,28,0], [19,28,0], [19,29,1], [20,28,0], [19,29,1], [19,29,1], [20,29,1], - [19,29,1], [19,29,1], [8,18,0], [8,26,8], [8,30,9], [30,11,-5], [18,30,9], [18,29,0], - [30,30,1], [30,30,0], [27,28,0], [28,30,1], [29,28,0], [27,28,0], [26,28,0], [31,30,1], - [30,28,0], [14,28,0], [20,29,1], [31,28,0], [24,28,0], [37,28,0], [30,28,0], [30,30,1], - [26,28,0], [30,37,8], [31,29,1], [21,30,1], [29,28,0], [30,29,1], [30,29,1], [42,29,1], - [30,28,0], [31,28,0], [23,28,0], [11,42,11], [20,13,-16], [7,42,11], [16,7,-22], [8,5,-23], - [8,13,-16], [21,20,1], [22,30,1], [18,20,1], [22,30,1], [18,20,1], [15,29,0], [20,28,9], - [22,29,0], [11,28,0], [11,37,9], [21,29,0], [11,29,0], [34,19,0], [22,19,0], [20,20,1], - [22,27,8], [22,27,8], [15,19,0], [15,20,1], [14,27,1], [22,20,1], [21,19,1], [29,19,1], - [22,18,0], [21,27,9], [17,18,0], [21,2,-10], [41,2,-10], [18,8,-21], [18,5,-23], [17,5,-23] - ], - cmmi10: [ - [30,28,0], [33,30,0], [31,30,1], [28,30,0], [32,28,0], [37,28,0], [34,28,0], [29,29,0], - [27,28,0], [29,28,0], [33,29,0], [25,20,1], [25,37,8], [23,28,9], [19,31,1], [16,19,1], - [20,38,9], [21,28,9], [19,30,1], [14,20,1], [23,20,1], [23,30,1], [24,28,9], [22,19,0], - [19,38,9], [24,19,1], [21,28,9], [24,19,1], [21,19,1], [22,20,1], [24,38,9], [25,28,9], - [27,38,9], [25,20,1], [18,20,1], [23,30,1], [34,19,1], [21,27,8], [17,24,5], [26,28,9], - [39,12,-9], [39,13,1], [39,12,-9], [39,13,1], [10,11,-9], [10,11,-9], [20,22,1], [20,22,1], - [19,20,1], [18,19,0], [19,19,0], [19,28,9], [20,28,8], [19,28,9], [19,29,1], [20,28,9], - [19,29,1], [19,28,9], [8,5,0], [9,13,8], [29,25,2], [19,42,11], [29,25,2], [21,20,0], - [24,31,1], [30,30,0], [31,28,0], [32,30,1], [33,28,0], [32,28,0], [31,28,0], [32,30,1], - [37,28,0], [21,28,0], [26,29,1], [37,28,0], [27,28,0], [43,28,0], [37,28,0], [31,30,1], - [31,28,0], [31,37,8], [31,29,1], [27,30,1], [29,28,0], [32,29,1], [32,29,1], [43,29,1], - [35,28,0], [32,28,0], [30,28,0], [14,32,1], [13,39,9], [14,39,9], [39,11,-5], [39,11,-5], - [17,30,1], [21,20,1], [18,30,1], [18,20,1], [22,30,1], [18,20,1], [23,38,9], [20,28,9], - [23,30,1], [13,29,1], [18,37,9], [21,30,1], [11,30,1], [35,20,1], [24,20,1], [20,20,1], - [23,27,8], [19,27,8], [18,20,1], [18,20,1], [14,27,1], [23,20,1], [20,20,1], [29,20,1], - [22,20,1], [21,28,9], [20,20,1], [13,20,1], [16,28,9], [26,28,9], [26,9,-21], [27,6,-22] - ], - cmsy10: [ - [29,3,-9], [8,5,-8], [26,21,0], [18,19,-1], [30,24,2], [21,21,0], [30,28,0], [30,28,7], - [30,28,4], [30,28,4], [30,28,4], [30,28,4], [30,28,4], [39,39,9], [19,17,-2], [19,17,-2], - [30,20,0], [30,19,-1], [29,33,6], [29,33,6], [29,33,6], [29,33,6], [29,33,6], [29,33,6], - [30,11,-5], [30,18,-2], [29,25,2], [29,25,2], [39,27,3], [39,27,3], [29,25,2], [29,25,2], - [39,16,-2], [39,16,-2], [18,37,8], [18,37,8], [39,16,-2], [39,37,8], [39,38,9], [30,19,-1], - [39,24,2], [39,24,2], [24,37,8], [24,37,8], [40,24,2], [39,37,8], [39,38,9], [30,20,1], - [11,22,-1], [39,20,1], [24,25,2], [24,25,2], [34,30,0], [34,30,9], [27,39,9], [6,16,-2], - [23,30,1], [21,29,0], [26,12,-3], [19,36,4], [30,31,1], [29,30,1], [30,28,0], [30,28,0], - [23,29,0], [33,33,3], [28,30,1], [22,30,1], [32,28,0], [24,30,1], [34,30,2], [25,34,5], - [34,30,2], [28,28,0], [35,33,5], [31,30,1], [27,30,1], [46,32,3], [43,35,3], [32,30,1], - [31,31,3], [33,35,6], [35,29,1], [27,30,1], [33,30,0], [30,30,2], [28,30,2], [43,30,2], - [34,28,0], [30,34,6], [32,28,0], [26,26,1], [26,26,1], [26,26,1], [26,26,1], [26,26,1], - [23,29,0], [23,29,0], [18,42,11], [12,42,11], [18,42,11], [12,42,11], [18,42,11], [18,42,11], - [14,42,11], [12,42,11], [7,42,11], [16,42,11], [18,44,12], [24,44,12], [19,42,11], [10,28,4], - [35,42,40], [30,28,0], [33,30,2], [20,39,9], [25,25,0], [25,25,0], [30,33,6], [29,33,6], - [16,38,9], [16,38,9], [16,38,9], [24,37,8], [31,36,6], [30,37,7], [30,32,2], [30,36,6] - ], - cmex10: [ - [17,50,48], [13,50,48], [17,50,48], [9,50,48], [19,50,48], [12,50,48], [19,50,48], [12,50,48], - [20,50,48], [20,50,48], [17,50,48], [16,50,48], [8,27,26], [17,27,26], [22,50,48], [22,50,48], - [23,75,73], [18,75,73], [29,99,97], [22,99,97], [22,99,97], [12,99,97], [24,99,97], [14,99,97], - [24,99,97], [14,99,97], [26,99,97], [26,99,97], [27,99,97], [26,99,97], [41,99,97], [41,99,97], - [32,124,122], [23,124,122], [24,124,122], [13,124,122], [26,124,122], [15,124,122], [26,124,122], [15,124,122], - [28,124,122], [28,124,122], [29,124,122], [28,124,122], [51,124,122], [51,124,122], [31,75,73], [31,75,73], - [35,75,73], [24,75,73], [28,75,73], [14,75,73], [28,75,73], [14,75,73], [17,26,25], [14,26,25], - [30,39,38], [21,39,38], [30,38,37], [21,38,37], [21,76,75], [30,76,75], [21,14,13], [15,26,25], - [35,76,73], [24,76,73], [17,27,26], [24,27,26], [22,75,73], [21,75,73], [32,42,41], [44,59,58], - [25,47,46], [39,93,92], [44,42,41], [60,59,58], [44,42,41], [60,59,58], [44,42,41], [60,59,58], - [41,42,41], [37,42,41], [25,47,46], [32,42,41], [32,42,41], [32,42,41], [32,42,41], [32,42,41], - [57,59,58], [51,59,58], [39,93,92], [44,59,58], [44,59,58], [44,59,58], [44,59,58], [44,59,58], - [37,42,41], [51,59,58], [24,8,-23], [43,9,-23], [61,9,-23], [23,6,-24], [41,6,-25], [60,6,-25], - [19,75,73], [11,75,73], [21,75,73], [13,75,73], [21,75,73], [13,75,73], [23,75,73], [23,75,73], - [42,50,48], [42,75,73], [42,99,97], [42,124,122], [31,75,74], [31,27,26], [45,26,24], [22,26,25], - [23,26,25], [23,26,25], [20,14,9], [21,14,9], [20,14,0], [21,14,0], [30,26,25], [30,26,25] - ], - cmbx10: [ - [27,28,0], [37,29,0], [34,30,1], [32,29,0], [30,28,0], [36,28,0], [32,29,0], [34,29,0], - [32,29,0], [34,29,0], [32,29,0], [31,29,0], [25,29,0], [25,29,0], [38,29,0], [38,29,0], - [12,19,0], [14,28,9], [14,9,-20], [19,9,-20], [19,6,-21], [20,9,-20], [21,3,-22], [23,8,-21], - [19,10,9], [24,30,1], [33,20,1], [36,20,1], [23,28,5], [42,29,0], [47,30,1], [34,34,3], - [14,6,-11], [11,29,0], [19,15,-14], [37,37,8], [21,34,3], [37,34,3], [35,30,1], [11,15,-14], - [16,42,11], [14,42,11], [21,19,-12], [34,32,6], [11,15,8], [14,5,-7], [10,7,0], [21,42,11], - [22,28,1], [21,27,0], [22,27,0], [22,28,1], [23,27,0], [22,28,1], [22,28,1], [23,29,1], - [22,28,1], [22,28,1], [10,19,0], [10,27,8], [11,30,9], [34,13,-4], [20,30,9], [20,29,0], - [34,30,1], [34,29,0], [31,29,0], [32,30,1], [34,29,0], [30,28,0], [28,28,0], [35,30,1], - [36,29,0], [17,29,0], [22,30,1], [35,29,0], [27,29,0], [44,29,0], [36,29,0], [33,30,1], - [30,29,0], [33,37,8], [36,30,1], [24,30,1], [32,28,0], [35,30,1], [35,30,1], [48,30,1], - [35,29,0], [35,29,0], [27,29,0], [13,42,11], [24,15,-14], [8,42,11], [19,8,-21], [10,7,-22], - [10,15,-14], [23,20,1], [25,30,1], [20,20,1], [25,30,1], [21,20,1], [18,29,0], [23,28,9], - [26,29,0], [12,29,0], [14,38,9], [25,29,0], [13,29,0], [39,19,0], [26,19,0], [23,20,1], - [25,27,8], [25,27,8], [19,19,0], [18,20,1], [16,28,1], [26,20,1], [24,20,1], [33,20,1], - [24,19,0], [24,28,9], [19,19,0], [24,2,-10], [48,2,-10], [21,9,-21], [20,5,-24], [20,7,-22] - ], - cmti10: [ - [29,28,0], [31,30,0], [33,30,1], [27,30,0], [31,28,0], [35,28,0], [33,28,0], [35,29,0], - [30,28,0], [34,28,0], [32,29,0], [34,38,9], [27,38,9], [29,38,9], [40,38,9], [41,38,9], - [14,20,1], [16,28,9], [18,9,-20], [23,9,-20], [23,6,-20], [24,8,-21], [24,3,-22], [28,8,-22], - [14,9,8], [25,38,9], [30,20,1], [30,20,1], [23,28,5], [39,28,0], [44,30,1], [34,34,3], - [15,6,-11], [16,30,0], [21,13,-16], [34,37,8], [29,30,1], [35,34,3], [33,31,1], [16,13,-16], - [22,42,11], [16,42,11], [24,18,-13], [31,26,3], [10,13,8], [14,3,-7], [10,5,0], [26,42,11], - [23,29,1], [19,28,0], [23,29,1], [24,29,1], [20,36,8], [24,29,1], [24,29,1], [26,29,1], - [23,29,1], [23,29,1], [13,18,0], [13,26,8], [14,30,9], [32,11,-5], [19,30,9], [23,30,0], - [33,30,1], [29,30,0], [31,28,0], [34,30,1], [32,28,0], [31,28,0], [31,28,0], [34,30,1], - [35,28,0], [21,28,0], [26,29,1], [36,28,0], [26,28,0], [42,28,0], [35,28,0], [33,30,1], - [30,28,0], [33,37,8], [30,29,1], [26,30,1], [34,28,0], [35,29,1], [36,29,1], [47,29,1], - [34,28,0], [36,28,0], [29,28,0], [19,42,11], [26,13,-16], [16,42,11], [22,8,-21], [15,5,-23], - [15,13,-16], [22,20,1], [19,30,1], [20,20,1], [23,30,1], [20,20,1], [21,38,9], [20,28,9], - [22,30,1], [14,28,1], [17,36,9], [21,30,1], [13,30,1], [35,20,1], [25,20,1], [21,20,1], - [21,27,8], [21,27,8], [21,20,1], [18,20,1], [16,27,1], [23,20,1], [21,20,1], [29,20,1], - [22,20,1], [22,28,9], [20,20,1], [23,2,-10], [43,2,-10], [24,9,-20], [24,5,-23], [23,5,-23] - ] -}); - -jsMath.Img.AddFont(358,{ - cmr10: [ - [29,34,0], [39,36,0], [36,37,2], [33,36,0], [31,34,0], [36,34,0], [33,34,0], [36,35,0], - [33,34,0], [36,34,0], [34,35,0], [31,35,0], [26,35,0], [26,35,0], [40,35,0], [40,35,0], - [13,22,0], [13,33,11], [15,11,-24], [20,11,-24], [19,7,-25], [20,9,-25], [22,2,-27], [24,10,-26], - [18,11,10], [24,36,1], [34,23,1], [37,23,1], [23,32,5], [43,34,0], [49,37,2], [36,40,3], - [13,7,-13], [10,36,0], [17,15,-19], [39,44,10], [22,40,3], [39,40,3], [36,38,2], [11,15,-19], - [17,50,13], [15,50,13], [22,22,-15], [36,34,5], [10,16,10], [14,3,-9], [10,6,0], [22,50,13], - [23,35,2], [21,33,0], [22,33,0], [23,35,2], [24,34,0], [22,35,2], [23,35,2], [24,36,2], - [23,35,2], [23,35,2], [10,22,0], [10,32,10], [10,36,11], [36,12,-6], [21,36,11], [21,35,0], - [36,36,1], [36,36,0], [32,34,0], [33,37,2], [35,34,0], [32,34,0], [30,34,0], [37,37,2], - [36,34,0], [17,34,0], [23,36,2], [37,34,0], [29,34,0], [44,34,0], [36,34,0], [36,37,2], - [31,34,0], [36,45,10], [36,36,2], [25,37,2], [34,34,0], [36,36,2], [36,36,2], [50,36,2], - [36,34,0], [37,34,0], [28,34,0], [13,50,13], [23,15,-19], [8,50,13], [19,8,-26], [10,6,-27], - [10,15,-19], [25,23,1], [26,35,1], [21,23,1], [26,35,1], [21,23,1], [18,35,0], [24,34,11], - [27,34,0], [13,33,0], [13,44,11], [26,34,0], [13,34,0], [40,22,0], [27,22,0], [24,23,1], - [26,32,10], [26,32,10], [18,22,0], [18,23,1], [17,32,1], [27,23,1], [25,23,1], [35,23,1], - [26,22,0], [25,33,11], [20,22,0], [25,2,-12], [49,2,-12], [21,10,-25], [21,5,-28], [20,6,-27] - ], - cmmi10: [ - [36,34,0], [39,36,0], [37,37,2], [33,36,0], [39,34,0], [44,34,0], [40,34,0], [35,35,0], - [32,34,0], [34,34,0], [39,35,0], [30,23,1], [29,45,10], [27,33,11], [23,36,1], [19,23,1], - [24,46,11], [25,33,11], [23,36,1], [16,23,1], [27,23,1], [27,35,1], [29,33,11], [26,22,0], - [22,46,11], [28,23,1], [25,33,11], [28,23,1], [26,23,1], [26,23,1], [29,45,11], [30,33,11], - [32,45,11], [30,23,1], [22,25,2], [28,36,1], [41,23,1], [25,32,10], [21,28,6], [31,33,11], - [47,15,-11], [47,15,1], [47,15,-11], [47,15,1], [11,12,-11], [11,12,-11], [24,26,1], [24,26,1], - [23,25,2], [21,23,0], [22,23,0], [23,34,11], [24,33,10], [22,34,11], [23,35,2], [24,34,11], - [23,35,2], [23,34,11], [10,6,0], [10,16,10], [34,29,2], [22,50,13], [34,29,2], [25,24,0], - [28,38,2], [36,36,0], [38,34,0], [38,37,2], [40,34,0], [38,34,0], [37,34,0], [38,37,2], - [44,34,0], [25,34,0], [32,36,2], [44,34,0], [32,34,0], [52,34,0], [44,34,0], [37,37,2], - [37,34,0], [37,45,10], [37,36,2], [32,37,2], [35,34,0], [38,36,2], [38,36,2], [52,36,2], - [42,34,0], [38,34,0], [36,34,0], [17,39,2], [16,47,11], [17,47,11], [47,13,-6], [47,13,-6], - [20,36,1], [25,23,1], [21,35,1], [22,23,1], [26,35,1], [22,23,1], [28,46,11], [24,33,11], - [27,35,1], [15,34,1], [21,44,11], [25,35,1], [13,35,1], [42,23,1], [28,23,1], [23,23,1], - [27,32,10], [23,32,10], [22,23,1], [21,23,1], [17,32,1], [27,23,1], [23,23,1], [34,23,1], - [26,23,1], [25,33,11], [23,23,1], [15,23,1], [19,33,11], [31,34,11], [31,10,-25], [32,7,-26] - ], - cmsy10: [ - [34,3,-11], [10,6,-9], [31,25,0], [22,22,-1], [36,28,2], [24,24,0], [36,33,0], [36,34,9], - [36,34,5], [36,34,5], [36,34,5], [36,34,5], [36,34,5], [47,47,11], [22,20,-2], [22,20,-2], - [36,24,0], [36,22,-1], [34,39,7], [34,39,7], [34,39,7], [34,39,7], [34,39,7], [34,39,7], - [36,12,-6], [36,22,-2], [34,29,2], [34,29,2], [47,32,4], [47,32,4], [34,29,2], [34,29,2], - [47,18,-3], [47,18,-3], [21,44,10], [21,44,10], [47,18,-3], [47,45,10], [47,44,10], [36,22,-1], - [47,28,2], [47,28,2], [29,44,10], [29,44,10], [48,28,2], [47,45,10], [47,44,10], [36,23,1], - [13,26,-2], [47,23,1], [29,29,2], [29,29,2], [41,36,0], [41,36,11], [32,47,11], [7,19,-3], - [28,36,2], [25,34,0], [30,14,-4], [23,42,4], [35,38,2], [34,36,1], [36,33,0], [36,33,0], - [28,34,0], [40,39,3], [33,37,2], [27,37,2], [38,34,0], [28,37,2], [41,36,2], [30,41,6], - [41,37,3], [34,34,0], [42,40,6], [36,37,2], [33,37,2], [55,38,3], [50,41,3], [39,37,2], - [36,37,3], [39,42,7], [42,36,2], [32,37,2], [40,36,0], [35,36,2], [33,37,3], [51,37,3], - [40,34,0], [36,41,7], [38,34,0], [30,32,2], [30,32,2], [30,32,2], [30,32,2], [30,32,2], - [28,34,0], [28,34,0], [21,50,13], [14,50,13], [21,50,13], [14,50,13], [21,50,13], [21,50,13], - [17,50,13], [14,50,13], [8,50,13], [18,50,13], [21,52,14], [29,52,14], [22,50,13], [11,34,5], - [42,50,48], [35,34,0], [39,36,2], [24,47,11], [30,30,0], [30,30,0], [35,39,7], [34,39,7], - [19,46,11], [19,46,11], [19,46,11], [29,44,10], [37,43,7], [36,44,8], [36,38,2], [36,43,7] - ], - cmex10: [ - [21,59,57], [15,59,57], [20,59,57], [11,59,57], [22,59,57], [14,59,57], [22,59,57], [14,59,57], - [23,59,57], [23,59,57], [20,59,57], [19,59,57], [10,33,31], [21,33,31], [26,59,57], [26,59,57], - [28,89,87], [21,89,87], [35,118,116], [26,118,116], [26,118,116], [14,118,116], [28,118,116], [17,118,116], - [28,118,116], [17,118,116], [31,118,116], [31,118,116], [32,118,116], [31,118,116], [49,118,116], [49,118,116], - [38,147,145], [28,147,145], [28,147,145], [16,147,145], [31,147,145], [18,147,145], [31,147,145], [18,147,145], - [33,147,145], [33,147,145], [35,148,146], [33,148,146], [60,147,145], [60,147,145], [37,89,87], [37,89,87], - [42,89,87], [29,89,87], [33,89,87], [17,89,87], [33,89,87], [17,89,87], [20,31,30], [17,31,30], - [36,46,45], [25,46,45], [36,46,45], [25,46,45], [25,90,89], [36,90,89], [25,17,16], [18,31,30], - [42,90,87], [29,90,87], [20,31,30], [29,31,30], [26,89,87], [25,89,87], [39,50,49], [52,70,69], - [30,56,55], [47,110,109], [52,50,49], [72,70,69], [52,50,49], [72,70,69], [52,50,49], [72,70,69], - [49,50,49], [44,50,49], [30,56,55], [39,50,49], [39,50,49], [39,50,49], [39,50,49], [39,50,49], - [68,70,69], [60,70,69], [47,110,109], [52,70,69], [52,70,69], [52,70,69], [52,70,69], [52,70,69], - [44,50,49], [60,70,69], [29,10,-27], [51,10,-28], [72,10,-28], [28,7,-29], [49,7,-30], [71,7,-30], - [23,89,87], [12,89,87], [25,89,87], [15,89,87], [25,89,87], [15,89,87], [27,89,87], [27,89,87], - [50,59,57], [50,89,87], [50,118,116], [50,148,146], [37,90,89], [37,32,31], [53,31,29], [26,31,30], - [28,31,30], [28,31,30], [25,17,11], [25,17,11], [25,17,0], [25,17,0], [36,31,30], [36,31,30] - ], - cmbx10: [ - [32,34,0], [45,35,0], [41,36,1], [38,35,0], [36,34,0], [43,34,0], [38,34,0], [41,35,0], - [38,34,0], [41,34,0], [39,35,0], [37,35,0], [30,35,0], [30,35,0], [46,35,0], [46,35,0], - [15,23,0], [17,33,10], [17,11,-24], [23,11,-24], [22,7,-25], [23,10,-24], [25,3,-27], [28,9,-26], - [22,11,10], [28,36,1], [40,24,1], [43,24,1], [27,34,6], [50,34,0], [56,36,1], [41,40,3], - [16,7,-13], [13,35,0], [23,18,-16], [44,44,10], [25,40,3], [44,40,3], [41,36,1], [13,18,-16], - [19,50,13], [17,50,13], [25,22,-15], [41,39,7], [13,18,10], [16,6,-8], [12,8,0], [25,50,13], - [26,34,1], [25,33,0], [26,33,0], [26,34,1], [27,33,0], [26,34,1], [26,34,1], [28,35,1], - [26,34,1], [26,34,1], [12,22,0], [12,32,10], [13,36,11], [41,15,-5], [24,35,10], [24,35,0], - [41,36,1], [41,35,0], [37,34,0], [38,36,1], [41,34,0], [36,34,0], [34,34,0], [42,36,1], - [43,34,0], [20,34,0], [26,35,1], [42,34,0], [32,34,0], [52,34,0], [43,34,0], [40,36,1], - [36,34,0], [40,45,10], [43,35,1], [29,36,1], [38,34,0], [42,35,1], [42,35,1], [58,35,1], - [41,34,0], [42,34,0], [32,34,0], [15,50,13], [28,18,-16], [10,50,13], [22,9,-25], [12,9,-26], - [12,18,-16], [28,24,1], [30,35,1], [24,24,1], [30,35,1], [25,24,1], [22,35,0], [28,33,10], - [31,34,0], [15,35,0], [17,45,10], [29,34,0], [15,34,0], [46,23,0], [31,23,0], [27,24,1], - [30,33,10], [30,33,10], [22,23,0], [21,24,1], [19,33,1], [31,24,1], [29,23,1], [40,23,1], - [29,22,0], [29,32,10], [23,22,0], [29,3,-12], [57,3,-12], [25,10,-25], [24,6,-28], [24,9,-26] - ], - cmti10: [ - [35,34,0], [37,36,0], [39,37,2], [32,36,0], [37,34,0], [42,34,0], [39,34,0], [41,35,0], - [36,34,0], [41,34,0], [38,35,0], [40,46,11], [32,46,11], [34,46,11], [47,46,11], [49,46,11], - [17,23,1], [18,33,11], [22,11,-24], [27,11,-24], [27,7,-24], [28,9,-25], [28,2,-27], [33,10,-26], - [17,11,10], [30,46,11], [36,23,1], [36,23,1], [27,33,6], [47,34,0], [52,37,2], [41,40,3], - [17,7,-13], [19,36,0], [26,15,-19], [41,44,10], [35,36,1], [42,40,3], [40,38,2], [19,15,-19], - [26,50,13], [19,50,13], [29,22,-15], [37,31,3], [11,16,10], [17,3,-9], [11,6,0], [31,50,13], - [28,35,2], [23,33,0], [27,35,2], [28,35,2], [24,43,10], [28,35,2], [28,35,2], [31,35,2], - [28,35,2], [28,35,2], [15,22,0], [15,32,10], [16,36,11], [39,12,-6], [22,36,11], [27,36,0], - [39,36,1], [34,36,0], [36,34,0], [40,37,2], [38,34,0], [37,34,0], [36,34,0], [40,37,2], - [42,34,0], [25,34,0], [31,36,2], [43,34,0], [31,34,0], [50,34,0], [42,34,0], [39,37,2], - [36,34,0], [39,45,10], [36,36,2], [31,37,2], [40,34,0], [42,36,2], [43,36,2], [56,36,2], - [41,34,0], [43,34,0], [35,34,0], [22,50,13], [30,15,-19], [19,50,13], [26,8,-26], [18,6,-27], - [18,15,-19], [27,23,1], [23,35,1], [24,23,1], [28,35,1], [23,23,1], [25,46,11], [24,33,11], - [27,35,1], [17,34,1], [20,44,11], [25,35,1], [15,35,1], [42,23,1], [29,23,1], [25,23,1], - [25,32,10], [25,32,10], [24,23,1], [21,23,1], [19,32,1], [28,23,1], [25,23,1], [35,23,1], - [26,23,1], [26,33,11], [23,23,1], [27,2,-12], [51,2,-12], [29,11,-24], [29,6,-27], [27,6,-27] - ] -}); - -jsMath.Img.AddFont(430,{ - cmr10: [ - [35,41,0], [47,43,0], [43,44,2], [39,43,0], [37,40,0], [43,41,0], [40,41,0], [43,42,0], - [40,41,0], [43,41,0], [40,42,0], [38,42,0], [32,42,0], [32,42,0], [48,42,0], [48,42,0], - [15,27,0], [16,40,13], [18,12,-30], [24,12,-30], [23,8,-30], [24,11,-30], [26,3,-32], [28,12,-31], - [22,13,12], [28,43,1], [41,28,1], [45,28,1], [28,39,7], [52,41,0], [59,44,2], [43,48,4], - [16,8,-16], [12,43,0], [21,18,-23], [46,53,12], [27,49,4], [46,49,4], [43,45,2], [13,18,-23], - [20,60,15], [18,60,15], [26,27,-18], [43,40,5], [12,19,12], [17,4,-11], [12,7,0], [27,60,15], - [28,42,2], [25,40,0], [27,40,0], [27,42,2], [28,40,0], [27,42,2], [27,42,2], [29,42,2], - [27,42,2], [27,42,2], [12,26,0], [12,38,12], [12,43,13], [43,15,-7], [25,43,13], [25,42,0], - [43,43,1], [43,43,0], [39,41,0], [40,44,2], [42,41,0], [39,41,0], [36,41,0], [44,44,2], - [43,41,0], [20,41,0], [28,43,2], [44,41,0], [35,41,0], [52,41,0], [43,41,0], [43,44,2], - [37,41,0], [43,54,12], [44,43,2], [30,44,2], [41,40,0], [43,43,2], [44,43,2], [60,43,2], - [43,41,0], [44,41,0], [34,41,0], [16,60,15], [28,18,-23], [10,60,15], [23,10,-31], [12,7,-33], - [12,18,-23], [30,28,1], [31,42,1], [25,28,1], [32,42,1], [25,28,1], [22,42,0], [29,40,13], - [32,41,0], [15,40,0], [16,53,13], [31,41,0], [16,41,0], [48,27,0], [32,27,0], [28,28,1], - [31,39,12], [32,39,12], [22,27,0], [22,28,1], [20,38,1], [32,28,1], [30,27,1], [42,27,1], - [31,26,0], [30,39,13], [24,26,0], [30,2,-15], [59,2,-15], [25,12,-30], [25,7,-33], [24,7,-33] - ], - cmmi10: [ - [43,41,0], [47,43,0], [44,44,2], [40,43,0], [46,40,0], [52,41,0], [48,41,0], [42,42,0], - [38,41,0], [41,41,0], [47,42,0], [36,28,1], [35,54,12], [33,40,13], [27,43,1], [23,27,1], - [28,55,13], [30,40,13], [27,43,1], [20,28,1], [33,28,1], [33,42,1], [34,40,13], [31,27,0], - [27,55,13], [34,27,1], [30,40,13], [34,27,1], [31,27,1], [31,28,1], [34,54,13], [36,40,13], - [38,54,13], [36,28,1], [26,29,2], [34,43,1], [49,27,1], [30,39,12], [25,34,7], [37,40,13], - [56,18,-13], [56,17,1], [56,18,-13], [56,17,1], [14,15,-13], [14,15,-13], [28,31,1], [28,31,1], - [28,29,2], [25,27,0], [27,27,0], [27,40,13], [28,40,12], [27,40,13], [27,42,2], [29,41,13], - [27,42,2], [27,40,13], [12,7,0], [12,19,12], [41,35,3], [27,60,15], [41,35,3], [30,29,0], - [34,45,2], [43,43,0], [45,41,0], [45,44,2], [48,41,0], [46,41,0], [45,41,0], [45,44,2], - [52,41,0], [30,41,0], [38,43,2], [53,41,0], [38,41,0], [62,41,0], [52,41,0], [44,44,2], - [45,41,0], [44,54,12], [45,43,2], [39,44,2], [42,40,0], [45,43,2], [46,43,2], [62,43,2], - [51,41,0], [45,41,0], [43,41,0], [20,47,2], [19,56,13], [20,56,13], [56,15,-7], [56,16,-7], - [24,43,1], [30,28,1], [25,42,1], [26,28,1], [31,42,1], [26,28,1], [33,55,13], [28,40,13], - [33,42,1], [18,40,1], [25,52,13], [30,42,1], [16,42,1], [51,28,1], [34,28,1], [28,28,1], - [31,39,12], [27,39,12], [26,28,1], [25,28,1], [20,38,1], [33,28,1], [28,28,1], [41,28,1], - [32,28,1], [29,40,13], [28,28,1], [18,28,1], [23,40,13], [37,40,13], [37,13,-30], [39,9,-31] - ], - cmsy10: [ - [41,3,-13], [12,7,-11], [38,29,0], [26,26,-2], [43,34,2], [29,29,0], [43,40,0], [43,40,10], - [43,40,5], [43,40,5], [43,40,5], [43,40,5], [43,40,5], [56,56,13], [27,24,-3], [27,24,-3], - [43,29,0], [43,26,-2], [41,47,9], [41,47,9], [41,47,9], [41,47,9], [41,47,9], [41,47,9], - [43,15,-7], [43,26,-3], [41,35,3], [41,35,3], [56,38,4], [56,38,4], [41,35,3], [41,35,3], - [56,22,-4], [56,22,-4], [26,53,12], [26,53,12], [56,22,-4], [56,54,12], [56,53,12], [43,26,-2], - [56,33,2], [56,33,2], [35,53,12], [35,53,12], [57,33,2], [56,54,12], [56,53,12], [43,28,1], - [16,31,-2], [56,28,1], [35,35,3], [35,35,3], [49,43,0], [49,43,13], [38,56,13], [8,23,-3], - [33,43,2], [30,41,0], [36,16,-5], [27,51,5], [43,45,2], [41,43,1], [43,40,0], [43,40,0], - [33,41,0], [48,46,3], [40,44,2], [32,44,2], [46,41,0], [34,44,2], [49,43,2], [36,50,8], - [49,44,3], [40,41,0], [50,49,8], [44,44,2], [39,44,2], [66,45,3], [60,49,3], [46,44,2], - [44,44,3], [47,50,8], [50,43,2], [38,44,2], [48,43,0], [42,43,2], [39,44,3], [62,44,3], - [48,41,0], [43,49,8], [46,41,0], [36,38,2], [36,38,2], [36,38,2], [36,38,2], [36,38,2], - [33,41,0], [33,41,0], [25,60,15], [16,60,15], [25,60,15], [16,60,15], [26,60,15], [26,60,15], - [20,60,15], [17,60,15], [10,60,15], [22,60,15], [26,63,17], [35,63,17], [27,60,15], [14,40,5], - [51,60,57], [43,41,0], [47,43,2], [28,56,13], [36,36,0], [36,36,0], [43,47,9], [41,47,9], - [23,55,13], [23,55,13], [23,55,13], [35,53,12], [45,51,8], [43,53,10], [43,45,2], [43,51,8] - ], - cmex10: [ - [25,72,69], [18,72,69], [24,72,69], [13,72,69], [27,72,69], [16,72,69], [27,72,69], [16,72,69], - [28,72,69], [28,72,69], [24,72,69], [22,72,69], [12,39,37], [25,39,37], [31,72,69], [31,72,69], - [34,107,104], [25,107,104], [42,143,140], [32,143,140], [31,143,140], [17,143,140], [34,143,140], [20,143,140], - [34,143,140], [20,143,140], [37,143,140], [37,143,140], [39,143,140], [37,143,140], [59,143,140], [59,143,140], - [45,178,175], [33,178,175], [34,178,175], [19,178,175], [37,178,175], [22,178,175], [37,178,175], [22,178,175], - [39,178,175], [39,178,175], [42,178,175], [40,178,175], [73,178,175], [73,178,175], [45,107,104], [45,107,104], - [50,108,105], [35,108,105], [39,107,104], [21,107,104], [39,107,104], [21,107,104], [24,37,36], [21,37,36], - [43,55,54], [30,55,54], [43,55,54], [30,55,54], [30,108,107], [43,108,107], [30,20,19], [21,37,36], - [50,107,104], [35,107,104], [24,37,36], [35,37,36], [31,107,104], [30,107,104], [46,60,59], [63,84,83], - [36,67,66], [56,133,132], [63,60,59], [86,84,83], [63,60,59], [86,84,83], [63,60,59], [86,84,83], - [59,60,59], [53,60,59], [36,67,66], [46,60,59], [46,60,59], [46,60,59], [46,60,59], [46,60,59], - [82,84,83], [73,84,83], [56,133,132], [63,84,83], [63,84,83], [63,84,83], [63,84,83], [63,84,83], - [53,60,59], [73,84,83], [35,11,-33], [61,13,-33], [87,13,-33], [33,8,-35], [59,9,-36], [86,9,-36], - [27,107,104], [15,107,104], [31,107,104], [18,107,104], [31,107,104], [18,107,104], [33,107,104], [33,107,104], - [61,72,69], [61,107,104], [61,143,140], [61,178,175], [44,109,107], [44,39,37], [64,38,35], [31,37,36], - [33,37,36], [33,37,36], [30,21,13], [29,21,13], [30,20,0], [29,20,0], [43,37,36], [43,37,36] - ], - cmbx10: [ - [38,41,0], [54,42,0], [49,43,1], [46,42,0], [43,40,0], [51,41,0], [46,41,0], [49,42,0], - [46,41,0], [49,41,0], [46,42,0], [45,42,0], [36,42,0], [36,42,0], [55,42,0], [55,42,0], - [17,27,0], [20,39,12], [20,12,-30], [27,12,-30], [27,9,-30], [28,12,-29], [30,4,-32], [33,11,-31], - [26,13,12], [34,43,1], [48,28,1], [51,28,1], [32,40,7], [60,41,0], [68,43,1], [49,49,4], - [19,8,-16], [15,42,0], [28,21,-20], [53,53,12], [31,49,4], [53,49,4], [50,43,1], [15,21,-20], - [23,60,15], [20,60,15], [30,27,-18], [49,46,8], [15,22,12], [19,6,-10], [14,10,0], [31,60,15], - [32,40,1], [30,39,0], [31,39,0], [32,40,1], [32,39,0], [31,40,1], [32,40,1], [33,41,1], - [32,40,1], [32,40,1], [14,27,0], [15,39,12], [15,43,13], [49,18,-6], [29,42,12], [29,42,0], - [49,43,1], [49,42,0], [45,41,0], [46,43,1], [49,41,0], [43,41,0], [40,41,0], [50,43,1], - [51,41,0], [24,41,0], [32,42,1], [51,41,0], [38,41,0], [63,41,0], [51,41,0], [48,43,1], - [43,41,0], [48,54,12], [51,42,1], [34,43,1], [45,40,0], [50,42,1], [50,42,1], [69,42,1], - [50,41,0], [51,41,0], [39,41,0], [18,60,15], [34,21,-20], [12,60,15], [27,10,-31], [14,10,-31], - [14,21,-20], [33,28,1], [36,42,1], [29,28,1], [36,42,1], [30,28,1], [26,42,0], [33,39,12], - [37,41,0], [17,41,0], [20,53,12], [35,41,0], [18,41,0], [56,27,0], [37,27,0], [32,28,1], - [36,39,12], [36,39,12], [27,27,0], [25,28,1], [23,39,1], [37,28,1], [35,28,1], [48,28,1], - [35,27,0], [35,39,12], [28,27,0], [34,3,-15], [68,3,-15], [29,12,-30], [29,7,-34], [28,9,-32] - ], - cmti10: [ - [42,41,0], [45,43,0], [47,44,2], [38,43,0], [45,40,0], [51,41,0], [47,41,0], [50,42,0], - [44,41,0], [49,41,0], [45,42,0], [47,55,13], [38,55,13], [40,55,13], [57,55,13], [58,55,13], - [20,28,1], [22,40,13], [26,13,-29], [33,13,-29], [32,9,-29], [34,11,-30], [34,3,-32], [40,12,-31], - [20,13,12], [37,55,13], [43,28,1], [43,28,1], [33,39,7], [57,41,0], [63,44,2], [49,48,4], - [21,8,-16], [23,43,0], [31,18,-23], [49,53,12], [42,43,1], [50,49,4], [48,45,2], [22,18,-23], - [31,60,15], [23,60,15], [35,27,-18], [45,37,4], [14,19,12], [20,4,-11], [14,7,0], [37,60,15], - [33,42,2], [28,40,0], [33,42,2], [34,42,2], [28,52,12], [34,42,2], [34,42,2], [37,42,2], - [33,42,2], [33,42,2], [18,26,0], [18,38,12], [19,43,13], [46,15,-7], [27,43,13], [33,43,0], - [47,43,1], [41,43,0], [44,41,0], [48,44,2], [46,41,0], [44,41,0], [44,41,0], [48,44,2], - [51,41,0], [30,41,0], [37,43,2], [51,41,0], [37,41,0], [60,41,0], [51,41,0], [47,44,2], - [44,41,0], [47,54,12], [43,43,2], [38,44,2], [48,40,0], [51,43,2], [52,43,2], [67,43,2], - [49,41,0], [52,41,0], [42,41,0], [27,60,15], [36,18,-23], [23,60,15], [31,10,-31], [22,7,-33], - [22,18,-23], [32,28,1], [28,42,1], [28,28,1], [34,42,1], [28,28,1], [29,55,13], [29,40,13], - [32,42,1], [20,40,1], [25,52,13], [30,42,1], [19,42,1], [50,28,1], [35,28,1], [31,28,1], - [31,39,12], [30,39,12], [29,28,1], [25,28,1], [22,38,1], [34,28,1], [30,28,1], [42,28,1], - [31,28,1], [31,40,13], [28,28,1], [33,2,-15], [62,2,-15], [34,13,-29], [34,7,-33], [33,7,-33] - ] -}); diff --git a/literature/static/jsMath/uncompressed/font.js b/literature/static/jsMath/uncompressed/font.js deleted file mode 100644 index 51f0a2fe6..000000000 --- a/literature/static/jsMath/uncompressed/font.js +++ /dev/null @@ -1,1677 +0,0 @@ -jsMath.Img.AddFont(50,{ - cmr10: [ - [4,5,0], [6,5,0], [5,6,1], [5,5,0], [5,5,0], [5,5,0], [5,5,0], [5,5,0], - [5,5,0], [5,5,0], [5,5,0], [5,5,0], [4,5,0], [4,5,0], [6,5,0], [6,5,0], - [2,3,0], [3,5,2,1], [2,2,-3], [2,2,-3,-1], [2,2,-3,-1], [3,2,-3], [3,2,-3], [2,2,-3,-2], - [2,2,2,-1], [4,5,0], [5,4,0], [6,4,0], [4,5,1], [6,5,0], [7,6,1], [5,6,1], - [2,1,-2], [2,5,0], [3,2,-3], [6,7,2], [4,6,1], [6,7,1], [5,6,1], [2,2,-3], - [3,7,2], [2,7,2], [3,4,-2], [5,5,1], [2,2,1], [2,1,-1], [2,1,0], [3,7,2], - [4,6,1], [3,5,0], [4,5,0], [4,6,1], [4,5,0], [4,6,1], [4,6,1], [4,6,1], - [4,6,1], [4,6,1], [2,3,0], [2,4,1], [2,6,2], [5,3,0], [3,6,2], [3,5,0], - [5,5,0], [5,5,0], [5,5,0], [5,6,1], [5,5,0], [5,5,0], [5,5,0], [5,6,1], - [5,5,0], [3,5,0], [3,6,1], [5,5,0], [4,5,0], [6,5,0], [5,5,0], [5,6,1], - [5,5,0], [5,7,2], [5,6,1], [4,6,1], [5,5,0], [5,6,1], [5,5,0], [7,5,0], - [7,5,0,2], [5,5,0], [4,5,0], [2,8,2], [3,3,-2,-1], [2,8,2], [2,1,-4,-1], [2,1,-4], - [2,3,-2], [4,4,0], [4,5,0], [3,4,0], [4,5,0], [3,4,0], [3,5,0], [4,5,2], - [4,5,0], [2,5,0], [3,7,2,1], [4,5,0], [2,5,0], [6,3,0], [4,3,0], [4,4,0], - [4,5,2], [4,5,2], [3,3,0], [3,4,0], [3,5,0], [4,3,0], [4,3,0], [5,3,0], - [4,3,0], [4,5,2], [3,3,0], [4,1,-1], [7,1,-1], [2,2,-3,-1], [3,1,-4], [3,1,-4], - [3,11,20,28,37,45,54,63,71,80,88,97,105,114,122,131], - [9,17,26,34,42,51,59,67], - [141,73] - ], - cmmi10: [ - [5,5,0], [6,5,0], [6,6,1], [5,5,0], [6,5,0], [6,5,0], [6,5,0], [5,5,0], - [5,5,0], [5,5,0], [6,5,0], [5,3,0], [4,6,1], [4,5,2], [3,5,0], [3,3,0], - [4,7,2], [4,5,2], [4,5,0], [3,3,0], [4,3,0], [4,5,0], [4,5,2], [4,3,0], - [3,7,2], [4,3,0], [4,5,2], [4,3,0], [4,3,0], [4,3,0], [4,7,2], [4,5,2], - [5,7,2], [5,3,0], [3,5,1], [4,5,0], [6,3,0], [4,5,2], [3,4,1], [5,5,2], - [7,3,-1], [9,2,0,2], [7,3,-1], [9,2,0,2], [4,3,-1,2], [2,3,-1], [4,4,0], [4,4,0], - [4,5,1], [3,3,0], [4,4,0], [4,6,2], [4,6,2], [3,5,2], [4,6,1], [4,5,2], - [4,6,1], [4,6,2], [2,1,0], [2,2,1], [5,5,1], [3,7,2], [5,5,1], [4,4,0], - [4,6,1], [5,5,0], [6,5,0], [6,6,1], [6,5,0], [6,5,0], [6,5,0], [6,6,1], - [6,5,0], [4,5,0], [5,6,1], [6,5,0], [5,5,0], [7,5,0], [8,5,0,2], [6,6,1], - [6,5,0], [6,7,2], [6,6,1], [5,6,1], [5,5,0], [6,6,1], [6,5,0], [7,5,0], - [8,5,0,2], [6,5,0], [5,5,0], [3,5,0], [3,7,2], [3,7,2], [7,2,-1], [9,2,-1,2], - [3,5,0], [4,3,0], [3,5,0], [3,3,0], [4,5,0], [3,3,0], [4,7,2], [4,5,2], - [4,5,0], [2,5,0], [3,7,2], [4,5,0], [2,5,0], [6,3,0], [4,3,0], [4,3,0], - [4,5,2], [3,5,2], [3,3,0], [3,3,0], [3,5,0], [4,3,0], [4,3,0], [5,3,0], - [4,3,0], [4,5,2], [3,3,0], [2,3,0], [3,5,2], [5,5,2], [4,2,-3,-1], [3,1,-4,-2], - [3,11,19,28,36,44,53,61,69,77,86,94,102,111,119,127], - [9,17,26,34,42,51,59,67], - [137,73] - ], - cmsy10: [ - [5,1,-1], [2,1,-1], [4,4,0,-1], [3,4,0], [5,5,1], [4,4,0], [5,5,0], [5,5,1], - [5,5,1], [5,5,1], [5,5,1], [5,5,1], [5,5,1], [7,7,2], [3,4,0], [3,4,0], - [5,4,0], [5,4,0], [5,6,1], [5,6,1], [5,6,1], [5,6,1], [5,6,1], [5,6,1], - [5,2,-1], [5,4,0], [5,5,1], [5,5,1], [7,5,1], [7,5,1], [5,5,1], [5,5,1], - [7,3,0], [7,3,0], [3,7,2], [3,7,2], [7,3,0], [7,7,2], [7,7,2], [5,4,0], - [7,4,0], [7,4,0], [4,7,2], [4,7,2], [7,4,0], [7,7,2], [7,7,2], [5,3,0], - [2,4,0], [7,3,0], [4,5,1], [4,5,1], [6,5,0], [6,6,2], [4,7,2,-1], [1,3,0], - [4,5,0], [4,5,0], [5,3,0], [4,7,1], [5,6,1], [5,5,0], [5,5,0], [5,5,0], - [4,5,0], [6,6,1], [5,6,1], [4,6,1], [6,5,0], [4,6,1], [6,6,1], [5,6,1], - [6,6,1], [5,5,0], [6,6,1], [5,6,1], [5,6,1], [8,6,1], [9,7,1,2], [6,6,1], - [6,6,1], [6,6,1], [6,6,1], [5,6,1], [6,5,0], [6,6,1,1], [5,6,1], [8,6,1], - [6,5,0], [5,6,1], [6,5,0], [5,5,1], [5,5,0], [5,5,1], [5,4,0], [5,4,0], - [4,5,0], [4,5,0], [2,8,2,-1], [2,8,2], [2,8,2,-1], [2,8,2], [3,8,2], [3,8,2], - [3,8,2], [2,8,2], [2,7,2], [3,8,2], [3,8,2], [4,8,2], [3,8,2], [2,5,1], - [6,8,7], [5,5,0], [6,6,1], [4,7,2], [5,4,0], [5,5,0], [5,6,1], [5,6,1], - [3,7,2], [3,7,2], [3,7,2], [4,7,2], [6,6,1], [5,6,1], [5,6,1], [5,6,1], - [3,13,23,33,43,53,63,73,83,93,103,113,123,133,142,152], - [9,24,38,52,66,80,95,109], - [164,121] - ], - cmex10: [ - [6,9,8,3], [3,9,8], [2,10,9,-1], [2,10,9], [2,10,9,-1], [2,10,9], [2,9,8,-1], [2,9,8], - [2,9,8,-1], [2,9,8,-1], [3,9,8], [3,9,8], [1,5,5,-1], [2,5,5,-1], [4,9,8], [4,9,8], - [7,14,13,3], [3,14,13], [4,18,17,-1], [4,18,17], [3,18,17,-1], [2,18,17], [3,18,17,-1], [3,18,17], - [3,18,17,-1], [3,18,17], [4,18,17,-1], [4,18,17,-1], [4,18,17,-1], [5,18,17], [7,18,17], [7,18,17], - [9,22,21,3], [4,22,21], [3,22,21,-1], [3,22,21], [4,22,21,-1], [3,22,21], [4,22,21,-1], [3,22,21], - [4,22,21,-1], [4,22,21,-1], [4,22,21,-1], [5,22,21], [9,22,21], [9,22,21], [6,14,13], [6,14,13], - [9,14,13,3], [5,14,13], [3,14,13,-2], [3,14,13], [3,14,13,-2], [3,14,13], [1,5,5,-2], [2,5,5,-1], - [3,7,7,-2], [3,7,7,-1], [3,7,7,-2], [3,7,7,-1], [3,13,13,-1], [3,13,13,-2], [2,3,3,-2], [1,5,5,-2], - [9,14,13,3], [5,14,13], [1,5,5,-2], [2,5,5,-3], [4,14,13], [4,14,13], [6,7,7], [8,10,10], - [5,8,8], [7,16,16], [8,7,7], [11,10,10], [11,7,7,3], [11,10,10], [11,7,7,3], [11,10,10], - [10,8,7,3], [7,7,7], [5,8,8], [6,7,7], [6,7,7], [6,7,7], [6,7,7], [6,7,7], - [10,10,10], [9,10,10], [7,16,16], [8,10,10], [8,10,10], [8,10,10], [8,10,10], [8,10,10], - [10,8,7,3], [9,10,10], [4,1,-4], [7,2,-4], [10,2,-4], [4,1,-4], [7,2,-4], [10,2,-4], - [6,19,13,3], [2,14,13], [3,14,13,-1], [3,14,13], [3,14,13,-1], [3,14,13], [3,14,13,-1], [3,14,13,-1], - [10,9,8,3], [6,13,13,-1], [6,17,17,-1], [6,21,21,-1], [5,13,13,-1], [2,5,5,-4], [4,5,4,-4], [3,5,5,-1], - [3,5,5,-1], [4,4,4], [5,3,2,1], [4,3,2], [4,3,0], [4,3,0], [5,5,5], [5,4,4], - [3,16,28,41,53,66,78,91,103,116,129,141,154,166,179,191], - [11,42,72,103,134,165,196,226], - [205,256] - ], - cmbx10: [ - [5,5,0], [7,5,0], [6,5,0], [6,5,0], [5,5,0], [6,5,0], [6,5,0], [6,5,0], - [6,5,0], [6,5,0], [6,5,0], [6,5,0], [5,5,0], [5,5,0], [7,5,0], [7,5,0], - [2,4,0], [3,6,2,1], [3,2,-3], [3,2,-3,-1], [2,2,-3,-1], [4,2,-3], [4,2,-3], [2,2,-3,-2], - [2,2,2,-1], [4,5,0], [6,4,0], [6,4,0], [4,5,1], [7,5,0], [8,6,1], [6,6,1], - [3,1,-2], [2,5,0], [4,3,-2], [7,7,2], [4,6,1], [7,7,1], [6,5,0], [2,3,-2], - [3,8,2], [3,8,2], [4,4,-2], [6,6,1], [2,2,1], [3,1,-1], [2,1,0], [4,8,2], - [4,5,0], [4,5,0], [4,5,0], [4,5,0], [4,5,0], [4,5,0], [4,5,0], [4,5,0], - [4,5,0], [4,5,0], [2,3,0], [2,4,1], [2,6,2], [6,3,0], [4,6,2], [4,5,0], - [6,5,0], [6,5,0], [6,5,0], [6,5,0], [6,5,0], [5,5,0], [5,5,0], [6,5,0], - [6,5,0], [3,5,0], [4,6,1], [6,5,0], [5,5,0], [8,5,0], [6,5,0], [6,5,0], - [5,5,0], [6,7,2], [6,5,0], [4,5,0], [6,5,0], [6,5,0], [6,5,0], [8,5,0], - [6,5,0], [6,5,0], [5,5,0], [2,8,2], [3,3,-2,-1], [2,8,2], [2,2,-3,-1], [2,2,-3], - [2,3,-2], [4,4,0], [5,5,0], [4,4,0], [5,5,0], [4,4,0], [3,5,0], [4,6,2], - [5,5,0], [2,5,0], [3,7,2,1], [4,5,0], [2,5,0], [7,4,0], [5,4,0], [4,4,0], - [5,6,2], [5,6,2], [3,4,0], [3,4,0], [3,5,0], [5,4,0], [4,4,0], [6,4,0], - [4,4,0], [4,6,2], [4,4,0], [4,1,-1], [8,1,-1], [3,2,-3,-1], [4,1,-4], [4,2,-3], - [3,13,23,33,42,52,62,72,82,92,102,111,121,131,141,151], - [9,17,26,34,42,51,59,67], - [162,73] - ], - cmti10: [ - [5,5,0], [6,5,0], [5,6,1,-1], [5,5,0], [6,5,0], [6,5,0], [6,5,0], [5,5,0,-1], - [5,5,0,-1], [5,5,0,-1], [6,5,0], [6,7,2], [5,7,2], [5,7,2], [7,7,2], [9,7,2,2], - [3,3,0], [4,5,2,1], [1,2,-3,-2], [2,2,-3,-2], [2,2,-3,-2], [2,2,-3,-2], [2,2,-3,-2], [2,2,-3,-3], - [2,2,2,-1], [4,7,2], [5,3,0], [5,3,0], [4,5,1], [7,5,0], [6,6,1,-1], [8,6,1,2], - [3,1,-2], [3,5,0], [3,2,-3,-1], [5,7,2,-1], [5,5,0], [5,7,1,-1], [6,6,1], [2,2,-3,-1], - [3,7,2,-1], [3,7,2], [3,3,-2,-1], [5,5,1,-1], [2,3,2], [3,1,-1], [2,1,0], [5,8,2], - [4,6,1], [3,5,0,-1], [4,6,1], [4,6,1], [4,7,2], [4,6,1], [4,6,1], [4,5,0,-1], - [4,6,1], [4,6,1], [2,3,0], [2,5,2], [3,6,2], [5,3,0,-1], [3,6,2], [3,5,0,-1], - [5,5,0,-1], [5,5,0], [6,5,0], [5,6,1,-1], [6,5,0], [6,5,0], [6,5,0], [5,6,1,-1], - [6,5,0], [4,5,0], [5,6,1], [6,5,0], [5,5,0], [7,5,0], [6,5,0], [5,6,1,-1], - [5,5,0], [5,7,2,-1], [5,6,1], [5,6,1], [5,5,0,-1], [5,6,1,-1], [5,5,0,-1], [7,5,0,-1], - [8,5,0,2], [5,5,0,-1], [5,5,0], [3,8,2], [2,3,-2,-2], [3,8,2], [2,1,-4,-2], [2,1,-4,-1], - [2,3,-2,-1], [4,3,0], [4,5,0], [4,3,0], [4,5,0], [4,3,0], [4,7,2], [4,5,2], - [4,5,0], [3,5,0], [4,7,2,1], [4,5,0], [2,5,0], [6,3,0], [4,3,0], [4,3,0], - [4,5,2], [4,5,2], [4,3,0], [3,3,0], [3,5,0], [4,3,0], [4,3,0], [5,3,0], - [4,3,0], [4,5,2], [3,3,0], [3,1,-1,-1], [6,1,-1,-1], [6,4,-1,2], [2,1,-4,-2], [2,1,-4,-2], - [3,11,20,28,37,45,54,62,71,79,88,96,105,113,122,130], - [9,17,26,34,42,51,59,67], - [140,73] - ] -}); - -jsMath.Img.AddFont(60,{ - cmr10: [ - [5,6,0], [7,6,0], [6,7,1], [6,6,0], [5,6,0], [6,6,0], [6,6,0], [6,6,0], - [6,6,0], [6,6,0], [6,6,0], [5,6,0], [4,6,0], [4,6,0], [7,6,0], [7,6,0], - [2,4,0], [3,6,2,1], [2,2,-4,-1], [2,2,-4,-1], [2,1,-4,-1], [4,2,-4], [4,1,-4], [2,2,-4,-2], - [2,2,2,-1], [4,6,0], [6,5,1], [6,4,0], [4,5,1], [7,6,0], [8,7,1], [6,7,1], - [2,1,-2], [2,6,0], [3,3,-3], [6,8,2], [4,7,1], [7,7,1], [6,7,1], [2,3,-3], - [3,8,2], [3,8,2], [4,4,-2], [6,6,1], [2,3,2], [3,1,-1], [2,1,0], [4,8,2], - [4,7,1], [4,6,0], [4,6,0], [4,7,1], [4,6,0], [4,7,1], [4,7,1], [4,7,1], - [4,7,1], [4,7,1], [2,4,0], [2,6,2], [2,6,2], [6,2,-1], [4,6,2], [4,6,0], - [6,7,1], [6,6,0], [6,6,0], [6,7,1], [6,6,0], [6,6,0], [5,6,0], [6,7,1], - [6,6,0], [3,6,0], [4,7,1], [6,6,0], [5,6,0], [7,6,0], [6,6,0], [6,7,1], - [5,6,0], [6,8,2], [6,7,1], [4,7,1], [6,6,0], [6,7,1], [6,6,0], [8,6,0], - [6,6,0], [6,6,0], [5,6,0], [2,8,2], [3,3,-3,-1], [2,8,2], [2,2,-4,-1], [2,2,-4], - [2,3,-3], [4,5,1], [5,7,1], [4,4,0], [4,6,0], [4,4,0], [3,6,0], [4,6,2], - [5,6,0], [2,6,0], [3,8,2,1], [4,6,0], [2,6,0], [7,4,0], [5,4,0], [4,4,0], - [5,6,2], [4,6,2], [3,4,0], [3,5,1], [3,5,0], [5,4,0], [4,4,0], [6,4,0], - [4,4,0], [4,6,2], [4,4,0], [4,1,-2], [8,1,-2], [3,2,-4,-1], [4,2,-4], [2,2,-4,-1], - [3,14,24,34,44,55,65,75,85,95,106,116,126,136,147,157], - [11,21,31,41,51,61,71,81], - [169,87] - ], - cmmi10: [ - [6,6,0], [7,6,0], [6,7,1], [6,6,0], [7,6,0], [7,6,0], [7,6,0], [6,6,0], - [5,6,0], [6,6,0], [7,6,0], [5,5,1], [5,8,2], [5,6,2], [4,6,0], [3,4,0], - [4,8,2], [4,6,2], [4,6,0], [3,4,0], [5,4,0], [5,6,0], [5,6,2], [5,4,0], - [4,8,2], [5,4,0], [4,6,2], [5,5,1], [4,4,0], [5,4,0], [5,8,2], [5,6,2], - [5,8,2], [5,4,0], [4,5,1], [5,6,0], [7,4,0], [4,6,2], [4,5,1], [5,6,2], - [8,3,-1], [8,3,0], [8,3,-1], [8,3,0], [2,3,-1], [2,3,-1], [4,4,0], [4,4,0], - [4,5,1], [3,4,0,-1], [4,4,0], [4,6,2], [4,6,2], [4,6,2], [4,7,1], [4,6,2], - [4,7,1], [4,6,2], [2,1,0], [2,3,2], [6,6,1], [4,8,2], [6,6,1], [4,4,0], - [5,7,1], [6,6,0], [6,6,0], [6,7,1], [7,6,0], [6,6,0], [6,6,0], [6,7,1], - [7,6,0], [4,6,0], [5,7,1], [7,6,0], [5,6,0], [9,6,0], [9,6,0,2], [6,7,1], - [6,6,0], [6,8,2], [6,7,1], [6,7,1], [6,6,0], [6,7,1], [6,6,0], [9,6,0], - [9,6,0,2], [6,6,0], [6,6,0], [3,6,0], [3,8,2], [3,8,2], [8,2,-1], [8,2,-1], - [4,6,0], [4,4,0], [4,6,0], [4,5,1], [4,6,0], [4,4,0], [5,8,2], [4,6,2], - [5,6,0], [3,6,0], [3,8,2], [4,6,0], [2,6,0], [7,4,0], [5,4,0], [4,5,1], - [4,6,2], [4,6,2], [4,4,0], [4,5,1], [3,5,0], [5,4,0], [4,4,0], [6,4,0], - [5,4,0], [4,6,2], [4,4,0], [3,4,0], [3,6,2], [5,6,2], [4,2,-4,-1], [4,2,-4,-2], - [3,13,23,33,43,53,63,73,83,93,103,113,123,133,143,153], - [11,21,31,41,51,61,71,81], - [164,87] - ], - cmsy10: [ - [5,2,-1,-1], [2,2,-1], [4,4,0,-1], [4,4,0], [6,6,1], [4,4,0], [6,6,0], [6,6,2], - [6,6,1], [6,6,1], [6,6,1], [6,6,1], [6,6,1], [8,8,2], [4,4,0], [4,4,0], - [6,4,0], [6,4,0], [6,8,2], [6,8,2], [6,7,2], [6,7,2], [6,7,2], [6,7,2], - [6,2,-1], [6,4,0], [6,6,1], [6,6,1], [8,6,1], [8,6,1], [5,6,1,-1], [6,6,1], - [8,4,0], [8,4,0], [4,8,2], [4,8,2], [8,4,0], [8,8,2], [8,8,2], [6,4,0], - [8,6,1], [8,6,1], [5,8,2], [5,8,2], [8,6,1], [8,8,2], [8,8,2], [6,4,0], - [2,5,0], [8,4,0], [5,6,1], [5,6,1], [7,6,0], [7,6,2], [4,8,2,-1], [1,4,0], - [5,6,0], [4,6,0], [5,3,0], [4,7,1], [6,7,1], [6,7,1], [6,6,0], [6,6,0], - [5,6,0], [7,7,1], [6,7,1], [5,7,1], [7,6,0], [5,7,1], [7,7,1], [5,7,1], - [7,7,1], [5,6,0], [7,7,1], [6,7,1], [5,7,1], [9,7,1], [9,8,1,1], [7,7,1], - [6,7,1], [6,7,1,-1], [7,7,1], [6,7,1], [7,6,0], [7,7,1,1], [6,7,1], [9,7,1], - [7,6,0], [6,7,1], [6,6,0], [5,6,1], [5,5,0], [5,6,1], [5,5,0], [5,5,0], - [5,6,0], [5,6,0], [3,8,2,-1], [3,8,2], [3,8,2,-1], [3,8,2], [3,8,2,-1], [3,8,2], - [2,8,2,-1], [3,8,2], [1,8,2,-1], [2,8,2,-1], [4,8,2], [5,8,2], [4,8,2], [2,6,1], - [7,9,8], [6,6,0], [7,7,1], [4,8,2], [5,5,0], [5,5,0], [6,8,2], [6,8,2], - [3,8,2], [3,8,2], [3,8,2], [5,8,2], [6,7,1], [6,8,2], [6,7,1], [6,7,1], - [3,15,27,39,51,63,75,87,99,111,123,135,147,159,171,183], - [11,28,45,62,80,97,114,131], - [196,145] - ], - cmex10: [ - [3,10,9,-1], [3,11,10], [2,11,10,-1], [2,11,10], [3,11,10,-1], [3,10,10], [3,11,10,-1], [3,10,9], - [3,11,10,-1], [3,11,10,-1], [3,9,9], [3,11,10], [1,5,5,-1], [3,5,5,-1], [4,10,10], [4,10,9], - [4,15,14,-1], [4,15,14], [5,20,19,-1], [5,20,19], [2,20,19,-2], [3,20,19], [3,20,19,-2], [3,20,19], - [3,20,19,-2], [3,20,19], [4,20,19,-1], [4,20,19,-1], [5,20,19,-1], [5,20,19], [8,20,19], [8,20,19], - [5,25,24,-1], [5,25,24], [3,25,24,-2], [3,25,24], [3,25,24,-2], [3,25,24], [3,25,24,-2], [3,25,24], - [5,25,24,-1], [5,25,24,-1], [5,25,24,-1], [5,25,24,-1], [10,25,24], [10,25,24], [6,15,14], [6,15,14], - [5,16,15,-2], [5,16,15], [4,15,14,-2], [3,15,14], [4,16,15,-2], [3,16,15], [2,5,5,-2], [1,5,5,-2], - [3,8,8,-3], [3,8,8,-1], [3,9,8,-3], [3,9,8,-1], [3,16,15,-1], [3,16,15,-3], [1,4,3,-3], [1,5,5,-2], - [5,15,14,-2], [5,15,14], [2,5,5,-2], [2,5,5,-3], [4,15,14,-1], [4,15,14], [7,8,8], [9,12,12], - [5,9,9], [8,18,18], [9,8,8], [12,12,12], [9,8,8], [12,12,12], [9,8,8], [12,12,12], - [8,8,8], [7,8,8], [5,9,9], [7,8,8], [7,8,8], [7,8,8], [7,8,8], [7,8,8], - [11,12,12], [10,12,12], [8,18,18], [9,12,12], [9,12,12], [9,12,12], [9,12,12], [9,12,12], - [7,8,8], [10,12,12], [5,2,-4], [8,2,-4], [12,3,-4], [5,1,-5], [8,1,-5], [12,1,-5], - [3,16,15,-1], [2,16,15], [3,15,15,-1], [3,16,15], [3,15,14,-1], [3,15,14], [4,15,14,-1], [4,15,14,-1], - [7,10,10,-1], [7,14,14,-1], [7,19,19,-1], [7,24,24,-1], [5,15,15,-1], [1,5,5,-5], [4,6,5,-5], [3,5,5,-2], - [4,5,5,-1], [4,5,5,-1], [5,3,2,1], [5,3,2,1], [5,3,0,1], [5,3,0,1], [6,5,5], [6,5,5], - [4,19,34,49,64,79,94,109,124,139,154,169,184,199,215,230], - [13,50,87,124,161,198,235,272], - [246,308] - ], - cmbx10: [ - [5,6,0], [7,6,0], [7,7,1], [6,6,0], [6,6,0], [7,6,0], [6,6,0], [7,6,0], - [7,6,0], [7,6,0], [7,6,0], [6,6,0], [5,6,0], [5,6,0], [8,6,0], [8,6,0], - [3,4,0], [4,6,2,1], [2,2,-4,-1], [2,2,-4,-2], [3,2,-4,-1], [3,2,-4,-1], [4,1,-4], [3,2,-4,-2], - [3,2,2,-1], [5,6,0], [7,4,0], [7,4,0], [5,6,1], [8,6,0], [9,7,1], [7,7,1], - [3,2,-2], [2,6,0], [4,4,-2], [7,8,2], [4,7,1], [8,7,1], [7,7,1], [2,3,-3], - [3,8,2], [3,8,2], [4,4,-2], [7,6,1], [2,4,2], [3,2,-1], [2,2,0], [4,8,2], - [5,6,0], [4,6,0], [5,6,0], [5,7,1], [5,6,0], [5,6,0], [5,7,1], [5,6,0], - [5,7,1], [5,6,0], [2,4,0], [2,6,2], [2,6,2], [7,4,0], [4,6,2], [4,6,0], - [7,6,0], [7,6,0], [6,6,0], [7,7,1], [7,6,0], [6,6,0], [6,6,0], [7,7,1], - [7,6,0], [4,6,0], [5,7,1], [7,6,0], [6,6,0], [9,6,0], [7,6,0], [7,7,1], - [6,6,0], [7,8,2], [7,7,1], [5,7,1], [6,6,0], [7,7,1], [7,6,0], [10,6,0], - [7,6,0], [7,6,0], [6,6,0], [2,8,2,-1], [4,4,-2,-1], [2,8,2], [3,2,-4,-1], [2,2,-4], - [2,4,-2], [5,4,0], [5,6,0], [4,4,0], [5,6,0], [4,4,0], [4,6,0], [5,6,2], - [5,6,0], [3,6,0], [4,8,2,1], [5,6,0], [3,6,0], [8,4,0], [5,4,0], [5,4,0], - [5,6,2], [5,6,2], [4,4,0], [4,4,0], [3,5,0], [5,4,0], [5,4,0], [7,4,0], - [5,4,0], [5,6,2], [4,4,0], [5,1,-2], [9,1,-2], [3,2,-4,-1], [3,2,-4,-1], [3,2,-4,-1], - [3,15,27,39,51,63,75,86,98,110,122,134,146,157,169,181], - [11,21,31,41,51,61,71,81], - [194,87] - ], - cmti10: [ - [6,6,0], [6,6,0], [6,7,1,-1], [5,6,0], [6,6,0], [7,6,0], [7,6,0], [6,6,0,-1], - [5,6,0,-1], [6,6,0,-1], [6,6,0], [7,8,2,1], [6,8,2,1], [6,8,2,1], [9,8,2,1], [9,8,2,1], - [3,4,0], [4,6,2,1], [2,2,-4,-2], [3,2,-4,-2], [3,1,-4,-2], [3,2,-4,-2], [3,1,-4,-2], [3,2,-4,-3], - [2,2,2,-1], [6,8,2,1], [6,4,0], [6,4,0], [4,5,1], [8,6,0], [8,7,1,-1], [9,7,1,2], - [3,1,-2], [2,6,0,-1], [3,3,-3,-1], [6,8,2,-1], [6,6,0], [6,7,1,-1], [6,7,1,-1], [1,3,-3,-2], - [3,8,2,-1], [3,8,2], [4,4,-2,-1], [5,6,1,-1], [2,3,2], [3,1,-1], [1,1,0,-1], [5,8,2], - [4,7,1,-1], [3,6,0,-1], [5,7,1], [5,7,1], [4,8,2], [5,7,1], [4,7,1,-1], [4,7,1,-1], - [5,7,1], [5,7,1], [2,4,0,-1], [3,6,2], [3,6,2], [6,2,-1,-1], [4,6,2], [4,6,0,-1], - [6,7,1,-1], [6,6,0], [6,6,0], [6,7,1,-1], [7,6,0], [6,6,0], [6,6,0], [6,7,1,-1], - [7,6,0], [4,6,0], [5,7,1], [7,6,0], [5,6,0], [8,6,0], [7,6,0], [6,7,1,-1], - [6,6,0], [6,8,2,-1], [6,7,1], [5,7,1], [6,6,0,-1], [6,7,1,-1], [6,6,0,-1], [8,6,0,-1], - [9,6,0,2], [6,6,0,-1], [6,6,0], [4,8,2], [3,3,-3,-2], [3,8,2], [2,2,-4,-2], [1,2,-4,-2], - [2,3,-3,-1], [5,4,0], [3,6,0,-1], [4,4,0], [5,6,0], [4,4,0], [5,8,2,1], [4,6,2], - [5,6,0], [3,6,0], [4,8,2,1], [4,6,0], [3,6,0], [7,4,0], [5,4,0], [4,4,0], - [4,6,2], [4,6,2], [4,4,0], [4,5,1], [3,5,0], [5,4,0], [4,4,0], [6,4,0], - [4,4,0], [4,6,2], [4,4,0], [4,1,-2,-1], [7,1,-2,-1], [3,2,-4,-2], [3,2,-4,-2], [3,2,-4,-2], - [3,14,24,34,44,54,64,75,85,95,105,115,126,136,146,156], - [11,21,31,41,51,61,71,81], - [168,87] - ] -}); - -jsMath.Img.AddFont(70,{ - cmr10: [ - [6,7,0], [8,7,0], [8,8,1], [7,7,0], [7,7,0], [7,7,0], [7,7,0], [8,7,0], - [7,7,0], [7,7,0], [7,7,0], [7,7,0], [6,7,0], [6,7,0], [8,7,0], [8,7,0], - [3,5,0], [4,7,2,1], [2,2,-5,-1], [2,2,-5,-2], [3,2,-5,-1], [3,2,-5,-1], [5,1,-5], [3,3,-5,-2], - [3,2,2,-1], [5,7,0], [7,6,1], [8,6,1], [5,7,1], [9,7,0], [10,8,1], [8,9,1], - [3,2,-2], [2,8,0], [4,3,-4], [8,9,2], [5,9,1], [8,9,1], [8,9,1], [2,3,-4], - [3,10,2,-1], [3,10,2], [5,5,-3], [8,7,1], [2,3,2], [3,2,-1], [2,1,0], [5,10,2], - [5,8,1], [3,7,0,-1], [5,7,0], [5,8,1], [5,7,0], [5,8,1], [5,8,1], [5,8,1], - [5,10,1], [5,10,1], [2,5,0], [2,7,2], [2,7,2], [8,3,-1], [5,7,2], [5,9,0], - [8,8,1], [7,7,0], [7,7,0], [7,8,1], [7,7,0], [7,7,0], [6,7,0], [8,8,1], - [7,7,0], [4,7,0], [5,8,1], [8,7,0], [6,7,0], [9,7,0], [7,7,0], [8,8,1], - [7,7,0], [8,9,2], [8,8,1], [5,8,1], [7,7,0], [7,8,1], [8,8,1], [10,8,1], - [10,7,0,2], [8,7,0], [6,7,0], [2,10,2,-1], [4,3,-4,-1], [2,10,2], [3,2,-5,-1], [2,2,-5], - [2,3,-4], [5,5,0], [6,7,0], [4,6,1], [6,8,1], [5,6,1], [4,7,0], [5,7,2], - [6,7,0], [3,7,0], [4,9,2,1], [5,9,0], [3,7,0], [8,9,0], [6,5,0], [5,6,1], - [6,7,2], [6,7,2], [4,5,0], [4,5,0], [4,7,1], [6,6,1], [5,5,0], [7,5,0], - [5,5,0], [5,7,2], [4,5,0], [5,1,-2], [10,1,-2], [4,2,-5,-1], [3,2,-5,-1], [3,2,-5,-1], - [4,16,28,40,52,64,76,88,99,111,123,135,147,159,171,183], - [13,24,36,47,59,71,82,94], - [197,102] - ], - cmmi10: [ - [8,7,0], [8,7,0], [8,8,1], [7,7,0], [8,7,0], [9,7,0], [8,7,0], [7,7,0], - [7,7,0], [7,7,0], [8,7,0], [6,6,1], [6,9,2], [6,7,2], [5,8,0], [4,6,1], - [5,9,2], [5,7,2], [5,8,1], [4,6,1], [6,6,1], [6,7,0], [6,7,2], [6,5,0], - [5,9,2], [6,5,0], [5,7,2], [6,5,0], [5,5,0], [6,6,1], [6,9,2], [6,7,2], - [7,9,2], [6,6,1], [5,6,1], [6,8,1], [8,5,0], [5,7,2], [4,6,1], [7,7,2], - [10,3,-2], [12,3,0,2], [10,3,-2], [10,3,0], [5,3,-2,2], [3,3,-2], [5,5,0], [5,5,0], - [5,6,1], [3,5,0,-1], [5,5,0], [5,7,2], [5,7,2], [5,7,2], [5,8,1], [5,7,2], - [5,8,1], [5,7,2], [2,1,0], [2,3,2], [6,7,1,-1], [5,10,2], [6,7,1,-1], [5,5,0], - [6,9,1], [7,7,0], [8,7,0], [8,8,1], [8,7,0], [8,7,0], [8,7,0], [8,8,1], - [9,7,0], [5,7,0], [7,8,1], [9,7,0], [7,7,0], [11,7,0], [11,7,0,2], [8,8,1], - [8,7,0], [8,9,2], [8,8,1], [7,8,1], [7,7,0], [8,8,1], [8,8,1], [11,8,1], - [11,7,0,2], [8,7,0], [8,7,0], [4,9,1], [4,9,2], [4,9,2], [10,3,-1], [12,3,-1,2], - [4,7,0], [5,6,1], [5,8,1], [5,5,0], [6,8,1], [5,5,0], [6,9,2], [5,7,2], - [6,7,0], [3,7,0], [4,9,2], [5,7,0], [3,7,0], [9,5,0], [6,6,1], [5,5,0], - [6,7,2,1], [5,7,2], [5,5,0], [5,5,0], [4,8,1], [6,6,1], [5,6,1], [7,6,1], - [6,6,1], [5,7,2], [5,5,0], [3,5,0], [5,7,2,1], [7,7,2], [5,2,-5,-2], [5,2,-5,-2], - [4,15,27,39,50,62,74,85,97,108,120,132,143,155,167,178], - [13,24,36,47,59,71,82,94], - [191,102] - ], - cmsy10: [ - [6,1,-2,-1], [2,1,-2], [6,5,0,-1], [5,5,0], [8,7,1], [5,5,0], [8,7,0], [8,7,2], - [8,7,1], [8,7,1], [8,7,1], [8,7,1], [8,7,1], [10,11,3], [5,5,0], [5,5,0], - [8,5,0], [8,5,0], [7,9,2], [6,9,2,-1], [6,9,2,-1], [6,9,2,-1], [6,9,2,-1], [7,9,2], - [8,3,-1], [8,5,0], [7,7,1], [6,7,1,-1], [10,7,1], [10,7,1], [6,7,1,-1], [6,7,1,-1], - [10,5,0], [10,5,0], [5,9,2], [5,9,2], [10,5,0], [10,9,2], [10,9,2], [8,5,0], - [10,5,0], [10,5,0], [6,9,2], [6,9,2], [10,7,1], [10,9,2], [10,9,2], [8,6,1], - [3,6,0], [10,6,1], [6,7,1], [5,7,1,-1], [9,7,0], [9,7,2], [6,9,2,-1], [2,5,0], - [6,8,1], [5,7,0], [7,3,-1], [5,9,1], [7,9,1], [7,8,1], [8,7,0], [8,7,0], - [6,7,0], [8,9,1], [7,8,1], [6,8,1], [8,7,0], [6,8,1], [9,8,1], [6,9,2], - [8,8,1], [7,7,0], [9,9,2], [8,8,1], [7,8,1], [11,8,1], [13,9,1,3], [8,8,1], - [8,8,1], [7,9,2,-1], [9,8,1], [7,8,1], [8,8,0], [8,8,1,1], [7,8,1], [11,8,1], - [8,7,0], [8,9,2], [8,7,0], [7,7,1], [7,7,1], [7,7,1], [6,7,1], [6,7,1], - [6,7,0], [6,7,0], [4,11,3,-1], [3,11,3], [4,11,3,-1], [3,11,3], [3,11,3,-1], [3,11,3,-1], - [3,11,3,-1], [3,11,3], [1,11,3,-1], [3,11,3,-1], [3,11,3,-1], [6,11,3], [5,11,3], [3,7,1], - [9,11,10], [7,7,0], [8,8,1], [5,11,3], [6,6,0], [6,6,0], [7,9,2], [7,9,2], - [4,9,2], [4,9,2], [4,9,2], [6,9,2], [8,10,2], [8,10,2], [8,9,1], [8,10,2], - [4,18,32,46,60,74,88,102,116,130,144,158,172,186,199,213], - [13,33,53,73,93,113,133,152], - [229,169] - ], - cmex10: [ - [3,13,12,-1], [3,13,12], [2,13,12,-2], [3,13,12], [3,13,12,-2], [3,13,12], [3,13,12,-2], [3,13,12], - [4,13,12,-1], [4,13,12,-1], [3,13,12,-1], [4,13,12], [1,8,7,-1], [4,8,7,-1], [6,13,12], [6,13,12], - [5,19,18,-1], [5,19,18], [5,25,24,-2], [6,25,24], [4,25,24,-2], [3,25,24], [4,25,24,-2], [4,25,24], - [4,25,24,-2], [4,25,24], [6,25,24,-1], [6,25,24,-1], [6,25,24,-1], [6,25,24,-1], [10,25,24], [10,25,24], - [6,31,30,-2], [6,31,30], [4,31,30,-2], [4,31,30], [5,31,30,-2], [4,31,30], [5,31,30,-2], [4,31,30], - [6,31,30,-1], [6,31,30,-1], [6,31,30,-1], [6,31,30,-1], [13,31,30], [13,31,30], [8,19,18], [8,19,18], - [7,19,18,-2], [6,19,18], [4,19,18,-3], [4,19,18], [4,19,18,-3], [4,19,18], [1,6,6,-3], [2,6,6,-2], - [5,10,10,-3], [4,10,10,-1], [5,10,9,-3], [4,10,9,-1], [4,20,19,-1], [4,20,19,-3], [2,5,4,-3], [1,6,6,-3], - [7,19,18,-2], [6,19,18], [2,8,7,-2], [2,8,7,-4], [5,19,18,-1], [4,19,18,-1], [8,10,10], [11,14,14], - [6,12,12], [10,23,23], [11,10,10], [15,14,14], [14,10,10,3], [15,14,14], [14,10,10,3], [15,14,14], - [10,10,10], [9,10,10], [6,12,12], [8,10,10], [8,10,10], [8,10,10], [8,10,10], [8,10,10], - [14,14,14], [13,14,14], [10,23,23], [11,14,14], [11,14,14], [11,14,14], [11,14,14], [11,14,14], - [9,10,10], [13,14,14], [6,3,-5], [10,3,-5], [15,3,-5], [9,3,-5,3], [10,2,-6], [15,2,-6], - [3,19,18,-2], [3,19,18], [3,19,18,-2], [3,19,18], [3,19,18,-2], [3,19,18], [5,19,18,-1], [5,19,18,-1], - [10,13,12,-1], [10,19,18,-1], [10,25,24,-1], [10,31,30,-1], [7,19,18,-1], [1,7,6,-7], [4,7,6,-7], [4,6,6,-2], - [5,6,6,-1], [5,6,6,-1], [6,4,2,1], [6,5,3,1], [6,4,0,1], [6,4,0,1], [8,6,6], [8,6,6], - [4,22,39,57,75,92,110,127,145,162,180,198,215,233,250,268], - [15,58,101,145,188,231,274,317], - [287,359] - ], - cmbx10: [ - [7,7,0], [9,7,0], [9,8,1], [8,7,0], [8,7,0], [9,7,0], [8,7,0], [9,7,0], - [8,7,0], [9,7,0], [8,7,0], [8,7,0], [6,7,0], [6,7,0], [10,7,0], [10,7,0], - [3,5,0], [4,7,2,1], [3,2,-5,-1], [3,2,-5,-2], [4,2,-5,-1], [4,2,-5,-1], [5,2,-5], [3,2,-5,-3], - [4,2,2,-1], [6,7,0], [8,5,0], [9,5,0], [6,7,1], [10,7,0], [11,8,1], [12,9,1,3], - [4,2,-2], [2,7,0,-1], [5,4,-3], [9,9,2], [5,9,1], [9,9,1], [9,8,1], [3,4,-3], - [3,10,2,-1], [4,10,2], [5,5,-3], [9,9,2], [3,4,2], [4,2,-1], [3,2,0], [5,10,2], - [6,8,1], [5,7,0], [6,7,0], [6,8,1], [6,7,0], [6,8,1], [6,8,1], [6,7,0], - [6,10,1], [6,10,1], [3,5,0], [3,7,2], [2,7,2,-1], [9,3,-1], [5,7,2], [5,9,0], - [9,7,0], [9,7,0], [8,7,0], [8,8,1], [9,7,0], [8,7,0], [7,7,0], [9,8,1], - [9,7,0], [4,7,0], [6,8,1], [9,7,0], [7,7,0], [11,7,0], [9,7,0], [8,8,1], - [8,7,0], [8,9,2], [9,8,1], [6,8,1], [8,7,0], [9,8,1], [9,7,0], [12,7,0], - [12,7,0,3], [9,7,0], [7,7,0], [2,10,2,-1], [5,4,-3,-1], [2,10,2], [4,2,-5,-1], [3,2,-5], - [3,4,-3], [6,5,0], [6,7,0], [5,5,0], [6,7,0], [5,5,0], [5,7,0], [6,7,2], - [7,7,0], [3,7,0], [4,9,2,1], [6,9,0], [3,7,0], [10,9,0], [7,5,0], [6,5,0], - [6,7,2], [6,7,2], [5,5,0], [5,5,0], [4,7,0], [7,5,0], [6,5,0], [8,5,0], - [6,5,0], [6,7,2], [5,5,0], [6,1,-2], [12,1,-2], [8,5,-2,3], [4,2,-5,-1], [4,2,-5,-1], - [4,18,32,46,59,73,87,101,115,128,142,156,170,184,198,211], - [13,24,36,47,59,71,82,94], - [227,102] - ], - cmti10: [ - [7,7,0], [8,7,0], [7,8,1,-1], [7,7,0], [8,7,0], [9,7,0], [7,7,0,-1], [7,7,0,-2], - [7,7,0,-1], [6,7,0,-2], [7,7,0,-1], [9,9,2,1], [7,9,2,1], [8,9,2,1], [11,9,2,1], [11,9,2,1], - [3,5,0,-1], [5,7,2,1], [2,2,-5,-3], [3,2,-5,-3], [3,2,-5,-3], [4,2,-5,-2], [4,1,-5,-2], [3,3,-5,-4], - [3,2,2,-1], [7,9,2,1], [7,6,1,-1], [7,6,1,-1], [6,7,1], [10,7,0], [10,8,1,-1], [10,9,1,2], - [3,2,-2,-1], [3,8,0,-1], [4,3,-4,-2], [8,9,2,-1], [6,8,1,-1], [8,9,1,-1], [7,9,1,-1], [2,3,-4,-2], - [4,10,2,-1], [4,10,2], [4,5,-3,-2], [7,7,1,-1], [3,3,2], [3,2,-1,-1], [2,1,0,-1], [6,10,2], - [5,8,1,-1], [4,7,0,-1], [5,8,1,-1], [5,8,1,-1], [5,9,2], [5,8,1,-1], [5,8,1,-1], [6,8,1,-1], - [5,10,1,-1], [6,10,1], [2,5,0,-1], [3,7,2], [4,7,2], [7,3,-1,-1], [5,7,2], [6,9,0], - [7,8,1,-1], [7,7,0], [8,7,0], [7,8,1,-1], [8,7,0], [8,7,0], [8,7,0], [7,8,1,-1], - [9,7,0], [5,7,0], [6,8,1,-1], [9,7,0], [7,7,0], [10,7,0], [9,7,0], [7,8,1,-1], - [8,7,0], [7,9,2,-1], [8,8,1], [7,8,1], [7,7,0,-1], [7,8,1,-2], [7,8,1,-2], [9,8,1,-2], - [11,7,0,2], [7,7,0,-2], [7,7,0], [5,10,2], [4,3,-4,-2], [3,10,2,-1], [4,2,-5,-2], [2,2,-5,-2], - [2,3,-4,-2], [5,6,1,-1], [4,8,1,-1], [4,6,1,-1], [5,8,1,-1], [4,6,1,-1], [6,9,2,1], [5,7,2], - [6,7,0], [3,7,0,-1], [5,9,2,1], [5,9,0], [2,7,0,-1], [9,9,0], [5,5,0,-1], [4,6,1,-1], - [5,7,2], [4,7,2,-1], [4,5,0,-1], [5,5,0], [3,7,0,-1], [5,6,1,-1], [4,6,1,-1], [6,6,1,-1], - [6,6,1], [4,7,2,-1], [5,5,0], [5,1,-2,-1], [10,1,-2,-1], [8,5,-2,2], [4,2,-5,-2], [4,2,-5,-2], - [4,16,28,40,51,63,75,87,99,111,123,135,146,158,170,182], - [13,24,36,47,59,71,82,94], - [195,102] - ] -}); - -jsMath.Img.AddFont(85,{ - cmr10: [ - [7,9,0], [10,9,0], [9,10,1], [8,9,0], [8,9,0], [9,9,0], [8,9,0], [9,9,0], - [8,9,0], [9,9,0], [8,9,0], [8,9,0], [7,9,0], [7,9,0], [10,9,0], [10,9,0], - [3,6,0], [4,9,3,1], [3,3,-6,-1], [3,3,-6,-2], [4,2,-6,-1], [4,3,-6,-1], [4,2,-6,-1], [3,3,-6,-3], - [4,3,3,-1], [6,10,1], [9,7,1], [9,7,1], [6,8,1], [11,9,0], [12,10,1], [12,10,1,3], - [3,2,-3], [2,9,0,-1], [5,5,-4], [10,12,3], [6,10,1], [10,10,1], [9,10,1], [2,5,-4,-1], - [3,12,3,-1], [4,12,3], [6,5,-4], [9,8,1], [2,5,3,-1], [4,1,-2], [2,2,0,-1], [6,12,3], - [6,9,1], [4,8,0,-1], [6,8,0], [6,9,1], [6,8,0], [6,9,1], [6,9,1], [6,9,1], - [6,9,1], [6,9,1], [2,6,0,-1], [2,9,3,-1], [2,9,3,-1], [9,4,-1], [5,9,3], [5,9,0], - [9,10,1], [9,9,0], [8,9,0], [8,10,1], [9,9,0], [8,9,0], [8,9,0], [9,10,1], - [9,9,0], [4,9,0], [6,10,1], [9,9,0], [7,9,0], [11,9,0], [9,9,0], [9,10,1], - [8,9,0], [9,12,3], [9,10,1], [6,10,1], [9,9,0], [9,10,1], [9,10,1], [12,10,1], - [9,9,0], [9,9,0], [7,9,0], [2,12,3,-1], [5,5,-4,-1], [2,12,3], [4,2,-6,-1], [2,2,-6,-1], - [3,5,-4], [6,7,1], [7,10,1], [5,7,1], [7,10,1], [5,7,1], [5,9,0], [6,9,3], - [7,9,0], [3,8,0], [4,11,3,1], [6,9,0], [3,9,0], [10,6,0], [7,6,0], [6,7,1], - [7,9,3], [7,9,3], [5,6,0], [5,7,1], [4,9,1], [7,7,1], [6,6,0], [9,6,0], - [7,6,0], [6,9,3], [5,6,0], [6,1,-3], [12,1,-3], [8,6,-3,3], [4,1,-7,-1], [4,2,-6,-1], - [5,19,34,48,63,77,92,106,121,135,150,164,179,193,208,222], - [16,30,45,59,73,87,101,115], - [239,125] - ], - cmmi10: [ - [9,9,0], [10,9,0], [9,10,1], [8,9,0], [10,9,0], [11,9,0], [10,9,0], [9,9,0], - [8,9,0], [9,9,0], [9,9,0,-1], [8,7,1], [7,12,3], [7,9,3], [6,10,1], [5,7,1], - [6,12,3], [6,9,3], [6,9,0], [4,7,1], [7,7,1], [7,10,1], [7,9,3], [7,6,0], - [6,12,3], [7,6,0], [6,9,3], [7,7,1], [6,7,1], [7,7,1], [7,12,3], [7,9,3], - [8,12,3], [8,7,1], [5,7,1], [7,10,1], [10,7,1], [6,9,3], [5,8,2], [8,9,3], - [12,4,-2], [15,4,0,3], [15,4,-2,3], [15,4,0,3], [6,4,-2,3], [3,4,-2], [6,6,0], [6,6,0], - [6,7,1], [4,6,0,-1], [6,6,0], [6,9,3], [6,9,3], [6,9,3], [6,9,1], [6,9,3], - [6,9,1], [6,9,3], [2,2,0,-1], [2,5,3,-1], [8,8,1,-1], [6,12,3], [8,8,1,-1], [6,6,0], - [7,10,1], [9,9,0], [9,9,0], [9,10,1], [10,9,0], [10,9,0], [9,9,0], [9,10,1], - [11,9,0], [6,9,0], [8,10,1], [11,9,0], [8,9,0], [12,9,0], [14,9,0,3], [9,10,1], - [9,9,0], [9,12,3], [9,10,1], [8,10,1], [9,9,0], [9,10,1], [8,10,1,-1], [12,10,1], - [13,9,0,3], [9,9,0], [9,9,0], [4,10,1], [3,12,3,-1], [4,12,3], [12,4,-1], [15,4,-1,3], - [5,10,1], [6,7,1], [5,10,1], [6,7,1], [6,10,1], [5,7,1], [7,12,3], [6,9,3], - [7,9,0], [4,8,0], [6,11,3,1], [6,10,1], [3,10,1], [11,7,1], [7,7,1], [6,7,1], - [7,9,3,1], [6,9,3], [6,6,0], [5,7,1], [4,9,1], [7,7,1], [6,7,1], [9,7,1], - [7,7,1], [6,9,3], [6,7,1], [4,6,0], [6,9,3,1], [8,9,3], [6,3,-6,-2], [5,2,-6,-3], - [5,19,33,47,61,75,89,104,118,132,146,160,174,188,202,216], - [16,30,45,59,73,87,101,115], - [232,125] - ], - cmsy10: [ - [8,2,-2,-1], [2,2,-2,-1], [7,6,0,-1], [6,6,0], [9,8,1], [6,6,0], [9,8,0], [9,8,2], - [9,8,1], [9,8,1], [9,8,1], [9,8,1], [9,8,1], [12,12,3], [6,6,0], [6,6,0], - [9,6,0], [9,6,0], [8,10,2,-1], [8,10,2,-1], [8,10,2,-1], [8,10,2,-1], [8,10,2,-1], [8,10,2,-1], - [9,4,-1], [9,6,0], [8,8,1,-1], [8,8,1,-1], [12,8,1], [12,8,1], [8,8,1,-1], [8,8,1,-1], - [11,4,-1,-1], [11,4,-1], [4,11,3,-1], [4,11,2,-1], [10,4,-1,-1], [12,12,3], [12,12,3], [9,6,0], - [11,8,1,-1], [11,8,1], [7,12,3], [7,12,3], [12,8,1], [12,12,3], [12,12,3], [9,7,1], - [3,7,0], [12,7,1], [6,8,1,-1], [6,8,1,-1], [10,9,0], [10,9,3], [7,12,3,-1], [2,6,0], - [7,10,1], [6,9,0], [8,4,-1], [6,11,1], [9,10,1], [9,10,1], [9,8,0], [9,8,0], - [7,9,0], [10,10,1], [8,10,1], [7,10,1], [10,9,0], [7,10,1], [10,10,1], [8,11,2], - [10,10,1], [9,9,0,1], [10,11,2], [9,10,1], [8,10,1], [14,10,1], [13,11,1,1], [10,10,1], - [9,10,1], [9,11,2,-1], [10,10,1], [8,10,1], [10,9,0], [10,10,1,1], [8,10,1], [13,10,1], - [10,9,0], [9,11,2], [9,9,0], [8,8,1], [8,9,1], [8,8,1], [8,8,1], [8,7,0], - [7,9,0], [7,9,0], [3,12,3,-2], [4,12,3], [3,12,3,-2], [4,12,3], [4,12,3,-1], [4,12,3,-1], - [3,12,3,-1], [4,12,3], [1,12,3,-1], [4,12,3,-1], [4,12,3,-1], [7,14,4], [6,12,3], [3,8,1], - [10,13,12,-1], [9,9,0], [10,10,1], [6,12,3], [8,7,0], [8,8,0], [8,10,2,-1], [9,10,2], - [5,12,3], [5,12,3], [5,12,3], [7,12,3], [9,11,2], [9,11,2], [9,10,1], [9,11,2], - [5,22,39,56,73,90,107,124,141,157,174,191,208,225,242,259], - [17,41,65,90,114,138,162,186], - [278,206] - ], - cmex10: [ - [4,15,14,-1], [4,15,14], [3,15,14,-2], [3,15,14], [4,15,14,-2], [4,15,14], [4,15,14,-2], [4,15,14], - [5,15,14,-1], [5,15,14,-1], [4,15,14,-1], [4,15,14,-1], [2,8,8,-1], [4,9,8,-1], [7,15,14], [7,15,14], - [5,22,21,-2], [5,22,21], [7,30,29,-2], [7,30,29], [4,30,29,-3], [4,30,29], [4,30,29,-3], [4,30,29], - [4,30,29,-3], [4,30,29], [7,30,29,-1], [7,30,29,-1], [7,30,29,-1], [7,30,29,-1], [12,30,29], [12,30,29], - [7,37,36,-2], [7,37,36], [4,37,36,-3], [4,37,36], [5,37,36,-3], [5,37,36], [5,37,36,-3], [5,37,36], - [7,37,36,-1], [7,37,36,-1], [8,37,36,-1], [7,37,36,-1], [15,37,36], [15,37,36], [9,22,21], [9,22,21], - [7,23,22,-3], [7,23,22], [5,23,22,-3], [5,23,22], [5,23,22,-3], [5,23,22], [2,8,8,-3], [2,8,8,-3], - [5,11,11,-4], [4,11,11,-2], [5,12,11,-4], [4,12,11,-2], [4,23,22,-2], [5,23,22,-4], [2,5,4,-4], [2,7,7,-3], - [7,22,21,-3], [7,22,21], [2,9,8,-3], [2,9,8,-5], [6,22,21,-1], [5,22,21,-1], [10,12,12], [13,17,17], - [8,14,14], [12,27,27], [13,12,12], [18,17,17], [13,12,12], [18,17,17], [13,12,12], [18,17,17], - [12,12,12], [11,12,12], [8,14,14], [10,12,12], [10,12,12], [10,12,12], [10,12,12], [10,12,12], - [17,17,17], [15,17,17], [12,27,27], [13,17,17], [13,17,17], [13,17,17], [13,17,17], [13,17,17], - [11,12,12], [15,17,17], [7,3,-6], [12,3,-7], [18,3,-7], [7,2,-7], [12,2,-7], [18,2,-7], - [4,23,22,-2], [3,23,22], [4,23,22,-2], [4,23,22], [4,22,21,-2], [4,23,22], [6,22,21,-1], [6,22,21,-1], - [12,15,14,-1], [12,22,21,-1], [12,30,29,-1], [12,37,36,-1], [8,23,22,-1], [1,9,8,-8], [5,8,7,-8], [4,8,8,-3], - [6,7,7,-1], [6,7,7,-1], [7,5,3,1], [7,5,3,1], [7,4,0,1], [7,4,0,1], [9,8,8], [9,7,7], - [5,27,48,69,91,112,133,155,176,197,219,240,261,283,304,325], - [19,72,124,177,229,281,334,386], - [349,437] - ], - cmbx10: [ - [8,9,0], [11,9,0], [10,10,1], [10,9,0], [9,9,0], [11,9,0], [10,9,0], [10,9,0], - [10,9,0], [10,9,0], [10,9,0], [9,9,0], [8,9,0], [8,9,0], [11,9,0], [11,9,0], - [4,6,0], [5,9,3,1], [3,3,-6,-1], [3,3,-6,-3], [5,2,-6,-1], [5,3,-6,-1], [5,2,-6,-1], [4,3,-6,-3], - [5,3,3,-1], [7,9,0], [10,7,1], [11,7,1], [7,9,2], [12,9,0], [13,10,1,-1], [10,10,1], - [4,2,-3], [2,9,0,-1], [6,5,-4], [11,12,3], [7,10,1], [11,10,1], [10,10,1], [2,5,-4,-1], - [4,12,3,-1], [4,12,3], [5,6,-3,-1], [10,10,2], [2,5,3,-1], [4,2,-2], [2,2,0,-1], [6,12,3], - [7,9,1], [5,8,0,-1], [7,8,0], [7,9,1], [7,8,0], [7,9,1], [7,9,1], [7,9,0], - [7,9,1], [7,9,1], [2,6,0,-1], [2,9,3,-1], [2,9,3,-1], [10,4,-1], [6,9,3], [6,9,0], - [10,10,1], [10,9,0], [9,9,0], [10,10,1], [10,9,0], [9,9,0], [8,9,0], [10,10,1], - [11,9,0], [5,9,0], [7,10,1], [11,9,0], [8,9,0], [13,9,0], [11,9,0], [10,10,1], - [9,9,0], [10,12,3], [11,10,1], [7,10,1], [9,9,0], [10,10,1], [10,9,0], [14,9,0], - [10,9,0], [11,9,0], [8,9,0], [3,12,3,-1], [6,5,-4,-1], [3,12,3], [5,3,-6,-1], [2,3,-6,-1], - [3,5,-4], [7,7,1], [8,9,0], [6,6,0], [8,10,1], [6,7,1], [6,9,0], [7,9,3], - [8,9,0], [4,9,0], [5,12,3,1], [7,9,0], [4,9,0], [12,6,0], [8,6,0], [7,7,1], - [8,9,3], [8,9,3], [6,6,0], [5,7,1], [5,8,0], [8,7,1], [7,6,0], [10,6,0], - [7,6,0], [7,9,3], [6,6,0], [7,1,-3], [14,1,-3], [5,3,-6,-1], [5,2,-7,-1], [5,3,-6,-1], - [5,22,38,55,72,89,106,122,139,156,173,190,206,223,240,257], - [16,30,45,59,73,87,101,115], - [275,125] - ], - cmti10: [ - [9,9,0], [8,9,0,-1], [9,10,1,-1], [8,9,0], [8,9,0,-1], [10,9,0], [9,9,0,-1], [8,9,0,-2], - [8,9,0,-1], [8,9,0,-2], [8,9,0,-1], [10,12,3,1], [9,12,3,1], [9,12,3,1], [12,12,3,1], [13,12,3,1], - [3,7,1,-1], [5,9,3,1], [3,3,-6,-3], [3,3,-6,-4], [4,2,-6,-3], [4,3,-6,-3], [4,2,-6,-3], [3,3,-6,-5], - [3,3,3,-1], [8,12,3,1], [8,7,1,-1], [8,7,1,-1], [6,8,1,-1], [12,9,0], [10,10,1,-2], [13,10,1,3], - [3,2,-3,-1], [4,9,0,-1], [5,5,-4,-2], [9,12,3,-1], [8,10,1,-1], [9,10,1,-1], [9,10,1,-1], [3,5,-4,-2], - [5,12,3,-1], [5,12,3], [5,5,-4,-2], [8,8,1,-1], [2,5,3,-1], [3,1,-2,-1], [2,2,0,-1], [8,12,3], - [6,9,1,-1], [5,8,0,-1], [6,9,1,-1], [6,9,1,-1], [6,11,3], [6,9,1,-1], [6,9,1,-1], [7,9,1,-1], - [6,9,1,-1], [6,9,1,-1], [3,6,0,-1], [3,9,3,-1], [4,9,3], [9,4,-1,-1], [5,9,3,-1], [5,9,0,-2], - [9,10,1,-1], [9,9,0], [9,9,0], [9,10,1,-1], [10,9,0], [9,9,0], [9,9,0], [9,10,1,-1], - [10,9,0], [6,9,0], [7,10,1,-1], [10,9,0], [8,9,0], [12,9,0], [10,9,0], [9,10,1,-1], - [9,9,0], [9,12,3,-1], [9,10,1], [7,10,1,-1], [8,9,0,-2], [8,10,1,-2], [9,10,1,-2], [10,10,1,-2], - [13,9,0,3], [9,9,0,-2], [8,9,0,-1], [5,12,3,-1], [5,5,-4,-3], [6,12,3,1], [4,3,-6,-3], [2,2,-6,-3], - [3,5,-4,-2], [6,7,1,-1], [5,10,1,-1], [5,7,1,-1], [6,10,1,-1], [5,7,1,-1], [7,12,3,1], [6,9,3], - [6,9,0,-1], [3,9,1,-1], [6,11,3,1], [5,10,1,-1], [3,9,0,-1], [9,7,1,-1], [6,7,1,-1], [6,7,1,-1], - [7,9,3], [5,9,3,-1], [5,6,0,-1], [4,7,1,-1], [4,9,1,-1], [6,7,1,-1], [5,7,1,-1], [8,7,1,-1], - [7,7,1], [6,9,3,-1], [6,7,1], [6,1,-3,-1], [11,1,-3,-1], [10,6,-3,3], [4,2,-6,-3], [4,2,-6,-3], - [5,19,34,48,62,77,91,106,120,135,149,163,178,192,207,221], - [16,30,45,59,73,87,101,115], - [237,125] - ] -}); - -jsMath.Img.AddFont(100,{ - cmr10: [ - [9,10,0], [11,10,0], [11,11,1], [10,10,0], [9,10,0], [10,10,0], [10,10,0], [10,10,0], - [10,10,0], [9,10,0,168], [10,10,0], [9,10,0], [8,10,0], [8,10,0], [12,10,0], [12,10,0], - [4,7,0], [4,10,3,1], [3,3,-7,-1], [3,3,-7,-3], [5,2,-7,-1], [5,3,-7,-1], [5,2,-7,-1], [3,3,-7,-4], - [4,3,3,-2], [7,11,1], [10,8,1], [11,8,1], [7,10,2], [13,10,0], [13,11,1,-1], [11,12,1], - [4,2,-4], [2,10,0,-1], [5,5,-5], [11,13,3], [7,12,1], [11,12,1], [11,11,1], [2,5,-5,-1], - [4,15,4,-1], [3,15,4,-1], [5,7,-4,-1], [10,9,1], [2,5,3,-1], [4,2,-2], [2,2,0,-1], [7,15,4], - [7,11,1], [5,10,0,-1], [7,10,0], [7,11,1], [7,10,0], [7,11,1], [7,11,1], [7,11,1], - [7,11,1], [7,11,1], [2,6,0,-1], [2,9,3,-1], [2,10,3,-1], [10,5,-1], [6,10,3], [6,10,0], - [11,11,1], [10,10,0], [10,10,0], [10,11,1], [10,10,0], [9,10,0], [9,10,0], [11,11,1], - [10,10,0], [5,10,0], [7,11,1], [11,10,0], [9,10,0], [13,10,0], [10,10,0], [11,11,1], - [9,10,0], [11,13,3], [11,11,1], [7,11,1], [10,10,0], [10,11,1], [11,11,1], [14,11,1], - [11,10,0], [11,10,0], [8,10,0], [3,15,4,-1], [5,5,-5,-2], [3,15,4], [5,3,-7,-1], [2,2,-8,-1], - [2,5,-5,-1], [7,8,1], [8,11,1], [6,8,1], [8,11,1], [6,8,1], [5,10,0], [7,10,3], - [8,10,0], [4,10,0], [4,13,3,1], [8,10,0], [4,10,0], [12,7,0], [8,7,0], [7,8,1], - [8,10,3], [8,10,3], [5,7,0], [5,8,1], [5,10,1], [8,8,1], [7,6,0], [10,6,0], - [8,6,0], [7,9,3], [6,6,0], [7,1,-3], [14,1,-3], [5,3,-7,-1], [5,2,-8,-1], [5,2,-8,-1], - [6,23,40,57,74,91,108,125,142,159,176,193,210,227,244,262], - [19,36,52,69,85,102,119,135], - [281,146] - ], - cmmi10: [ - [10,10,0], [11,10,0], [11,11,1], [10,10,0], [11,10,0], [13,10,0], [11,10,0,-1], [10,10,0], - [9,10,0], [10,10,0], [10,10,0,-1], [9,8,1], [9,13,3], [8,10,3], [7,11,1], [6,7,1], - [7,13,3], [7,10,3], [7,11,1], [5,8,1], [8,8,1], [8,11,1], [8,9,3], [8,7,0], - [7,13,3], [8,7,1], [7,10,3], [8,7,1], [8,7,1], [8,8,1], [8,13,3], [9,10,3], - [9,13,3], [9,8,1], [6,8,1], [8,11,1], [12,7,1], [6,10,3,-1], [6,9,2], [9,10,3], - [14,4,-3], [14,4,0], [14,4,-3], [17,4,0,3], [3,4,-3], [3,4,-3], [7,7,0], [7,7,0], - [7,8,1], [5,7,0,-1], [7,7,0], [7,10,3], [7,10,3], [7,10,3], [7,11,1], [7,10,3], - [7,11,1], [7,10,3], [2,2,0,-1], [2,5,3,-1], [9,9,1,-1], [7,15,4], [9,9,1,-1], [7,7,0], - [8,11,1], [10,10,0], [11,10,0], [11,11,1], [12,10,0], [11,10,0], [11,10,0], [11,11,1], - [13,10,0], [7,10,0], [8,11,1,-1], [13,10,0], [9,10,0], [15,10,0], [16,10,0,3], [11,11,1], - [11,10,0], [11,13,3], [11,11,1], [9,11,1], [10,10,0], [10,11,1,-1], [11,11,1], [14,11,1], - [15,10,0,3], [11,10,0], [10,10,0], [5,12,1], [4,13,3,-1], [5,13,3], [12,4,-1,-1], [12,4,-2,-1], - [6,11,1], [7,8,1], [6,11,1], [6,8,1], [8,11,1], [6,8,1], [8,13,3], [7,10,3], - [8,11,1], [4,11,1], [7,13,3,1], [7,11,1], [4,11,1], [12,8,1], [8,8,1], [7,8,1], - [8,10,3,1], [7,10,3], [6,8,1], [6,8,1], [5,10,1], [8,8,1], [7,8,1], [10,8,1], - [8,8,1], [7,10,3], [7,8,1], [4,8,1], [6,10,3,1], [8,10,3,-1], [7,3,-7,-2], [6,3,-7,-3], - [6,22,39,55,72,89,105,122,138,155,172,188,205,221,238,255], - [19,36,52,69,85,102,119,135], - [273,146] - ], - cmsy10: [ - [9,1,-3,-1], [2,3,-2,-1], [7,7,0,-2], [5,7,0,-1], [10,9,1], [7,7,0], [10,10,0], [10,10,3], - [11,11,2], [11,11,2], [11,11,2], [11,11,2], [11,11,2], [14,13,3], [7,7,0], [7,7,0], - [10,7,0], [10,7,0], [9,11,2,-1], [9,11,2,-1], [9,11,2,-1], [9,11,2,-1], [9,11,2,-1], [9,11,2,-1], - [11,5,-1], [10,7,0], [9,9,1,-1], [9,9,1,-1], [14,9,1], [14,9,1], [9,9,1,-1], [9,9,1,-1], - [13,5,-1,-1], [13,5,-1], [5,13,3,-1], [5,13,3,-1], [12,5,-1,-1], [14,13,3], [14,13,3], [10,7,0], - [13,9,1,-1], [13,9,1], [8,13,3], [8,13,3], [14,9,1], [14,13,3], [14,13,3], [10,8,1], - [4,8,0], [14,8,1], [7,9,1,-1], [8,9,1,-1], [12,10,0], [12,10,3], [7,13,3,-2], [2,5,-1], - [8,11,1], [7,10,0], [9,4,-1], [7,12,1], [10,11,1], [10,11,1], [9,10,0,-1], [10,10,0], - [8,10,0], [11,11,1], [10,11,1], [8,11,1], [11,10,0], [8,11,1], [12,11,1], [9,12,2], - [12,11,1], [10,10,0,1], [12,12,2], [11,11,1], [9,11,1], [16,11,1], [15,12,1,1], [11,11,1], - [11,11,1], [10,12,2,-1], [12,11,1], [9,11,1], [11,10,0], [11,11,1,1], [10,11,1], [15,11,1], - [12,10,0], [10,12,2], [11,10,0], [9,10,1], [9,10,1], [9,10,1], [8,10,1,-1], [9,10,1], - [8,10,0], [8,10,0], [4,15,4,-2], [4,15,4], [4,15,4,-2], [4,15,4], [5,15,4,-1], [5,15,4,-1], - [4,15,4,-1], [4,15,4], [2,15,4,-1], [5,15,4,-1], [5,15,4,-1], [8,15,4], [7,15,4], [4,11,2], - [11,15,14,-1], [10,10,0], [11,11,1], [7,13,3], [9,9,0], [9,9,0], [9,11,2,-1], [9,11,2,-1], - [5,13,3,-1], [6,13,3], [6,13,3], [8,13,3], [11,13,2], [10,14,3], [11,11,1], [11,13,2], - [6,26,46,66,86,106,125,145,165,185,205,225,245,265,285,305], - [20,48,77,105,134,162,190,219], - [327,243] - ], - cmex10: [ - [4,18,17,-2], [5,18,17], [4,18,17,-2], [3,18,17], [5,18,17,-2], [4,18,17], [5,18,17,-2], [4,18,17], - [6,18,17,-1], [6,18,17,-1], [5,18,17,-1], [5,18,17,-1], [1,10,9,-2], [4,10,9,-2], [8,18,17], [8,17,16], - [6,26,25,-2], [6,26,25], [8,34,33,-2], [8,34,33], [5,34,33,-3], [4,34,33], [5,34,33,-3], [5,34,33], - [5,34,33,-3], [5,34,33], [8,34,33,-1], [8,34,33,-1], [8,34,33,-1], [8,34,33,-1], [14,34,33], [14,34,33], - [8,43,42,-3], [8,43,42], [5,43,42,-3], [5,43,42], [6,43,42,-3], [6,43,42], [6,43,42,-3], [6,43,42], - [8,43,42,-2], [8,43,42,-2], [8,43,42,-2], [9,43,42,-1], [17,43,42], [17,43,42], [11,26,25], [11,26,25], - [8,26,25,-4], [9,26,25], [6,26,25,-4], [5,26,25], [6,26,25,-4], [5,26,25], [2,9,9,-4], [2,9,9,-3], - [5,13,13,-5], [6,13,13,-2], [5,14,13,-5], [6,14,13,-2], [6,27,26,-2], [5,27,26,-5], [3,6,5,-5], [1,9,9,-4], - [8,26,25,-4], [9,26,25], [2,10,9,-4], [3,10,9,-6], [7,26,25,-1], [6,26,25,-1], [11,14,14], [15,20,20], - [9,16,16], [14,31,31], [15,14,14], [21,20,20], [15,14,14], [21,20,20], [15,14,14], [21,20,20], - [14,14,14], [13,14,14], [9,16,16], [11,14,14], [11,14,14], [11,14,14], [11,14,14], [11,14,14], - [20,20,20], [18,20,20], [14,31,31], [15,20,20], [15,20,20], [15,20,20], [15,20,20], [15,20,20], - [13,14,14], [18,20,20], [8,3,-8], [14,3,-8], [21,3,-8], [8,3,-8], [14,3,-8], [20,3,-8], - [4,26,25,-3], [4,26,25], [5,26,25,-3], [5,26,25], [5,26,25,-3], [5,26,25], [7,26,25,-1], [7,26,25,-1], - [14,18,17,-1], [14,26,25,-1], [14,34,33,-1], [14,43,42,-1], [10,26,25,-1], [2,10,9,-9], [6,9,8,-9], [5,9,9,-3], - [7,9,9,-1], [7,9,9,-1], [8,5,3,1], [8,5,3,1], [8,5,0,1], [8,5,0,1], [11,9,9], [11,9,9], - [6,31,56,82,107,132,157,182,207,232,257,282,307,332,358,383], - [23,84,146,208,269,331,392,454], - [410,514] - ], - cmbx10: [ - [9,10,0], [13,10,0], [12,11,1], [11,10,0], [10,10,0], [12,10,0], [10,10,0,-1], [11,10,0,-1], - [11,10,0], [11,10,0,-1], [11,10,0], [11,10,0], [9,10,0], [9,10,0], [13,10,0], [13,10,0], - [4,7,0], [5,10,3,1], [4,3,-7,-1], [4,3,-7,-3], [4,2,-7,-2], [6,3,-7,-1], [6,2,-7,-1], [4,3,-7,-4], - [6,3,3,-1], [8,10,0], [12,8,1], [12,8,1], [8,10,2], [14,10,0], [15,11,1,-1], [12,12,1], - [5,2,-4], [3,10,0,-1], [7,6,-4], [12,13,3,-1], [8,12,1], [13,12,1], [12,11,1], [3,5,-5,-1], - [5,15,4,-1], [4,15,4,-1], [6,7,-4,-1], [11,11,2,-1], [3,6,3,-1], [5,2,-2], [3,3,0,-1], [6,15,4,-1], - [8,11,1], [6,10,0,-1], [8,10,0], [8,11,1], [8,10,0], [8,11,1], [8,11,1], [7,11,1,-1], - [8,11,1], [8,11,1], [3,7,0,-1], [3,10,3,-1], [3,10,3,-1], [11,5,-1,-1], [6,10,3,-1], [6,10,0,-1], - [12,11,1], [12,10,0], [11,10,0], [11,11,1], [12,10,0], [10,10,0], [10,10,0], [12,11,1], - [12,10,0], [6,10,0], [8,11,1], [12,10,0], [9,10,0], [15,10,0], [12,10,0], [12,11,1], - [10,10,0], [12,13,3], [12,11,1], [8,11,1], [11,10,0], [12,11,1], [12,10,0], [17,10,0], - [12,10,0], [12,10,0], [8,10,0,-1], [3,15,4,-1], [6,6,-4,-2], [3,15,4], [4,3,-7,-2], [3,3,-7,-1], - [4,6,-4], [8,7,0], [9,10,0], [7,7,0], [9,11,1], [7,7,0], [7,10,0], [8,10,3], - [9,10,0], [4,10,0], [5,13,3,1], [9,10,0], [5,10,0], [14,7,0], [9,7,0], [8,7,0], - [9,10,3], [9,10,3], [7,7,0], [6,8,1], [6,10,1], [9,7,0], [8,7,0], [12,7,0], - [9,7,0], [8,10,3], [7,7,0], [8,2,-3], [16,2,-3], [5,3,-7,-2], [6,2,-8,-1], [6,3,-7,-1], - [6,26,45,65,85,104,124,144,164,183,203,223,243,262,282,302], - [19,36,52,69,85,102,119,135], - [324,146] - ], - cmti10: [ - [9,10,0,-1], [10,10,0,-1], [9,11,1,-2], [9,10,0], [10,10,0,-1], [11,10,0,-1], [10,10,0,-1], [9,10,0,-3], - [9,10,0,-2], [9,10,0,-3], [10,10,0,-1], [12,13,3,1], [10,13,3,1], [10,13,3,1], [14,13,3,1], [15,13,3,1], - [4,8,1,-1], [6,10,3,1], [2,3,-7,-4], [4,3,-7,-4], [4,2,-7,-4], [4,3,-7,-4], [5,2,-7,-3], [4,3,-7,-6], - [4,3,3,-1], [9,13,3,1], [9,8,1,-1], [9,8,1,-1], [7,10,2,-1], [13,10,0,-1], [13,11,1,-2], [15,12,1,3], - [4,2,-4,-1], [5,10,0,-1], [6,5,-5,-2], [11,13,3,-1], [9,11,1,-1], [10,12,1,-2], [11,11,1,-1], [3,5,-5,-3], - [6,15,4,-2], [6,15,4], [6,7,-4,-2], [9,9,1,-2], [3,5,3,-1], [4,2,-2,-1], [2,2,0,-1], [9,15,4], - [7,11,1,-1], [6,10,0,-1], [7,11,1,-1], [7,11,1,-1], [7,13,3], [7,11,1,-1], [7,11,1,-1], [7,11,1,-2], - [7,11,1,-1], [7,11,1,-1], [4,6,0,-1], [4,9,3,-1], [5,10,3], [10,5,-1,-1], [6,10,3,-1], [6,10,0,-2], - [9,11,1,-2], [9,10,0,-1], [10,10,0,-1], [10,11,1,-2], [10,10,0,-1], [10,10,0,-1], [10,10,0,-1], [10,11,1,-2], - [11,10,0,-1], [7,10,0], [8,11,1,-1], [11,10,0,-1], [8,10,0,-1], [13,10,0,-1], [11,10,0,-1], [9,11,1,-2], - [10,10,0,-1], [9,13,3,-2], [9,11,1,-1], [8,11,1,-1], [10,10,0,-2], [10,11,1,-2], [9,11,1,-3], [12,11,1,-3], - [15,10,0,3], [10,10,0,-3], [9,10,0,-1], [6,15,4,-1], [6,5,-5,-3], [6,15,4,1], [5,3,-7,-3], [2,2,-8,-3], - [3,5,-5,-2], [7,8,1,-1], [6,11,1,-1], [6,8,1,-1], [7,11,1,-1], [6,8,1,-1], [8,13,3,1], [7,10,3], - [7,11,1,-1], [4,11,1,-1], [6,13,3,1], [6,11,1,-1], [4,11,1,-1], [11,8,1,-1], [8,8,1,-1], [7,8,1,-1], - [8,10,3], [6,10,3,-1], [6,8,1,-1], [5,8,1,-1], [5,10,1,-1], [7,8,1,-1], [6,8,1,-1], [9,8,1,-1], - [8,8,1], [7,10,3,-1], [6,8,1,-1], [7,1,-3,-1], [14,1,-3,-1], [11,7,-3,3], [5,2,-8,-3], [5,2,-8,-3], - [6,23,40,56,73,90,107,124,141,158,175,192,209,226,243,260], - [19,36,52,69,85,102,119,135], - [279,146] - ] -}); - -jsMath.Img.AddFont(120,{ - cmr10: [ - [10,12,0], [14,12,0], [12,13,1,-1], [12,13,0], [11,12,0], [13,12,0], [11,12,0,-1], [12,12,0,-1], - [11,12,0,-1], [12,12,0,-1], [12,12,0], [11,12,0], [9,12,0], [9,12,0], [14,12,0], [14,12,0], - [5,8,0], [5,12,4,1], [4,4,-8,-1], [4,4,-8,-3], [5,3,-8,-2], [6,4,-8,-1], [7,1,-9,-1], [4,4,-9,-4], - [5,4,4,-2], [8,13,1], [12,9,1], [13,9,1], [8,11,2], [15,12,0], [16,13,1,-1], [12,14,1,-1], - [5,3,-4], [3,13,0,-1], [6,6,-6], [13,16,4,-1], [7,14,1,-1], [13,14,1,-1], [13,14,1], [3,6,-6,-1], - [5,17,4,-1], [4,17,4,-1], [7,8,-5,-1], [12,12,2,-1], [3,6,4,-1], [5,2,-3], [3,2,0,-1], [7,17,4,-1], - [8,13,1], [7,12,0,-1], [8,12,0], [8,13,1], [8,12,0], [8,13,1], [8,13,1], [8,13,1,-1], - [8,13,1], [8,13,1], [3,8,0,-1], [3,12,4,-1], [3,13,4,-1], [12,5,-2,-1], [6,13,4,-1], [6,12,0,-1], - [12,13,1,-1], [13,13,0], [11,12,0], [11,13,1,-1], [12,12,0], [11,12,0], [11,12,0], [12,13,1,-1], - [13,12,0], [6,12,0], [8,13,1], [13,12,0], [10,12,0], [15,12,0], [13,12,0], [12,13,1,-1], - [11,12,0], [12,16,4,-1], [13,13,1], [8,13,1,-1], [12,12,0], [13,13,1], [13,13,1], [18,13,1], - [13,12,0], [13,12,0], [9,12,0,-1], [3,17,4,-2], [6,6,-6,-2], [3,17,4], [5,3,-9,-2], [3,3,-9,-1], - [3,6,-6,-1], [9,9,1], [9,13,1], [7,9,1], [9,13,1], [7,9,1], [6,12,0], [9,12,4], - [9,12,0], [5,12,0], [5,16,4,1], [9,12,0], [5,12,0], [14,8,0], [9,8,0], [8,9,1], - [9,12,4], [9,12,4], [7,8,0], [7,9,1], [6,12,1], [9,9,1], [9,9,1], [12,9,1], - [9,8,0], [9,12,4], [7,8,0], [9,1,-4], [17,1,-4], [6,4,-8,-2], [6,3,-9,-1], [6,3,-9,-1], - [7,27,48,68,89,109,130,150,171,191,211,232,252,273,293,314], - [22,42,61,81,101,121,141,161], - [337,175] - ], - cmmi10: [ - [13,12,0], [13,13,0,-1], [13,13,1], [12,12,0], [13,12,0,-1], [15,12,0], [13,12,0,-1], [12,12,0], - [11,12,0], [12,12,0], [13,12,0,-1], [11,9,1], [10,16,4], [10,12,4], [8,14,1], [7,9,1], - [8,16,4], [9,12,4], [8,13,1], [5,9,1,-1], [9,9,1,-1], [9,13,1,-1], [10,12,4], [8,8,0,-1], - [8,16,4], [10,9,1], [9,12,4], [10,9,1], [9,9,1], [9,9,1], [10,16,4], [10,12,4], - [11,16,4], [11,9,1], [8,9,1], [10,13,1], [14,9,1], [8,12,4,-1], [7,10,2], [11,12,4], - [15,6,-3,-1], [15,6,1,-1], [15,6,-3,-1], [15,6,1,-1], [3,4,-4,-1], [3,5,-3,-1], [8,9,0], [8,9,0], - [8,9,1], [6,8,0,-1], [8,8,0], [8,12,4], [8,12,4], [8,12,4], [8,13,1], [8,12,4,-1], - [8,13,1], [8,12,4], [3,2,0,-1], [3,6,4,-1], [11,11,1,-1], [7,17,4,-1], [11,11,1,-1], [9,9,0], - [10,14,1], [13,13,0], [13,12,0], [13,13,1], [14,12,0], [13,12,0], [13,12,0], [13,13,1], - [15,12,0], [9,12,0], [10,13,1,-1], [15,12,0], [11,12,0], [18,12,0], [18,12,0,3], [13,13,1], - [13,12,0], [13,16,4], [13,13,1], [10,13,1,-1], [12,12,0], [12,13,1,-1], [12,13,1,-1], [17,13,1,-1], - [18,12,0,3], [13,12,0], [12,12,0,-1], [6,14,1], [5,17,4,-1], [5,16,4,-1], [15,5,-2,-1], [15,5,-2,-1], - [7,13,1], [9,9,1], [7,13,1], [8,9,1], [9,13,1], [8,9,1], [9,16,4,-1], [8,12,4], - [9,13,1,-1], [5,13,1], [8,16,4,1], [8,13,1,-1], [5,13,1], [15,9,1], [10,9,1], [8,9,1], - [10,12,4,1], [8,12,4], [8,9,1], [7,9,1], [6,12,1], [10,9,1], [8,9,1], [12,9,1], - [9,9,1], [9,12,4], [8,9,1], [5,9,1], [8,12,4,1], [10,12,4,-1], [8,4,-8,-3], [7,3,-9,-4], - [7,27,46,66,86,106,126,146,166,186,206,226,246,266,286,306], - [22,42,61,81,101,121,141,161], - [328,175] - ], - cmsy10: [ - [11,2,-3,-1], [3,3,-3,-1], [9,9,0,-2], [7,8,0,-1], [12,10,1,-1], [9,9,0], [12,12,0,-1], [12,12,3,-1], - [12,12,2,-1], [12,12,2,-1], [12,12,2,-1], [12,12,2,-1], [12,12,2,-1], [15,17,4,-1], [7,7,-1,-1], [7,7,-1,-1], - [12,9,0,-1], [12,8,0,-1], [11,14,3,-1], [11,14,3,-1], [11,14,3,-1], [11,14,3,-1], [11,14,3,-1], [11,14,3,-1], - [12,5,-2,-1], [12,8,-1,-1], [11,11,1,-1], [11,11,1,-1], [15,11,1,-1], [15,11,1,-1], [11,11,1,-1], [11,11,1,-1], - [15,7,-1,-1], [15,7,-1,-1], [7,16,4,-1], [7,16,4,-1], [15,7,-1,-1], [15,16,4,-1], [15,16,4,-1], [12,8,0,-1], - [15,10,1,-1], [15,10,1,-1], [10,16,4], [10,16,4], [17,10,1], [15,16,4,-1], [15,16,4,-1], [12,9,1,-1], - [5,10,0], [15,9,1,-1], [9,11,1,-1], [9,11,1,-1], [13,13,0,-1], [13,13,4,-1], [9,17,4,-2], [1,7,-1,-1], - [10,13,1], [8,12,0,-1], [10,5,-1,-1], [8,15,2], [12,14,1], [11,13,1,-1], [12,12,0,-1], [12,12,0,-1], - [9,12,0,-1], [14,14,1], [12,13,1], [9,13,1], [13,12,0], [10,13,1], [14,13,1], [11,14,2], - [14,13,1], [12,12,0,1], [15,14,2], [13,13,1], [11,13,1], [19,13,1], [18,15,1,1], [13,13,1,-1], - [13,13,1], [12,15,3,-2], [14,13,1], [11,13,1], [14,13,0], [13,13,1,1], [12,13,1], [18,13,1], - [14,12,0], [13,15,3], [13,12,0], [10,12,1,-1], [10,12,1,-1], [10,12,1,-1], [10,12,1,-1], [10,12,1,-1], - [9,12,0,-1], [9,12,0,-1], [4,18,5,-3], [5,18,5], [5,18,5,-3], [5,18,5], [7,18,5,-1], [7,18,5,-1], - [5,18,5,-1], [4,18,5,-1], [1,18,5,-2], [5,18,5,-2], [7,18,5,-1], [10,18,5], [7,18,5,-1], [3,12,2,-1], - [14,18,17,-1], [12,12,0], [14,13,1], [7,17,4,-1], [10,11,0,-1], [10,11,0,-1], [11,14,3,-1], [11,14,3,-1], - [6,16,4,-1], [6,16,4,-1], [6,16,4,-1], [9,16,4,-1], [13,16,3], [12,16,3,-1], [12,14,1,-1], [12,16,3,-1], - [7,31,55,79,103,127,151,174,198,222,246,270,294,318,342,366], - [23,57,91,125,159,193,227,261], - [392,290] - ], - cmex10: [ - [5,21,20,-2], [6,21,20], [4,21,20,-3], [4,21,20], [5,21,20,-3], [5,21,20], [5,21,20,-3], [5,21,20], - [6,21,20,-2], [6,21,20,-2], [6,21,20,-1], [6,21,20,-1], [2,12,11,-2], [5,12,11,-2], [8,21,20,-1], [8,21,20,-1], - [7,31,30,-3], [8,31,30], [9,42,41,-3], [9,41,40], [5,42,41,-4], [5,42,41], [6,42,41,-4], [6,42,41], - [6,42,41,-4], [6,42,41], [9,41,40,-2], [9,42,41,-2], [9,41,40,-2], [10,41,40,-1], [16,41,40,-1], [16,41,40,-1], - [9,52,51,-4], [10,52,51], [6,52,51,-4], [6,52,51], [7,52,51,-4], [7,52,51], [7,52,51,-4], [7,52,51], - [10,52,51,-2], [10,52,51,-2], [10,52,51,-2], [11,52,51,-1], [20,52,51,-1], [20,52,51,-1], [12,31,30,-1], [12,31,30,-1], - [10,32,31,-5], [10,32,31], [7,31,30,-5], [6,31,30], [7,31,30,-5], [6,31,30], [2,11,11,-5], [2,11,11,-4], - [7,16,16,-6], [7,16,16,-2], [7,17,16,-6], [6,17,16,-3], [7,32,31,-2], [7,32,31,-6], [3,7,6,-6], [1,11,11,-5], - [10,31,30,-5], [10,31,30], [2,12,11,-5], [2,12,11,-8], [7,31,30,-2], [8,31,30,-1], [13,17,17,-1], [17,24,24,-1], - [10,19,19,-1], [15,38,38,-1], [17,17,17,-1], [24,24,24,-1], [17,17,17,-1], [24,24,24,-1], [17,17,17,-1], [24,24,24,-1], - [16,17,17,-1], [14,17,17,-1], [10,19,19,-1], [13,17,17,-1], [13,17,17,-1], [13,17,17,-1], [13,17,17,-1], [13,17,17,-1], - [23,24,24,-1], [20,24,24,-1], [15,38,38,-1], [17,24,24,-1], [17,24,24,-1], [17,24,24,-1], [17,24,24,-1], [17,24,24,-1], - [14,17,17,-1], [20,24,24,-1], [10,4,-9], [17,4,-9], [25,4,-9], [10,3,-10], [17,3,-10], [25,3,-10], - [5,31,30,-3], [5,31,30], [6,31,30,-3], [6,31,30], [6,31,30,-3], [6,31,30], [8,31,30,-2], [8,31,30,-2], - [16,21,20,-2], [16,31,30,-2], [16,42,41,-2], [16,52,51,-2], [11,32,31,-2], [2,12,11,-11], [8,11,10,-11], [5,11,11,-4], - [9,11,11,-1], [8,10,10,-2], [9,6,4,1], [9,6,4,1], [9,6,0,1], [9,6,0,1], [12,11,11,-1], [12,10,10,-1], - [7,38,68,98,128,158,188,218,248,278,309,339,369,399,429,459], - [26,100,174,248,322,396,470,544], - [492,616] - ], - cmbx10: [ - [11,12,0], [15,12,0,-1], [14,13,1,-1], [13,12,0], [13,12,0], [15,12,0], [12,12,0,-1], [13,12,0,-1], - [12,12,0,-1], [13,12,0,-1], [13,12,0,-1], [13,12,0], [11,12,0], [11,12,0], [16,12,0], [16,12,0], - [5,8,0], [6,12,4,1], [4,4,-8,-2], [4,4,-8,-4], [6,2,-9,-2], [7,4,-8,-1], [8,2,-9,-1], [5,3,-9,-5], - [6,4,4,-2], [10,13,1], [14,9,1], [15,9,1], [10,12,2], [18,12,0], [19,13,1,-1], [14,14,1,-1], - [6,3,-4], [4,12,0,-1], [8,6,-6], [15,16,4,-1], [8,14,1,-1], [15,14,1,-1], [15,13,1], [4,6,-6,-1], - [6,17,4,-1], [5,17,4,-1], [8,8,-5,-1], [13,14,3,-1], [4,7,4,-1], [6,2,-3], [3,3,0,-1], [8,17,4,-1], - [9,13,1], [8,12,0,-1], [8,12,0,-1], [9,13,1], [10,12,0], [8,12,1,-1], [9,13,1], [9,13,1,-1], - [9,13,1], [9,13,1], [3,8,0,-1], [4,12,4,-1], [4,13,4,-1], [13,6,-1,-1], [8,13,4,-1], [8,12,0,-1], - [14,13,1,-1], [14,12,0], [13,12,0], [12,13,1,-1], [14,12,0], [13,12,0], [12,12,0], [14,13,1,-1], - [15,12,0], [7,12,0], [9,13,1], [15,12,0], [11,12,0], [18,12,0], [15,12,0], [13,13,1,-1], - [13,12,0], [13,16,4,-1], [15,13,1], [9,13,1,-1], [13,12,0], [15,13,1], [15,13,1], [20,13,1], - [15,12,0], [15,12,0], [10,12,0,-1], [3,17,4,-2], [8,7,-5,-2], [4,17,4], [6,3,-9,-2], [3,3,-9,-1], - [3,7,-5,-1], [10,9,1], [11,13,1], [8,9,1], [11,13,1], [9,9,1], [8,12,0], [10,12,4], - [11,12,0], [5,12,0], [6,16,4,1], [10,12,0], [5,12,0], [16,8,0], [11,8,0], [10,9,1], - [11,12,4], [11,12,4], [8,8,0], [7,9,1], [7,12,1], [11,9,1], [10,8,0], [14,8,0], - [10,8,0], [10,12,4], [8,8,0], [10,1,-4], [20,1,-4], [7,4,-8,-2], [7,2,-10,-1], [7,3,-9,-1], - [7,31,54,78,102,125,149,173,196,220,244,268,291,315,339,362], - [22,42,61,81,101,121,141,161], - [388,175] - ], - cmti10: [ - [11,12,0,-1], [12,12,0,-1], [12,13,1,-2], [10,13,0,-1], [12,12,0,-1], [14,12,0,-1], [13,12,0,-1], [12,12,0,-3], - [11,12,0,-2], [11,12,0,-3], [12,12,0,-1], [14,16,4,1], [12,16,4,1], [12,16,4,1], [17,16,4,1], [17,16,4,1], - [5,9,1,-1], [7,12,4,1], [3,4,-8,-5], [5,4,-8,-5], [5,3,-8,-4], [6,4,-8,-4], [6,1,-9,-4], [4,4,-9,-8], - [5,4,4,-1], [11,16,4,1], [12,9,1,-1], [12,9,1,-1], [9,11,2,-1], [15,12,0,-1], [16,13,1,-2], [17,14,1,3], - [5,3,-4,-1], [5,13,0,-2], [6,6,-6,-3], [12,16,4,-2], [11,13,1,-1], [13,14,1,-2], [12,14,1,-2], [4,6,-6,-3], - [7,17,4,-2], [7,17,4], [7,8,-5,-3], [11,11,1,-2], [3,6,4,-1], [5,2,-3,-1], [2,2,0,-2], [11,17,4], - [8,13,1,-2], [6,12,0,-2], [9,13,1,-1], [9,13,1,-1], [8,16,4], [9,13,1,-1], [8,13,1,-2], [9,13,1,-2], - [9,13,1,-1], [9,13,1,-1], [4,8,0,-2], [5,12,4,-1], [5,13,4,-1], [12,5,-2,-2], [7,13,4,-1], [7,13,0,-3], - [12,13,1,-2], [11,13,0,-1], [12,12,0,-1], [12,13,1,-2], [13,12,0,-1], [12,12,0,-1], [12,12,0,-1], [12,13,1,-2], - [14,12,0,-1], [8,12,0,-1], [10,13,1,-1], [14,12,0,-1], [10,12,0,-1], [16,12,0,-1], [14,12,0,-1], [12,13,1,-2], - [12,12,0,-1], [12,16,4,-2], [12,13,1,-1], [10,13,1,-1], [11,12,0,-3], [12,13,1,-3], [12,13,1,-3], [16,13,1,-3], - [17,12,0,3], [12,12,0,-3], [11,12,0,-1], [7,17,4,-1], [7,6,-6,-4], [7,17,4,1], [5,3,-9,-4], [3,3,-9,-4], - [3,6,-6,-3], [8,9,1,-1], [6,13,1,-2], [7,9,1,-1], [9,13,1,-1], [6,9,1,-2], [9,16,4,1], [8,12,4,-1], - [8,13,1,-1], [5,12,1,-1], [7,16,4,1], [8,13,1,-1], [5,13,1,-1], [14,9,1,-1], [9,9,1,-1], [8,9,1,-1], - [9,12,4], [8,12,4,-1], [8,9,1,-1], [6,9,1,-1], [6,12,1,-1], [9,9,1,-1], [8,9,1,-1], [11,9,1,-1], - [8,9,1,-1], [8,12,4,-1], [7,9,1,-1], [9,1,-4,-1], [16,1,-4,-2], [13,8,-4,3], [6,3,-9,-4], [6,3,-9,-4], - [7,27,47,68,88,109,129,149,170,190,210,231,251,271,292,312], - [22,42,61,81,101,121,141,161], - [335,175] - ] -}); - -jsMath.Img.AddFont(144,{ - cmr10: [ - [12,14,0], [15,15,0,-1], [14,16,1,-1], [14,15,0], [13,14,0], [15,14,0], [13,14,0,-1], [14,15,0,-1], - [13,14,0,-1], [14,14,0,-1], [13,15,0,-1], [13,15,0], [11,15,0], [11,15,0], [16,15,0], [16,15,0], - [5,9,0], [6,14,5,1], [4,4,-10,-2], [4,4,-10,-4], [6,3,-10,-2], [6,4,-10,-2], [8,1,-11,-1], [5,5,-10,-5], - [6,5,5,-2], [10,16,1], [13,10,1,-1], [15,10,1], [10,13,2], [18,14,0], [19,15,1,-1], [14,16,1,-1], - [6,3,-5], [3,15,0,-1], [7,6,-8], [15,18,4,-1], [8,16,1,-1], [15,17,2,-1], [15,16,1], [4,6,-8,-1], - [5,20,5,-2], [5,20,5,-1], [8,9,-6,-1], [14,14,2,-1], [3,7,4,-1], [6,2,-3], [3,3,0,-1], [8,20,5,-1], - [10,15,1], [8,14,0,-1], [8,14,0,-1], [10,15,1], [10,14,0], [8,15,1,-1], [10,15,1], [9,15,1,-1], - [10,15,1], [10,15,1], [3,9,0,-1], [3,13,4,-1], [3,15,5,-1], [14,6,-2,-1], [8,15,5,-1], [8,15,0,-1], - [14,16,1,-1], [15,15,0], [13,14,0], [13,16,1,-1], [15,14,0], [13,14,0], [13,14,0], [14,16,1,-1], - [15,14,0], [7,14,0], [10,15,1], [15,14,0], [12,14,0], [18,14,0], [15,14,0], [14,16,1,-1], - [13,14,0], [14,19,4,-1], [15,15,1], [9,16,1,-1], [14,14,0], [15,15,1], [15,15,1], [21,15,1], - [15,14,0], [15,14,0], [11,14,0,-1], [4,20,5,-2], [7,7,-7,-3], [4,20,5], [6,3,-11,-2], [3,3,-11,-1], - [3,7,-7,-1], [10,10,1], [11,15,1], [9,10,1], [11,15,1], [9,10,1], [8,15,0], [10,14,5], - [11,14,0], [5,14,0], [6,19,5,1], [11,14,0], [5,14,0], [17,9,0], [11,9,0], [10,10,1], - [11,13,4], [11,13,4], [8,9,0], [8,10,1], [7,14,1], [11,10,1], [11,10,1], [14,10,1], - [11,9,0], [11,13,4], [8,9,0], [10,1,-5], [20,1,-5], [7,4,-10,-2], [8,3,-11,-1], [6,3,-11,-2], - [8,33,57,82,106,131,155,180,205,229,254,278,303,327,352,377], - [26,50,74,98,122,145,169,193], - [404,209] - ], - cmmi10: [ - [15,14,0], [15,15,0,-1], [14,16,1,-1], [14,15,0], [15,14,0,-1], [18,14,0], [15,14,0,-1], [14,14,0], - [13,14,0], [14,14,0], [15,15,0,-1], [12,10,1], [12,18,4], [11,14,5], [9,16,1], [7,10,1,-1], - [10,19,5], [10,14,5], [10,15,1], [6,10,1,-1], [10,10,1,-1], [10,15,1,-1], [12,14,5], [10,9,0,-1], - [9,19,5], [12,10,1], [10,14,5], [12,10,1], [11,10,1], [11,10,1], [11,18,4,-1], [12,14,5], - [13,18,4], [13,10,1], [9,10,1], [12,16,1], [17,10,1], [9,13,4,-1], [9,12,3], [12,14,5,-1], - [18,7,-4,-1], [18,7,1,-1], [18,7,-4,-1], [18,7,1,-1], [4,6,-4,-1], [4,6,-4,-1], [10,10,0], [10,10,0], - [10,10,1], [7,9,0,-2], [8,9,0,-1], [10,14,5], [10,14,4], [8,14,5,-1], [10,15,1], [9,15,5,-1], - [10,15,1], [10,14,5], [3,3,0,-1], [3,7,4,-1], [13,12,1,-1], [8,20,5,-1], [13,12,1,-1], [10,10,0], - [12,16,1], [15,15,0], [16,14,0], [15,16,1,-1], [17,14,0], [16,14,0], [15,14,0], [15,16,1,-1], - [18,14,0], [10,14,0], [12,15,1,-1], [18,14,0], [13,14,0], [21,14,0], [18,14,0], [14,16,1,-1], - [15,14,0], [14,19,4,-1], [15,15,1], [12,16,1,-1], [14,14,0], [15,15,1,-1], [15,15,1,-1], [20,15,1,-1], - [17,14,0], [16,14,0], [14,14,0,-1], [6,16,1,-1], [6,20,5,-1], [6,20,5,-1], [18,6,-2,-1], [18,6,-2,-1], - [8,15,1], [10,10,1], [8,15,1,-1], [9,10,1], [11,15,1], [9,10,1], [10,19,4,-1], [10,14,5], - [10,15,1,-1], [6,15,1], [9,19,5,1], [10,15,1,-1], [6,15,1], [17,10,1], [12,10,1], [10,10,1], - [11,13,4,1], [9,13,4], [9,10,1], [8,10,1,-1], [7,14,1], [11,10,1], [10,10,1], [14,10,1], - [11,10,1], [10,14,5], [9,10,1,-1], [6,10,1], [9,14,5,1], [12,14,5,-1], [10,5,-10,-3], [8,4,-10,-5], - [8,32,56,80,104,128,151,175,199,223,247,271,295,319,343,367], - [26,50,74,98,122,145,169,193], - [393,209] - ], - cmsy10: [ - [13,2,-4,-1], [3,2,-4,-1], [10,10,0,-3], [8,10,0,-1], [14,12,1,-1], [10,10,0], [14,14,0,-1], [14,14,4,-1], - [14,14,2,-1], [14,14,2,-1], [14,14,2,-1], [14,14,2,-1], [14,14,2,-1], [18,20,5,-1], [8,8,-1,-1], [8,8,-1,-1], - [14,10,0,-1], [14,10,0,-1], [13,16,3,-1], [13,16,3,-1], [13,16,3,-1], [13,16,3,-1], [13,16,3,-1], [13,16,3,-1], - [14,6,-2,-1], [14,9,-1,-1], [13,12,1,-1], [13,12,1,-1], [18,14,2,-1], [18,14,2,-1], [13,12,1,-1], [13,12,1,-1], - [18,8,-1,-1], [18,8,-1,-1], [8,18,4,-1], [8,18,4,-1], [18,8,-1,-1], [18,18,4,-1], [18,18,4,-1], [14,10,0,-1], - [18,12,1,-1], [18,12,1,-1], [12,18,4], [12,18,4], [19,12,1], [18,18,4,-1], [18,18,4,-1], [14,10,1,-1], - [6,11,-1], [18,10,1,-1], [11,12,1,-1], [11,12,1,-1], [16,15,0,-1], [16,15,5,-1], [11,20,5,-2], [2,8,-1,-1], - [11,15,1], [9,14,0,-1], [12,7,-1,-1], [9,18,2], [14,16,1,-1], [13,16,1,-1], [14,14,0,-1], [14,14,0,-1], - [11,14,0,-1], [16,16,1], [14,16,1], [11,15,1], [16,14,0], [12,16,1], [17,15,1], [12,18,3], - [17,15,1], [14,14,0,1], [16,17,3,-1], [15,16,1], [13,16,1], [23,15,1], [21,17,1,1], [15,15,1,-1], - [15,15,1], [14,18,3,-2], [17,15,1], [13,16,1], [16,15,0], [15,15,1,1], [14,15,1], [21,15,1], - [16,14,0,-1], [15,17,3], [16,14,0], [12,13,1,-1], [12,13,1,-1], [12,13,1,-1], [11,13,1,-1], [12,13,1,-1], - [10,14,0,-1], [11,14,0,-1], [6,20,5,-3], [6,20,5], [6,20,5,-3], [6,20,5], [8,20,5,-1], [8,20,5,-1], - [5,20,5,-2], [5,20,5,-1], [2,20,5,-2], [6,20,5,-2], [8,22,6,-1], [12,22,6], [8,20,5,-1], [4,14,2,-1], - [16,21,20,-1], [15,14,0], [15,15,1,-1], [9,20,5,-1], [12,12,0,-1], [12,12,0,-1], [14,16,3,-1], [13,16,3,-1], - [7,20,5,-1], [7,19,5,-1], [7,18,4,-1], [11,18,4,-1], [15,18,3], [14,19,4,-1], [14,16,1,-1], [14,18,3,-1], - [8,37,66,95,123,152,181,209,238,267,295,324,353,382,410,439], - [27,68,109,150,191,232,273,314], - [471,348] - ], - cmex10: [ - [6,24,23,-3], [6,24,23,-1], [4,25,24,-4], [5,25,24], [5,25,24,-4], [6,25,24], [5,25,24,-4], [6,25,24], - [8,25,24,-2], [8,25,24,-2], [6,25,24,-2], [7,24,23,-1], [2,14,13,-2], [7,14,13,-2], [10,25,24,-1], [10,24,23,-1], - [9,37,36,-3], [9,37,36], [10,49,48,-4], [11,49,48], [6,49,48,-5], [6,49,48], [7,49,48,-5], [7,49,48], - [7,49,48,-5], [7,49,48], [11,49,48,-2], [11,49,48,-2], [11,49,48,-2], [11,49,48,-2], [19,49,48,-1], [19,49,48,-1], - [11,61,60,-4], [12,61,60], [7,61,60,-5], [7,61,60], [8,61,60,-5], [8,61,60], [8,61,60,-5], [8,61,60], - [12,61,60,-2], [12,61,60,-2], [12,61,60,-2], [12,61,60,-2], [24,61,60,-1], [24,61,60,-1], [14,37,36,-1], [14,37,36,-1], - [12,37,36,-5], [12,37,36], [8,37,36,-6], [7,37,36], [8,37,36,-6], [7,37,36], [2,12,12,-6], [2,12,12,-5], - [8,19,19,-7], [8,19,19,-3], [8,19,18,-7], [8,19,18,-3], [8,38,37,-3], [8,38,37,-7], [4,8,7,-7], [2,12,12,-6], - [12,37,36,-5], [12,37,36], [3,14,13,-5], [3,14,13,-9], [9,36,35,-2], [9,37,36,-1], [15,20,20,-1], [21,28,28,-1], - [12,23,23,-1], [18,45,45,-1], [20,20,20,-1], [28,28,28,-1], [20,20,20,-1], [28,28,28,-1], [20,20,20,-1], [28,28,28,-1], - [19,20,20,-1], [17,20,20,-1], [12,23,23,-1], [15,20,20,-1], [15,20,20,-1], [15,20,20,-1], [15,20,20,-1], [15,20,20,-1], - [27,28,28,-1], [24,28,28,-1], [18,45,45,-1], [21,28,28,-1], [21,28,28,-1], [21,28,28,-1], [20,28,28,-1], [20,28,28,-1], - [17,20,20,-1], [24,28,28,-1], [12,4,-11], [20,5,-11], [29,5,-11], [11,3,-12], [20,3,-12], [29,3,-12], - [5,37,36,-4], [5,37,36], [7,37,36,-4], [6,37,36], [7,37,36,-4], [6,37,36], [9,37,36,-2], [9,37,36,-2], - [19,25,24,-2], [19,37,36,-2], [19,49,48,-2], [19,61,60,-2], [13,37,36,-2], [1,14,13,-14], [8,13,12,-14], [6,12,12,-5], - [9,12,12,-2], [9,12,12,-2], [11,8,5,1], [11,8,5,1], [11,7,0,1], [11,7,0,1], [14,12,12,-1], [14,12,12,-1], - [9,45,81,117,154,190,226,262,298,334,370,406,443,479,515,551], - [31,120,209,297,386,475,564,652], - [591,739] - ], - cmbx10: [ - [13,14,0], [17,14,0,-1], [16,15,1,-1], [16,14,0], [14,14,0,-1], [18,14,0], [15,14,0,-1], [16,14,0,-1], - [15,14,0,-1], [16,14,0,-1], [15,14,0,-1], [15,14,0], [12,14,0], [12,14,0], [19,14,0], [19,14,0], - [5,9,0,-1], [8,13,4,2], [5,4,-10,-2], [5,4,-10,-5], [7,3,-10,-2], [8,4,-10,-2], [9,2,-11,-1], [5,4,-10,-6], - [7,4,4,-2], [12,15,1], [16,10,1], [18,10,1], [11,13,2], [21,14,0], [22,15,1,-1], [16,16,1,-1], - [7,3,-5], [3,15,0,-2], [10,7,-7], [17,18,4,-1], [10,17,2,-1], [17,17,2,-1], [16,15,1,-1], [4,7,-7,-1], - [6,20,5,-2], [6,20,5,-1], [9,9,-6,-1], [16,16,3,-1], [4,8,4,-1], [7,3,-3], [4,4,0,-1], [10,20,5,-1], - [11,15,1], [9,13,0,-1], [10,14,0,-1], [10,15,1,-1], [11,14,0], [10,14,1,-1], [10,15,1,-1], [11,15,1,-1], - [10,15,1,-1], [10,15,1,-1], [4,9,0,-1], [4,13,4,-1], [3,15,5,-2], [16,6,-2,-1], [9,14,4,-1], [9,14,0,-1], - [16,15,1,-1], [17,14,0], [15,14,0], [15,15,1,-1], [17,14,0], [15,14,0], [14,14,0], [16,15,1,-1], - [18,14,0], [8,14,0], [11,15,1], [17,14,0], [13,14,0], [21,14,0], [18,14,0], [15,15,1,-1], - [15,14,0], [16,18,4,-1], [18,15,1], [11,15,1,-1], [16,14,0], [17,15,1], [17,15,1], [24,15,1], - [17,14,0], [17,14,0], [12,14,0,-1], [4,20,5,-2], [10,8,-6,-2], [4,20,5], [7,4,-10,-2], [4,4,-10,-1], - [4,8,-6,-1], [12,10,1], [12,15,1], [10,10,1], [12,15,1], [10,10,1], [9,14,0], [12,13,4], - [13,14,0], [5,14,0,-1], [8,18,4,2], [12,14,0], [5,14,0,-1], [19,9,0], [13,9,0], [11,10,1], - [12,13,4], [12,13,4], [9,9,0], [9,10,1], [8,14,1], [13,10,1], [12,9,0], [17,9,0], - [12,9,0], [12,13,4], [10,9,0], [12,1,-5], [23,1,-5], [7,5,-10,-3], [8,3,-11,-2], [8,3,-11,-2], - [8,37,65,94,122,150,179,207,236,264,293,321,349,378,406,435], - [26,50,74,98,122,145,169,193], - [466,209] - ], - cmti10: [ - [13,14,0,-1], [14,15,0,-1], [13,16,1,-3], [12,15,0,-1], [14,14,0,-1], [16,14,0,-1], [15,14,0,-1], [13,15,0,-4], - [12,14,0,-3], [13,14,0,-4], [14,15,0,-2], [17,19,4,1], [13,19,4,1], [14,19,4,1], [20,20,5,1], [20,20,5,1], - [6,10,1,-1], [8,13,4,1], [4,4,-10,-5], [5,4,-10,-6], [6,3,-10,-5], [7,4,-10,-5], [8,1,-11,-4], [5,5,-10,-9], - [5,4,4,-2], [13,19,4,1], [14,10,1,-1], [13,10,1,-2], [10,13,2,-1], [18,14,0,-1], [18,16,1,-3], [15,17,2,-2], - [5,3,-5,-2], [6,15,0,-2], [8,6,-8,-3], [15,18,4,-2], [13,16,1,-1], [14,17,2,-3], [14,16,1,-2], [4,6,-8,-4], - [8,20,5,-3], [8,20,5], [8,9,-6,-4], [12,13,2,-3], [4,7,4,-1], [6,2,-3,-1], [3,3,0,-2], [13,20,5], - [10,15,1,-2], [8,14,0,-2], [10,15,1,-1], [11,15,1,-1], [9,18,4,-1], [10,15,1,-2], [10,15,1,-2], [10,15,1,-3], - [9,15,1,-2], [9,15,1,-2], [4,9,0,-2], [5,13,4,-1], [6,15,5,-1], [14,6,-2,-2], [8,15,5,-1], [8,15,0,-3], - [13,16,1,-3], [13,15,0,-1], [14,14,0,-1], [14,16,1,-3], [15,14,0,-1], [14,14,0,-1], [14,14,0,-1], [14,16,1,-3], - [16,14,0,-1], [9,14,0,-1], [12,15,1,-1], [17,14,0,-1], [12,14,0,-1], [19,14,0,-1], [16,14,0,-1], [13,16,1,-3], - [14,14,0,-1], [13,19,4,-3], [14,15,1,-1], [12,16,1,-1], [13,14,0,-3], [13,15,1,-4], [14,15,1,-4], [18,15,1,-4], - [21,14,0,4], [14,14,0,-4], [13,14,0,-1], [8,20,5,-1], [8,7,-7,-5], [9,20,5,1], [6,4,-10,-5], [3,3,-11,-5], - [4,6,-8,-4], [9,10,1,-2], [8,15,1,-2], [8,10,1,-2], [10,15,1,-2], [8,10,1,-2], [10,19,4,1], [9,14,5,-1], - [10,15,1,-1], [6,14,1,-1], [9,18,4,1], [9,15,1,-1], [5,15,1,-1], [16,10,1,-1], [11,10,1,-1], [9,10,1,-2], - [11,13,4], [8,13,4,-2], [9,10,1,-1], [8,10,1,-1], [7,14,1,-1], [11,10,1,-1], [9,10,1,-1], [13,10,1,-1], - [10,10,1,-1], [10,13,4,-1], [9,10,1,-1], [9,1,-5,-2], [19,1,-5,-2], [7,4,-10,-5], [7,3,-11,-5], [6,3,-11,-5], - [8,32,57,81,106,130,155,179,204,228,252,277,301,326,350,375], - [26,50,74,98,122,145,169,193], - [402,209] - ] -}); - -jsMath.Img.AddFont(173,{ - cmr10: [ - [14,17,0], [18,18,0,-1], [17,18,1,-1], [16,18,0], [14,17,0,-1], [18,17,0], [15,17,0,-1], [17,17,0,-1], - [15,17,0,-1], [17,17,0,-1], [16,17,0,-1], [15,17,0], [13,17,0], [13,17,0], [20,17,0], [20,17,0], - [6,11,0], [6,16,5,1], [5,5,-12,-2], [5,5,-12,-5], [6,4,-12,-3], [8,5,-12,-2], [10,2,-13,-1], [6,5,-13,-6], - [6,5,5,-3], [12,18,1], [16,12,1,-1], [18,12,1], [12,16,3], [21,17,0], [23,18,1,-1], [17,20,2,-1], - [7,4,-6], [3,18,0,-2], [9,8,-9], [18,22,5,-1], [10,20,2,-1], [18,20,2,-1], [17,19,1,-1], [3,8,-9,-2], - [6,24,6,-2], [6,24,6,-1], [10,11,-7,-1], [17,16,2,-1], [3,8,5,-2], [7,2,-4], [3,3,0,-2], [10,24,6,-1], - [11,17,1], [8,16,0,-2], [10,16,0,-1], [10,17,1,-1], [12,17,0], [10,17,1,-1], [10,17,1,-1], [11,18,1,-1], - [10,17,1,-1], [10,17,1,-1], [3,11,0,-2], [3,16,5,-2], [3,18,6,-2], [17,6,-3,-1], [9,17,5,-1], [9,17,0,-1], - [17,18,1,-1], [18,18,0], [16,17,0], [15,18,1,-1], [17,17,0], [16,17,0], [15,17,0], [17,18,1,-1], - [18,17,0], [8,17,0], [11,18,1,-1], [18,17,0], [14,17,0], [22,17,0], [18,17,0], [17,18,1,-1], - [15,17,0], [17,22,5,-1], [18,18,1], [11,18,1,-1], [17,17,0], [18,18,1], [18,18,1], [25,18,1], - [18,17,0], [18,17,0], [13,17,0,-1], [5,24,6,-2], [9,8,-9,-3], [4,24,6], [6,4,-13,-3], [3,3,-13,-2], - [4,8,-9,-1], [11,12,1,-1], [13,18,1], [10,12,1], [13,18,1], [10,12,1], [9,17,0], [12,16,5], - [13,17,0], [6,16,0], [6,21,5,1], [13,17,0], [7,17,0], [20,11,0], [13,11,0], [12,12,1], - [13,16,5], [13,16,5], [9,11,0], [9,12,1], [8,16,1], [13,12,1], [13,12,1], [17,12,1], - [13,11,0], [13,16,5], [10,11,0], [12,1,-6], [24,1,-6], [7,5,-12,-3], [8,3,-13,-2], [8,3,-13,-2], - [10,39,69,98,128,157,187,216,246,275,305,334,364,393,423,453], - [32,61,90,118,147,176,204,233], - [485,253] - ], - cmmi10: [ - [17,17,0,-1], [18,18,0,-1], [17,18,1,-1], [16,18,0], [18,17,0,-1], [20,17,0,-1], [19,17,0,-1], [17,17,0], - [16,17,0], [17,17,0], [18,17,0,-1], [14,12,1,-1], [15,22,5], [13,16,5], [10,18,1,-1], [8,12,1,-1], - [11,22,5,-1], [12,17,6], [10,18,1,-1], [7,12,1,-1], [12,12,1,-1], [12,18,1,-1], [14,17,6], [12,11,0,-1], - [11,22,5], [14,12,1], [12,17,6], [14,12,1], [13,12,1], [13,12,1], [13,22,5,-1], [15,16,5], - [16,22,5], [15,12,1], [11,12,1], [14,18,1], [20,12,1], [11,16,5,-1], [10,14,3], [14,17,6,-1], - [22,8,-5,-1], [22,8,1,-1], [22,8,-5,-1], [22,8,1,-1], [5,7,-5,-1], [5,7,-5,-1], [12,12,0], [12,12,0], - [10,12,1,-1], [8,11,0,-2], [10,11,0,-1], [10,17,6,-1], [12,17,5], [10,17,6,-1], [10,17,1,-1], [11,17,6,-1], - [10,17,1,-1], [10,17,6,-1], [3,3,0,-2], [3,8,5,-2], [15,14,1,-2], [10,24,6,-1], [15,14,1,-2], [12,12,0], - [13,19,1,-1], [18,18,0], [18,17,0,-1], [18,18,1,-1], [19,17,0,-1], [18,17,0,-1], [17,17,0,-1], [18,18,1,-1], - [20,17,0,-1], [12,17,0], [14,18,1,-1], [21,17,0,-1], [15,17,0,-1], [24,17,0,-1], [20,17,0,-1], [17,18,1,-1], - [18,17,0,-1], [17,22,5,-1], [17,18,1,-1], [15,18,1,-1], [17,17,0], [18,18,1,-1], [18,18,1,-1], [24,18,1,-1], - [25,17,0,4], [18,17,0,-1], [17,17,0,-1], [7,19,1,-1], [7,24,6,-1], [7,24,6,-1], [22,6,-3,-1], [22,7,-3,-1], - [10,18,1], [11,12,1,-1], [9,18,1,-1], [10,12,1,-1], [12,18,1,-1], [10,12,1,-1], [13,22,5,-1], [12,16,5], - [12,18,1,-1], [7,17,1], [11,21,5,1], [12,18,1,-1], [6,18,1,-1], [21,12,1], [14,12,1], [11,12,1,-1], - [13,16,5,1], [10,16,5,-1], [11,12,1], [9,12,1,-1], [8,16,1], [13,12,1], [12,12,1], [17,12,1], - [13,12,1], [12,16,5], [11,12,1,-1], [7,12,1], [10,16,5,1], [14,17,6,-1], [11,5,-12,-4], [10,3,-13,-6], - [10,38,67,96,124,153,182,211,239,268,297,326,354,383,412,440], - [32,61,90,118,147,176,204,233], - [472,253] - ], - cmsy10: [ - [15,2,-5,-2], [3,4,-4,-2], [12,12,0,-3], [10,11,0,-1], [17,14,1,-1], [12,12,0], [17,16,0,-1], [17,16,4,-1], - [17,16,2,-1], [17,16,2,-1], [17,16,2,-1], [17,16,2,-1], [17,16,2,-1], [22,24,6,-1], [10,10,-1,-1], [10,10,-1,-1], - [17,12,0,-1], [17,12,0,-1], [15,20,4,-2], [15,20,4,-2], [15,20,4,-2], [15,20,4,-2], [15,20,4,-2], [15,20,4,-2], - [17,6,-3,-1], [17,11,-1,-1], [15,14,1,-2], [15,14,1,-2], [22,16,2,-1], [22,16,2,-1], [15,14,1,-2], [15,14,1,-2], - [22,10,-1,-1], [22,10,-1,-1], [10,22,5,-1], [10,22,5,-1], [22,10,-1,-1], [22,22,5,-1], [22,22,5,-1], [17,12,0,-1], - [22,14,1,-1], [22,14,1,-1], [14,22,5], [14,22,5], [22,14,1,-1], [22,22,5,-1], [22,22,5,-1], [17,12,1,-1], - [7,13,-1], [22,12,1,-1], [12,14,1,-2], [12,14,1,-2], [19,18,0,-1], [19,18,6,-1], [13,24,6,-3], [2,10,-1,-1], - [14,18,1], [11,17,0,-1], [14,7,-2,-1], [10,21,2,-1], [16,19,1,-1], [16,18,1,-1], [17,16,0,-1], [17,16,0,-1], - [13,17,0,-1], [19,20,2], [16,18,1], [13,18,1], [19,17,0], [14,18,1], [20,18,1], [14,20,3,-1], - [20,19,2], [17,17,0,1], [19,20,3,-1], [18,18,1], [16,18,1], [27,19,2], [25,21,2,1], [18,18,1,-1], - [18,19,2], [17,20,3,-2], [20,18,1], [16,18,1], [19,18,0], [18,18,1,1], [15,18,1,-1], [24,18,1,-1], - [19,17,0,-1], [18,21,4], [18,17,0,-1], [14,16,1,-1], [14,16,1,-1], [14,16,1,-1], [14,16,1,-1], [14,16,1,-1], - [13,17,0,-1], [13,17,0,-1], [6,24,6,-4], [7,24,6], [6,24,6,-4], [7,24,6], [9,24,6,-2], [9,24,6,-1], - [6,24,6,-2], [6,24,6,-1], [2,24,6,-2], [6,24,6,-3], [10,26,7,-1], [14,26,7], [10,24,6,-1], [5,16,2,-1], - [20,24,23,-1], [17,17,0], [18,18,1,-1], [11,24,6,-1], [14,15,0,-1], [14,15,0,-1], [16,20,4,-2], [16,20,4,-1], - [8,22,5,-1], [9,23,6,-1], [9,22,5,-1], [13,22,5,-1], [18,22,4], [17,22,4,-1], [17,19,1,-1], [17,22,4,-1], - [10,45,79,114,148,183,217,252,286,321,355,390,424,459,493,528], - [34,83,132,181,230,279,329,378], - [565,419] - ], - cmex10: [ - [7,29,28,-3], [7,29,28,-1], [6,29,28,-4], [6,29,28], [7,29,28,-4], [7,29,28], [7,29,28,-4], [7,29,28], - [10,29,28,-2], [10,29,28,-2], [8,29,28,-2], [8,29,28,-1], [2,16,15,-3], [7,16,15,-3], [12,29,28,-1], [12,29,28,-1], - [10,44,43,-4], [9,44,43,-1], [12,58,57,-5], [12,58,57,-1], [7,58,57,-6], [7,58,57], [8,58,57,-6], [8,58,57], - [8,58,57,-6], [8,58,57], [12,58,57,-3], [12,58,57,-3], [13,58,57,-3], [13,58,57,-2], [23,58,57,-1], [23,58,57,-1], - [14,72,71,-5], [14,72,71], [8,72,71,-6], [8,72,71], [9,72,71,-6], [9,72,71], [9,72,71,-6], [9,72,71], - [13,72,71,-3], [13,72,71,-3], [14,72,71,-3], [14,72,71,-2], [29,72,71,-1], [29,72,71,-1], [17,44,43,-1], [17,44,43,-1], - [14,44,43,-7], [14,44,43], [9,44,43,-7], [9,44,43], [9,44,43,-7], [9,44,43], [3,15,15,-7], [3,15,15,-6], - [9,22,22,-9], [9,22,22,-4], [9,23,22,-9], [9,23,22,-4], [9,45,44,-4], [9,45,44,-9], [4,9,8,-9], [2,15,15,-7], - [13,45,43,-7], [14,45,43], [3,16,15,-7], [3,16,15,-11], [11,44,43,-2], [10,44,43,-2], [18,24,24,-1], [25,34,34,-1], - [14,27,27,-1], [22,54,54,-1], [25,24,24,-1], [34,34,34,-1], [25,24,24,-1], [34,34,34,-1], [25,24,24,-1], [34,34,34,-1], - [23,24,24,-1], [21,24,24,-1], [14,27,27,-1], [18,24,24,-1], [18,24,24,-1], [18,24,24,-1], [18,24,24,-1], [18,24,24,-1], - [33,34,34,-1], [29,34,34,-1], [22,54,54,-1], [25,34,34,-1], [25,34,34,-1], [25,34,34,-1], [25,34,34,-1], [25,34,34,-1], - [21,24,24,-1], [29,34,34,-1], [14,5,-13], [24,6,-13], [35,6,-13], [14,4,-14], [24,3,-15], [35,3,-15], - [6,44,43,-5], [6,44,43], [8,44,43,-5], [8,44,43], [8,44,43,-5], [8,44,43], [12,44,43,-2], [12,44,43,-2], - [23,29,28,-2], [23,44,43,-2], [23,58,57,-2], [23,72,71,-2], [16,45,44,-2], [2,16,15,-16], [10,15,14,-16], [7,15,15,-6], - [12,15,15,-2], [12,15,15,-2], [12,9,6,1], [13,9,6,1], [12,8,0,1], [13,8,0,1], [17,15,15,-1], [17,15,15,-1], - [11,54,98,141,184,228,271,315,358,401,445,488,532,575,619,662], - [39,145,252,358,465,571,678,785], - [709,888] - ], - cmbx10: [ - [16,17,0], [21,17,0,-1], [19,18,1,-1], [18,17,0,-1], [17,17,0,-1], [21,17,0], [18,17,0,-1], [19,17,0,-1], - [18,17,0,-1], [19,17,0,-1], [18,17,0,-1], [18,17,0], [15,17,0], [15,17,0], [23,17,0], [23,17,0], - [6,11,0,-1], [9,16,5,2], [6,5,-12,-2], [6,5,-12,-5], [8,4,-12,-3], [10,5,-12,-2], [10,2,-13,-2], [7,5,-12,-7], - [8,5,5,-3], [14,18,1], [20,12,1], [21,12,1], [13,17,3], [24,17,0,-1], [26,18,1,-2], [19,20,2,-1], - [8,4,-6], [4,17,0,-2], [11,9,-8,-1], [21,22,5,-1], [12,20,2,-1], [21,20,2,-1], [19,18,1,-1], [5,9,-8,-2], - [8,24,6,-2], [8,24,6,-1], [11,11,-7,-1], [19,20,4,-1], [4,9,5,-2], [8,3,-4], [4,4,0,-2], [12,24,6,-1], - [12,17,1,-1], [10,16,0,-2], [12,16,0,-1], [12,17,1,-1], [13,16,0], [12,17,1,-1], [12,17,1,-1], [13,18,1,-1], - [12,17,1,-1], [12,17,1,-1], [4,11,0,-2], [4,16,5,-2], [4,17,5,-2], [19,8,-2,-1], [11,17,5,-1], [11,17,0,-1], - [19,18,1,-1], [19,17,0,-1], [19,17,0], [18,18,1,-1], [20,17,0], [18,17,0], [17,17,0], [20,18,1,-1], - [21,17,0], [10,17,0], [13,18,1], [21,17,0], [16,17,0], [25,17,0,-1], [21,17,0], [19,18,1,-1], - [18,17,0], [19,22,5,-1], [21,18,1], [13,18,1,-1], [18,17,0,-1], [20,18,1,-1], [21,18,1], [28,18,1], - [20,17,0], [21,17,0], [15,17,0,-1], [4,24,6,-3], [11,9,-8,-3], [5,24,6], [8,5,-12,-3], [4,4,-13,-2], - [5,9,-8,-1], [14,12,1], [15,18,1], [12,12,1], [15,18,1], [12,12,1], [10,17,0,-1], [14,16,5], - [14,17,0,-1], [6,17,0,-1], [9,22,5,2], [15,17,0], [6,17,0,-1], [22,11,0,-1], [14,11,0,-1], [13,12,1], - [15,16,5], [15,16,5], [11,11,0], [10,12,1], [10,17,1], [14,12,1,-1], [14,12,1], [20,12,1], - [14,11,0], [14,16,5], [11,11,0], [14,1,-6], [28,1,-6], [9,5,-12,-3], [10,3,-14,-2], [10,4,-13,-2], - [10,44,78,112,147,181,215,249,283,317,352,386,420,454,488,522], - [32,61,90,118,147,176,204,233], - [560,253] - ], - cmti10: [ - [16,17,0,-1], [17,18,0,-1], [16,18,1,-3], [15,18,0,-1], [17,17,0,-1], [20,17,0,-1], [17,17,0,-2], [15,17,0,-5], - [15,17,0,-3], [15,17,0,-5], [17,17,0,-2], [20,22,5,1], [16,22,5,1], [17,22,5,1], [23,22,5,1], [24,22,5,1], - [6,12,1,-2], [9,16,5,1], [4,5,-12,-7], [6,5,-12,-8], [7,3,-12,-6], [8,5,-12,-6], [9,2,-13,-5], [5,5,-13,-11], - [6,5,5,-2], [15,22,5,1], [16,12,1,-2], [16,12,1,-2], [13,16,3,-1], [22,17,0,-1], [23,18,1,-3], [24,20,2,4], - [7,4,-6,-2], [7,18,0,-2], [9,8,-9,-4], [18,22,5,-2], [15,18,1,-2], [18,20,2,-3], [17,19,1,-3], [4,8,-9,-5], - [10,24,6,-3], [10,24,6], [10,11,-7,-4], [15,16,2,-3], [5,8,5,-1], [7,2,-4,-2], [4,3,0,-2], [15,24,6], - [12,17,1,-2], [9,16,0,-2], [12,17,1,-2], [12,17,1,-2], [11,21,5,-1], [12,17,1,-2], [12,17,1,-2], [12,17,1,-3], - [12,17,1,-2], [12,17,1,-2], [6,11,0,-2], [7,16,5,-1], [7,18,6,-1], [17,6,-3,-2], [9,18,6,-2], [10,18,0,-4], - [16,18,1,-3], [16,18,0,-1], [17,17,0,-1], [17,18,1,-3], [18,17,0,-1], [17,17,0,-1], [17,17,0,-1], [17,18,1,-3], - [20,17,0,-1], [11,17,0,-1], [13,18,1,-2], [20,17,0,-1], [14,17,0,-1], [23,17,0,-1], [20,17,0,-1], [16,18,1,-3], - [17,17,0,-1], [16,22,5,-3], [17,18,1,-1], [15,18,1,-1], [16,17,0,-4], [17,18,1,-4], [16,18,1,-5], [22,18,1,-5], - [24,17,0,4], [16,17,0,-5], [15,17,0,-2], [10,24,6,-1], [9,8,-9,-6], [10,24,6,1], [7,4,-13,-6], [3,3,-13,-6], - [4,8,-9,-5], [11,12,1,-2], [9,18,1,-2], [10,12,1,-2], [12,18,1,-2], [10,12,1,-2], [12,22,5,1], [11,16,5,-1], - [12,18,1,-1], [6,17,1,-2], [10,21,5,1], [11,18,1,-1], [6,18,1,-2], [19,12,1,-2], [12,12,1,-2], [11,12,1,-2], - [13,16,5], [10,16,5,-2], [10,12,1,-2], [9,12,1,-1], [7,16,1,-2], [12,12,1,-2], [10,12,1,-2], [15,12,1,-2], - [12,12,1,-1], [11,16,5,-2], [10,12,1,-1], [12,1,-6,-2], [22,1,-6,-3], [8,5,-12,-6], [8,3,-13,-6], [8,3,-13,-6], - [10,39,68,98,127,156,186,215,245,274,303,333,362,391,421,450], - [32,61,90,118,147,176,204,233], - [482,253] - ] -}); - -jsMath.Img.AddFont(207,{ - cmr10: [ - [16,20,0,-1], [22,21,0,-1], [20,22,1,-1], [20,21,0], [18,20,0,-1], [20,20,0,-1], [19,20,0,-1], [20,21,0,-1], - [19,20,0,-1], [20,20,0,-1], [19,21,0,-1], [19,21,0], [16,21,0], [16,21,0], [24,21,0], [24,21,0], - [7,13,0,-1], [9,19,6,2], [6,6,-15,-3], [6,6,-15,-6], [8,4,-15,-3], [9,6,-15,-3], [11,2,-16,-2], [6,6,-15,-8], - [8,6,6,-3], [14,22,1], [20,14,1,-1], [22,14,1], [13,19,3,-1], [26,20,0], [27,22,1,-2], [20,24,2,-1], - [8,4,-8], [4,21,0,-2], [9,10,-11,-1], [22,27,6,-1], [12,24,2,-1], [22,24,2,-1], [20,22,1,-1], [4,9,-11,-2], - [8,30,8,-2], [8,30,8,-1], [11,13,-9,-2], [20,20,3,-1], [4,9,6,-2], [8,3,-5], [4,3,0,-2], [12,30,8,-1], - [13,21,1,-1], [11,20,0,-2], [12,20,0,-1], [13,21,1,-1], [14,20,0], [12,21,1,-1], [13,21,1,-1], [13,21,1,-1], - [13,21,1,-1], [13,21,1,-1], [4,13,0,-2], [4,19,6,-2], [4,22,7,-2], [20,8,-3,-1], [11,21,6,-1], [11,21,0,-1], - [20,22,1,-1], [21,21,0], [18,20,0,-1], [19,22,1,-1], [20,20,0,-1], [18,20,0,-1], [17,20,0,-1], [21,22,1,-1], - [20,20,0,-1], [10,20,0], [13,21,1,-1], [21,20,0,-1], [16,20,0,-1], [25,20,0,-1], [20,20,0,-1], [20,22,1,-1], - [18,20,0,-1], [21,27,6,-1], [21,21,1,-1], [14,22,1,-1], [19,20,0,-1], [20,21,1,-1], [22,21,1], [30,21,1], - [21,20,0], [22,20,0], [16,20,0,-1], [5,30,8,-3], [10,9,-11,-4], [5,30,8], [8,5,-15,-3], [4,4,-16,-2], - [4,9,-11,-2], [14,14,1,-1], [16,22,1], [11,14,1,-1], [15,22,1,-1], [12,14,1], [10,21,0,-1], [14,20,6], - [16,21,0], [7,20,0,-1], [9,26,6,2], [15,21,0], [7,21,0,-1], [24,13,0], [16,13,0], [14,14,1], - [16,19,6], [15,19,6,-1], [11,13,0], [10,14,1,-1], [10,19,1], [15,14,1,-1], [15,14,1], [21,14,1], - [15,13,0], [15,19,6], [12,13,0], [15,1,-7], [29,1,-7], [10,6,-15,-3], [10,4,-16,-2], [9,4,-16,-3], - [12,47,82,118,153,188,223,259,294,329,365,400,435,471,506,541], - [37,72,106,140,175,209,243,278], - [580,301] - ], - cmmi10: [ - [20,20,0,-1], [22,21,0,-1], [21,22,1,-1], [19,21,0,-1], [22,20,0,-1], [25,20,0,-1], [23,20,0,-1], [21,21,0], - [19,20,0], [20,20,0], [21,21,0,-2], [17,14,1,-1], [18,27,6], [16,20,7], [13,22,1,-1], [10,14,1,-1], - [13,27,6,-1], [15,20,7], [13,22,1,-1], [9,14,1,-1], [15,14,1,-1], [15,22,1,-1], [17,20,7], [15,13,0,-1], - [13,27,6], [17,14,1], [15,20,7], [16,14,1,-1], [15,14,1], [16,14,1], [16,26,6,-1], [17,19,6,-1], - [19,26,6], [18,14,1], [13,15,1], [17,22,1], [24,14,1], [13,19,6,-2], [12,17,4], [17,20,7,-1], - [27,9,-6,-1], [27,9,1,-1], [27,9,-6,-1], [27,9,1,-1], [6,8,-6,-1], [6,8,-6,-1], [14,16,1], [14,16,1], - [13,15,1,-1], [11,13,0,-2], [12,14,0,-1], [13,21,7,-1], [14,20,6], [12,20,7,-1], [13,21,1,-1], [13,21,7,-1], - [13,21,1,-1], [13,21,7,-1], [4,3,0,-2], [4,9,6,-2], [18,18,2,-2], [12,30,8,-1], [18,17,1,-2], [15,14,0], - [16,22,1,-1], [20,21,0,-1], [21,20,0,-1], [21,22,1,-1], [23,20,0,-1], [22,20,0,-1], [21,20,0,-1], [21,22,1,-1], - [25,20,0,-1], [14,20,0,-1], [17,21,1,-2], [25,20,0,-1], [18,20,0,-1], [30,20,0,-1], [25,20,0,-1], [21,22,1,-1], - [21,20,0,-1], [21,27,6,-1], [21,21,1,-1], [18,22,1,-1], [21,20,0], [20,21,1,-2], [22,21,1,-1], [30,21,1,-1], - [29,20,0,4], [21,20,0,-1], [20,20,0,-1], [9,23,1,-1], [7,28,7,-2], [9,28,7,-1], [27,8,-3,-1], [27,8,-3,-1], - [12,22,1], [14,14,1,-1], [11,22,1,-1], [12,14,1,-1], [14,22,1,-1], [12,14,1,-1], [15,27,6,-1], [14,19,6], - [15,22,1,-1], [9,21,1], [13,26,6,1], [14,22,1,-1], [7,22,1,-1], [25,14,1], [17,14,1], [13,14,1,-1], - [16,19,6,1], [12,19,6,-1], [13,14,1], [12,14,1,-1], [10,20,1], [16,14,1], [14,14,1], [20,14,1], - [16,14,1], [15,19,6], [13,14,1,-1], [9,14,1], [12,19,6,1], [16,20,7,-2], [13,6,-15,-5], [12,5,-15,-7], - [11,46,80,115,149,183,218,252,286,321,355,390,424,458,493,527], - [37,72,106,140,175,209,243,278], - [565,301] - ], - cmsy10: [ - [19,2,-6,-2], [4,4,-5,-2], [15,15,0,-4], [11,13,-1,-2], [20,17,1,-1], [15,15,0], [20,20,0,-1], [20,20,5,-1], - [20,20,3,-1], [20,20,3,-1], [20,20,3,-1], [20,20,3,-1], [20,20,3,-1], [27,28,7,-1], [12,12,-1,-1], [12,12,-1,-1], - [20,14,0,-1], [20,13,-1,-1], [19,23,4,-2], [19,23,4,-2], [19,23,4,-2], [19,23,4,-2], [19,23,4,-2], [19,23,4,-2], - [20,8,-3,-1], [20,13,-1,-1], [19,18,2,-2], [19,18,2,-2], [27,19,2,-1], [27,19,2,-1], [19,18,2,-2], [18,17,1,-2], - [27,11,-2,-1], [27,11,-2,-1], [11,26,6,-2], [11,26,6,-2], [27,11,-2,-1], [27,27,6,-1], [27,26,6,-1], [20,13,-1,-1], - [27,17,1,-1], [27,17,1,-1], [17,26,6], [17,27,6], [27,17,1,-1], [27,27,6,-1], [27,26,6,-1], [20,14,1,-1], - [7,16,-1,-1], [27,14,1,-1], [15,18,2,-2], [15,18,2,-2], [23,21,0,-1], [23,22,7,-1], [15,28,7,-4], [3,12,-1,-1], - [17,22,1], [14,21,0,-1], [17,9,-2,-1], [13,26,3,-1], [20,22,1,-1], [19,22,1,-1], [20,20,0,-1], [20,20,0,-1], - [15,20,0,-1], [23,23,2], [19,22,1,-1], [16,22,1], [23,20,0], [17,22,1], [24,21,1], [17,25,4,-1], - [24,22,2], [20,20,0,1], [24,24,4,-1], [21,22,1,-1], [18,22,1,-1], [33,23,2], [30,25,2,1], [22,22,1,-1], - [22,22,2], [20,25,4,-3], [25,21,1], [19,22,1], [23,21,0], [21,21,1,1], [19,22,2,-1], [29,22,2,-1], - [23,20,0,-1], [21,24,4], [22,20,0,-1], [17,19,1,-1], [17,19,1,-1], [17,19,1,-1], [17,19,1,-1], [17,19,1,-1], - [15,20,0,-1], [16,21,0,-1], [8,30,8,-5], [8,30,8], [8,30,8,-5], [8,30,8], [11,30,8,-2], [11,30,8,-2], - [7,30,8,-3], [7,30,8,-1], [2,30,8,-3], [8,30,8,-3], [11,31,8,-2], [17,31,8], [12,30,8,-1], [6,20,3,-1], - [23,30,28,-2], [20,20,0,-1], [22,21,1,-1], [13,28,7,-1], [17,18,0,-1], [17,18,0,-1], [19,23,4,-2], [20,23,4,-1], - [9,27,6,-2], [11,28,7,-1], [11,27,6,-1], [16,27,6,-1], [22,25,4], [20,26,5,-1], [20,22,1,-1], [20,25,4,-1], - [12,53,95,136,177,218,260,301,342,384,425,466,507,549,590,631], - [39,98,157,216,274,333,392,451], - [676,500] - ], - cmex10: [ - [8,36,34,-4], [8,36,34,-1], [7,36,34,-5], [7,36,34], [8,36,34,-5], [8,36,34], [8,36,34,-5], [8,36,34], - [11,36,34,-3], [11,36,34,-3], [10,36,34,-2], [9,36,34,-2], [2,19,18,-4], [8,19,18,-4], [14,36,34,-1], [14,36,34,-1], - [12,53,51,-5], [11,53,51,-1], [15,71,69,-6], [15,71,69,-1], [8,71,69,-7], [8,71,69], [10,71,69,-7], [10,71,69], - [10,71,69,-7], [10,71,69], [15,71,69,-3], [15,71,69,-3], [16,71,69,-3], [16,71,69,-2], [28,71,69,-1], [28,71,69,-1], - [16,88,86,-6], [16,88,86,-1], [9,88,86,-8], [9,88,86], [11,88,86,-8], [11,88,86], [11,88,86,-8], [11,88,86], - [16,88,86,-4], [16,88,86,-4], [17,88,86,-4], [17,88,86,-3], [35,88,86,-1], [35,88,86,-1], [21,53,51,-1], [21,53,51,-1], - [17,54,52,-8], [16,54,52,-1], [11,53,51,-9], [10,53,51], [11,53,51,-9], [10,53,51], [3,18,18,-9], [3,18,18,-7], - [10,27,27,-11], [10,27,27,-5], [10,27,26,-11], [10,28,27,-5], [10,54,53,-5], [10,54,53,-11], [4,10,9,-11], [2,18,18,-9], - [17,53,51,-8], [16,53,51,-1], [4,19,18,-8], [4,19,18,-13], [13,53,51,-3], [13,53,51,-2], [22,29,29,-1], [30,41,41,-1], - [17,33,33,-1], [27,65,65,-1], [30,29,29,-1], [42,41,41,-1], [30,29,29,-1], [42,41,41,-1], [30,29,29,-1], [42,41,41,-1], - [28,29,29,-1], [25,29,29,-1], [17,33,33,-1], [22,29,29,-1], [22,29,29,-1], [22,29,29,-1], [22,29,29,-1], [22,29,29,-1], - [40,41,41,-1], [35,41,41,-1], [27,65,65,-1], [30,41,41,-1], [30,41,41,-1], [30,41,41,-1], [30,41,41,-1], [30,41,41,-1], - [25,29,29,-1], [35,41,41,-1], [17,6,-16], [29,7,-16], [42,7,-16], [16,4,-17], [29,4,-18], [42,4,-18], - [8,53,51,-6], [8,53,51], [9,53,51,-6], [9,53,51], [9,53,51,-6], [9,53,51], [13,53,51,-3], [13,53,51,-3], - [27,35,34,-3], [27,52,51,-3], [27,70,69,-3], [27,87,86,-3], [19,54,53,-3], [2,19,18,-20], [12,19,17,-20], [9,18,18,-7], - [14,18,18,-3], [14,18,18,-3], [15,11,7,1], [15,11,7,1], [15,10,0,1], [15,10,0,1], [20,18,18,-1], [20,18,18,-1], - [13,65,117,169,221,273,325,377,428,480,532,584,636,688,740,792], - [45,173,300,428,555,683,810,938], - [849,1062] - ], - cmbx10: [ - [18,20,0,-1], [25,21,0,-1], [23,22,1,-1], [22,21,0,-1], [20,20,0,-1], [24,20,0,-1], [22,20,0,-1], [23,21,0,-1], - [22,20,0,-1], [23,20,0,-1], [22,21,0,-1], [22,21,0], [18,21,0], [18,21,0], [27,21,0], [27,21,0], - [8,13,0,-1], [10,19,6,2], [7,7,-14,-3], [7,7,-14,-7], [9,4,-15,-4], [11,7,-14,-3], [13,2,-16,-2], [7,6,-15,-9], - [10,6,6,-3], [16,22,1,-1], [23,15,1,-1], [24,15,1,-1], [16,19,3], [29,20,0,-1], [31,22,1,-2], [23,24,2,-1], - [10,4,-8], [6,21,0,-2], [13,11,-10,-1], [25,27,6,-1], [14,24,2,-1], [25,24,2,-1], [24,22,1,-1], [6,11,-10,-2], - [8,30,8,-3], [9,30,8,-1], [13,14,-8,-2], [23,23,4,-1], [6,11,6,-2], [10,3,-5], [5,5,0,-2], [14,30,8,-1], - [15,20,1,-1], [13,19,0,-2], [14,19,0,-1], [15,20,1,-1], [16,19,0], [14,20,1,-1], [15,20,1,-1], [16,21,1,-1], - [15,20,1,-1], [15,20,1,-1], [5,13,0,-2], [5,19,6,-2], [6,21,6,-2], [23,9,-3,-1], [13,21,6,-1], [13,21,0,-1], - [23,22,1,-1], [23,21,0,-1], [21,20,0,-1], [22,22,1,-1], [23,20,0,-1], [20,20,0,-1], [19,20,0,-1], [24,22,1,-1], - [24,20,0,-1], [11,20,0,-1], [16,21,1], [24,20,0,-1], [18,20,0,-1], [30,20,0,-1], [24,20,0,-1], [23,22,1,-1], - [20,20,0,-1], [23,27,6,-1], [24,21,1,-1], [16,22,1,-1], [21,20,0,-1], [24,21,1,-1], [25,21,1], [34,21,1], - [24,20,0,-1], [25,20,0], [18,20,0,-1], [6,30,8,-3], [13,10,-10,-4], [6,30,8], [10,5,-15,-3], [5,6,-15,-2], - [6,10,-10,-1], [16,15,1,-1], [17,22,1,-1], [13,15,1,-1], [17,22,1,-1], [15,15,1], [12,21,0,-1], [16,20,6,-1], - [17,21,0,-1], [8,21,0,-1], [10,27,6,2], [16,21,0,-1], [8,21,0,-1], [27,13,0,-1], [17,13,0,-1], [16,15,1], - [17,19,6,-1], [17,19,6,-1], [12,13,0,-1], [11,15,1,-1], [12,20,1], [17,14,1,-1], [17,14,1], [24,14,1], - [17,13,0], [17,19,6], [13,13,0,-1], [17,2,-7], [34,2,-7], [11,6,-15,-4], [11,4,-17,-3], [11,5,-16,-3], - [12,53,94,135,175,216,257,298,339,380,421,462,502,543,584,625], - [37,72,106,140,175,209,243,278], - [670,301] - ], - cmti10: [ - [20,20,0,-1], [20,21,0,-2], [19,22,1,-4], [18,21,0,-1], [20,20,0,-2], [24,20,0,-1], [21,20,0,-2], [19,21,0,-6], - [18,20,0,-4], [18,20,0,-6], [20,21,0,-2], [23,27,6,1], [19,27,6,1], [20,27,6,1], [28,27,6,1], [29,27,6,1], - [8,14,1,-2], [11,19,6,1], [5,7,-14,-8], [6,7,-14,-10], [8,5,-14,-8], [9,5,-15,-8], [11,2,-16,-6], [7,6,-15,-13], - [7,6,6,-3], [18,27,6,1], [19,14,1,-2], [18,14,1,-3], [14,19,3,-2], [27,20,0,-1], [27,22,1,-4], [21,24,2,-3], - [8,4,-8,-2], [8,21,0,-3], [10,10,-11,-5], [21,27,6,-3], [19,22,1,-2], [21,24,2,-4], [21,22,1,-3], [5,10,-11,-6], - [11,30,8,-4], [12,30,8], [12,13,-9,-5], [18,18,2,-4], [5,9,6,-2], [8,2,-5,-2], [4,3,0,-3], [18,30,8], - [14,21,1,-3], [11,20,0,-3], [14,21,1,-2], [15,21,1,-2], [13,26,6,-1], [14,21,1,-3], [14,21,1,-3], [14,21,1,-4], - [14,21,1,-2], [13,21,1,-3], [6,13,0,-3], [7,19,6,-2], [9,22,7,-1], [20,8,-3,-3], [11,22,7,-2], [11,21,0,-5], - [19,22,1,-4], [19,21,0,-1], [20,20,0,-2], [20,22,1,-4], [22,20,0,-1], [21,20,0,-1], [21,20,0,-1], [20,22,1,-4], - [24,20,0,-1], [14,20,0,-1], [16,21,1,-2], [24,20,0,-1], [17,20,0,-1], [27,20,0,-2], [24,20,0,-1], [19,22,1,-4], - [21,20,0,-1], [19,27,6,-4], [20,21,1,-1], [17,22,1,-2], [19,20,0,-5], [20,21,1,-5], [20,21,1,-6], [27,21,1,-6], - [28,20,0,4], [21,20,0,-5], [19,20,0,-2], [11,30,8,-2], [10,9,-11,-8], [12,30,8,1], [8,5,-15,-7], [4,4,-16,-7], - [5,9,-11,-6], [13,14,1,-3], [11,22,1,-3], [11,14,1,-3], [14,22,1,-3], [11,14,1,-3], [15,27,6,1], [14,19,6,-1], - [14,22,1,-2], [8,20,1,-2], [12,25,6,1], [13,22,1,-2], [7,22,1,-2], [23,14,1,-2], [15,14,1,-2], [12,14,1,-3], - [15,19,6], [12,19,6,-3], [13,14,1,-2], [11,14,1,-2], [9,20,1,-2], [15,14,1,-2], [13,14,1,-2], [19,14,1,-2], - [14,14,1,-1], [13,19,6,-2], [12,14,1,-2], [14,1,-7,-2], [27,1,-7,-3], [10,7,-14,-7], [10,4,-16,-7], [9,4,-16,-7], - [12,47,82,117,152,187,222,257,293,328,363,398,433,468,503,539], - [37,72,106,140,175,209,243,278], - [577,301] - ] -}); - -jsMath.Img.AddFont(249,{ - cmr10: [ - [19,24,0,-1], [26,25,0,-1], [24,25,1,-1], [22,25,0,-1], [21,23,0,-1], [24,24,0,-1], [21,24,0,-2], [23,24,0,-2], - [22,24,0,-1], [23,24,0,-2], [22,24,0,-1], [21,24,0,-1], [17,24,0,-1], [17,24,0,-1], [27,24,0,-1], [27,24,0,-1], - [8,15,0,-1], [10,22,7,2], [7,7,-17,-3], [7,7,-17,-7], [9,5,-17,-4], [11,7,-17,-3], [13,2,-19,-2], [7,7,-18,-9], - [9,7,7,-4], [15,25,1,-1], [23,17,1,-1], [25,17,1,-1], [15,22,4,-1], [29,24,0,-1], [32,25,1,-2], [24,27,2,-1], - [8,5,-9,-1], [4,25,0,-3], [11,11,-13,-1], [25,31,7,-2], [14,28,2,-1], [26,28,2,-1], [24,26,1,-1], [4,11,-13,-3], - [9,35,9,-3], [8,35,9,-2], [13,16,-10,-2], [23,23,3,-2], [4,11,7,-3], [10,3,-6], [4,4,0,-3], [13,35,9,-2], - [15,24,1,-1], [12,23,0,-3], [15,23,0,-1], [15,24,1,-1], [15,23,0,-1], [15,24,1,-1], [15,24,1,-1], [15,24,1,-2], - [15,24,1,-1], [15,24,1,-1], [4,15,0,-3], [4,22,7,-3], [4,25,8,-3], [23,9,-4,-2], [14,24,7,-1], [14,24,0,-1], - [24,25,1,-1], [24,25,0,-1], [22,24,0,-1], [22,25,1,-1], [23,24,0,-1], [22,24,0,-1], [20,24,0,-1], [24,25,1,-1], - [24,24,0,-1], [11,24,0,-1], [15,25,1,-1], [24,24,0,-1], [19,24,0,-1], [29,24,0,-1], [24,24,0,-1], [24,25,1,-1], - [21,24,0,-1], [24,31,7,-1], [24,25,1,-1], [16,25,1,-1], [23,23,0,-1], [24,25,1,-1], [25,25,1], [35,25,1], - [25,24,0], [26,24,0], [18,24,0,-1], [5,35,9,-4], [11,11,-13,-5], [6,35,9], [9,6,-18,-4], [4,4,-19,-3], - [5,11,-13,-2], [16,17,1,-1], [17,25,1,-1], [13,17,1,-1], [17,25,1,-1], [14,17,1,-1], [12,24,0,-1], [16,23,7,-1], - [18,24,0,-1], [8,23,0,-1], [10,30,7,2], [17,24,0,-1], [8,24,0,-1], [27,15,0,-1], [18,15,0,-1], [15,17,1,-1], - [17,22,7,-1], [17,22,7,-1], [12,15,0,-1], [12,17,1,-1], [12,22,1], [18,16,1,-1], [18,16,1], [24,16,1], - [18,15,0], [18,22,7], [13,15,0,-1], [17,2,-8], [34,2,-8], [11,7,-17,-4], [11,4,-19,-3], [11,4,-19,-3], - [14,56,99,141,184,226,269,311,354,396,439,481,524,566,609,651], - [46,87,128,170,211,253,294,335], - [698,363] - ], - cmmi10: [ - [24,24,0,-1], [26,25,0,-1], [25,25,1,-1], [22,25,0,-1], [26,23,0,-1], [29,24,0,-1], [26,24,0,-2], [23,24,0,-1], - [22,24,0], [23,24,0,-1], [25,24,0,-2], [20,16,1,-1], [20,31,7], [19,23,8], [15,26,1,-1], [12,16,1,-1], - [15,31,7,-1], [16,23,8,-1], [15,25,1,-1], [10,16,1,-1], [18,16,1,-1], [18,25,1,-1], [19,23,8,-1], [17,15,0,-1], - [16,31,7], [19,16,1,-1], [16,23,8,-1], [19,16,1,-1], [17,16,1,-1], [17,16,1,-1], [19,31,7,-1], [20,22,7,-1], - [21,31,7,-1], [21,16,1], [15,17,1], [18,25,1,-1], [27,16,1,-1], [15,22,7,-2], [13,19,4,-1], [20,23,8,-1], - [31,11,-7,-1], [31,11,1,-1], [31,11,-7,-1], [31,11,1,-1], [7,9,-7,-1], [7,9,-7,-1], [16,19,1], [16,19,1,-1], - [15,17,1,-1], [12,16,0,-3], [15,16,0,-1], [15,24,8,-1], [15,23,7,-1], [15,24,8,-1], [15,24,1,-1], [16,24,8,-1], - [15,24,1,-1], [15,24,8,-1], [4,4,0,-3], [4,11,7,-3], [22,21,2,-2], [13,35,9,-2], [22,21,2,-2], [17,17,0], - [19,26,1,-1], [24,25,0,-1], [25,24,0,-1], [25,25,1,-1], [27,24,0,-1], [25,24,0,-1], [25,24,0,-1], [25,25,1,-1], - [29,24,0,-1], [16,24,0,-1], [20,25,1,-2], [30,24,0,-1], [21,24,0,-1], [35,24,0,-1], [29,24,0,-1], [25,25,1,-1], - [25,24,0,-1], [25,31,7,-1], [25,25,1,-1], [21,25,1,-1], [24,23,0], [24,25,1,-2], [25,25,1,-2], [35,25,1,-1], - [28,24,0,-1], [25,24,0,-1], [23,24,0,-2], [11,27,1,-1], [9,33,8,-2], [11,33,8,-1], [30,9,-4,-2], [30,9,-4,-2], - [14,25,1], [16,16,1,-1], [14,25,1,-1], [14,16,1,-1], [17,25,1,-1], [14,16,1,-1], [18,31,7,-1], [17,22,7], - [18,25,1,-1], [9,24,1,-1], [15,30,7,1], [17,25,1,-1], [8,25,1,-1], [28,16,1,-1], [19,16,1,-1], [15,16,1,-1], - [18,22,7,1], [15,22,7,-1], [14,16,1,-1], [14,16,1,-1], [12,23,1], [18,16,1,-1], [15,16,1,-1], [23,16,1,-1], - [17,16,1,-1], [16,22,7,-1], [15,16,1,-1], [9,16,1,-1], [14,22,7,1], [19,24,8,-2], [16,8,-17,-6], [13,5,-18,-9], - [14,55,96,138,179,221,262,303,345,386,427,469,510,551,593,634], - [46,87,128,170,211,253,294,335], - [679,363] - ], - cmsy10: [ - [22,3,-7,-2], [4,5,-6,-3], [17,17,0,-5], [13,15,-1,-2], [23,19,1,-2], [17,17,0], [23,23,0,-2], [23,23,6,-2], - [24,23,3,-1], [24,23,3,-1], [24,23,3,-1], [24,23,3,-1], [24,23,3,-1], [31,33,8,-1], [14,15,-1,-1], [14,15,-1,-1], - [23,17,0,-2], [23,15,-1,-2], [22,27,5,-2], [22,27,5,-2], [22,27,5,-2], [22,27,5,-2], [22,27,5,-2], [22,27,5,-2], - [24,9,-4,-1], [23,16,-1,-2], [22,21,2,-2], [22,21,2,-2], [30,23,3,-2], [30,23,3,-2], [22,21,2,-2], [22,21,2,-2], - [30,13,-2,-2], [30,13,-2,-2], [13,31,7,-2], [13,31,7,-2], [30,13,-2,-2], [31,31,7,-2], [31,31,7,-2], [24,15,-1,-1], - [30,19,1,-2], [30,19,1,-2], [19,31,7,-1], [19,31,7,-1], [32,19,1,-1], [31,31,7,-1], [31,31,7,-1], [24,16,1,-1], - [8,18,-1,-1], [31,16,1,-1], [18,21,2,-2], [18,21,2,-2], [27,25,0,-2], [27,25,8,-2], [18,33,8,-4], [4,13,-2,-1], - [19,25,1], [15,24,0,-2], [19,10,-3,-2], [15,30,3,-1], [24,26,1,-1], [23,25,1,-1], [23,23,0,-2], [23,23,0,-2], - [18,24,0,-1], [26,27,2,-1], [22,25,1,-1], [19,25,1], [26,24,0], [19,25,1,-1], [29,26,2], [20,28,4,-1], - [28,26,2], [23,24,0,1], [28,28,4,-1], [24,25,1,-1], [22,25,1,-1], [37,26,2,-1], [35,29,2,1], [25,25,1,-2], - [25,26,2], [24,29,5,-3], [29,25,1], [22,25,1], [26,25,0,-1], [25,25,1,1], [22,26,2,-1], [35,26,2,-1], - [27,24,0,-1], [24,29,5,-1], [25,24,0,-1], [20,22,1,-1], [20,22,1,-1], [20,22,1,-1], [19,22,1,-2], [19,22,1,-2], - [18,24,0,-1], [17,24,0,-2], [10,35,9,-5], [10,35,9], [10,35,9,-5], [10,35,9], [13,35,9,-2], [13,35,9,-2], - [9,35,9,-3], [8,35,9,-2], [2,35,9,-4], [9,35,9,-4], [13,37,10,-2], [19,37,10,-1], [13,35,9,-2], [7,23,3,-1], - [27,35,33,-2], [24,24,0,-1], [26,26,2,-1], [15,33,8,-1], [19,21,0,-2], [19,21,0,-2], [22,27,5,-3], [22,27,5,-2], - [11,31,7,-2], [12,32,8,-2], [12,31,7,-2], [19,31,7,-1], [25,30,5,-1], [23,31,6,-2], [24,27,2,-1], [24,30,5,-1], - [14,64,114,163,213,263,312,362,412,461,511,561,610,660,710,759], - [48,119,190,260,331,402,472,543], - [814,603] - ], - cmex10: [ - [9,42,40,-5], [10,42,40,-1], [8,42,40,-6], [8,42,40], [10,42,40,-6], [10,42,40], [10,42,40,-6], [10,42,40], - [12,42,40,-4], [12,42,40,-4], [11,42,40,-3], [11,42,40,-2], [3,22,21,-4], [10,22,21,-4], [16,42,40,-2], [16,42,40,-2], - [13,62,60,-6], [14,62,60,-1], [17,83,81,-7], [17,83,81,-1], [10,83,81,-8], [10,83,81], [12,83,81,-8], [12,83,81], - [12,83,81,-8], [12,83,81], [17,83,81,-4], [17,83,81,-4], [19,83,81,-4], [19,83,81,-3], [32,83,81,-2], [32,83,81,-2], - [18,103,101,-8], [18,103,101,-1], [11,103,101,-9], [11,103,101], [13,103,101,-9], [13,103,101], [13,103,101,-9], [13,103,101], - [19,103,101,-4], [19,103,101,-4], [20,103,101,-4], [20,103,101,-3], [40,103,101,-2], [40,103,101,-2], [24,62,60,-2], [24,62,60,-2], - [20,63,61,-9], [19,63,61,-1], [12,62,60,-11], [12,62,60], [12,62,60,-11], [12,62,60], [3,21,21,-11], [3,21,21,-9], - [12,31,31,-13], [13,31,31,-5], [12,32,31,-13], [13,32,31,-5], [13,63,62,-5], [12,63,62,-13], [5,12,11,-13], [3,21,21,-10], - [20,62,60,-9], [19,62,60,-1], [5,22,21,-9], [4,22,21,-16], [15,62,60,-3], [14,62,60,-3], [26,34,34,-1], [35,48,48,-1], - [19,38,38,-2], [31,76,76,-1], [35,34,34,-1], [49,48,48,-1], [35,34,34,-1], [49,48,48,-1], [35,34,34,-1], [49,48,48,-1], - [33,34,34,-1], [30,34,34,-1], [19,38,38,-2], [26,34,34,-1], [26,34,34,-1], [26,34,34,-1], [25,34,34,-2], [25,34,34,-2], - [46,48,48,-1], [41,48,48,-1], [31,76,76,-1], [35,48,48,-1], [35,48,48,-1], [35,48,48,-1], [34,48,48,-2], [35,48,48,-1], - [30,34,34,-1], [41,48,48,-1], [19,7,-19], [34,8,-19], [49,8,-19], [19,5,-20], [34,5,-21], [49,5,-21], - [9,62,60,-7], [9,62,60], [11,62,60,-7], [11,62,60], [11,62,60,-7], [11,62,60], [15,62,60,-4], [15,62,60,-4], - [32,42,40,-3], [32,62,60,-3], [32,83,81,-3], [32,103,101,-3], [23,63,62,-3], [3,22,21,-23], [14,22,20,-23], [10,21,21,-8], - [16,21,21,-3], [16,21,21,-3], [17,13,8,1], [18,13,8,1], [17,12,0,1], [18,12,0,1], [24,21,21,-1], [24,21,21,-1], - [16,78,141,203,265,328,390,453,515,578,640,703,765,828,890,953], - [55,209,362,515,669,822,976,1129], - [1021,1278] - ], - cmbx10: [ - [21,24,0,-1], [29,24,0,-2], [27,25,1,-2], [25,24,0,-1], [24,23,0,-1], [29,24,0,-1], [24,24,0,-2], [27,24,0,-2], - [24,24,0,-2], [27,24,0,-2], [26,24,0,-1], [25,24,0,-1], [20,24,0,-1], [20,24,0,-1], [31,24,0,-1], [31,24,0,-1], - [9,16,0,-1], [12,23,7,2], [8,7,-17,-4], [8,7,-17,-8], [11,6,-17,-4], [13,7,-17,-3], [15,3,-18,-2], [9,6,-18,-10], - [11,7,7,-4], [19,25,1,-1], [27,17,1,-1], [29,17,1,-1], [18,23,4,-1], [34,24,0,-1], [37,25,1,-2], [27,28,2,-2], - [11,5,-9], [6,24,0,-3], [15,13,-11,-1], [29,31,7,-2], [16,28,2,-2], [29,28,2,-2], [28,25,1,-1], [7,13,-11,-2], - [10,35,9,-3], [10,35,9,-2], [15,16,-10,-2], [27,27,5,-2], [7,13,7,-2], [11,5,-5], [6,6,0,-2], [16,35,9,-2], - [17,24,1,-1], [15,23,0,-2], [17,23,0,-1], [17,24,1,-1], [18,23,0,-1], [16,24,1,-2], [17,24,1,-1], [17,24,1,-2], - [17,24,1,-1], [17,24,1,-1], [6,16,0,-2], [7,23,7,-2], [6,24,7,-3], [27,11,-3,-2], [15,24,7,-2], [15,24,0,-2], - [27,25,1,-2], [28,24,0,-1], [25,24,0,-1], [24,25,1,-2], [27,24,0,-1], [24,24,0,-1], [22,24,0,-1], [27,25,1,-2], - [29,24,0,-1], [13,24,0,-1], [18,25,1], [28,24,0,-1], [21,24,0,-1], [35,24,0,-1], [29,24,0,-1], [26,25,1,-2], - [24,24,0,-1], [26,31,7,-2], [29,25,1,-1], [18,25,1,-2], [25,23,0,-1], [28,25,1,-1], [29,25,1], [40,25,1], - [28,24,0,-1], [29,24,0], [20,24,0,-2], [6,35,9,-4], [16,13,-11,-4], [7,35,9], [11,6,-18,-4], [6,6,-18,-2], - [6,13,-11,-2], [18,17,1,-1], [20,25,1,-1], [16,17,1,-1], [20,25,1,-1], [16,17,1,-1], [14,24,0,-1], [18,23,7,-1], - [20,24,0,-1], [9,24,0,-1], [12,31,7,2], [19,24,0,-1], [9,24,0,-1], [31,16,0,-1], [20,16,0,-1], [18,17,1,-1], - [20,23,7,-1], [20,23,7,-1], [14,16,0,-1], [14,17,1,-1], [13,23,1], [20,17,1,-1], [20,17,1], [28,17,1], - [20,16,0], [20,23,7], [15,16,0,-1], [20,2,-8], [39,2,-8], [13,8,-17,-4], [14,4,-20,-3], [13,6,-18,-3], - [14,64,113,162,211,260,309,359,408,457,506,555,604,653,703,752], - [46,87,128,170,211,253,294,335], - [806,363] - ], - cmti10: [ - [22,24,0,-2], [24,25,0,-2], [22,25,1,-5], [20,25,0,-2], [24,23,0,-2], [27,24,0,-2], [25,24,0,-2], [22,24,0,-7], - [20,24,0,-5], [21,24,0,-7], [23,24,0,-3], [27,31,7,1], [22,31,7,1], [23,31,7,1], [33,31,7,1], [33,31,7,1], - [10,16,1,-2], [13,22,7,2], [6,7,-17,-9], [8,7,-17,-11], [10,5,-17,-9], [11,7,-17,-9], [12,1,-19,-8], [7,7,-18,-16], - [9,7,7,-3], [21,31,7,1], [22,16,1,-3], [22,16,1,-3], [17,23,4,-2], [31,24,0,-2], [31,25,1,-5], [24,28,2,-4], - [9,5,-9,-3], [10,25,0,-3], [12,11,-13,-6], [25,31,7,-4], [21,25,1,-3], [24,28,2,-5], [24,26,1,-4], [6,11,-13,-7], - [13,35,9,-5], [13,35,9], [14,16,-10,-6], [22,21,2,-4], [6,11,7,-2], [9,3,-6,-3], [5,4,0,-3], [21,35,9], - [15,24,1,-4], [12,23,0,-4], [17,24,1,-2], [17,24,1,-3], [15,30,7,-1], [17,24,1,-3], [16,24,1,-4], [17,24,1,-5], - [16,24,1,-3], [16,24,1,-3], [8,15,0,-3], [9,22,7,-2], [9,25,8,-2], [23,9,-4,-4], [13,25,8,-2], [13,25,0,-6], - [22,25,1,-5], [22,25,0,-2], [23,24,0,-2], [23,25,1,-5], [25,24,0,-2], [24,24,0,-2], [23,24,0,-2], [23,25,1,-5], - [27,24,0,-2], [15,24,0,-2], [19,25,1,-3], [28,24,0,-2], [20,24,0,-2], [32,24,0,-2], [27,24,0,-2], [22,25,1,-5], - [23,24,0,-2], [22,31,7,-5], [23,25,1,-2], [20,25,1,-2], [22,23,0,-6], [23,25,1,-6], [23,25,1,-7], [31,25,1,-7], - [33,24,0,5], [24,24,0,-6], [22,24,0,-2], [13,35,9,-2], [12,11,-13,-9], [14,35,9,1], [9,6,-18,-9], [5,4,-19,-8], - [6,11,-13,-7], [16,16,1,-3], [13,25,1,-3], [13,16,1,-3], [16,25,1,-3], [13,16,1,-3], [17,31,7,1], [16,22,7,-1], - [17,25,1,-2], [10,24,-294,-2], [15,30,7,2], [15,25,1,-2], [8,25,1,-3], [27,16,1,-2], [18,16,1,-2], [15,16,1,-3], - [18,22,7], [14,22,7,-3], [15,16,1,-2], [13,16,1,-2], [10,23,1,-3], [17,16,1,-2], [15,16,1,-2], [22,16,1,-2], - [17,16,1,-1], [16,22,7,-2], [14,16,1,-2], [16,2,-8,-3], [32,2,-8,-4], [11,7,-17,-9], [12,4,-19,-8], [10,4,-19,-9], - [14,56,98,141,183,225,267,310,352,394,437,479,521,563,606,648], - [46,87,128,170,211,253,294,335], - [694,363] - ] -}); - -jsMath.Img.AddFont(298,{ - cmr10: [ - [23,28,0,-1], [31,30,0,-2], [28,30,1,-2], [27,30,0,-1], [25,28,0,-1], [29,28,0,-1], [26,28,0,-2], [28,29,0,-2], - [26,28,0,-2], [28,28,0,-2], [27,29,0,-1], [25,29,0,-1], [21,29,0,-1], [21,29,0,-1], [32,29,0,-1], [32,29,0,-1], - [10,19,0,-1], [11,28,9,2], [8,8,-21,-4], [8,8,-21,-8], [11,5,-21,-5], [13,8,-21,-4], [16,3,-22,-2], [9,8,-22,-11], - [10,9,9,-5], [19,30,1,-1], [28,20,1,-1], [30,20,1,-1], [18,26,4,-1], [35,28,0,-1], [39,30,1,-2], [28,34,3,-2], - [10,5,-11,-1], [5,30,0,-3], [14,13,-16,-1], [30,37,8,-2], [17,34,3,-2], [30,34,3,-2], [29,31,1,-1], [6,13,-16,-3], - [10,42,11,-4], [10,42,11,-2], [16,18,-13,-2], [28,28,4,-2], [6,13,8,-3], [12,3,-7], [5,5,0,-3], [17,42,11,-2], - [18,29,1,-1], [15,28,0,-3], [17,28,0,-2], [18,29,1,-1], [19,28,0,-1], [17,29,1,-2], [18,29,1,-1], [18,29,1,-2], - [18,29,1,-1], [18,29,1,-1], [5,18,0,-3], [5,26,8,-3], [5,30,9,-3], [28,10,-5,-2], [15,30,9,-2], [15,29,0,-2], - [28,30,1,-2], [29,30,0,-1], [26,28,0,-1], [26,30,1,-2], [28,28,0,-1], [26,28,0,-1], [24,28,0,-1], [29,30,1,-2], - [29,28,0,-1], [13,28,0,-1], [19,29,1,-1], [30,28,0,-1], [23,28,0,-1], [35,28,0,-1], [29,28,0,-1], [28,30,1,-2], - [25,28,0,-1], [28,37,8,-2], [29,29,1,-1], [19,30,1,-2], [27,28,0,-1], [29,29,1,-1], [30,29,1], [42,29,1], - [29,28,0,-1], [31,28,0], [21,28,0,-2], [7,42,11,-4], [14,13,-16,-6], [7,42,11], [11,7,-22,-5], [5,5,-23,-3], - [5,13,-16,-3], [20,20,1,-1], [21,30,1,-1], [16,20,1,-1], [21,30,1,-1], [16,20,1,-1], [14,29,0,-1], [19,28,9,-1], - [21,29,0,-1], [10,28,0,-1], [11,37,9,2], [20,29,0,-1], [10,29,0,-1], [33,19,0,-1], [21,19,0,-1], [19,20,1,-1], - [21,27,8,-1], [21,27,8,-1], [14,19,0,-1], [14,20,1,-1], [14,27,1], [21,20,1,-1], [21,19,1], [29,19,1], - [22,18,0], [21,27,9], [16,18,0,-1], [21,2,-10], [41,2,-10], [13,8,-21,-5], [14,5,-23,-3], [13,5,-23,-4], - [17,67,118,169,220,271,322,373,423,474,525,576,627,678,729,780], - [55,104,154,203,253,302,352,401], - [835,434] - ], - cmmi10: [ - [29,28,0,-1], [31,30,0,-2], [29,30,1,-2], [27,30,0,-1], [30,28,0,-2], [35,28,0,-1], [31,28,0,-2], [28,29,0,-1], - [26,28,0,-1], [28,28,0,-1], [30,29,0,-3], [24,20,1,-1], [24,37,8,-1], [23,28,9], [18,31,1,-1], [15,19,1,-1], - [19,38,9,-1], [20,28,9,-1], [18,30,1,-1], [12,20,1,-2], [21,20,1,-2], [21,30,1,-2], [23,27,9,-1], [20,19,0,-2], - [18,38,9,-1], [23,19,1,-1], [20,28,9,-1], [23,19,1,-1], [20,19,1,-1], [21,20,1,-1], [22,38,9,-2], [24,28,9,-1], - [25,38,9,-1], [25,19,1], [17,20,1,-1], [22,30,1,-1], [33,19,1,-1], [18,27,8,-3], [16,24,5,-1], [24,28,9,-2], - [37,12,-9,-2], [37,13,1,-2], [37,12,-9,-2], [37,13,1,-2], [7,10,-9,-2], [8,10,-9,-2], [19,22,1,-1], [19,22,1,-1], - [18,20,1,-1], [15,19,0,-3], [18,19,0,-1], [18,28,9,-1], [19,27,8,-1], [17,28,9,-2], [18,29,1,-1], [18,28,9,-2], - [18,29,1,-1], [18,28,9,-1], [5,5,0,-3], [6,13,8,-3], [26,25,2,-3], [17,42,11,-2], [26,25,2,-3], [21,20,0], - [23,31,1,-1], [29,30,0,-1], [30,28,0,-1], [30,30,1,-2], [32,28,0,-1], [31,28,0,-1], [30,28,0,-1], [30,30,1,-2], - [36,28,0,-1], [20,28,0,-1], [24,29,1,-2], [36,28,0,-1], [26,28,0,-1], [42,28,0,-1], [36,28,0,-1], [29,30,1,-2], - [30,28,0,-1], [29,37,8,-2], [30,29,1,-1], [25,30,1,-2], [28,28,0,-1], [30,29,1,-2], [30,29,1,-2], [41,29,1,-2], - [34,28,0,-1], [31,28,0,-1], [28,28,0,-2], [12,32,1,-2], [10,39,9,-3], [12,39,9,-2], [37,11,-5,-2], [37,11,-5,-2], - [17,30,1], [20,20,1,-1], [16,30,1,-1], [17,20,1,-1], [20,30,1,-1], [17,20,1,-1], [21,38,9,-2], [20,28,9], - [21,30,1,-2], [11,28,1,-1], [18,36,9,1], [19,30,1,-2], [10,30,1,-1], [34,20,1,-1], [23,20,1,-1], [19,20,1,-1], - [23,27,8,2], [18,27,8,-1], [17,20,1,-1], [16,20,1,-2], [13,27,1,-1], [22,20,1,-1], [19,20,1,-1], [28,20,1,-1], - [21,20,1,-1], [20,28,9,-1], [18,20,1,-1], [11,20,1,-1], [16,28,9,1], [23,28,9,-3], [19,9,-21,-7], [17,6,-22,-10], - [16,66,115,165,214,264,313,363,412,462,511,561,610,660,709,759], - [55,104,154,203,253,302,352,401], - [813,434] - ], - cmsy10: [ - [26,3,-9,-3], [5,5,-8,-3], [20,20,0,-6], [16,18,-1,-2], [28,24,2,-2], [20,20,0], [28,28,0,-2], [28,28,7,-2], - [28,28,4,-2], [28,28,4,-2], [28,28,4,-2], [28,28,4,-2], [28,28,4,-2], [37,39,9,-2], [17,17,-2,-2], [17,17,-2,-2], - [28,20,0,-2], [28,18,-1,-2], [26,33,6,-3], [26,33,6,-3], [26,32,6,-3], [26,32,6,-3], [26,32,6,-3], [26,32,6,-3], - [28,10,-5,-2], [28,18,-2,-2], [26,25,2,-3], [26,25,2,-3], [37,27,3,-2], [37,27,3,-2], [26,24,2,-3], [26,24,2,-3], - [37,15,-3,-2], [37,15,-3,-2], [15,37,8,-3], [15,37,8,-3], [37,15,-3,-2], [37,37,8,-2], [37,37,8,-2], [28,18,-1,-2], - [37,23,1,-2], [37,23,1,-2], [23,37,8,-1], [23,37,8,-1], [39,23,1,-1], [37,37,8,-2], [37,37,8,-2], [28,20,1,-2], - [10,22,-1,-1], [37,20,1,-2], [21,25,2,-3], [21,25,2,-3], [32,30,0,-2], [32,30,9,-2], [22,39,9,-5], [3,16,-2,-2], - [23,30,1], [19,29,0,-2], [23,12,-3,-2], [18,36,4,-1], [28,31,1,-2], [27,30,1,-2], [28,28,0,-2], [28,28,0,-2], - [21,29,0,-2], [32,32,2,-1], [27,30,1,-1], [22,30,1], [32,28,0], [23,30,1,-1], [34,30,2], [24,34,5,-1], - [34,30,2], [27,28,0,1], [34,33,5,-1], [29,30,1,-1], [26,30,1,-1], [45,31,2,-1], [42,34,2,2], [30,30,1,-2], - [30,30,2], [29,35,6,-4], [35,29,1], [27,30,1], [32,30,0,-1], [30,30,2,1], [26,30,2,-1], [42,30,2,-1], - [32,28,0,-2], [29,34,6,-1], [31,28,0,-1], [23,26,1,-2], [23,26,1,-2], [23,26,1,-2], [23,26,1,-2], [23,26,1,-2], - [21,29,0,-2], [21,29,0,-2], [11,42,11,-7], [11,42,11], [11,42,11,-7], [10,42,11,-1], [15,42,11,-3], [15,42,11,-3], - [10,42,11,-4], [10,42,11,-2], [3,42,11,-4], [10,42,11,-5], [15,44,12,-3], [23,44,12,-1], [17,42,11,-2], [7,28,4,-2], - [32,42,40,-3], [29,28,0,-1], [31,30,2,-2], [18,39,9,-2], [23,25,0,-2], [23,25,0,-2], [27,33,6,-3], [27,33,6,-2], - [14,38,9,-2], [14,38,9,-2], [14,38,9,-2], [22,37,8,-2], [30,36,6,-1], [28,37,7,-2], [28,32,2,-2], [28,36,6,-2], - [17,77,136,196,255,314,374,433,493,552,612,671,730,790,849,909], - [58,142,227,311,396,481,565,650], - [974,721] - ], - cmex10: [ - [11,50,48,-6], [12,50,48,-1], [9,50,48,-8], [9,50,48], [11,50,48,-8], [11,50,48], [11,50,48,-8], [11,50,48], - [16,50,48,-4], [16,50,48,-4], [12,50,48,-4], [13,50,48,-3], [3,27,26,-5], [12,27,26,-5], [20,50,48,-2], [20,50,48,-2], - [16,75,73,-7], [17,75,73,-1], [21,99,97,-8], [21,99,97,-1], [11,99,97,-10], [12,99,97], [14,99,97,-10], [14,99,97], - [14,99,97,-10], [14,99,97], [21,99,97,-5], [21,99,97,-5], [22,99,97,-5], [22,99,97,-4], [39,99,97,-2], [39,99,97,-2], - [22,124,122,-9], [22,124,122,-1], [13,124,122,-11], [13,124,122], [15,124,122,-11], [15,124,122], [15,124,122,-11], [15,124,122], - [23,124,122,-5], [23,124,122,-5], [24,124,122,-5], [24,124,122,-4], [48,124,122,-2], [48,124,122,-2], [29,75,73,-2], [29,74,72,-2], - [24,75,73,-11], [23,75,73,-1], [14,75,73,-13], [14,75,73], [14,75,73,-13], [14,75,73], [4,25,25,-13], [3,25,25,-11], - [15,38,38,-15], [14,38,38,-7], [15,38,37,-15], [14,38,37,-7], [14,76,75,-7], [15,76,75,-15], [6,14,13,-15], [3,25,25,-12], - [24,75,73,-11], [23,75,73,-1], [6,26,25,-11], [5,26,25,-19], [18,75,73,-4], [18,75,73,-3], [30,41,41,-2], [42,58,58,-2], - [23,46,46,-2], [37,92,92,-2], [42,41,41,-2], [58,58,58,-2], [42,41,41,-2], [58,58,58,-2], [42,41,41,-2], [58,58,58,-2], - [39,41,41,-2], [35,41,41,-2], [23,46,46,-2], [30,41,41,-2], [30,41,41,-2], [30,41,41,-2], [30,41,41,-2], [30,41,41,-2], - [55,58,58,-2], [49,58,58,-2], [37,92,92,-2], [42,58,58,-2], [42,58,58,-2], [42,58,58,-2], [42,58,58,-2], [42,58,58,-2], - [35,41,41,-2], [49,58,58,-2], [23,8,-23], [41,9,-23], [60,9,-23], [23,6,-24], [41,6,-25], [59,6,-25], - [10,75,73,-9], [10,75,73], [12,75,73,-9], [13,75,73], [12,75,73,-9], [13,75,73], [19,75,73,-4], [19,75,73,-4], - [38,50,48,-4], [38,75,73,-4], [38,99,97,-4], [38,124,122,-4], [27,75,74,-4], [3,27,26,-28], [16,26,24,-28], [12,25,25,-10], - [19,25,25,-4], [19,25,25,-4], [20,14,9,1], [21,14,9,1], [20,14,0,1], [21,14,0,1], [28,25,25,-2], [28,25,25,-2], - [19,93,168,243,318,392,467,542,617,692,766,841,916,991,1066,1140], - [66,249,433,617,800,984,1167,1351], - [1222,1530] - ], - cmbx10: [ - [26,28,0,-1], [35,29,0,-2], [32,30,1,-2], [31,29,0,-1], [28,28,0,-2], [35,28,0,-1], [30,29,0,-2], [32,29,0,-2], - [30,29,0,-2], [32,29,0,-2], [30,29,0,-2], [30,29,0,-1], [24,29,0,-1], [24,29,0,-1], [37,29,0,-1], [37,29,0,-1], - [11,19,0,-1], [14,28,9,3], [10,8,-21,-4], [10,8,-21,-9], [13,6,-21,-5], [15,9,-20,-4], [18,3,-22,-3], [10,7,-22,-13], - [13,9,9,-5], [23,30,1,-1], [32,20,1,-1], [35,20,1,-1], [22,28,5,-1], [41,29,0,-1], [44,30,1,-3], [32,34,3,-2], - [14,6,-11], [7,29,0,-4], [18,15,-14,-1], [35,37,8,-2], [19,34,3,-2], [35,34,3,-2], [33,30,1,-2], [8,15,-14,-3], - [12,42,11,-4], [12,42,11,-2], [18,19,-12,-3], [32,32,6,-2], [8,15,8,-3], [13,5,-7], [7,7,0,-3], [19,42,11,-2], - [21,28,1,-1], [18,27,0,-3], [20,27,0,-2], [20,28,1,-2], [22,27,0,-1], [20,28,1,-2], [20,28,1,-2], [21,29,1,-2], - [20,28,1,-2], [20,28,1,-2], [7,19,0,-3], [7,27,8,-3], [7,30,9,-4], [32,13,-4,-2], [18,30,9,-2], [18,29,0,-2], - [32,30,1,-2], [33,29,0,-1], [30,29,0,-1], [30,30,1,-2], [33,29,0,-1], [29,28,0,-1], [27,28,0,-1], [33,30,1,-2], - [35,29,0,-1], [16,29,0,-1], [21,30,1,-1], [34,29,0,-1], [26,29,0,-1], [43,29,0,-1], [35,29,0,-1], [31,30,1,-2], - [29,29,0,-1], [31,37,8,-2], [35,30,1,-1], [22,30,1,-2], [30,28,0,-1], [34,30,1,-1], [34,30,1,-1], [47,30,1,-1], - [34,29,0,-1], [35,29,0], [25,29,0,-2], [7,42,11,-5], [19,15,-14,-5], [7,42,11,-1], [13,8,-21,-5], [7,7,-22,-3], - [8,15,-14,-2], [22,20,1,-1], [24,30,1,-1], [19,20,1,-1], [24,30,1,-1], [20,20,1,-1], [17,29,0,-1], [22,28,9,-1], - [25,29,0,-1], [11,29,0,-1], [14,38,9,3], [24,29,0,-1], [11,29,0,-1], [38,19,0,-1], [25,19,0,-1], [22,20,1,-1], - [24,27,8,-1], [24,27,8,-1], [18,19,0,-1], [16,20,1,-1], [16,27,1], [25,20,1,-1], [23,20,1,-1], [32,20,1,-1], - [24,19,0], [24,28,9], [18,19,0,-1], [24,2,-10], [48,2,-10], [16,9,-21,-5], [16,5,-24,-4], [16,7,-22,-4], - [17,76,135,194,253,311,370,429,488,547,606,664,723,782,841,900], - [55,104,154,203,253,302,352,401], - [964,434] - ], - cmti10: [ - [27,28,0,-2], [28,30,0,-3], [27,30,1,-6], [25,30,0,-2], [28,28,0,-3], [33,28,0,-2], [29,28,0,-3], [27,29,0,-8], - [24,28,0,-6], [26,28,0,-8], [28,29,0,-4], [32,38,9,1], [26,38,9,1], [27,38,9,1], [39,38,9,1], [40,38,9,1], - [11,20,1,-3], [16,28,9,2], [6,9,-20,-12], [9,9,-20,-14], [11,6,-20,-11], [13,8,-21,-11], [15,3,-22,-9], [9,8,-22,-19], - [10,8,8,-4], [25,38,9,1], [27,20,1,-3], [26,20,1,-4], [21,27,5,-2], [37,28,0,-2], [37,30,1,-6], [30,34,3,-4], - [11,5,-11,-3], [12,30,0,-4], [14,13,-16,-7], [30,37,8,-4], [26,30,1,-3], [29,34,3,-6], [28,31,1,-5], [7,13,-16,-9], - [16,42,11,-6], [16,42,11], [16,18,-13,-8], [26,26,3,-5], [7,13,8,-3], [11,3,-7,-3], [6,5,0,-4], [26,42,11], - [19,29,1,-4], [15,28,0,-4], [20,29,1,-3], [20,29,1,-3], [19,36,8,-1], [20,29,1,-4], [20,29,1,-4], [20,29,1,-6], - [19,29,1,-4], [19,29,1,-4], [9,18,0,-4], [10,26,8,-3], [12,30,9,-2], [28,10,-5,-4], [16,30,9,-3], [15,30,0,-8], - [27,30,1,-6], [27,30,0,-2], [29,28,0,-2], [28,30,1,-6], [30,28,0,-2], [29,28,0,-2], [28,28,0,-2], [28,30,1,-6], - [33,28,0,-2], [19,28,0,-2], [23,29,1,-3], [34,28,0,-2], [24,28,0,-2], [39,28,0,-2], [33,28,0,-2], [27,30,1,-6], - [28,28,0,-2], [27,37,8,-6], [28,29,1,-2], [23,30,1,-3], [26,28,0,-7], [27,29,1,-8], [28,29,1,-8], [37,29,1,-8], - [40,28,0,6], [28,28,0,-8], [26,28,0,-3], [16,42,11,-3], [14,13,-16,-11], [16,42,11,1], [11,7,-22,-11], [5,5,-23,-10], - [7,13,-16,-8], [18,20,1,-4], [15,30,1,-4], [16,20,1,-4], [19,30,1,-4], [16,20,1,-4], [20,38,9,1], [18,28,9,-2], - [19,30,1,-3], [11,28,1,-3], [17,36,9,2], [18,30,1,-3], [10,30,1,-3], [32,20,1,-3], [21,20,1,-3], [17,20,1,-4], - [21,27,8], [17,27,8,-4], [17,20,1,-3], [15,20,1,-3], [13,27,1,-3], [20,20,1,-3], [18,20,1,-3], [26,20,1,-3], - [20,20,1,-2], [19,28,9,-3], [17,20,1,-2], [20,2,-10,-3], [38,2,-10,-5], [13,9,-20,-11], [14,5,-23,-10], [12,5,-23,-11], - [17,67,118,168,219,270,320,371,421,472,522,573,624,674,725,775], - [55,104,154,203,253,302,352,401], - [831,434] - ] -}); - -jsMath.Img.AddFont(358,{ - cmr10: [ - [28,34,0,-1], [37,35,0,-2], [34,36,1,-2], [32,35,0,-1], [29,34,0,-2], [35,34,0,-1], [31,34,0,-2], [34,35,0,-2], - [31,34,0,-2], [34,34,0,-2], [32,35,0,-2], [30,35,0,-1], [25,35,0,-1], [25,35,0,-1], [39,35,0,-1], [39,35,0,-1], - [12,22,0,-1], [13,32,10,2], [10,10,-25,-5], [10,10,-25,-10], [13,7,-25,-6], [16,9,-25,-4], [18,2,-27,-3], [10,10,-26,-13], - [12,9,10,-6], [23,36,1,-1], [32,23,1,-2], [36,23,1,-1], [22,31,5,-1], [42,34,0,-1], [46,37,2,-3], [34,39,3,-2], - [12,6,-13,-1], [6,35,0,-4], [16,15,-19,-1], [36,44,10,-2], [20,40,3,-2], [36,40,3,-2], [34,38,2,-2], [7,15,-19,-4], - [13,50,13,-4], [13,50,13,-2], [19,22,-15,-3], [34,33,4,-2], [6,16,10,-4], [14,3,-9], [6,6,0,-4], [20,50,13,-2], - [22,35,2,-1], [17,33,0,-4], [20,33,0,-2], [21,35,2,-2], [23,34,0,-1], [20,35,2,-2], [21,35,2,-2], [22,35,1,-2], - [21,35,2,-2], [21,34,1,-2], [6,22,0,-4], [6,32,10,-4], [6,36,11,-4], [34,12,-6,-2], [19,35,10,-2], [19,35,0,-2], - [34,36,1,-2], [35,35,0,-1], [31,34,0,-1], [31,37,2,-2], [34,34,0,-1], [31,34,0,-1], [29,34,0,-1], [34,37,2,-2], - [35,34,0,-1], [16,34,0,-1], [21,35,1,-2], [36,34,0,-1], [28,34,0,-1], [43,34,0,-1], [35,34,0,-1], [34,36,1,-2], - [30,34,0,-1], [34,45,10,-2], [35,35,1,-1], [23,37,2,-2], [33,34,0,-1], [35,35,1,-1], [36,35,1], [50,35,1], - [35,34,0,-1], [37,34,0], [26,34,0,-2], [8,50,13,-5], [16,15,-19,-7], [7,50,13,-1], [14,8,-26,-5], [6,6,-27,-4], - [7,15,-19,-3], [23,23,1,-2], [25,35,1,-1], [20,23,1,-1], [25,35,1,-1], [20,23,1,-1], [17,35,0,-1], [23,34,11,-1], - [26,34,0,-1], [12,33,0,-1], [13,43,10,2], [24,34,0,-1], [12,34,0,-1], [39,22,0,-1], [26,22,0,-1], [23,23,1,-1], - [25,32,10,-1], [25,32,10,-1], [17,22,0,-1], [17,23,1,-1], [16,32,1,-1], [26,23,1,-1], [25,23,1], [35,23,1], - [26,22,0], [25,32,10], [19,22,0,-1], [25,2,-12], [49,2,-12], [15,10,-25,-6], [17,5,-28,-4], [15,6,-27,-5], - [20,81,142,203,264,325,387,448,509,570,631,692,753,814,875,937], - [64,124,183,243,302,362,421,481], - [1003,521] - ], - cmmi10: [ - [34,34,0,-2], [37,35,0,-2], [35,37,2,-2], [32,35,0,-1], [36,34,0,-2], [42,34,0,-2], [38,34,0,-2], [34,35,0,-1], - [31,34,0,-1], [33,34,0,-1], [36,35,0,-3], [28,23,1,-2], [28,45,10,-1], [27,33,11], [21,36,1,-2], [17,23,1,-2], - [22,45,10,-2], [24,33,11,-1], [21,36,1,-2], [14,23,1,-2], [25,23,1,-2], [25,35,1,-2], [27,33,11,-1], [24,22,0,-2], - [21,45,10,-1], [27,23,1,-1], [24,33,11,-1], [27,23,1,-1], [24,23,1,-1], [25,23,1,-1], [26,44,10,-2], [28,32,10,-1], - [31,44,10,-1], [30,23,1], [20,25,2,-1], [27,36,1,-1], [39,23,1,-1], [22,32,10,-3], [19,28,6,-1], [29,33,11,-2], - [45,14,-11,-2], [45,15,1,-2], [45,14,-11,-2], [45,15,1,-2], [9,12,-11,-2], [9,12,-11,-2], [23,26,1,-1], [23,26,1,-1], - [21,25,2,-2], [17,23,0,-4], [20,23,0,-2], [21,34,11,-2], [22,33,10,-1], [20,34,11,-2], [21,35,2,-2], [22,34,11,-2], - [21,35,2,-2], [21,34,11,-2], [6,6,0,-4], [6,16,10,-4], [30,29,2,-4], [20,50,13,-2], [30,29,2,-4], [25,24,0], - [26,36,1,-2], [35,35,0,-1], [35,34,0,-2], [36,37,2,-2], [38,34,0,-2], [37,34,0,-1], [36,34,0,-1], [36,37,2,-2], - [42,34,0,-2], [24,34,0,-1], [28,35,1,-3], [43,34,0,-1], [30,34,0,-2], [50,34,0,-2], [42,34,0,-2], [35,37,2,-2], - [35,34,0,-2], [35,45,10,-2], [35,35,1,-2], [30,37,2,-2], [34,34,0,-1], [35,36,2,-3], [36,35,1,-2], [50,35,1,-2], - [41,34,0,-1], [37,34,0,-1], [34,34,0,-2], [15,38,1,-2], [13,47,11,-3], [15,46,11,-2], [45,13,-6,-2], [45,13,-6,-2], - [20,36,1], [23,23,1,-2], [19,35,1,-2], [19,23,1,-2], [24,35,1,-2], [19,23,1,-2], [25,45,10,-2], [24,32,10], - [25,35,1,-2], [14,34,1,-1], [21,43,10,1], [23,35,1,-2], [11,35,1,-2], [41,23,1,-1], [27,23,1,-1], [21,23,1,-2], - [26,32,10,2], [20,32,10,-2], [21,23,1,-1], [19,23,1,-2], [16,32,1,-1], [26,23,1,-1], [22,23,1,-1], [33,23,1,-1], - [25,23,1,-1], [23,32,10,-1], [21,23,1,-2], [14,23,1,-1], [19,32,10,1], [28,34,11,-3], [22,10,-25,-9], [19,7,-26,-13], - [20,79,139,198,258,317,377,436,495,555,614,674,733,793,852,912], - [64,124,183,243,302,362,421,481], - [977,521] - ], - cmsy10: [ - [30,3,-11,-4], [6,6,-9,-4], [24,24,0,-7], [19,22,-1,-3], [34,28,2,-2], [24,24,0], [34,33,0,-2], [34,34,9,-2], - [34,33,4,-2], [34,33,4,-2], [34,33,4,-2], [34,33,4,-2], [34,33,4,-2], [45,47,11,-2], [20,20,-2,-2], [20,20,-2,-2], - [34,24,0,-2], [34,22,-1,-2], [30,39,7,-4], [30,39,7,-4], [30,38,7,-4], [30,39,7,-4], [30,38,7,-4], [30,39,7,-4], - [34,12,-6,-2], [34,22,-2,-2], [30,29,2,-4], [30,29,2,-4], [45,32,4,-2], [45,32,4,-2], [30,29,2,-4], [30,29,2,-4], - [45,18,-3,-2], [45,18,-3,-2], [18,44,10,-3], [18,44,10,-3], [45,18,-3,-2], [45,45,10,-2], [45,44,10,-2], [34,22,-1,-2], - [45,28,2,-2], [45,28,2,-2], [28,44,10,-1], [28,44,10,-1], [47,28,2,-1], [45,45,10,-2], [45,44,10,-2], [34,23,1,-2], - [12,26,-2,-1], [45,23,1,-2], [25,29,2,-4], [25,29,2,-4], [38,35,0,-3], [39,36,11,-2], [26,46,11,-6], [4,19,-3,-2], - [28,35,1], [23,34,0,-2], [28,14,-4,-2], [21,42,4,-2], [33,38,2,-2], [32,36,1,-2], [34,33,0,-2], [34,33,0,-2], - [26,34,0,-2], [38,39,3,-1], [32,37,2,-1], [27,37,2], [37,34,0,-1], [27,37,2,-1], [41,36,2], [28,41,6,-2], - [39,37,3,-1], [33,34,0,2], [39,40,6,-2], [35,37,2,-1], [31,37,2,-1], [54,38,3,-1], [50,41,3,2], [37,37,2,-2], - [35,37,3,-1], [34,42,7,-5], [40,36,2,-1], [32,37,2], [38,36,0,-1], [35,36,2,1], [32,37,3,-1], [50,37,3,-1], - [38,34,0,-2], [35,41,7,-1], [37,34,0,-1], [28,32,2,-2], [28,31,1,-2], [28,32,2,-2], [28,31,1,-2], [28,31,1,-2], - [25,34,0,-2], [26,34,0,-2], [13,50,13,-8], [13,50,13,-1], [13,50,13,-8], [13,50,13,-1], [18,50,13,-3], [18,50,13,-3], - [12,50,13,-5], [12,50,13,-2], [3,50,13,-5], [12,50,13,-6], [18,52,14,-3], [28,52,14,-1], [20,50,13,-2], [9,33,4,-2], - [39,49,47,-3], [34,34,0,-1], [37,36,2,-2], [21,46,11,-2], [27,30,0,-3], [27,30,0,-3], [31,39,7,-4], [31,39,7,-3], - [16,45,10,-3], [17,46,11,-2], [17,45,10,-2], [27,44,10,-2], [36,43,7,-1], [34,44,8,-2], [34,38,2,-2], [34,43,7,-2], - [21,92,164,235,306,378,449,521,592,663,735,806,878,949,1020,1092], - [68,170,271,373,475,576,678,780], - [1170,865] - ], - cmex10: [ - [14,59,57,-7], [13,59,57,-2], [11,59,57,-9], [10,59,57,-1], [13,59,57,-9], [13,59,57,-1], [13,59,57,-9], [13,59,57,-1], - [18,59,57,-5], [18,59,57,-5], [16,59,57,-4], [16,59,57,-3], [3,32,31,-7], [14,32,31,-7], [24,59,57,-2], [24,59,57,-2], - [20,89,87,-8], [20,89,87,-1], [25,118,116,-10], [25,118,116,-1], [14,118,116,-12], [14,118,116], [16,118,116,-12], [17,118,116], - [16,118,116,-12], [17,118,116], [25,118,116,-6], [25,118,116,-6], [26,118,116,-6], [27,118,116,-4], [47,118,116,-2], [47,118,116,-2], - [26,147,145,-11], [27,147,145,-1], [15,147,145,-13], [15,147,145], [18,147,145,-13], [18,147,145], [18,147,145,-13], [18,147,145], - [26,147,145,-7], [26,147,145,-7], [29,147,145,-6], [28,147,145,-5], [58,147,145,-2], [58,147,145,-2], [35,89,87,-2], [35,89,87,-2], - [28,89,87,-14], [28,89,87,-1], [17,89,87,-16], [17,89,87], [17,89,87,-16], [17,89,87], [4,30,30,-16], [4,30,30,-13], - [18,45,45,-18], [17,45,45,-8], [18,45,44,-18], [17,45,44,-8], [17,90,89,-8], [18,90,89,-18], [7,17,16,-18], [3,30,30,-15], - [28,90,87,-14], [28,90,87,-1], [6,31,30,-14], [6,31,30,-23], [21,89,87,-5], [21,89,87,-4], [36,49,49,-2], [50,69,69,-2], - [28,55,55,-2], [45,109,109,-2], [50,49,49,-2], [70,69,69,-2], [50,49,49,-2], [70,69,69,-2], [50,49,49,-2], [70,69,69,-2], - [47,49,49,-2], [42,49,49,-2], [28,55,55,-2], [36,49,49,-2], [36,49,49,-2], [36,49,49,-2], [36,49,49,-2], [36,49,49,-2], - [66,69,69,-2], [58,69,69,-2], [45,109,109,-2], [50,69,69,-2], [50,69,69,-2], [50,69,69,-2], [50,69,69,-2], [50,69,69,-2], - [42,49,49,-2], [58,69,69,-2], [29,10,-27,1], [49,10,-28], [71,10,-28], [27,7,-29], [49,7,-30], [71,7,-30], - [12,89,87,-11], [12,89,87], [14,89,87,-11], [15,89,87], [14,89,87,-11], [15,89,87], [22,89,87,-5], [22,89,87,-5], - [45,59,57,-5], [45,89,87,-5], [45,118,116,-5], [45,147,145,-5], [32,90,89,-5], [3,32,31,-34], [19,31,29,-34], [14,30,30,-12], - [23,30,30,-5], [23,30,30,-5], [25,17,11,2], [25,17,11,1], [25,17,0,2], [25,17,0,1], [34,30,30,-2], [34,29,29,-2], - [22,112,202,292,382,472,561,651,741,831,921,1011,1100,1190,1280,1370], - [78,298,519,740,960,1181,1401,1622], - [1468,1836] - ], - cmbx10: [ - [31,34,0,-1], [42,35,0,-2], [38,36,1,-3], [36,35,0,-2], [34,34,0,-2], [42,34,0,-1], [35,34,0,-3], [38,35,0,-3], - [35,34,0,-3], [38,34,0,-3], [37,35,0,-2], [36,35,0,-1], [29,35,0,-1], [29,35,0,-1], [45,35,0,-1], [45,35,0,-1], - [12,22,0,-2], [17,32,10,3], [12,10,-25,-5], [12,10,-25,-11], [16,7,-25,-6], [18,10,-24,-5], [22,3,-27,-3], [13,9,-26,-15], - [16,10,10,-6], [27,36,1,-1], [39,24,1,-1], [42,24,1,-1], [26,32,5,-1], [48,34,0,-2], [52,36,1,-4], [38,40,3,-3], - [15,7,-13,-1], [9,35,0,-4], [22,18,-16,-1], [41,44,10,-3], [22,40,3,-3], [41,40,3,-3], [39,36,1,-2], [9,18,-16,-4], - [14,50,13,-5], [14,50,13,-3], [22,22,-15,-3], [38,38,7,-3], [9,18,10,-4], [16,6,-8], [8,8,0,-4], [22,50,13,-3], - [24,34,1,-2], [21,32,0,-4], [24,33,0,-2], [24,34,1,-2], [26,33,0,-1], [24,33,1,-2], [24,34,1,-2], [25,35,1,-3], - [24,34,1,-2], [24,34,1,-2], [8,22,0,-4], [8,32,10,-4], [9,35,10,-4], [38,15,-5,-3], [21,35,10,-3], [21,35,0,-3], - [38,36,1,-3], [39,35,0,-2], [36,34,0,-1], [35,36,1,-3], [39,34,0,-1], [35,34,0,-1], [32,34,0,-1], [39,36,1,-3], - [42,34,0,-1], [19,34,0,-1], [25,35,1,-1], [41,34,0,-1], [31,34,0,-1], [50,34,0,-2], [42,34,0,-1], [37,36,1,-3], - [35,34,0,-1], [37,45,10,-3], [41,35,1,-1], [26,36,1,-3], [35,34,0,-2], [41,35,1,-1], [41,35,1,-1], [56,35,1,-1], - [40,34,0,-1], [42,34,0], [29,34,0,-3], [9,50,13,-6], [22,18,-16,-6], [9,50,13,-1], [16,8,-26,-6], [8,8,-26,-4], - [9,18,-16,-3], [27,24,1,-1], [29,35,1,-1], [23,24,1,-1], [29,35,1,-1], [24,24,1,-1], [20,35,0,-2], [27,33,10,-1], - [29,34,0,-2], [12,34,0,-2], [17,44,10,3], [28,34,0,-1], [13,34,0,-2], [44,22,0,-2], [29,22,0,-2], [26,24,1,-1], - [29,32,10,-1], [29,32,10,-1], [21,22,0,-1], [20,24,1,-1], [18,33,1,-1], [29,23,1,-2], [28,23,1,-1], [39,23,1,-1], - [28,22,0,-1], [28,32,10,-1], [22,22,0,-1], [29,3,-12], [57,3,-12], [17,10,-25,-7], [20,6,-28,-4], [19,7,-27,-5], - [21,91,162,233,303,374,445,516,586,657,728,798,869,940,1010,1081], - [64,124,183,243,302,362,421,481], - [1158,521] - ], - cmti10: [ - [32,34,0,-3], [34,35,0,-3], [32,37,2,-7], [30,35,0,-2], [34,34,0,-3], [39,34,0,-3], [35,34,0,-4], [31,35,0,-10], - [29,34,0,-7], [31,34,0,-10], [34,35,0,-4], [40,45,10,2], [32,45,10,2], [34,45,10,2], [47,45,10,2], [49,45,10,2], - [13,23,1,-4], [18,32,10,2], [8,10,-24,-14], [11,11,-24,-16], [14,7,-24,-13], [15,9,-25,-13], [17,2,-27,-11], [10,9,-26,-23], - [12,10,10,-5], [30,45,10,1], [32,23,1,-4], [31,23,1,-5], [24,33,6,-3], [45,34,0,-2], [44,37,2,-8], [36,40,3,-5], - [13,7,-13,-4], [14,35,0,-5], [18,15,-19,-8], [36,44,10,-5], [31,36,1,-4], [35,40,3,-7], [34,37,2,-6], [9,15,-19,-10], - [19,50,13,-7], [18,50,13,-1], [20,22,-15,-9], [31,31,3,-6], [8,16,10,-3], [13,3,-9,-4], [6,6,0,-5], [30,50,13,-1], - [23,35,2,-5], [18,33,0,-5], [23,34,1,-4], [24,35,2,-4], [22,43,10,-2], [23,34,1,-5], [23,34,1,-5], [24,34,1,-7], - [24,35,2,-4], [23,34,1,-5], [10,22,0,-5], [12,32,10,-3], [14,36,11,-2], [33,12,-6,-5], [18,36,11,-4], [18,35,0,-9], - [32,36,1,-7], [32,35,0,-2], [33,34,0,-3], [33,37,2,-7], [35,34,0,-3], [34,34,0,-3], [33,34,0,-3], [33,37,2,-7], - [39,34,0,-3], [23,34,0,-2], [27,36,2,-4], [39,34,0,-3], [28,34,0,-3], [46,34,0,-3], [39,34,0,-3], [32,37,2,-7], - [33,34,0,-3], [32,45,10,-7], [33,36,2,-3], [28,37,2,-3], [32,34,0,-8], [33,36,2,-9], [33,35,1,-10], [45,36,2,-10], - [48,34,0,7], [34,34,0,-9], [31,34,0,-4], [19,50,13,-3], [17,15,-19,-13], [19,50,13,1], [13,8,-26,-13], [6,6,-27,-12], - [8,15,-19,-10], [22,23,1,-5], [18,35,1,-5], [18,23,1,-5], [23,35,1,-5], [18,23,1,-5], [25,45,10,2], [22,32,10,-2], - [24,35,1,-3], [13,34,1,-4], [20,43,10,2], [22,35,1,-3], [11,35,1,-4], [38,23,1,-4], [25,23,1,-4], [20,23,1,-5], - [25,32,10], [20,32,10,-5], [20,23,1,-4], [18,23,1,-3], [15,32,1,-4], [24,23,1,-4], [21,23,1,-4], [31,23,1,-4], - [24,23,1,-2], [22,32,10,-4], [20,23,1,-3], [23,2,-12,-4], [45,2,-12,-6], [16,11,-24,-13], [16,6,-27,-12], [14,6,-27,-13], - [20,81,141,202,263,324,385,445,506,567,628,688,749,810,871,932], - [64,124,183,243,302,362,421,481], - [998,521] - ] -}); - -jsMath.Img.AddFont(430,{ - cmr10: [ - [33,41,0,-2], [45,43,0,-2], [40,44,2,-3], [38,43,0,-1], [35,40,0,-2], [41,41,0,-2], [37,41,0,-3], [40,42,0,-3], - [37,41,0,-3], [40,41,0,-3], [38,42,0,-2], [36,42,0,-1], [31,42,0,-1], [31,42,0,-1], [47,42,0,-1], [47,42,0,-1], - [13,26,0,-2], [16,39,13,3], [12,12,-30,-6], [11,12,-30,-12], [16,8,-30,-7], [19,11,-30,-5], [22,2,-33,-4], [12,11,-32,-16], - [15,11,12,-7], [27,43,1,-1], [39,28,1,-2], [44,28,1,-1], [26,38,6,-2], [51,41,0,-1], [54,44,2,-4], [40,48,4,-3], - [15,7,-16,-1], [7,43,0,-5], [19,18,-23,-2], [43,53,12,-3], [24,49,4,-3], [43,49,4,-3], [41,45,2,-2], [8,18,-23,-5], - [15,60,15,-5], [14,60,15,-3], [23,27,-18,-3], [40,40,5,-3], [7,19,12,-5], [17,4,-11], [7,7,0,-5], [24,60,15,-3], - [26,42,2,-2], [20,40,0,-5], [24,40,0,-3], [25,42,2,-2], [27,40,0,-1], [24,42,2,-3], [25,42,2,-2], [26,42,2,-3], - [25,42,2,-2], [25,42,2,-2], [7,26,0,-5], [7,38,12,-5], [7,43,13,-5], [40,15,-7,-3], [22,43,13,-3], [22,42,0,-3], - [40,43,1,-3], [42,43,0,-1], [37,41,0,-2], [37,44,2,-3], [40,41,0,-2], [37,41,0,-2], [34,41,0,-2], [41,44,2,-3], - [41,41,0,-2], [19,41,0,-1], [26,43,2,-2], [42,41,0,-2], [33,41,0,-2], [50,41,0,-2], [41,41,0,-2], [40,44,2,-3], - [35,41,0,-2], [40,54,12,-3], [42,43,2,-2], [27,44,2,-3], [39,40,0,-2], [41,43,2,-2], [43,43,2,-1], [59,43,2,-1], - [42,41,0,-1], [44,41,0], [30,41,0,-3], [8,60,15,-7], [19,18,-23,-9], [9,60,15,-1], [16,9,-32,-7], [7,7,-33,-5], - [8,18,-23,-4], [28,28,1,-2], [30,42,1,-1], [23,28,1,-2], [30,42,1,-2], [24,28,1,-1], [19,42,0,-2], [28,40,13,-1], - [31,41,0,-1], [13,40,0,-2], [16,53,13,3], [30,41,0,-1], [13,41,0,-2], [47,27,0,-1], [31,27,0,-1], [27,28,1,-1], - [30,39,12,-1], [30,39,12,-2], [21,26,0,-1], [20,28,1,-2], [19,38,1,-1], [31,27,1,-1], [29,27,1,-1], [41,27,1,-1], - [31,26,0], [29,39,13,-1], [23,26,0,-1], [30,2,-15], [59,2,-15], [18,12,-30,-7], [20,7,-33,-5], [18,7,-33,-6], - [24,97,171,244,317,391,464,538,611,684,758,831,904,978,1051,1125], - [77,149,220,292,363,434,506,577], - [1205,625] - ], - cmmi10: [ - [41,41,0,-2], [44,43,0,-3], [42,44,2,-2], [38,43,0,-2], [43,40,0,-3], [50,41,0,-2], [45,41,0,-3], [41,42,0,-1], - [37,41,0,-1], [40,41,0,-1], [43,42,0,-4], [34,28,1,-2], [34,54,12,-1], [31,40,13,-1], [25,43,1,-2], [21,27,1,-2], - [26,55,13,-2], [29,40,13,-1], [25,43,1,-2], [17,27,1,-3], [30,27,1,-3], [30,42,1,-3], [33,39,13,-1], [28,26,0,-3], - [26,54,13,-1], [33,27,1,-1], [29,40,13,-1], [32,27,1,-2], [30,27,1,-1], [30,27,1,-1], [32,53,12,-2], [34,39,13,-1], - [37,53,12,-1], [36,27,1], [25,29,2,-1], [32,43,1,-1], [48,27,1,-1], [26,39,12,-4], [24,34,7,-1], [34,39,13,-3], - [53,18,-13,-3], [53,17,1,-3], [53,18,-13,-3], [53,17,1,-3], [10,15,-13,-3], [11,15,-13,-3], [27,31,1,-1], [27,31,1,-1], - [26,29,2,-2], [20,27,0,-5], [25,27,0,-2], [25,40,13,-2], [27,40,12,-1], [24,40,13,-3], [25,42,2,-2], [26,41,13,-3], - [25,42,2,-2], [25,40,13,-2], [7,7,0,-5], [7,19,12,-5], [37,35,3,-4], [24,60,15,-3], [37,35,3,-4], [30,28,-1], - [32,45,2,-2], [41,43,0,-2], [43,41,0,-2], [42,44,2,-3], [46,41,0,-2], [43,41,0,-2], [43,41,0,-2], [42,44,2,-3], - [50,41,0,-2], [28,41,0,-2], [34,43,2,-4], [51,41,0,-2], [36,41,0,-2], [60,41,0,-2], [50,41,0,-2], [42,44,2,-2], - [43,41,0,-2], [42,54,12,-2], [43,43,2,-2], [35,44,2,-3], [41,40,0,-1], [41,43,2,-4], [43,43,2,-3], [59,43,2,-3], - [50,41,0,-1], [43,41,0,-2], [40,41,0,-3], [17,47,2,-3], [15,56,13,-4], [17,56,13,-3], [53,15,-7,-3], [53,16,-7,-3], - [24,43,1], [28,28,1,-2], [23,42,1,-2], [24,28,1,-2], [29,42,1,-2], [24,28,1,-2], [30,54,12,-3], [28,40,13], - [30,42,1,-3], [17,40,1,-1], [25,52,13,1], [27,42,1,-3], [14,42,1,-2], [49,28,1,-1], [33,28,1,-1], [26,28,1,-2], - [31,38,12,2], [25,39,12,-2], [25,28,1,-1], [22,28,1,-3], [19,38,1,-1], [31,27,1,-1], [27,27,1,-1], [40,27,1,-1], - [31,28,1,-1], [28,39,13,-1], [26,27,1,-2], [17,27,1,-1], [23,39,13,1], [33,40,13,-4], [27,13,-30,-10], [24,9,-31,-15], - [24,95,167,238,309,381,452,524,595,666,738,809,880,952,1023,1095], - [77,149,220,292,363,434,506,577], - [1172,625] - ], - cmsy10: [ - [36,3,-13,-5], [7,7,-11,-5], [30,29,0,-8], [23,26,-2,-3], [40,34,2,-3], [29,29,0], [40,40,0,-3], [40,40,10,-3], - [40,40,5,-3], [40,40,5,-3], [40,40,5,-3], [40,40,5,-3], [40,40,5,-3], [53,56,13,-3], [24,24,-3,-3], [24,24,-3,-3], - [40,28,-1,-3], [40,26,-2,-3], [37,47,9,-4], [37,47,9,-4], [37,47,9,-4], [37,47,9,-4], [37,47,9,-4], [37,47,9,-4], - [40,15,-7,-3], [40,26,-3,-3], [37,35,3,-4], [37,35,3,-4], [53,38,4,-3], [53,38,4,-3], [37,35,3,-4], [37,35,3,-4], - [53,22,-4,-3], [53,22,-4,-3], [22,53,12,-4], [22,53,12,-4], [53,22,-4,-3], [53,53,12,-3], [53,53,12,-3], [40,26,-2,-3], - [53,33,2,-3], [53,33,2,-3], [34,53,12,-1], [34,53,12,-1], [55,33,2,-2], [53,54,12,-3], [53,53,12,-3], [40,28,1,-3], - [15,31,-2,-1], [53,28,1,-3], [31,35,3,-4], [31,35,3,-4], [46,43,0,-3], [46,43,13,-3], [30,56,13,-8], [5,23,-3,-3], - [33,43,2], [27,41,0,-3], [33,16,-5,-3], [25,51,5,-2], [40,45,2,-2], [38,43,1,-3], [40,40,0,-3], [40,40,0,-3], - [30,41,0,-3], [46,46,3,-1], [39,44,2,-1], [32,44,2], [45,41,0,-1], [33,44,2,-1], [48,43,2,-1], [34,49,7,-2], - [48,44,3,-1], [40,41,0,2], [48,48,7,-2], [43,44,2,-1], [38,44,2,-1], [65,45,3,-1], [60,49,3,2], [43,44,2,-3], - [43,44,3,-1], [41,50,8,-6], [49,43,2,-1], [37,44,2,-1], [46,43,0,-1], [42,43,2,1], [37,44,3,-2], [60,44,3,-2], - [45,41,0,-3], [42,49,8,-1], [44,41,0,-2], [33,38,2,-3], [33,38,2,-3], [33,38,2,-3], [33,38,2,-3], [33,38,2,-3], - [30,41,0,-3], [30,41,0,-3], [15,60,15,-10], [15,60,15,-1], [15,60,15,-10], [15,60,15,-1], [22,60,15,-4], [22,60,15,-4], - [14,60,15,-6], [14,60,15,-3], [3,60,15,-7], [15,60,15,-7], [22,62,16,-4], [34,62,16,-1], [24,60,15,-3], [10,40,5,-3], - [47,60,57,-4], [40,41,0,-2], [45,43,2,-2], [25,56,13,-3], [33,36,0,-3], [33,36,0,-3], [38,47,9,-5], [38,47,9,-3], - [18,55,13,-4], [20,55,13,-3], [20,54,12,-3], [32,53,12,-3], [44,51,8,-1], [40,53,10,-3], [40,45,2,-3], [40,51,8,-3], - [25,111,196,282,368,454,539,625,711,797,882,968,1054,1140,1225,1311], - [82,204,326,448,570,692,814,936], - [1404,1039] - ], - cmex10: [ - [16,72,69,-9], [16,72,69,-2], [13,72,69,-11], [12,72,69,-1], [16,72,69,-11], [15,72,69,-1], [16,72,69,-11], [15,72,69,-1], - [22,72,69,-6], [22,72,69,-6], [19,72,69,-5], [18,72,69,-4], [4,39,37,-8], [17,39,37,-8], [28,72,69,-3], [28,72,69,-3], - [23,107,104,-10], [23,107,104,-2], [30,143,140,-12], [30,143,140,-2], [17,143,140,-14], [17,143,140], [20,143,140,-14], [20,143,140], - [20,143,140,-14], [20,143,140], [30,143,140,-7], [30,143,140,-7], [32,143,140,-7], [32,143,140,-5], [56,143,140,-3], [56,143,140,-3], - [32,178,175,-13], [31,178,175,-2], [18,178,175,-16], [19,178,175], [21,178,175,-16], [22,178,175], [21,178,175,-16], [22,178,175], - [31,178,175,-8], [31,178,175,-8], [34,178,175,-8], [34,178,175,-6], [69,178,175,-3], [69,178,175,-3], [42,107,104,-3], [42,107,104,-3], - [33,108,105,-17], [33,108,105,-2], [20,107,104,-19], [21,107,104], [20,107,104,-19], [21,107,104], [5,37,36,-19], [5,37,36,-16], - [21,54,54,-22], [20,54,54,-10], [21,54,53,-22], [20,54,53,-10], [20,108,107,-10], [21,108,107,-22], [8,20,19,-22], [3,37,36,-18], - [33,107,104,-17], [33,107,104,-2], [7,37,36,-17], [8,37,36,-27], [25,107,104,-6], [25,107,104,-5], [43,59,59,-3], [60,83,83,-3], - [33,66,66,-3], [53,132,132,-3], [60,59,59,-3], [83,83,83,-3], [60,59,59,-3], [83,83,83,-3], [60,59,59,-3], [83,83,83,-3], - [56,59,59,-3], [50,59,59,-3], [33,66,66,-3], [43,59,59,-3], [43,59,59,-3], [43,59,59,-3], [43,59,59,-3], [43,59,59,-3], - [79,83,83,-3], [69,83,83,-3], [53,132,132,-3], [60,83,83,-3], [60,83,83,-3], [60,83,83,-3], [60,83,83,-3], [60,83,83,-3], - [50,59,59,-3], [69,83,83,-3], [34,11,-33,1], [60,12,-34,1], [86,12,-34], [33,8,-35], [59,9,-36], [85,9,-36], - [14,107,104,-13], [14,107,104,-1], [17,107,104,-13], [17,107,104,-1], [17,107,104,-13], [17,107,104,-1], [26,107,104,-7], [26,107,104,-7], - [55,72,69,-6], [55,107,104,-6], [55,143,140,-6], [55,178,175,-6], [38,109,107,-6], [3,39,37,-41], [23,38,35,-41], [16,37,36,-15], - [27,36,36,-6], [27,36,36,-6], [30,21,13,2], [29,21,13,1], [30,20,0,2], [29,20,0,1], [40,36,36,-3], [40,35,35,-3], - [27,135,243,350,458,566,674,782,890,998,1106,1213,1321,1429,1537,1645], - [93,358,623,888,1153,1418,1683,1947], - [1762,2205] - ], - cmbx10: [ - [36,41,0,-2], [50,42,0,-3], [46,43,1,-3], [44,42,0,-2], [41,40,0,-2], [49,41,0,-2], [43,41,0,-3], [46,42,0,-3], - [43,41,0,-3], [46,41,0,-3], [43,42,0,-3], [43,42,0,-1], [35,42,0,-1], [35,42,0,-1], [54,42,0,-1], [54,42,0,-1], - [15,27,0,-2], [20,39,12,4], [13,12,-30,-7], [13,12,-30,-14], [18,9,-30,-8], [22,12,-29,-6], [26,4,-32,-4], [15,11,-31,-18], - [19,12,12,-7], [32,43,1,-2], [46,28,1,-2], [50,28,1,-1], [31,40,7,-1], [58,41,0,-2], [63,43,1,-4], [46,48,4,-3], - [18,8,-16,-1], [10,42,0,-5], [26,21,-20,-2], [50,53,12,-3], [28,49,4,-3], [50,49,4,-3], [48,43,1,-2], [11,21,-20,-4], - [17,60,15,-6], [17,60,15,-3], [26,27,-18,-4], [46,46,8,-3], [11,22,12,-4], [19,6,-10], [10,10,0,-4], [28,60,15,-3], - [30,40,1,-2], [25,39,0,-5], [28,39,0,-3], [29,40,1,-2], [31,39,0,-1], [28,40,1,-3], [29,40,1,-2], [30,41,1,-3], - [29,40,1,-2], [29,40,1,-2], [10,27,0,-4], [11,39,12,-4], [10,43,13,-5], [46,18,-6,-3], [26,42,12,-3], [26,42,0,-3], - [46,43,1,-3], [47,42,0,-2], [43,41,0,-2], [43,43,1,-3], [47,41,0,-2], [41,41,0,-2], [38,41,0,-2], [47,43,1,-3], - [49,41,0,-2], [22,41,0,-2], [31,42,1,-1], [49,41,0,-2], [36,41,0,-2], [60,41,0,-2], [49,41,0,-2], [45,43,1,-3], - [41,41,0,-2], [45,54,12,-3], [49,42,1,-2], [31,43,1,-3], [43,40,0,-2], [48,42,1,-2], [49,42,1,-1], [68,42,1,-1], - [48,41,0,-2], [50,41,0,-1], [35,41,0,-3], [11,60,15,-7], [26,21,-20,-8], [11,60,15,-1], [19,10,-31,-7], [10,10,-31,-4], - [11,21,-20,-3], [32,28,1,-1], [34,42,1,-2], [27,28,1,-2], [34,42,1,-2], [29,28,1,-1], [24,42,0,-2], [32,39,12,-1], - [35,41,0,-2], [15,41,0,-2], [20,53,12,4], [33,41,0,-2], [16,41,0,-2], [54,27,0,-2], [35,27,0,-2], [31,28,1,-1], - [34,39,12,-2], [34,39,12,-2], [24,27,0,-2], [23,28,1,-2], [22,39,1,-1], [35,28,1,-2], [34,28,1,-1], [47,28,1,-1], - [34,27,0,-1], [34,39,12,-1], [27,27,0,-1], [34,3,-15], [68,3,-15], [21,12,-30,-8], [23,7,-34,-5], [22,9,-32,-6], - [25,110,195,280,364,449,534,619,704,789,874,959,1043,1128,1213,1298], - [77,149,220,292,363,434,506,577], - [1390,625], - ], - cmti10: [ - [39,41,0,-3], [41,43,0,-4], [39,44,2,-8], [35,43,0,-3], [41,40,0,-4], [48,41,0,-3], [43,41,0,-4], [38,42,0,-12], - [34,41,0,-9], [37,41,0,-12], [40,42,0,-5], [47,55,13,2], [38,55,13,2], [40,55,13,2], [56,55,13,2], [58,55,13,2], - [15,28,1,-5], [21,39,13,2], [9,12,-29,-17], [13,12,-29,-20], [16,9,-29,-16], [18,11,-30,-16], [21,2,-33,-13], [12,12,-31,-28], - [14,12,12,-6], [37,55,13,2], [38,28,1,-5], [37,28,1,-6], [29,39,7,-4], [53,41,0,-3], [53,44,2,-9], [42,48,4,-7], - [16,8,-16,-5], [17,43,0,-6], [21,18,-23,-10], [43,53,12,-6], [37,43,1,-5], [42,49,4,-8], [41,45,2,-7], [9,18,-23,-13], - [22,60,15,-9], [22,60,15,-1], [24,27,-18,-11], [37,37,4,-8], [10,19,12,-4], [15,4,-11,-5], [7,7,0,-6], [36,60,15,-1], - [27,42,2,-6], [21,40,0,-7], [28,42,2,-5], [29,42,2,-5], [26,52,12,-2], [28,42,2,-6], [27,42,2,-7], [29,42,2,-8], - [28,42,2,-5], [27,42,2,-6], [12,26,0,-6], [14,38,12,-4], [16,43,13,-3], [40,15,-7,-6], [21,43,13,-5], [22,43,0,-11], - [39,43,1,-8], [38,43,0,-3], [41,41,0,-3], [40,44,2,-8], [43,41,0,-3], [41,41,0,-3], [41,41,0,-3], [40,44,2,-8], - [48,41,0,-3], [27,41,0,-3], [32,43,2,-5], [48,41,0,-3], [34,41,0,-3], [56,41,0,-4], [48,41,0,-3], [39,44,2,-8], - [40,41,0,-3], [39,54,12,-8], [40,43,2,-3], [34,44,2,-4], [38,40,0,-10], [40,43,2,-11], [40,43,2,-12], [54,43,2,-12], - [57,41,0,8], [40,41,0,-12], [38,41,0,-4], [23,60,15,-4], [20,18,-23,-16], [23,60,15,996], [16,10,-31,-15], [7,7,-33,-15], - [10,18,-23,-12], [26,27,1,-6], [21,42,1,-6], [22,28,1,-6], [27,42,1,-6], [22,28,1,-6], [29,54,12,2], [26,39,13,-3], - [28,42,1,-4], [15,40,1,-5], [23,52,13,2], [26,42,1,-4], [13,42,1,-5], [45,28,1,-5], [30,28,1,-5], [24,28,1,-6], - [31,38,12], [24,38,12,-6], [24,28,1,-5], [21,28,1,-4], [17,38,1,-5], [28,28,1,-5], [25,28,1,-5], [37,28,1,-5], - [28,28,1,-3], [26,40,13,-5], [25,28,1,-3], [28,2,-15,-5], [55,2,-15,-7], [18,11,-30,-16], [20,7,-33,-14], [17,7,-33,-16], - [24,97,170,243,316,389,462,535,608,681,754,827,900,973,1046,1119], - [77,149,220,292,363,434,506,577], - [1198,625] - ] -}); - diff --git a/literature/static/jsMath/uncompressed/jsMath-fallback-mac.js b/literature/static/jsMath/uncompressed/jsMath-fallback-mac.js deleted file mode 100644 index a45476f37..000000000 --- a/literature/static/jsMath/uncompressed/jsMath-fallback-mac.js +++ /dev/null @@ -1,970 +0,0 @@ -/* - * jsMath-fallback-mac.js - * - * Part of the jsMath package for mathematics on the web. - * - * This file makes changes needed for when the TeX fonts are not available - * with a browser on the Mac. - * - * --------------------------------------------------------------------- - * - * Copyright 2004-2010 by Davide P. Cervone - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - -/******************************************************************** - * - * Here we replace the TeX character mappings by equivalent unicode - * points when possible, and adjust the character dimensions - * based on the fonts we hope we get them from (the styles are set - * to try to use the best characters available in the standard - * fonts). - */ - -jsMath.Add(jsMath.TeX,{ - - cmr10: [ - // 00 - 0F - {c: 'Γ', tclass: 'greek'}, - {c: 'Δ', tclass: 'greek'}, - {c: 'Θ', tclass: 'greek'}, - {c: 'Λ', tclass: 'greek'}, - {c: 'Ξ', tclass: 'greek'}, - {c: 'Π', tclass: 'greek'}, - {c: 'Σ', tclass: 'greek'}, - {c: 'Υ', tclass: 'greek'}, - {c: 'Φ', tclass: 'greek'}, - {c: 'Ψ', tclass: 'greek'}, - {c: 'Ω', tclass: 'greek'}, - {c: 'ff', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 14, '108': 15}, tclass: 'normal'}, - {c: 'fi', tclass: 'normal'}, - {c: 'fl', tclass: 'normal'}, - {c: 'ffi', tclass: 'normal'}, - {c: 'ffl', tclass: 'normal'}, - // 10 - 1F - {c: 'ı', a:0, tclass: 'normal'}, - {c: 'j', d:.2, tclass: 'normal'}, - {c: '`', tclass: 'accent'}, - {c: '´', tclass: 'accent'}, - {c: 'ˇ', tclass: 'accent'}, - {c: '˘', tclass: 'accent'}, - {c: 'ˉ', tclass: 'accent'}, - {c: '˚', tclass: 'accent'}, - {c: '̧', tclass: 'normal'}, - {c: 'ß', tclass: 'normal'}, - {c: 'æ', a:0, tclass: 'normal'}, - {c: 'œ', a:0, tclass: 'normal'}, - {c: 'ø', tclass: 'normal'}, - {c: 'Æ', tclass: 'normal'}, - {c: 'Œ', tclass: 'normal'}, - {c: 'Ø', tclass: 'normal'}, - // 20 - 2F - {c: '?', krn: {'108': -0.278, '76': -0.319}, tclass: 'normal'}, - {c: '!', lig: {'96': 60}, tclass: 'normal'}, - {c: '”', tclass: 'normal'}, - {c: '#', tclass: 'normal'}, - {c: '$', tclass: 'normal'}, - {c: '%', tclass: 'normal'}, - {c: '&', tclass: 'normal'}, - {c: '’', krn: {'63': 0.111, '33': 0.111}, lig: {'39': 34}, tclass: 'normal'}, - {c: '(', d:.2, tclass: 'normal'}, - {c: ')', d:.2, tclass: 'normal'}, - {c: '*', tclass: 'normal'}, - {c: '+', a:.1, tclass: 'normal'}, - {c: ',', a:-.3, d:.2, w: 0.278, tclass: 'normal'}, - {c: '-', a:0, lig: {'45': 123}, tclass: 'normal'}, - {c: '.', a:-.25, tclass: 'normal'}, - {c: '/', tclass: 'normal'}, - // 30 - 3F - {c: '0', tclass: 'normal'}, - {c: '1', tclass: 'normal'}, - {c: '2', tclass: 'normal'}, - {c: '3', tclass: 'normal'}, - {c: '4', tclass: 'normal'}, - {c: '5', tclass: 'normal'}, - {c: '6', tclass: 'normal'}, - {c: '7', tclass: 'normal'}, - {c: '8', tclass: 'normal'}, - {c: '9', tclass: 'normal'}, - {c: ':', tclass: 'normal'}, - {c: ';', tclass: 'normal'}, - {c: '¡', tclass: 'normal'}, - {c: '=', a:0, d:-.1, tclass: 'normal'}, - {c: '¿', tclass: 'normal'}, - {c: '?', lig: {'96': 62}, tclass: 'normal'}, - // 40 - 4F - {c: '@', tclass: 'normal'}, - {c: 'A', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'normal'}, - {c: 'B', tclass: 'normal'}, - {c: 'C', tclass: 'normal'}, - {c: 'D', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}, tclass: 'normal'}, - {c: 'E', tclass: 'normal'}, - {c: 'F', krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, - {c: 'G', tclass: 'normal'}, - {c: 'H', tclass: 'normal'}, - {c: 'I', krn: {'73': 0.0278}, tclass: 'normal'}, - {c: 'J', tclass: 'normal'}, - {c: 'K', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, - {c: 'L', krn: {'84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'normal'}, - {c: 'M', tclass: 'normal'}, - {c: 'N', tclass: 'normal'}, - {c: 'O', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}, tclass: 'normal'}, - // 50 - 5F - {c: 'P', krn: {'65': -0.0833, '111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}, tclass: 'normal'}, - {c: 'Q', d:.1, tclass: 'normal'}, - {c: 'R', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'normal'}, - {c: 'S', tclass: 'normal'}, - {c: 'T', krn: {'121': -0.0278, '101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}, tclass: 'normal'}, - {c: 'U', tclass: 'normal'}, - {c: 'V', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, - {c: 'W', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, - {c: 'X', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, - {c: 'Y', ic: 0.025, krn: {'101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}, tclass: 'normal'}, - {c: 'Z', tclass: 'normal'}, - {c: '[', d:.1, tclass: 'normal'}, - {c: '“', tclass: 'normal'}, - {c: ']', d:.1, tclass: 'normal'}, - {c: 'ˆ', tclass: 'accent'}, - {c: '˙', tclass: 'accent'}, - // 60 - 6F - {c: '‘', lig: {'96': 92}, tclass: 'normal'}, - {c: 'a', a:0, krn: {'118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'normal'}, - {c: 'b', krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'normal'}, - {c: 'c', a:0, krn: {'104': -0.0278, '107': -0.0278}, tclass: 'normal'}, - {c: 'd', tclass: 'normal'}, - {c: 'e', a:0, tclass: 'normal'}, - {c: 'f', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 12, '102': 11, '108': 13}, tclass: 'normal'}, - {c: 'g', a:0, d:.2, ic: 0.0139, krn: {'106': 0.0278}, tclass: 'normal'}, - {c: 'h', krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'normal'}, - {c: 'i', tclass: 'normal'}, - {c: 'j', d:.2, tclass: 'normal'}, - {c: 'k', krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'normal'}, - {c: 'l', tclass: 'normal'}, - {c: 'm', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'normal'}, - {c: 'n', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'normal'}, - {c: 'o', a:0, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'normal'}, - // 70 - 7F - {c: 'p', a:0, d:.2, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'normal'}, - {c: 'q', a:0, d:.2, tclass: 'normal'}, - {c: 'r', a:0, tclass: 'normal'}, - {c: 's', a:0, tclass: 'normal'}, - {c: 't', krn: {'121': -0.0278, '119': -0.0278}, tclass: 'normal'}, - {c: 'u', a:0, krn: {'119': -0.0278}, tclass: 'normal'}, - {c: 'v', a:0, ic: 0.0139, krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'normal'}, - {c: 'w', a:0, ic: 0.0139, krn: {'101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'normal'}, - {c: 'x', a:0, tclass: 'normal'}, - {c: 'y', a:0, d:.2, ic: 0.0139, krn: {'111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}, tclass: 'normal'}, - {c: 'z', a:0, tclass: 'normal'}, - {c: '–', a:.1, ic: 0.0278, lig: {'45': 124}, tclass: 'normal'}, - {c: '—', a:.1, ic: 0.0278, tclass: 'normal'}, - {c: '˝', tclass: 'accent'}, - {c: '˜', tclass: 'accent'}, - {c: '¨', tclass: 'accent'} - ], - - cmmi10: [ - // 00 - 0F - {c: 'Γ', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}, tclass: 'igreek'}, - {c: 'Δ', krn: {'127': 0.167}, tclass: 'igreek'}, - {c: 'Θ', ic: 0.0278, krn: {'127': 0.0833}, tclass: 'igreek'}, - {c: 'Λ', krn: {'127': 0.167}, tclass: 'igreek'}, - {c: 'Ξ', ic: 0.0757, krn: {'127': 0.0833}, tclass: 'igreek'}, - {c: 'Π', ic: 0.0812, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'igreek'}, - {c: 'Σ', ic: 0.0576, krn: {'127': 0.0833}, tclass: 'igreek'}, - {c: 'Υ', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0556}, tclass: 'igreek'}, - {c: 'Φ', krn: {'127': 0.0833}, tclass: 'igreek'}, - {c: 'Ψ', ic: 0.11, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'igreek'}, - {c: 'Ω', ic: 0.0502, krn: {'127': 0.0833}, tclass: 'igreek'}, - {c: 'α', a:.1, ic: 0.0037, krn: {'127': 0.0278}, tclass: 'greek'}, - {c: 'β', d:.1, ic: 0.0528, krn: {'127': 0.0833}, tclass: 'greek'}, - {c: 'γ', a:.1, d:.1, ic: 0.0556, tclass: 'greek'}, - {c: 'δ', ic: 0.0378, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'greek'}, - {c: 'ε', a:0, krn: {'127': 0.0556}, tclass: 'lucida'}, - // 10 - 1F - {c: 'ζ', d:.1, ic: 0.0738, krn: {'127': 0.0833}, tclass: 'greek'}, - {c: 'η', a:.1, d:.1, ic: 0.0359, krn: {'127': 0.0556}, tclass: 'greek'}, - {c: 'θ', ic: 0.0278, krn: {'127': 0.0833}, tclass: 'greek'}, - {c: 'ι', a:.1, krn: {'127': 0.0556}, tclass: 'greek'}, - {c: 'κ', a:.1, tclass: 'greek'}, - {c: 'λ', tclass: 'greek'}, - {c: 'μ', a:.1, d:.1, krn: {'127': 0.0278}, tclass: 'greek'}, - {c: 'ν', a:.1, ic: 0.0637, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0278}, tclass: 'greek'}, - {c: 'ξ', d:.1, ic: 0.046, krn: {'127': 0.111}, tclass: 'greek'}, - {c: 'π', a:.1, ic: 0.0359, tclass: 'greek'}, - {c: 'ρ', a:.1, d:.1, krn: {'127': 0.0833}, tclass: 'greek'}, - {c: 'σ', a:.1, ic: 0.0359, krn: {'59': -0.0556, '58': -0.0556}, tclass: 'greek'}, - {c: 'τ', a:.1, ic: 0.113, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0278}, tclass: 'greek'}, - {c: 'υ', a:.1, ic: 0.0359, krn: {'127': 0.0278}, tclass: 'greek'}, - {c: 'φ', a:.3, d:.1, krn: {'127': 0.0833}, tclass: 'greek'}, - {c: 'χ', a:.1, d:.1, krn: {'127': 0.0556}, tclass: 'greek'}, - // 20 - 2F - {c: 'ψ', a:.3, d:.1, ic: 0.0359, krn: {'127': 0.111}, tclass: 'greek'}, - {c: 'ω', a:.1, ic: 0.0359, tclass: 'greek'}, - {c: 'ε', a:.1, krn: {'127': 0.0833}, tclass: 'greek'}, - {c: 'ϑ', krn: {'127': 0.0833}, tclass: 'greek'}, - {c: 'ϖ', a:.1, ic: 0.0278, tclass: 'lucida'}, - {c: 'ϱ', a:.1, d:.2, krn: {'127': 0.0833}, tclass: 'lucida'}, - {c: 'ς', a:.1, d:.2, ic: 0.0799, krn: {'127': 0.0833}, tclass: 'greek'}, - {c: 'ϕ', a:.1, d:.1, krn: {'127': 0.0833}, tclass: 'greek'}, - {c: '↼', a:0, d:-.2, tclass: 'harpoon'}, - {c: '↽', a:0, d:-.1, tclass: 'harpoon'}, - {c: '⇀', a:0, d:-.2, tclass: 'harpoon'}, - {c: '⇁', a:0, d:-.1, tclass: 'harpoon'}, - {c: '˓', a:.1, tclass: 'lucida'}, - {c: '˒', a:.1, tclass: 'lucida'}, - {c: '', a:0, tclass: 'symbol'}, - {c: '', a:0, tclass: 'symbol'}, - // 30 - 3F - {c: '0', tclass: 'normal'}, - {c: '1', tclass: 'normal'}, - {c: '2', tclass: 'normal'}, - {c: '3', tclass: 'normal'}, - {c: '4', tclass: 'normal'}, - {c: '5', tclass: 'normal'}, - {c: '6', tclass: 'normal'}, - {c: '7', tclass: 'normal'}, - {c: '8', tclass: 'normal'}, - {c: '9', tclass: 'normal'}, - {c: '.', a:-.3, tclass: 'normal'}, - {c: ',', a:-.3, d:.2, tclass: 'normal'}, - {c: '<', a:.1, tclass: 'normal'}, - {c: '/', d:.1, krn: {'1': -0.0556, '65': -0.0556, '77': -0.0556, '78': -0.0556, '89': 0.0556, '90': -0.0556}, tclass: 'normal'}, - {c: '>', a:.1, tclass: 'normal'}, - {c: '', a:0, tclass: 'symbol'}, - // 40 - 4F - {c: '∂', ic: 0.0556, krn: {'127': 0.0833}, tclass: 'normal'}, - {c: 'A', krn: {'127': 0.139}, tclass: 'italic'}, - {c: 'B', ic: 0.0502, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'C', ic: 0.0715, krn: {'61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, - {c: 'D', ic: 0.0278, krn: {'127': 0.0556}, tclass: 'italic'}, - {c: 'E', ic: 0.0576, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'F', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}, tclass: 'italic'}, - {c: 'G', krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'H', ic: 0.0812, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'italic'}, - {c: 'I', ic: 0.0785, krn: {'127': 0.111}, tclass: 'italic'}, - {c: 'J', ic: 0.0962, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.167}, tclass: 'italic'}, - {c: 'K', ic: 0.0715, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'italic'}, - {c: 'L', krn: {'127': 0.0278}, tclass: 'italic'}, - {c: 'M', ic: 0.109, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, - {c: 'N', ic: 0.109, krn: {'61': -0.0833, '61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, - {c: 'O', ic: 0.0278, krn: {'127': 0.0833}, tclass: 'italic'}, - // 50 - 5F - {c: 'P', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}, tclass: 'italic'}, - {c: 'Q', d:.2, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'R', ic: 0.00773, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'S', ic: 0.0576, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, - {c: 'T', ic: 0.139, krn: {'61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, - {c: 'U', ic: 0.109, krn: {'59': -0.111, '58': -0.111, '61': -0.0556, '127': 0.0278}, tclass: 'italic'}, - {c: 'V', ic: 0.222, krn: {'59': -0.167, '58': -0.167, '61': -0.111}, tclass: 'italic'}, - {c: 'W', ic: 0.139, krn: {'59': -0.167, '58': -0.167, '61': -0.111}, tclass: 'italic'}, - {c: 'X', ic: 0.0785, krn: {'61': -0.0833, '61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, - {c: 'Y', ic: 0.222, krn: {'59': -0.167, '58': -0.167, '61': -0.111}, tclass: 'italic'}, - {c: 'Z', ic: 0.0715, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, - {c: '♭', tclass: 'symbol2'}, - {c: '♮', tclass: 'symbol2'}, - {c: '♯', tclass: 'symbol2'}, - {c: '', a:0, d:-.1, tclass: 'normal'}, - {c: '', a:0, d:-.1, tclass: 'normal'}, - // 60 - 6F - {c: '', krn: {'127': 0.111}, tclass: 'symbol'}, - {c: 'a', a:0, tclass: 'italic'}, - {c: 'b', tclass: 'italic'}, - {c: 'c', a:0, krn: {'127': 0.0556}, tclass: 'italic'}, - {c: 'd', krn: {'89': 0.0556, '90': -0.0556, '106': -0.111, '102': -0.167, '127': 0.167}, tclass: 'italic'}, - {c: 'e', a:0, krn: {'127': 0.0556}, tclass: 'italic'}, - {c: 'f', d:.2, ic: 0.108, krn: {'59': -0.0556, '58': -0.0556, '127': 0.167}, tclass: 'italic'}, - {c: 'g', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0278}, tclass: 'italic'}, - {c: 'h', krn: {'127': -0.0278}, tclass: 'italic'}, - {c: 'i', tclass: 'italic'}, - {c: 'j', d:.2, ic: 0.0572, krn: {'59': -0.0556, '58': -0.0556}, tclass: 'italic'}, - {c: 'k', ic: 0.0315, tclass: 'italic'}, - {c: 'l', ic: 0.0197, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'm', a:0, tclass: 'italic'}, - {c: 'n', a:0, tclass: 'italic'}, - {c: 'o', a:0, krn: {'127': 0.0556}, tclass: 'italic'}, - // 70 - 7F - {c: 'p', a:0, d:.2, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'q', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'r', a:0, ic: 0.0278, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'italic'}, - {c: 's', a:0, krn: {'127': 0.0556}, tclass: 'italic'}, - {c: 't', krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'u', a:0, krn: {'127': 0.0278}, tclass: 'italic'}, - {c: 'v', a:0, ic: 0.0359, krn: {'127': 0.0278}, tclass: 'italic'}, - {c: 'w', a:0, ic: 0.0269, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'x', a:0, krn: {'127': 0.0278}, tclass: 'italic'}, - {c: 'y', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0556}, tclass: 'italic'}, - {c: 'z', a:0, ic: 0.044, krn: {'127': 0.0556}, tclass: 'italic'}, - {c: 'ı', a:0, krn: {'127': 0.0278}, tclass: 'italic'}, - {c: 'ȷ', a:0, d:.2, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: '℘', d:0, krn: {'127': 0.111}, tclass: 'asymbol'}, - {c: '', ic: 0.154, tclass: 'symbol'}, - {c: '̑', ic: 0.399, tclass: 'normal'} - ], - - cmsy10: [ - // 00 - 0F - {c: '−', a:.1, tclass: 'symbol'}, - {c: '·', a:0, d:-.2, tclass: 'symbol'}, - {c: '×', a:0, tclass: 'symbol'}, - {c: '*', a:0, tclass: 'symbol'}, - {c: '÷', a:0, tclass: 'symbol'}, - {c: '◊', tclass: 'lucida'}, - {c: '±', a:.1, tclass: 'symbol'}, - {c: '∓', tclass: 'symbol'}, - {c: '⊕', tclass: 'symbol'}, - {c: '⊖', tclass: 'symbol'}, - {c: '⊗', tclass: 'symbol'}, - {c: '⊘', tclass: 'symbol'}, - {c: '⊙', tclass: 'symbol3'}, - {c: '◯', tclass: 'symbol'}, - {c: '°', a:.3, d:-.3, tclass: 'symbol'}, - {c: '•', a:.2, d:-.25, tclass: 'symbol'}, - // 10 - 1F - {c: '≍', a:.1, tclass: 'symbol'}, - {c: '≡', a:.1, tclass: 'symbol'}, - {c: '⊆', tclass: 'symbol'}, - {c: '⊇', tclass: 'symbol'}, - {c: '≤', tclass: 'symbol'}, - {c: '≥', tclass: 'symbol'}, - {c: '⪯', tclass: 'symbol'}, - {c: '⪰', tclass: 'symbol'}, - {c: '~', a:0, d: -.2, tclass: 'normal'}, - {c: '≈', a:.1, d:-.1, tclass: 'symbol'}, - {c: '⊂', tclass: 'symbol'}, - {c: '⊃', tclass: 'symbol'}, - {c: '≪', tclass: 'symbol'}, - {c: '≫', tclass: 'symbol'}, - {c: '≺', tclass: 'symbol'}, - {c: '≻', tclass: 'symbol'}, - // 20 - 2F - {c: '←', a:0, d:-.15, tclass: 'arrows'}, - {c: '→', a:0, d:-.15, tclass: 'arrows'}, - {c: '↑', h:.85, tclass: 'arrow1a'}, - {c: '↓', h:.85, tclass: 'arrow1a'}, - {c: '↔', a:0, tclass: 'arrow1'}, - {c: '↗', h:.85, d:.1, tclass: 'arrows'}, - {c: '↘', h:.85, d:.1, tclass: 'arrows'}, - {c: '≃', a: .1, tclass: 'symbol'}, - {c: '⇐', a:.1, tclass: 'arrows'}, - {c: '⇒', a:.1, tclass: 'arrows'}, - {c: '⇑', h:.7, tclass: 'asymbol'}, - {c: '⇓', h:.7, tclass: 'asymbol'}, - {c: '⇔', a:.1, tclass: 'arrows'}, - {c: '↖', h:.85, d:.1, tclass: 'arrows'}, - {c: '↙', h:.85, d:.1, tclass: 'arrows'}, - {c: '∝', a:.1, d:-.1, tclass: 'symbol'}, - // 30 - 3F - {c: '', a: 0, tclass: 'lucida'}, - {c: '∞', a:.1, tclass: 'symbol'}, - {c: '∈', tclass: 'symbol'}, - {c: '∋', tclass: 'symbol'}, - {c: '△', tclass: 'symbol'}, - {c: '▽', tclass: 'symbol'}, - {c: '/', tclass: 'symbol'}, - {c: '|', a:0, tclass: 'normal'}, - {c: '∀', tclass: 'symbol'}, - {c: '∃', tclass: 'symbol'}, - {c: '¬', a:0, d:-.1, tclass: 'symbol1'}, - {c: '∅', tclass: 'symbol'}, - {c: 'ℜ', tclass: 'asymbol'}, - {c: 'ℑ', tclass: 'asymbol'}, - {c: '⊤', tclass: 'symbol'}, - {c: '⊥', tclass: 'symbol'}, - // 40 - 4F - {c: 'ℵ', tclass: 'symbol'}, - {c: 'A', krn: {'48': 0.194}, tclass: 'cal'}, - {c: 'B', ic: 0.0304, krn: {'48': 0.139}, tclass: 'cal'}, - {c: 'C', ic: 0.0583, krn: {'48': 0.139}, tclass: 'cal'}, - {c: 'D', ic: 0.0278, krn: {'48': 0.0833}, tclass: 'cal'}, - {c: 'E', ic: 0.0894, krn: {'48': 0.111}, tclass: 'cal'}, - {c: 'F', ic: 0.0993, krn: {'48': 0.111}, tclass: 'cal'}, - {c: 'G', d:.2, ic: 0.0593, krn: {'48': 0.111}, tclass: 'cal'}, - {c: 'H', ic: 0.00965, krn: {'48': 0.111}, tclass: 'cal'}, - {c: 'I', ic: 0.0738, krn: {'48': 0.0278}, tclass: 'cal'}, - {c: 'J', d:.2, ic: 0.185, krn: {'48': 0.167}, tclass: 'cal'}, - {c: 'K', ic: 0.0144, krn: {'48': 0.0556}, tclass: 'cal'}, - {c: 'L', krn: {'48': 0.139}, tclass: 'cal'}, - {c: 'M', krn: {'48': 0.139}, tclass: 'cal'}, - {c: 'N', ic: 0.147, krn: {'48': 0.0833}, tclass: 'cal'}, - {c: 'O', ic: 0.0278, krn: {'48': 0.111}, tclass: 'cal'}, - // 50 - 5F - {c: 'P', ic: 0.0822, krn: {'48': 0.0833}, tclass: 'cal'}, - {c: 'Q', d:.2, krn: {'48': 0.111}, tclass: 'cal'}, - {c: 'R', krn: {'48': 0.0833}, tclass: 'cal'}, - {c: 'S', ic: 0.075, krn: {'48': 0.139}, tclass: 'cal'}, - {c: 'T', ic: 0.254, krn: {'48': 0.0278}, tclass: 'cal'}, - {c: 'U', ic: 0.0993, krn: {'48': 0.0833}, tclass: 'cal'}, - {c: 'V', ic: 0.0822, krn: {'48': 0.0278}, tclass: 'cal'}, - {c: 'W', ic: 0.0822, krn: {'48': 0.0833}, tclass: 'cal'}, - {c: 'X', ic: 0.146, krn: {'48': 0.139}, tclass: 'cal'}, - {c: 'Y', ic: 0.0822, krn: {'48': 0.0833}, tclass: 'cal'}, - {c: 'Z', ic: 0.0794, krn: {'48': 0.139}, tclass: 'cal'}, - {c: '⋃', tclass: 'symbol'}, - {c: '⋂', tclass: 'symbol'}, - {c: '⊎', tclass: 'symbol'}, - {c: '⋀', tclass: 'symbol'}, - {c: '⋁', tclass: 'symbol'}, - // 60 - 6F - {c: '⊢', tclass: 'symbol'}, - {c: '⊣', tclass: 'symbol'}, - {c: '⎣', h:1, d:.3, tclass: 'asymbol'}, - {c: '⎦', h:1, d:.3, tclass: 'asymbol'}, - {c: '⎡', h:1, d:.3, tclass: 'asymbol'}, - {c: '⎤', h:1, d:.3, tclass: 'asymbol'}, - {c: '{', d:.2, tclass: 'normal'}, - {c: '}', d:.2, tclass: 'normal'}, - {c: '⟨', h:.9, d:.1, tclass: 'asymbol'}, - {c: '⟩', h:.9, d:.1, tclass: 'asymbol'}, - {c: '|', d:.2, tclass: 'vertical'}, - {c: '||', d:.2, tclass: 'vertical'}, - {c: '↕', d:.1, tclass: 'arrow1'}, - {c: '⇕', d:.1, tclass: 'arrow1'}, - {c: '', a:.3, d:.1, tclass: 'lucida'}, - {c: '≀', tclass: 'asymbol'}, - // 70 - 7F - {c: '', h:.04, d:.9, tclass: 'lucida'}, - {c: '∐', d:.1, tclass: 'symbol'}, - {c: '∇', tclass: 'symbol'}, - {c: '∫', h:1, d:.1, ic: 0.111, tclass: 'root'}, - {c: '⊔', tclass: 'symbol'}, - {c: '⊓', tclass: 'symbol'}, - {c: '⊑', tclass: 'symbol'}, - {c: '⊒', tclass: 'symbol'}, - {c: '§', d:.1, tclass: 'normal'}, - {c: '†', d:.1, tclass: 'normal'}, - {c: '‡', d:.1, tclass: 'normal'}, - {c: '¶', a:.3, d:.1, tclass: 'lucida'}, - {c: '♣', tclass: 'symbol'}, - {c: '♦', tclass: 'symbol'}, - {c: '♥', tclass: 'symbol'}, - {c: '♠', tclass: 'symbol'} - ], - - cmex10: [ - // 00 - 0F - {c: '(', h: 0.04, d: 1.16, n: 16, tclass: 'delim1'}, - {c: ')', h: 0.04, d: 1.16, n: 17, tclass: 'delim1'}, - {c: '[', h: 0.04, d: 1.16, n: 104, tclass: 'delim1'}, - {c: ']', h: 0.04, d: 1.16, n: 105, tclass: 'delim1'}, - {c: '⎣', h: 0.04, d: 1.16, n: 106, tclass: 'delim1a'}, - {c: '⎦', h: 0.04, d: 1.16, n: 107, tclass: 'delim1a'}, - {c: '⎡', h: 0.04, d: 1.16, n: 108, tclass: 'delim1a'}, - {c: '⎤', h: 0.04, d: 1.16, n: 109, tclass: 'delim1a'}, - {c: '{', h: 0.04, d: 1.16, n: 110, tclass: 'delim1'}, - {c: '}', h: 0.04, d: 1.16, n: 111, tclass: 'delim1'}, - {c: '〈', h: 0.04, d: 1.16, n: 68, tclass: 'delim1c'}, - {c: '〉', h: 0.04, d: 1.16, n: 69, tclass: 'delim1c'}, - {c: '|', h:.7, d:.15, delim: {rep: 12}, tclass: 'vertical1'}, - {c: '||', h:.7, d:.15, delim: {rep: 13}, tclass: 'vertical1'}, - {c: '∕', h: 0.04, d: 1.16, n: 46, tclass: 'delim1b'}, - {c: '∖', h: 0.04, d: 1.16, n: 47, tclass: 'delim1b'}, - // 10 - 1F - {c: '(', h: 0.04, d: 1.76, n: 18, tclass: 'delim2'}, - {c: ')', h: 0.04, d: 1.76, n: 19, tclass: 'delim2'}, - {c: '(', h: 0.04, d: 2.36, n: 32, tclass: 'delim3'}, - {c: ')', h: 0.04, d: 2.36, n: 33, tclass: 'delim3'}, - {c: '[', h: 0.04, d: 2.36, n: 34, tclass: 'delim3'}, - {c: ']', h: 0.04, d: 2.36, n: 35, tclass: 'delim3'}, - {c: '⎣', h: 0.04, d: 2.36, n: 36, tclass: 'delim3a'}, - {c: '⎦', h: 0.04, d: 2.36, n: 37, tclass: 'delim3a'}, - {c: '⎡', h: 0.04, d: 2.36, n: 38, tclass: 'delim3a'}, - {c: '⎤', h: 0.04, d: 2.36, n: 39, tclass: 'delim3a'}, - {c: '{', h: 0.04, d: 2.36, n: 40, tclass: 'delim3'}, - {c: '}', h: 0.04, d: 2.36, n: 41, tclass: 'delim3'}, - {c: '〈', h: 0.04, d: 2.36, n: 42, tclass: 'delim3c'}, - {c: '〉', h: 0.04, d: 2.36, n: 43, tclass: 'delim3c'}, - {c: '∕', h: 0.04, d: 2.36, n: 44, tclass: 'delim3b'}, - {c: '∖', h: 0.04, d: 2.36, n: 45, tclass: 'delim3b'}, - // 20 - 2F - {c: '(', h: 0.04, d: 2.96, n: 48, tclass: 'delim4'}, - {c: ')', h: 0.04, d: 2.96, n: 49, tclass: 'delim4'}, - {c: '[', h: 0.04, d: 2.96, n: 50, tclass: 'delim4'}, - {c: ']', h: 0.04, d: 2.96, n: 51, tclass: 'delim4'}, - {c: '⎣', h: 0.04, d: 2.96, n: 52, tclass: 'delim4a'}, - {c: '⎦', h: 0.04, d: 2.96, n: 53, tclass: 'delim4a'}, - {c: '⎡', h: 0.04, d: 2.96, n: 54, tclass: 'delim4a'}, - {c: '⎤', h: 0.04, d: 2.96, n: 55, tclass: 'delim4a'}, - {c: '{', h: 0.04, d: 2.96, n: 56, tclass: 'delim4'}, - {c: '}', h: 0.04, d: 2.96, n: 57, tclass: 'delim4'}, - {c: '〈', h: 0.04, d: 2.96, tclass: 'delim4c'}, - {c: '〉', h: 0.04, d: 2.96, tclass: 'delim4c'}, - {c: '∕', h: 0.04, d: 2.96, tclass: 'delim4b'}, - {c: '∖', h: 0.04, d: 2.96, tclass: 'delim4b'}, - {c: '∕', h: 0.04, d: 1.76, n: 30, tclass: 'delim2b'}, - {c: '∖', h: 0.04, d: 1.76, n: 31, tclass: 'delim2b'}, - // 30 - 3F - {c: '⎛', h: 1, d: .2, delim: {top: 48, bot: 64, rep: 66}, tclass: 'asymbol'}, - {c: '⎞', h: 1, d: .2, delim: {top: 49, bot: 65, rep: 67}, tclass: 'asymbol'}, - {c: '⎡', h: 1, d: .2, delim: {top: 50, bot: 52, rep: 54}, tclass: 'asymbol'}, - {c: '⎤', h: 1, d: .2, delim: {top: 51, bot: 53, rep: 55}, tclass: 'asymbol'}, - {c: '⎣', h: 1, d: .2, delim: {bot: 52, rep: 54}, tclass: 'asymbol'}, - {c: '⎦', h: 1, d: .2, delim: {bot: 53, rep: 55}, tclass: 'asymbol'}, - {c: '⎢', h: 1, d: .2, delim: {top: 50, rep: 54}, tclass: 'asymbol'}, - {c: '⎥', h: 1, d: .2, delim: {top: 51, rep: 55}, tclass: 'asymbol'}, - {c: '⎧', h: 1, d: .2, delim: {top: 56, mid: 60, bot: 58, rep: 62}, tclass: 'asymbol'}, - {c: '⎫', h: 1, d: .2, delim: {top: 57, mid: 61, bot: 59, rep: 62}, tclass: 'asymbol'}, - {c: '⎩', h: 1, d: .2, delim: {top: 56, bot: 58, rep: 62}, tclass: 'asymbol'}, - {c: '⎭', h: 1, d: .2, delim: {top: 57, bot: 59, rep: 62}, tclass: 'asymbol'}, - {c: '⎨', h: 1, d: .2, delim: {rep: 63}, tclass: 'asymbol'}, - {c: '⎬', h: 1, d: .2, delim: {rep: 119}, tclass: 'asymbol'}, - {c: '⎪', h: 1, d: .2, delim: {rep: 62}, tclass: 'asymbol'}, - {c: '⎪', h: .95, d: .05, delim: {top: 120, bot: 121, rep: 63}, tclass: 'arrow1a'}, - // 40 - 4F - {c: '⎝', h: 1, d: .2, delim: {top: 56, bot: 59, rep: 62}, tclass: 'asymbol'}, - {c: '⎠', h: 1, d: .2, delim: {top: 57, bot: 58, rep: 62}, tclass: 'asymbol'}, - {c: '⎜', h: 1, d: .2, delim: {rep: 66}, tclass: 'asymbol'}, - {c: '⎟', h: 1, d: .2, delim: {rep: 67}, tclass: 'asymbol'}, - {c: '〈', h: 0.04, d: 1.76, n: 28, tclass: 'delim2c'}, - {c: '〉', h: 0.04, d: 1.76, n: 29, tclass: 'delim2c'}, - {c: '⊔', h: -.2, d: 1, n: 71, tclass: 'bigop1'}, - {c: '⊔', h: -.1, d: 1.2, tclass: 'bigop2'}, - {c: '∮', h: 0, d: 1.11, ic: 0.095, n: 73, tclass: 'bigop1c'}, - {c: '∮', h: 0, d: 2.22, ic: 0.222, tclass: 'bigop2c'}, - {c: '⊙', h: 0, d: 1, n: 75, tclass: 'bigop1'}, - {c: '⊙', h: 0.1, d: 1.2, tclass: 'bigop2'}, - {c: '⊕', h: .2, d: .9, n: 77, tclass: 'bigop1'}, - {c: '⊕', h: 0.4, d: 1.2, tclass: 'bigop2'}, - {c: '⊗', h: .2, d: .9, n: 79, tclass: 'bigop1'}, - {c: '⊗', h: 0.4, d: 1.2, tclass: 'bigop2'}, - // 50 - 5F - {c: '∑', h: 0, d: 1, n: 88, tclass: 'bigop1a'}, - {c: '∏', h: 0, d: 1, n: 89, tclass: 'bigop1a'}, - {c: '∫', h: 0, d: 1.11, ic: 0.095, n: 90, tclass: 'bigop1c'}, - {c: '∪', h: 0, d: 1, n: 91, tclass: 'bigop1b'}, - {c: '∩', h: 0, d: 1, n: 92, tclass: 'bigop1b'}, - {c: '⊎', h: -.2, d: 1.1, n: 93, tclass: 'bigop1b'}, - {c: '∧', h: 0, d: 1, n: 94, tclass: 'bigop1'}, - {c: '∨', h: 0, d: 1, n: 95, tclass: 'bigop1'}, - {c: '∑', h: 0.1, d: 1.6, tclass: 'bigop2a'}, - {c: '∏', h: 0.1, d: 1.6, tclass: 'bigop2a'}, - {c: '∫', h: 0, d: 2.22, ic: 0.222, tclass: 'bigop2c'}, - {c: '∪', h: 0.1, d: 1.5, tclass: 'bigop2b'}, - {c: '∩', h: 0.1, d: 1.5, tclass: 'bigop2b'}, - {c: '⊎', h: -0.3, d: 1.6, tclass: 'bigop2b'}, - {c: '∧', h: 0.1, d: 1.2, tclass: 'bigop2'}, - {c: '∨', h: 0.1, d: 1.2, tclass: 'bigop2'}, - // 60 - 6F - {c: '∐', h: 0, d: .9, n: 97, tclass: 'bigop1a'}, - {c: '∐', h: 0.1, d: 1.4, tclass: 'bigop2a'}, - {c: '︿', h: 0.722, w: .65, n: 99, tclass: 'wide1'}, - {c: '︿', h: 0.85, w: 1.1, n: 100, tclass: 'wide2'}, - {c: '︿', h: 0.99, w: 1.65, tclass: 'wide3'}, - {c: '⁓', h: 0.722, w: .75, n: 102, tclass: 'wide1a'}, - {c: '⁓', h: 0.8, w: 1.35, n: 103, tclass: 'wide2a'}, - {c: '⁓', h: 0.99, w: 2, tclass: 'wide3a'}, - {c: '[', h: 0.04, d: 1.76, n: 20, tclass: 'delim2'}, - {c: ']', h: 0.04, d: 1.76, n: 21, tclass: 'delim2'}, - {c: '⎣', h: 0.04, d: 1.76, n: 22, tclass: 'delim2a'}, - {c: '⎦', h: 0.04, d: 1.76, n: 23, tclass: 'delim2a'}, - {c: '⎡', h: 0.04, d: 1.76, n: 24, tclass: 'delim2a'}, - {c: '⎤', h: 0.04, d: 1.76, n: 25, tclass: 'delim2a'}, - {c: '{', h: 0.04, d: 1.76, n: 26, tclass: 'delim2'}, - {c: '}', h: 0.04, d: 1.76, n: 27, tclass: 'delim2'}, - // 70 - 7F - {c: '', h: 0.04, d: 1.16, n: 113, tclass: 'root'}, - {c: '', h: 0.04, d: 1.76, n: 114, tclass: 'root'}, - {c: '', h: 0.06, d: 2.36, n: 115, tclass: 'root'}, - {c: '', h: 0.08, d: 2.96, n: 116, tclass: 'root'}, - {c: '', h: 0.1, d: 3.75, n: 117, tclass: 'root'}, - {c: '', h: .12, d: 4.5, n: 118, tclass: 'root'}, - {c: '', h: .14, d: 5.7, tclass: 'root'}, - {c: '', h:.9, delim: {top: 126, bot: 127, rep: 119}, tclass: 'asymbol'}, - {c: '↑', h:.9, d:0, delim: {top: 120, rep: 63}, tclass: 'arrow1a'}, - {c: '↓', h:.9, d:0, delim: {bot: 121, rep: 63}, tclass: 'arrow1a'}, - {c: '', h:.1, tclass: 'symbol'}, - {c: '', h:.1, tclass: 'symbol'}, - {c: '', h:.1, tclass: 'symbol'}, - {c: '', h:.1, tclass: 'symbol'}, - {c: '⇑', h:.7, delim: {top: 126, rep: 119}, tclass: 'asymbol'}, - {c: '⇓', h:.7, delim: {bot: 127, rep: 119}, tclass: 'asymbol'} - ], - - cmti10: [ - // 00 - 0F - {c: 'Γ', ic: 0.133, tclass: 'igreek'}, - {c: 'Δ', tclass: 'igreek'}, - {c: 'Θ', ic: 0.094, tclass: 'igreek'}, - {c: 'Λ', tclass: 'igreek'}, - {c: 'Ξ', ic: 0.153, tclass: 'igreek'}, - {c: 'Π', ic: 0.164, tclass: 'igreek'}, - {c: 'Σ', ic: 0.12, tclass: 'igreek'}, - {c: 'Υ', ic: 0.111, tclass: 'igreek'}, - {c: 'Φ', ic: 0.0599, tclass: 'igreek'}, - {c: 'Ψ', ic: 0.111, tclass: 'igreek'}, - {c: 'Ω', ic: 0.103, tclass: 'igreek'}, - {c: 'ff', ic: 0.212, krn: {'39': 0.104, '63': 0.104, '33': 0.104, '41': 0.104, '93': 0.104}, lig: {'105': 14, '108': 15}, tclass: 'italic'}, - {c: 'fi', ic: 0.103, tclass: 'italic'}, - {c: 'fl', ic: 0.103, tclass: 'italic'}, - {c: 'ffi', ic: 0.103, tclass: 'italic'}, - {c: 'ffl', ic: 0.103, tclass: 'italic'}, - // 10 - 1F - {c: 'ı', a:0, ic: 0.0767, tclass: 'italic'}, - {c: 'j', d:.2, ic: 0.0374, tclass: 'italic'}, - {c: '`', tclass: 'iaccent'}, - {c: '´', ic: 0.0969, tclass: 'iaccent'}, - {c: 'ˇ', ic: 0.083, tclass: 'iaccent'}, - {c: '˘', ic: 0.108, tclass: 'iaccent'}, - {c: 'ˉ', ic: 0.103, tclass: 'iaccent'}, - {c: '˚', tclass: 'iaccent'}, - {c: '?', d: 0.17, w: 0.46, tclass: 'italic'}, - {c: 'ß', ic: 0.105, tclass: 'italic'}, - {c: 'æ', a:0, ic: 0.0751, tclass: 'italic'}, - {c: 'œ', a:0, ic: 0.0751, tclass: 'italic'}, - {c: 'ø', ic: 0.0919, tclass: 'italic'}, - {c: 'Æ', ic: 0.12, tclass: 'italic'}, - {c: 'Œ', ic: 0.12, tclass: 'italic'}, - {c: 'Ø', ic: 0.094, tclass: 'italic'}, - // 20 - 2F - {c: '?', krn: {'108': -0.256, '76': -0.321}, tclass: 'italic'}, - {c: '!', ic: 0.124, lig: {'96': 60}, tclass: 'italic'}, - {c: '”', ic: 0.0696, tclass: 'italic'}, - {c: '#', ic: 0.0662, tclass: 'italic'}, - {c: '$', tclass: 'italic'}, - {c: '%', ic: 0.136, tclass: 'italic'}, - {c: '&', ic: 0.0969, tclass: 'italic'}, - {c: '’', ic: 0.124, krn: {'63': 0.102, '33': 0.102}, lig: {'39': 34}, tclass: 'italic'}, - {c: '(', d:.2, ic: 0.162, tclass: 'italic'}, - {c: ')', d:.2, ic: 0.0369, tclass: 'italic'}, - {c: '*', ic: 0.149, tclass: 'italic'}, - {c: '+', a:.1, ic: 0.0369, tclass: 'italic'}, - {c: ',', a:-.3, d:.2, w: 0.278, tclass: 'italic'}, - {c: '-', a:0, ic: 0.0283, lig: {'45': 123}, tclass: 'italic'}, - {c: '.', a:-.25, tclass: 'italic'}, - {c: '/', ic: 0.162, tclass: 'italic'}, - // 30 - 3F - {c: '0', ic: 0.136, tclass: 'italic'}, - {c: '1', ic: 0.136, tclass: 'italic'}, - {c: '2', ic: 0.136, tclass: 'italic'}, - {c: '3', ic: 0.136, tclass: 'italic'}, - {c: '4', ic: 0.136, tclass: 'italic'}, - {c: '5', ic: 0.136, tclass: 'italic'}, - {c: '6', ic: 0.136, tclass: 'italic'}, - {c: '7', ic: 0.136, tclass: 'italic'}, - {c: '8', ic: 0.136, tclass: 'italic'}, - {c: '9', ic: 0.136, tclass: 'italic'}, - {c: ':', ic: 0.0582, tclass: 'italic'}, - {c: ';', ic: 0.0582, tclass: 'italic'}, - {c: '¡', ic: 0.0756, tclass: 'italic'}, - {c: '=', a:0, d:-.1, ic: 0.0662, tclass: 'italic'}, - {c: '¿', tclass: 'italic'}, - {c: '?', ic: 0.122, lig: {'96': 62}, tclass: 'italic'}, - // 40 - 4F - {c: '@', ic: 0.096, tclass: 'italic'}, - {c: 'A', krn: {'110': -0.0256, '108': -0.0256, '114': -0.0256, '117': -0.0256, '109': -0.0256, '116': -0.0256, '105': -0.0256, '67': -0.0256, '79': -0.0256, '71': -0.0256, '104': -0.0256, '98': -0.0256, '85': -0.0256, '107': -0.0256, '118': -0.0256, '119': -0.0256, '81': -0.0256, '84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - {c: 'B', ic: 0.103, tclass: 'italic'}, - {c: 'C', ic: 0.145, tclass: 'italic'}, - {c: 'D', ic: 0.094, krn: {'88': -0.0256, '87': -0.0256, '65': -0.0256, '86': -0.0256, '89': -0.0256}, tclass: 'italic'}, - {c: 'E', ic: 0.12, tclass: 'italic'}, - {c: 'F', ic: 0.133, krn: {'111': -0.0767, '101': -0.0767, '117': -0.0767, '114': -0.0767, '97': -0.0767, '65': -0.102, '79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}, tclass: 'italic'}, - {c: 'G', ic: 0.0872, tclass: 'italic'}, - {c: 'H', ic: 0.164, tclass: 'italic'}, - {c: 'I', ic: 0.158, tclass: 'italic'}, - {c: 'J', ic: 0.14, tclass: 'italic'}, - {c: 'K', ic: 0.145, krn: {'79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}, tclass: 'italic'}, - {c: 'L', krn: {'84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - {c: 'M', ic: 0.164, tclass: 'italic'}, - {c: 'N', ic: 0.164, tclass: 'italic'}, - {c: 'O', ic: 0.094, krn: {'88': -0.0256, '87': -0.0256, '65': -0.0256, '86': -0.0256, '89': -0.0256}, tclass: 'italic'}, - // 50 - 5F - {c: 'P', ic: 0.103, krn: {'65': -0.0767}, tclass: 'italic'}, - {c: 'Q', d:.1, ic: 0.094, tclass: 'italic'}, - {c: 'R', ic: 0.0387, krn: {'110': -0.0256, '108': -0.0256, '114': -0.0256, '117': -0.0256, '109': -0.0256, '116': -0.0256, '105': -0.0256, '67': -0.0256, '79': -0.0256, '71': -0.0256, '104': -0.0256, '98': -0.0256, '85': -0.0256, '107': -0.0256, '118': -0.0256, '119': -0.0256, '81': -0.0256, '84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - {c: 'S', ic: 0.12, tclass: 'italic'}, - {c: 'T', ic: 0.133, krn: {'121': -0.0767, '101': -0.0767, '111': -0.0767, '114': -0.0767, '97': -0.0767, '117': -0.0767, '65': -0.0767}, tclass: 'italic'}, - {c: 'U', ic: 0.164, tclass: 'italic'}, - {c: 'V', ic: 0.184, krn: {'111': -0.0767, '101': -0.0767, '117': -0.0767, '114': -0.0767, '97': -0.0767, '65': -0.102, '79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}, tclass: 'italic'}, - {c: 'W', ic: 0.184, krn: {'65': -0.0767}, tclass: 'italic'}, - {c: 'X', ic: 0.158, krn: {'79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}, tclass: 'italic'}, - {c: 'Y', ic: 0.194, krn: {'101': -0.0767, '111': -0.0767, '114': -0.0767, '97': -0.0767, '117': -0.0767, '65': -0.0767}, tclass: 'italic'}, - {c: 'Z', ic: 0.145, tclass: 'italic'}, - {c: '[', d:.1, ic: 0.188, tclass: 'italic'}, - {c: '“', ic: 0.169, tclass: 'italic'}, - {c: ']', d:.1, ic: 0.105, tclass: 'italic'}, - {c: 'ˆ', ic: 0.0665, tclass: 'iaccent'}, - {c: '˙', ic: 0.118, tclass: 'iaccent'}, - // 60 - 6F - {c: '‘', ic: 0.124, lig: {'96': 92}, tclass: 'italic'}, - {c: 'a', a:0, ic: 0.0767, tclass: 'italic'}, - {c: 'b', ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - {c: 'c', a:0, ic: 0.0565, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - {c: 'd', ic: 0.103, krn: {'108': 0.0511}, tclass: 'italic'}, - {c: 'e', a:0, ic: 0.0751, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - {c: 'f', ic: 0.212, krn: {'39': 0.104, '63': 0.104, '33': 0.104, '41': 0.104, '93': 0.104}, lig: {'105': 12, '102': 11, '108': 13}, tclass: 'italic'}, - {c: 'g', a:0, d:.2, ic: 0.0885, tclass: 'italic'}, - {c: 'h', ic: 0.0767, tclass: 'italic'}, - {c: 'i', ic: 0.102, tclass: 'italic'}, - {c: 'j', d:.2, ic: 0.145, tclass: 'italic'}, - {c: 'k', ic: 0.108, tclass: 'italic'}, - {c: 'l', ic: 0.103, krn: {'108': 0.0511}, tclass: 'italic'}, - {c: 'm', a:0, ic: 0.0767, tclass: 'italic'}, - {c: 'n', a:0, ic: 0.0767, krn: {'39': -0.102}, tclass: 'italic'}, - {c: 'o', a:0, ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - // 70 - 7F - {c: 'p', a:0, d:.2, ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - {c: 'q', a:0, d:.2, ic: 0.0885, tclass: 'italic'}, - {c: 'r', a:0, ic: 0.108, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - {c: 's', a:0, ic: 0.0821, tclass: 'italic'}, - {c: 't', ic: 0.0949, tclass: 'italic'}, - {c: 'u', a:0, ic: 0.0767, tclass: 'italic'}, - {c: 'v', a:0, ic: 0.108, tclass: 'italic'}, - {c: 'w', a:0, ic: 0.108, krn: {'108': 0.0511}, tclass: 'italic'}, - {c: 'x', a:0, ic: 0.12, tclass: 'italic'}, - {c: 'y', a:0, d:.2, ic: 0.0885, tclass: 'italic'}, - {c: 'z', a:0, ic: 0.123, tclass: 'italic'}, - {c: '–', a:.1, ic: 0.0921, lig: {'45': 124}, tclass: 'italic'}, - {c: '—', a:.1, ic: 0.0921, tclass: 'italic'}, - {c: '˝', ic: 0.122, tclass: 'iaccent'}, - {c: '˜', ic: 0.116, tclass: 'iaccent'}, - {c: '¨', tclass: 'iaccent'} - ], - - cmbx10: [ - // 00 - 0F - {c: 'Γ', tclass: 'bgreek'}, - {c: 'Δ', tclass: 'bgreek'}, - {c: 'Θ', tclass: 'bgreek'}, - {c: 'Λ', tclass: 'bgreek'}, - {c: 'Ξ', tclass: 'bgreek'}, - {c: 'Π', tclass: 'bgreek'}, - {c: 'Σ', tclass: 'bgreek'}, - {c: 'Υ', tclass: 'bgreek'}, - {c: 'Φ', tclass: 'bgreek'}, - {c: 'Ψ', tclass: 'bgreek'}, - {c: 'Ω', tclass: 'bgreek'}, - {c: 'ff', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 14, '108': 15}, tclass: 'bold'}, - {c: 'fi', tclass: 'bold'}, - {c: 'fl', tclass: 'bold'}, - {c: 'ffi', tclass: 'bold'}, - {c: 'ffl', tclass: 'bold'}, - // 10 - 1F - {c: 'ı', a:0, tclass: 'bold'}, - {c: 'j', d:.2, tclass: 'bold'}, - {c: '`', tclass: 'baccent'}, - {c: '´', tclass: 'baccent'}, - {c: 'ˇ', tclass: 'baccent'}, - {c: '˘', tclass: 'baccent'}, - {c: 'ˉ', tclass: 'baccent'}, - {c: '˚', tclass: 'baccent'}, - {c: '?', tclass: 'bold'}, - {c: 'ß', tclass: 'bold'}, - {c: 'æ', a:0, tclass: 'bold'}, - {c: 'œ', a:0, tclass: 'bold'}, - {c: 'ø', tclass: 'bold'}, - {c: 'Æ', tclass: 'bold'}, - {c: 'Œ', tclass: 'bold'}, - {c: 'Ø', tclass: 'bold'}, - // 20 - 2F - {c: '?', krn: {'108': -0.278, '76': -0.319}, tclass: 'bold'}, - {c: '!', lig: {'96': 60}, tclass: 'bold'}, - {c: '”', tclass: 'bold'}, - {c: '#', tclass: 'bold'}, - {c: '$', tclass: 'bold'}, - {c: '%', tclass: 'bold'}, - {c: '&', tclass: 'bold'}, - {c: '’', krn: {'63': 0.111, '33': 0.111}, lig: {'39': 34}, tclass: 'bold'}, - {c: '(', d:.2, tclass: 'bold'}, - {c: ')', d:.2, tclass: 'bold'}, - {c: '*', tclass: 'bold'}, - {c: '+', a:.1, tclass: 'bold'}, - {c: ',', a:-.3, d:.2, w: 0.278, tclass: 'bold'}, - {c: '-', a:0, lig: {'45': 123}, tclass: 'bold'}, - {c: '.', a:-.25, tclass: 'bold'}, - {c: '/', tclass: 'bold'}, - // 30 - 3F - {c: '0', tclass: 'bold'}, - {c: '1', tclass: 'bold'}, - {c: '2', tclass: 'bold'}, - {c: '3', tclass: 'bold'}, - {c: '4', tclass: 'bold'}, - {c: '5', tclass: 'bold'}, - {c: '6', tclass: 'bold'}, - {c: '7', tclass: 'bold'}, - {c: '8', tclass: 'bold'}, - {c: '9', tclass: 'bold'}, - {c: ':', tclass: 'bold'}, - {c: ';', tclass: 'bold'}, - {c: '¡', tclass: 'bold'}, - {c: '=', a:0, d:-.1, tclass: 'bold'}, - {c: '¿', tclass: 'bold'}, - {c: '?', lig: {'96': 62}, tclass: 'bold'}, - // 40 - 4F - {c: '@', tclass: 'bold'}, - {c: 'A', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'bold'}, - {c: 'B', tclass: 'bold'}, - {c: 'C', tclass: 'bold'}, - {c: 'D', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}, tclass: 'bold'}, - {c: 'E', tclass: 'bold'}, - {c: 'F', krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, - {c: 'G', tclass: 'bold'}, - {c: 'H', tclass: 'bold'}, - {c: 'I', krn: {'73': 0.0278}, tclass: 'bold'}, - {c: 'J', tclass: 'bold'}, - {c: 'K', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, - {c: 'L', krn: {'84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'bold'}, - {c: 'M', tclass: 'bold'}, - {c: 'N', tclass: 'bold'}, - {c: 'O', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}, tclass: 'bold'}, - // 50 - 5F - {c: 'P', krn: {'65': -0.0833, '111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}, tclass: 'bold'}, - {c: 'Q', d:.1, tclass: 'bold'}, - {c: 'R', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'bold'}, - {c: 'S', tclass: 'bold'}, - {c: 'T', krn: {'121': -0.0278, '101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}, tclass: 'bold'}, - {c: 'U', tclass: 'bold'}, - {c: 'V', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, - {c: 'W', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, - {c: 'X', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, - {c: 'Y', ic: 0.025, krn: {'101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}, tclass: 'bold'}, - {c: 'Z', tclass: 'bold'}, - {c: '[', d:.1, tclass: 'bold'}, - {c: '“', tclass: 'bold'}, - {c: ']', d:.1, tclass: 'bold'}, - {c: 'ˆ', tclass: 'baccent'}, - {c: '˙', tclass: 'baccent'}, - // 60 - 6F - {c: '‘', lig: {'96': 92}, tclass: 'bold'}, - {c: 'a', a:0, krn: {'118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'bold'}, - {c: 'b', krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'bold'}, - {c: 'c', a:0, krn: {'104': -0.0278, '107': -0.0278}, tclass: 'bold'}, - {c: 'd', tclass: 'bold'}, - {c: 'e', a:0, tclass: 'bold'}, - {c: 'f', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 12, '102': 11, '108': 13}, tclass: 'bold'}, - {c: 'g', a:0, d:.2, ic: 0.0139, krn: {'106': 0.0278}, tclass: 'bold'}, - {c: 'h', krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'bold'}, - {c: 'i', tclass: 'bold'}, - {c: 'j', d:.2, tclass: 'bold'}, - {c: 'k', krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'bold'}, - {c: 'l', tclass: 'bold'}, - {c: 'm', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'bold'}, - {c: 'n', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'bold'}, - {c: 'o', a:0, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'bold'}, - // 70 - 7F - {c: 'p', a:0, d:.2, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'bold'}, - {c: 'q', a:0, d:.2, tclass: 'bold'}, - {c: 'r', a:0, tclass: 'bold'}, - {c: 's', a:0, tclass: 'bold'}, - {c: 't', krn: {'121': -0.0278, '119': -0.0278}, tclass: 'bold'}, - {c: 'u', a:0, krn: {'119': -0.0278}, tclass: 'bold'}, - {c: 'v', a:0, ic: 0.0139, krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'bold'}, - {c: 'w', a:0, ic: 0.0139, krn: {'101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'bold'}, - {c: 'x', a:0, tclass: 'bold'}, - {c: 'y', a:0, d:.2, ic: 0.0139, krn: {'111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}, tclass: 'bold'}, - {c: 'z', a:0, tclass: 'bold'}, - {c: '–', a:.1, ic: 0.0278, lig: {'45': 124}, tclass: 'bold'}, - {c: '—', a:.1, ic: 0.0278, tclass: 'bold'}, - {c: '˝', tclass: 'baccent'}, - {c: '˜', tclass: 'baccent'}, - {c: '¨', tclass: 'baccent'} - ] -}); - - -jsMath.Setup.Styles({ - '.typeset .cmr10': "font-family: serif", - '.typeset .italic': "font-style: italic", - '.typeset .bold': "font-weight: bold", - '.typeset .lucida': "font-family: 'Lucida Grande'", - '.typeset .asymbol': "font-family: 'Apple Symbols'; font-size: 125%", - '.typeset .cal': "font-family: 'Apple Chancery'", - '.typeset .arrows': "font-family: 'Hiragino Mincho Pro'", - '.typeset .Arrows': "font-family: 'AppleGothic'", - '.typeset .arrow1': "font-family: 'Hiragino Mincho Pro'; position: relative; top: .075em; margin: -1px", - '.typeset .arrow1a': "font-family: 'Hiragino Mincho Pro'; margin:-.3em", - '.typeset .harpoon': "font-family: AppleGothic; font-size: 90%", - '.typeset .symbol': "font-family: 'Hiragino Mincho Pro'", - '.typeset .symbol2': "font-family: 'Hiragino Mincho Pro'; margin:-.2em", - '.typeset .symbol3': "font-family: AppleGothic", - '.typeset .delim1': "font-family: Times; font-size: 133%; position:relative; top:.7em", - '.typeset .delim1a': "font-family: 'Apple Symbols'; font-size: 125%; position:relative; top:.75em", - '.typeset .delim1b': "font-family: 'Hiragino Mincho Pro'; font-size: 133%; position:relative; top:.8em; margin: -.1em", - '.typeset .delim1c': "font-family: Symbol; font-size: 120%; position:relative; top:.8em;", - '.typeset .delim2': "font-family: Baskerville; font-size: 180%; position:relative; top:.75em", - '.typeset .delim2a': "font-family: 'Apple Symbols'; font-size: 175%; position:relative; top:.8em", - '.typeset .delim2b': "font-family: 'Hiragino Mincho Pro'; font-size: 190%; position:relative; top:.8em; margin: -.1em", - '.typeset .delim2c': "font-family: Symbol; font-size: 167%; position:relative; top:.8em;", - '.typeset .delim3': "font-family: Baskerville; font-size: 250%; position:relative; top:.725em", - '.typeset .delim3a': "font-family: 'Apple Symbols'; font-size: 240%; position:relative; top:.78em", - '.typeset .delim3b': "font-family: 'Hiragino Mincho Pro'; font-size: 250%; position:relative; top:.8em; margin: -.1em", - '.typeset .delim3c': "font-family: symbol; font-size: 240%; position:relative; top:.775em;", - '.typeset .delim4': "font-family: Baskerville; font-size: 325%; position:relative; top:.7em", - '.typeset .delim4a': "font-family: 'Apple Symbols'; font-size: 310%; position:relative; top:.75em", - '.typeset .delim4b': "font-family: 'Hiragino Mincho Pro'; font-size: 325%; position:relative; top:.8em; margin: -.1em", - '.typeset .delim4c': "font-family: Symbol; font-size: 300%; position:relative; top:.8em;", - '.typeset .vertical': "font-family: Copperplate", - '.typeset .vertical1': "font-family: Copperplate; font-size: 85%; margin: .15em;", - '.typeset .vertical2': "font-family: Copperplate; font-size: 85%; margin: .17em;", - '.typeset .greek': "font-family: 'Hiragino Mincho Pro', serif; margin-left:-.2em; margin-right:-.2em;", - '.typeset .igreek': "font-family: 'Hiragino Mincho Pro', serif; font-style:italic; margin-left:-.2em; margin-right:-.1em", - '.typeset .bgreek': "font-family: 'Hiragino Mincho Pro', serif; font-weight:bold", - '.typeset .bigop1': "font-family: 'Hiragino Mincho Pro'; font-size: 133%; position: relative; top: .7em; margin:-.05em", - '.typeset .bigop1a': "font-family: Baskerville; font-size: 100%; position: relative; top: .775em;", - '.typeset .bigop1b': "font-family: 'Hiragino Mincho Pro'; font-size: 160%; position: relative; top: .67em; margin:-.1em", - '.typeset .bigop1c': "font-family: 'Apple Symbols'; font-size: 125%; position: relative; top: .75em; margin:-.1em;", - '.typeset .bigop2': "font-family: 'Hiragino Mincho Pro'; font-size: 200%; position: relative; top: .6em; margin:-.07em", - '.typeset .bigop2a': "font-family: Baskerville; font-size: 175%; position: relative; top: .67em;", - '.typeset .bigop2b': "font-family: 'Hiragino Mincho Pro'; font-size: 270%; position: relative; top: .62em; margin:-.1em", - '.typeset .bigop2c': "font-family: 'Apple Symbols'; font-size: 250%; position: relative; top: .7em; margin:-.17em;", - '.typeset .wide1': "font-size: 67%; position: relative; top:-.8em", - '.typeset .wide2': "font-size: 110%; position: relative; top:-.5em", - '.typeset .wide3': "font-size: 175%; position: relative; top:-.32em", - '.typeset .wide1a': "font-size: 75%; position: relative; top:-.5em", - '.typeset .wide2a': "font-size: 133%; position: relative; top: -.15em", - '.typeset .wide3a': "font-size: 200%; position: relative; top: -.05em", - '.typeset .root': "font-family: Baskerville;", - '.typeset .accent': "position: relative; top: .02em", - '.typeset .iaccent': "position: relative; top: .02em; font-style:italic", - '.typeset .baccent': "position: relative; top: .02em; font-weight:bold" -}); - -// -// Adjust for OmniWeb -// -if (jsMath.browser == 'OmniWeb') { - jsMath.Update.TeXfonts({ - cmsy10: { - '55': {c: '˫'}, - '104': {c: ''}, - '105': {c: ''} - } - }); - - jsMath.Setup.Styles({ - '.typeset .arrow2': 'font-family: Symbol; font-size: 100%; position: relative; top: -.1em; margin:-1px' - }); - -} - -// -// Adjust for Opera -// -if (jsMath.browser == 'Opera') { - jsMath.Setup.Styles({ - '.typeset .bigop1c': "margin:0pt .12em 0pt 0pt;", - '.typeset .bigop2c': "margin:0pt .12em 0pt 0pt;" - }); -} - -if (jsMath.browser == 'Mozilla') {jsMath.Setup.Script('jsMath-fallback-mac-mozilla.js')} -if (jsMath.browser == 'MSIE') {jsMath.Setup.Script('jsMath-fallback-mac-msie.js')} - - -/* - * No access to TeX "not" character, so fake this - */ -jsMath.Macro('not','\\mathrel{\\rlap{\\kern 4mu/}}'); - -jsMath.Box.defaultH = 0.8; - diff --git a/literature/static/jsMath/uncompressed/jsMath-fallback-pc.js b/literature/static/jsMath/uncompressed/jsMath-fallback-pc.js deleted file mode 100644 index f7fb8ba0f..000000000 --- a/literature/static/jsMath/uncompressed/jsMath-fallback-pc.js +++ /dev/null @@ -1,971 +0,0 @@ -/* - * jsMath-fallback-pc.js - * - * Part of the jsMath package for mathematics on the web. - * - * This file makes changes needed for when the TeX fonts are not available - * with a browser on the PC. - * - * --------------------------------------------------------------------- - * - * Copyright 2004-2010 by Davide P. Cervone - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - -/******************************************************************** - * - * Here we replace the TeX character mappings by equivalent unicode - * points when possible, and adjust the character dimensions - * based on the fonts we hope we get them from (the styles are set - * to try to use the best characters available in the standard - * fonts). - */ - -jsMath.Add(jsMath.TeX,{ - - cmr10: [ - // 00 - 0F - {c: 'Γ', tclass: 'greek'}, - {c: 'Δ', tclass: 'greek'}, - {c: 'Θ', tclass: 'greek'}, - {c: 'Λ', tclass: 'greek'}, - {c: 'Ξ', tclass: 'greek'}, - {c: 'Π', tclass: 'greek'}, - {c: 'Σ', tclass: 'greek'}, - {c: 'Υ', tclass: 'greek'}, - {c: 'Φ', tclass: 'greek'}, - {c: 'Ψ', tclass: 'greek'}, - {c: 'Ω', tclass: 'greek'}, - {c: 'ff', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 14, '108': 15}, tclass: 'normal'}, - {c: 'fi', tclass: 'normal'}, - {c: 'fl', tclass: 'normal'}, - {c: 'ffi', tclass: 'normal'}, - {c: 'ffl', tclass: 'normal'}, - // 10 - 1F - {c: 'ı', a:0, tclass: 'normal'}, - {c: 'j', d:.2, tclass: 'normal'}, - {c: 'ˋ', tclass: 'accent'}, - {c: 'ˊ', tclass: 'accent'}, - {c: 'ˇ', tclass: 'accent'}, - {c: '˘', tclass: 'accent'}, - {c: 'ˉ', tclass: 'accent'}, - {c: '˚', tclass: 'accent'}, - {c: '̧', tclass: 'normal'}, - {c: 'ß', tclass: 'normal'}, - {c: 'æ', a:0, tclass: 'normal'}, - {c: 'œ', a:0, tclass: 'normal'}, - {c: 'ø', tclass: 'normal'}, - {c: 'Æ', tclass: 'normal'}, - {c: 'Œ', tclass: 'normal'}, - {c: 'Ø', tclass: 'normal'}, - // 20 - 2F - {c: '?', krn: {'108': -0.278, '76': -0.319}, tclass: 'normal'}, - {c: '!', lig: {'96': 60}, tclass: 'normal'}, - {c: '”', tclass: 'normal'}, - {c: '#', tclass: 'normal'}, - {c: '$', tclass: 'normal'}, - {c: '%', tclass: 'normal'}, - {c: '&', tclass: 'normal'}, - {c: '’', krn: {'63': 0.111, '33': 0.111}, lig: {'39': 34}, tclass: 'normal'}, - {c: '(', d:.2, tclass: 'normal'}, - {c: ')', d:.2, tclass: 'normal'}, - {c: '*', tclass: 'normal'}, - {c: '+', a:.1, tclass: 'normal'}, - {c: ',', a:-.3, d:.2, w: 0.278, tclass: 'normal'}, - {c: '-', a:0, lig: {'45': 123}, tclass: 'normal'}, - {c: '.', a:-.25, tclass: 'normal'}, - {c: '/', tclass: 'normal'}, - // 30 - 3F - {c: '0', tclass: 'normal'}, - {c: '1', tclass: 'normal'}, - {c: '2', tclass: 'normal'}, - {c: '3', tclass: 'normal'}, - {c: '4', tclass: 'normal'}, - {c: '5', tclass: 'normal'}, - {c: '6', tclass: 'normal'}, - {c: '7', tclass: 'normal'}, - {c: '8', tclass: 'normal'}, - {c: '9', tclass: 'normal'}, - {c: ':', tclass: 'normal'}, - {c: ';', tclass: 'normal'}, - {c: '¡', tclass: 'normal'}, - {c: '=', a:0, d:-.1, tclass: 'normal'}, - {c: '¿', tclass: 'normal'}, - {c: '?', lig: {'96': 62}, tclass: 'normal'}, - // 40 - 4F - {c: '@', tclass: 'normal'}, - {c: 'A', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'normal'}, - {c: 'B', tclass: 'normal'}, - {c: 'C', tclass: 'normal'}, - {c: 'D', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}, tclass: 'normal'}, - {c: 'E', tclass: 'normal'}, - {c: 'F', krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, - {c: 'G', tclass: 'normal'}, - {c: 'H', tclass: 'normal'}, - {c: 'I', krn: {'73': 0.0278}, tclass: 'normal'}, - {c: 'J', tclass: 'normal'}, - {c: 'K', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, - {c: 'L', krn: {'84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'normal'}, - {c: 'M', tclass: 'normal'}, - {c: 'N', tclass: 'normal'}, - {c: 'O', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}, tclass: 'normal'}, - // 50 - 5F - {c: 'P', krn: {'65': -0.0833, '111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}, tclass: 'normal'}, - {c: 'Q', d:.2, tclass: 'normal'}, - {c: 'R', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'normal'}, - {c: 'S', tclass: 'normal'}, - {c: 'T', krn: {'121': -0.0278, '101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}, tclass: 'normal'}, - {c: 'U', tclass: 'normal'}, - {c: 'V', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, - {c: 'W', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, - {c: 'X', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, - {c: 'Y', ic: 0.025, krn: {'101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}, tclass: 'normal'}, - {c: 'Z', tclass: 'normal'}, - {c: '[', d:.1, tclass: 'normal'}, - {c: '“', tclass: 'normal'}, - {c: ']', d:.1, tclass: 'normal'}, - {c: 'ˆ', tclass: 'accent'}, - {c: '˙', tclass: 'accent'}, - // 60 - 6F - {c: '‘', lig: {'96': 92}, tclass: 'normal'}, - {c: 'a', a:0, krn: {'118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'normal'}, - {c: 'b', krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'normal'}, - {c: 'c', a:0, krn: {'104': -0.0278, '107': -0.0278}, tclass: 'normal'}, - {c: 'd', tclass: 'normal'}, - {c: 'e', a:0, tclass: 'normal'}, - {c: 'f', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 12, '102': 11, '108': 13}, tclass: 'normal'}, - {c: 'g', a:0, d:.2, ic: 0.0139, krn: {'106': 0.0278}, tclass: 'normal'}, - {c: 'h', krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'normal'}, - {c: 'i', tclass: 'normal'}, - {c: 'j', d:.2, tclass: 'normal'}, - {c: 'k', krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'normal'}, - {c: 'l', tclass: 'normal'}, - {c: 'm', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'normal'}, - {c: 'n', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'normal'}, - {c: 'o', a:0, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'normal'}, - // 70 - 7F - {c: 'p', a:0, d:.2, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'normal'}, - {c: 'q', a:0, d:.2, tclass: 'normal'}, - {c: 'r', a:0, tclass: 'normal'}, - {c: 's', a:0, tclass: 'normal'}, - {c: 't', krn: {'121': -0.0278, '119': -0.0278}, tclass: 'normal'}, - {c: 'u', a:0, krn: {'119': -0.0278}, tclass: 'normal'}, - {c: 'v', a:0, ic: 0.0139, krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'normal'}, - {c: 'w', a:0, ic: 0.0139, krn: {'101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'normal'}, - {c: 'x', a:0, tclass: 'normal'}, - {c: 'y', a:0, d:.2, ic: 0.0139, krn: {'111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}, tclass: 'normal'}, - {c: 'z', a:0, tclass: 'normal'}, - {c: '–', a:.1, ic: 0.0278, lig: {'45': 124}, tclass: 'normal'}, - {c: '—', a:.1, ic: 0.0278, tclass: 'normal'}, - {c: '˝', tclass: 'accent'}, - {c: '˜', tclass: 'accent'}, - {c: '¨', tclass: 'accent'} - ], - - cmmi10: [ - // 00 - 0F - {c: 'Γ', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}, tclass: 'igreek'}, - {c: 'Δ', krn: {'127': 0.167}, tclass: 'igreek'}, - {c: 'Θ', ic: 0.0278, krn: {'127': 0.0833}, tclass: 'igreek'}, - {c: 'Λ', krn: {'127': 0.167}, tclass: 'igreek'}, - {c: 'Ξ', ic: 0.0757, krn: {'127': 0.0833}, tclass: 'igreek'}, - {c: 'Π', ic: 0.0812, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'igreek'}, - {c: 'Σ', ic: 0.0576, krn: {'127': 0.0833}, tclass: 'igreek'}, - {c: 'Υ', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0556}, tclass: 'igreek'}, - {c: 'Φ', krn: {'127': 0.0833}, tclass: 'igreek'}, - {c: 'Ψ', ic: 0.11, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'igreek'}, - {c: 'Ω', ic: 0.0502, krn: {'127': 0.0833}, tclass: 'igreek'}, - {c: 'α', a:0, ic: 0.0037, krn: {'127': 0.0278}, tclass: 'greek'}, - {c: 'β', d:.2, ic: 0.0528, krn: {'127': 0.0833}, tclass: 'greek'}, - {c: 'γ', a:0, d:.2, ic: 0.0556, tclass: 'greek'}, - {c: 'δ', ic: 0.0378, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'greek'}, - {c: 'ε', a:0, krn: {'127': 0.0556}, tclass: 'lucida'}, - // 10 - 1F - {c: 'ζ', d:.2, ic: 0.0738, krn: {'127': 0.0833}, tclass: 'greek'}, - {c: 'η', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0556}, tclass: 'greek'}, - {c: 'θ', ic: 0.0278, krn: {'127': 0.0833}, tclass: 'greek'}, - {c: 'ι', a:0, krn: {'127': 0.0556}, tclass: 'greek'}, - {c: 'κ', a:0, tclass: 'greek'}, - {c: 'λ', tclass: 'greek'}, - {c: 'μ', a:0, d:.2, krn: {'127': 0.0278}, tclass: 'greek'}, - {c: 'ν', a:0, ic: 0.0637, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0278}, tclass: 'greek'}, - {c: 'ξ', d:.2, ic: 0.046, krn: {'127': 0.111}, tclass: 'greek'}, - {c: 'π', a:0, ic: 0.0359, tclass: 'greek'}, - {c: 'ρ', a:0, d:.2, krn: {'127': 0.0833}, tclass: 'greek'}, - {c: 'σ', a:0, ic: 0.0359, krn: {'59': -0.0556, '58': -0.0556}, tclass: 'greek'}, - {c: 'τ', a:0, ic: 0.113, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0278}, tclass: 'greek'}, - {c: 'υ', a:0, ic: 0.0359, krn: {'127': 0.0278}, tclass: 'greek'}, - {c: 'φ', a:.1, d:.2, krn: {'127': 0.0833}, tclass: 'greek'}, - {c: 'χ', a:0, d:.2, krn: {'127': 0.0556}, tclass: 'greek'}, - // 20 - 2F - {c: 'ψ', a:.1, d:.2, ic: 0.0359, krn: {'127': 0.111}, tclass: 'greek'}, - {c: 'ω', a:0, ic: 0.0359, tclass: 'greek'}, - {c: 'ε', a:0, krn: {'127': 0.0833}, tclass: 'greek'}, - {c: 'ϑ', krn: {'127': 0.0833}, tclass: 'lucida'}, - {c: 'ϖ', a:0, ic: 0.0278, tclass: 'lucida'}, - {c: 'ϱ', a:0, d:.2, krn: {'127': 0.0833}, tclass: 'lucida'}, - {c: 'ς', a:0, d:.2, ic: 0.0799, krn: {'127': 0.0833}, tclass: 'lucida'}, - {c: 'ϕ', a:.1, d:.2, krn: {'127': 0.0833}, tclass: 'lucida'}, - {c: '↼', a:0, d:-.2, tclass: 'arrows'}, - {c: '↽', a:0, d:-.1, tclass: 'arrows'}, - {c: '⇀', a:0, d:-.2, tclass: 'arrows'}, - {c: '⇁', a:0, d:-.1, tclass: 'arrows'}, - {c: '˓', a:.1, tclass: 'symbol'}, - {c: '˒', a:.1, tclass: 'symbol'}, - {c: '▹', tclass: 'symbol'}, - {c: '◃', tclass: 'symbol'}, - // 30 - 3F - {c: '0', tclass: 'normal'}, - {c: '1', tclass: 'normal'}, - {c: '2', tclass: 'normal'}, - {c: '3', tclass: 'normal'}, - {c: '4', tclass: 'normal'}, - {c: '5', tclass: 'normal'}, - {c: '6', tclass: 'normal'}, - {c: '7', tclass: 'normal'}, - {c: '8', tclass: 'normal'}, - {c: '9', tclass: 'normal'}, - {c: '.', a:-.3, tclass: 'normal'}, - {c: ',', a:-.3, d:.2, tclass: 'normal'}, - {c: '<', a:.1, tclass: 'normal'}, - {c: '/', d:.1, krn: {'1': -0.0556, '65': -0.0556, '77': -0.0556, '78': -0.0556, '89': 0.0556, '90': -0.0556}, tclass: 'normal'}, - {c: '>', a:.1, tclass: 'normal'}, - {c: '⋆', a:0, tclass: 'arial'}, - // 40 - 4F - {c: '∂', ic: 0.0556, krn: {'127': 0.0833}, tclass: 'normal'}, - {c: 'A', krn: {'127': 0.139}, tclass: 'italic'}, - {c: 'B', ic: 0.0502, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'C', ic: 0.0715, krn: {'61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, - {c: 'D', ic: 0.0278, krn: {'127': 0.0556}, tclass: 'italic'}, - {c: 'E', ic: 0.0576, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'F', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}, tclass: 'italic'}, - {c: 'G', krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'H', ic: 0.0812, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'italic'}, - {c: 'I', ic: 0.0785, krn: {'127': 0.111}, tclass: 'italic'}, - {c: 'J', ic: 0.0962, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.167}, tclass: 'italic'}, - {c: 'K', ic: 0.0715, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'italic'}, - {c: 'L', krn: {'127': 0.0278}, tclass: 'italic'}, - {c: 'M', ic: 0.109, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, - {c: 'N', ic: 0.109, krn: {'61': -0.0833, '61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, - {c: 'O', ic: 0.0278, krn: {'127': 0.0833}, tclass: 'italic'}, - // 50 - 5F - {c: 'P', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}, tclass: 'italic'}, - {c: 'Q', d:.2, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'R', ic: 0.00773, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'S', ic: 0.0576, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, - {c: 'T', ic: 0.139, krn: {'61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, - {c: 'U', ic: 0.109, krn: {'59': -0.111, '58': -0.111, '61': -0.0556, '127': 0.0278}, tclass: 'italic'}, - {c: 'V', ic: 0.222, krn: {'59': -0.167, '58': -0.167, '61': -0.111}, tclass: 'italic'}, - {c: 'W', ic: 0.139, krn: {'59': -0.167, '58': -0.167, '61': -0.111}, tclass: 'italic'}, - {c: 'X', ic: 0.0785, krn: {'61': -0.0833, '61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, - {c: 'Y', ic: 0.222, krn: {'59': -0.167, '58': -0.167, '61': -0.111}, tclass: 'italic'}, - {c: 'Z', ic: 0.0715, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, - {c: '♭', tclass: 'symbol'}, - {c: '♮', tclass: 'symbol'}, - {c: '♯', tclass: 'symbol'}, - {c: '', a:0, d:-.1, tclass: 'arial'}, - {c: '', a:0, d:-.1, tclass: 'arial'}, - // 60 - 6F - {c: 'ℓ', krn: {'127': 0.111}, tclass: 'italic'}, - {c: 'a', a:0, tclass: 'italic'}, - {c: 'b', tclass: 'italic'}, - {c: 'c', a:0, krn: {'127': 0.0556}, tclass: 'italic'}, - {c: 'd', krn: {'89': 0.0556, '90': -0.0556, '106': -0.111, '102': -0.167, '127': 0.167}, tclass: 'italic'}, - {c: 'e', a:0, krn: {'127': 0.0556}, tclass: 'italic'}, - {c: 'f', d:.2, ic: 0.108, krn: {'59': -0.0556, '58': -0.0556, '127': 0.167}, tclass: 'italic'}, - {c: 'g', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0278}, tclass: 'italic'}, - {c: 'h', krn: {'127': -0.0278}, tclass: 'italic'}, - {c: 'i', tclass: 'italic'}, - {c: 'j', d:.2, ic: 0.0572, krn: {'59': -0.0556, '58': -0.0556}, tclass: 'italic'}, - {c: 'k', ic: 0.0315, tclass: 'italic'}, - {c: 'l', ic: 0.0197, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'm', a:0, tclass: 'italic'}, - {c: 'n', a:0, tclass: 'italic'}, - {c: 'o', a:0, krn: {'127': 0.0556}, tclass: 'italic'}, - // 70 - 7F - {c: 'p', a:0, d:.2, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'q', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'r', a:0, ic: 0.0278, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'italic'}, - {c: 's', a:0, krn: {'127': 0.0556}, tclass: 'italic'}, - {c: 't', krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'u', a:0, krn: {'127': 0.0278}, tclass: 'italic'}, - {c: 'v', a:0, ic: 0.0359, krn: {'127': 0.0278}, tclass: 'italic'}, - {c: 'w', a:0, ic: 0.0269, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'x', a:0, krn: {'127': 0.0278}, tclass: 'italic'}, - {c: 'y', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0556}, tclass: 'italic'}, - {c: 'z', a:0, ic: 0.044, krn: {'127': 0.0556}, tclass: 'italic'}, - {c: 'ı', a:0, krn: {'127': 0.0278}, tclass: 'italic'}, - {c: 'j', d:.2, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: '℘', a:0, d:.2, krn: {'127': 0.111}, tclass: 'arial'}, - {c: '', ic: 0.154, tclass: 'symbol'}, - {c: '̑', ic: 0.399, tclass: 'normal'} - ], - - cmsy10: [ - // 00 - 0F - {c: '', a:.1, tclass: 'symbol'}, - {c: '·', a:0, d:-.2, tclass: 'normal'}, - {c: '×', a:0, tclass: 'normal'}, - {c: '*', a:0, tclass: 'normal'}, - {c: '÷', a:0, tclass: 'normal'}, - {c: '◊', tclass: 'symbol'}, - {c: '±', a:.1, tclass: 'normal'}, - {c: '∓', tclass: 'symbol'}, - {c: '⊕', tclass: 'symbol'}, - {c: '⊖', tclass: 'symbol'}, - {c: '⊗', tclass: 'symbol'}, - {c: '⊘', tclass: 'symbol'}, - {c: '⊙', tclass: 'symbol'}, - {c: '◯', tclass: 'arial'}, - {c: '∘', a:0, d:-.1, tclass: 'symbol2'}, - {c: '•', a:0, d:-.2, tclass: 'symbol'}, - // 10 - 1F - {c: '≍', a:.1, tclass: 'symbol2'}, - {c: '≡', a:.1, tclass: 'symbol2'}, - {c: '⊆', tclass: 'symbol'}, - {c: '⊇', tclass: 'symbol'}, - {c: '≤', tclass: 'symbol'}, - {c: '≥', tclass: 'symbol'}, - {c: '≼', tclass: 'symbol'}, - {c: '≽', tclass: 'symbol'}, - {c: '~', a:0, d: -.2, tclass: 'normal'}, - {c: '≈', a:.1, d:-.1, tclass: 'symbol'}, - {c: '⊂', tclass: 'symbol'}, - {c: '⊃', tclass: 'symbol'}, - {c: '≪', tclass: 'symbol'}, - {c: '≫', tclass: 'symbol'}, - {c: '≺', tclass: 'symbol'}, - {c: '≻', tclass: 'symbol'}, - // 20 - 2F - {c: '←', a:-.1, tclass: 'arrow1'}, - {c: '→', a:-.1, tclass: 'arrow1'}, - {c: '↑', a:.2, d:0, tclass: 'arrow1a'}, - {c: '↓', a:.2, d:0, tclass: 'arrow1a'}, - {c: '↔', a:-.1, tclass: 'arrow1'}, - {c: '↗', a:.1, tclass: 'arrows'}, - {c: '↘', a:.1, tclass: 'arrows'}, - {c: '≃', a: .1, tclass: 'symbol2'}, - {c: '⇐', a:-.1, tclass: 'arrow2'}, - {c: '⇒', a:-.1, tclass: 'arrow2'}, - {c: '⇑', a:.2, d:.1, tclass: 'arrow1a'}, - {c: '⇓', a:.2, d:.1, tclass: 'arrow1a'}, - {c: '⇔', a:-.1, tclass: 'arrow2'}, - {c: '↖', a:.1, tclass: 'arrows'}, - {c: '↙', a:.1, tclass: 'arrows'}, - {c: '∝', a:.1, tclass: 'normal'}, - // 30 - 3F - {c: '', a: 0, tclass: 'lucida'}, - {c: '∞', a:.1, tclass: 'symbol'}, - {c: '∈', tclass: 'symbol'}, - {c: '∋', tclass: 'symbol'}, - {c: '', tclass: 'symbol'}, - {c: '', tclass: 'symbol'}, - {c: '/', d:.2, tclass: 'normal'}, - {c: '', tclass: 'symbol'}, - {c: '∀', tclass: 'symbol'}, - {c: '∃', tclass: 'symbol'}, - {c: '¬', a:0, d:-.1, tclass: 'symbol'}, - {c: '∅', tclass: 'symbol'}, - {c: 'ℜ', tclass: 'symbol'}, - {c: 'ℑ', tclass: 'symbol'}, - {c: '⊤', tclass: 'symbol'}, - {c: '⊥', tclass: 'symbol'}, - // 40 - 4F - {c: 'ℵ', tclass: 'symbol'}, - {c: 'A', krn: {'48': 0.194}, tclass: 'cal'}, - {c: 'B', ic: 0.0304, krn: {'48': 0.139}, tclass: 'cal'}, - {c: 'C', ic: 0.0583, krn: {'48': 0.139}, tclass: 'cal'}, - {c: 'D', ic: 0.0278, krn: {'48': 0.0833}, tclass: 'cal'}, - {c: 'E', ic: 0.0894, krn: {'48': 0.111}, tclass: 'cal'}, - {c: 'F', ic: 0.0993, krn: {'48': 0.111}, tclass: 'cal'}, - {c: 'G', d:.2, ic: 0.0593, krn: {'48': 0.111}, tclass: 'cal'}, - {c: 'H', ic: 0.00965, krn: {'48': 0.111}, tclass: 'cal'}, - {c: 'I', ic: 0.0738, krn: {'48': 0.0278}, tclass: 'cal'}, - {c: 'J', d:.2, ic: 0.185, krn: {'48': 0.167}, tclass: 'cal'}, - {c: 'K', ic: 0.0144, krn: {'48': 0.0556}, tclass: 'cal'}, - {c: 'L', krn: {'48': 0.139}, tclass: 'cal'}, - {c: 'M', krn: {'48': 0.139}, tclass: 'cal'}, - {c: 'N', ic: 0.147, krn: {'48': 0.0833}, tclass: 'cal'}, - {c: 'O', ic: 0.0278, krn: {'48': 0.111}, tclass: 'cal'}, - // 50 - 5F - {c: 'P', ic: 0.0822, krn: {'48': 0.0833}, tclass: 'cal'}, - {c: 'Q', d:.2, krn: {'48': 0.111}, tclass: 'cal'}, - {c: 'R', krn: {'48': 0.0833}, tclass: 'cal'}, - {c: 'S', ic: 0.075, krn: {'48': 0.139}, tclass: 'cal'}, - {c: 'T', ic: 0.254, krn: {'48': 0.0278}, tclass: 'cal'}, - {c: 'U', ic: 0.0993, krn: {'48': 0.0833}, tclass: 'cal'}, - {c: 'V', ic: 0.0822, krn: {'48': 0.0278}, tclass: 'cal'}, - {c: 'W', ic: 0.0822, krn: {'48': 0.0833}, tclass: 'cal'}, - {c: 'X', ic: 0.146, krn: {'48': 0.139}, tclass: 'cal'}, - {c: 'Y', ic: 0.0822, krn: {'48': 0.0833}, tclass: 'cal'}, - {c: 'Z', ic: 0.0794, krn: {'48': 0.139}, tclass: 'cal'}, - {c: '⋃', tclass: 'symbol'}, - {c: '⋂', tclass: 'symbol'}, - {c: '⊎', tclass: 'symbol'}, - {c: '⋀', tclass: 'symbol'}, - {c: '⋁', tclass: 'symbol'}, - // 60 - 6F - {c: '⊢', tclass: 'symbol'}, - {c: '⊣', tclass: 'symbol'}, - {c: '⌊', a:.3, d:.2, tclass: 'lucida'}, - {c: '⌋', a:.3, d:.2, tclass: 'lucida'}, - {c: '⌈', a:.3, d:.2, tclass: 'lucida'}, - {c: '⌉', a:.3, d:.2, tclass: 'lucida'}, - {c: '{', d:.2, tclass: 'normal'}, - {c: '}', d:.2, tclass: 'normal'}, - {c: '〈', a:.3, d:.2, tclass: 'symbol'}, - {c: '〉', a:.3, d:.2, tclass: 'symbol'}, - {c: '∣', d:.1, tclass: 'symbol'}, - {c: '∥', d:.1, tclass: 'symbol'}, - {c: '↕', a:.2, d:0, tclass: 'arrow1a'}, - {c: '⇕', a:.3, d:0, tclass: 'arrow1a'}, - {c: '∖', a:.3, d:.1, tclass: 'symbol'}, - {c: '≀', tclass: 'symbol'}, - // 70 - 7F - {c: '', h:.04, d:.8, tclass: 'symbol'}, - {c: '∐', a:.4, tclass: 'symbol'}, - {c: '∇', tclass: 'symbol'}, - {c: '', a:.4, d:.1, ic: 0.111, tclass: 'lucida'}, - {c: '⊔', tclass: 'symbol'}, - {c: '⊓', tclass: 'symbol'}, - {c: '⊑', tclass: 'symbol'}, - {c: '⊒', tclass: 'symbol'}, - {c: '§', d:.1, tclass: 'normal'}, - {c: '†', d:.1, tclass: 'normal'}, - {c: '‡', d:.1, tclass: 'normal'}, - {c: '¶', a:.3, d:.1, tclass: 'lucida'}, - {c: '♣', tclass: 'arial'}, - {c: '♢', tclass: 'arial'}, - {c: '♡', tclass: 'arial'}, - {c: '♠', tclass: 'arial'} - ], - - cmex10: [ - // 00 - 0F - {c: '(', h: 0.04, d: 1.16, n: 16, tclass: 'delim1'}, - {c: ')', h: 0.04, d: 1.16, n: 17, tclass: 'delim1'}, - {c: '[', h: 0.04, d: 1.16, n: 104, tclass: 'delim1'}, - {c: ']', h: 0.04, d: 1.16, n: 105, tclass: 'delim1'}, - {c: '⌊', h: 0.04, d: 1.16, n: 106, tclass: 'delim1a'}, - {c: '⌋', h: 0.04, d: 1.16, n: 107, tclass: 'delim1a'}, - {c: '⌈', h: 0.04, d: 1.16, n: 108, tclass: 'delim1a'}, - {c: '⌉', h: 0.04, d: 1.16, n: 109, tclass: 'delim1a'}, - {c: '{', h: 0.04, d: 1.16, n: 110, tclass: 'delim1'}, - {c: '}', h: 0.04, d: 1.16, n: 111, tclass: 'delim1'}, - {c: '〈', h: 0.04, d: 1.16, n: 68, tclass: 'delim1b'}, - {c: '〉', h: 0.04, d: 1.16, n: 69, tclass: 'delim1b'}, - {c: '∣', h:.7, d:.1, delim: {rep: 12}, tclass: 'symbol'}, - {c: '∥', h:.7, d:.1, delim: {rep: 13}, tclass: 'symbol'}, - {c: '/', h: 0.04, d: 1.16, n: 46, tclass: 'delim1a'}, - {c: '∖', h: 0.04, d: 1.16, n: 47, tclass: 'delim1a'}, - // 10 - 1F - {c: '(', h: 0.04, d: 1.76, n: 18, tclass: 'delim2'}, - {c: ')', h: 0.04, d: 1.76, n: 19, tclass: 'delim2'}, - {c: '(', h: 0.04, d: 2.36, n: 32, tclass: 'delim3'}, - {c: ')', h: 0.04, d: 2.36, n: 33, tclass: 'delim3'}, - {c: '[', h: 0.04, d: 2.36, n: 34, tclass: 'delim3'}, - {c: ']', h: 0.04, d: 2.36, n: 35, tclass: 'delim3'}, - {c: '⌊', h: 0.04, d: 2.36, n: 36, tclass: 'delim3a'}, - {c: '⌋', h: 0.04, d: 2.36, n: 37, tclass: 'delim3a'}, - {c: '⌈', h: 0.04, d: 2.36, n: 38, tclass: 'delim3a'}, - {c: '⌉', h: 0.04, d: 2.36, n: 39, tclass: 'delim3a'}, - {c: '{', h: 0.04, d: 2.36, n: 40, tclass: 'delim3'}, - {c: '}', h: 0.04, d: 2.36, n: 41, tclass: 'delim3'}, - {c: '〈', h: 0.04, d: 2.36, n: 42, tclass: 'delim3b'}, - {c: '〉', h: 0.04, d: 2.36, n: 43, tclass: 'delim3b'}, - {c: '/', h: 0.04, d: 2.36, n: 44, tclass: 'delim3a'}, - {c: '∖', h: 0.04, d: 2.36, n: 45, tclass: 'delim3a'}, - // 20 - 2F - {c: '(', h: 0.04, d: 2.96, n: 48, tclass: 'delim4'}, - {c: ')', h: 0.04, d: 2.96, n: 49, tclass: 'delim4'}, - {c: '[', h: 0.04, d: 2.96, n: 50, tclass: 'delim4'}, - {c: ']', h: 0.04, d: 2.96, n: 51, tclass: 'delim4'}, - {c: '⌊', h: 0.04, d: 2.96, n: 52, tclass: 'delim4a'}, - {c: '⌋', h: 0.04, d: 2.96, n: 53, tclass: 'delim4a'}, - {c: '⌈', h: 0.04, d: 2.96, n: 54, tclass: 'delim4a'}, - {c: '⌉', h: 0.04, d: 2.96, n: 55, tclass: 'delim4a'}, - {c: '{', h: 0.04, d: 2.96, n: 56, tclass: 'delim4'}, - {c: '}', h: 0.04, d: 2.96, n: 57, tclass: 'delim4'}, - {c: '〈', h: 0.04, d: 2.96, tclass: 'delim4b'}, - {c: '〉', h: 0.04, d: 2.96, tclass: 'delim4b'}, - {c: '/', h: 0.04, d: 2.96, tclass: 'delim4a'}, - {c: '∖', h: 0.04, d: 2.96, tclass: 'delim4a'}, - {c: '/', h: 0.04, d: 1.76, n: 30, tclass: 'delim2a'}, - {c: '∖', h: 0.04, d: 1.76, n: 31, tclass: 'delim2a'}, - // 30 - 3F - {c: 'æ', h: 1, delim: {top: 48, bot: 64, rep: 66}, tclass: 'delimx'}, - {c: 'ö', h: 1, delim: {top: 49, bot: 65, rep: 67}, tclass: 'delimx'}, - {c: 'é', h: 1, delim: {top: 50, bot: 52, rep: 54}, tclass: 'delimx'}, - {c: 'ù', h: 1, delim: {top: 51, bot: 53, rep: 55}, tclass: 'delimx'}, - {c: 'ë', h: 1, delim: {bot: 52, rep: 54}, tclass: 'delimx'}, - {c: 'û', h: 1, delim: {bot: 53, rep: 55}, tclass: 'delimx'}, - {c: 'ê', h: 1, delim: {top: 50, rep: 54}, tclass: 'delimx'}, - {c: 'ú', h: 1, delim: {top: 51, rep: 55}, tclass: 'delimx'}, - {c: 'ì', h: 1, delim: {top: 56, mid: 60, bot: 58, rep: 62}, tclass: 'delimx'}, - {c: 'ü', h: 1, delim: {top: 57, mid: 61, bot: 59, rep: 62}, tclass: 'delimx'}, - {c: 'î', h: 1, delim: {top: 56, bot: 58, rep: 62}, tclass: 'delimx'}, - {c: 'þ', h: 1, delim: {top: 57, bot: 59, rep: 62}, tclass: 'delimx'}, - {c: 'í', h: 1, delim: {rep: 63}, tclass: 'delimx'}, - {c: 'ý', h: 1, delim: {rep: 119}, tclass: 'delimx'}, - {c: 'ï', h: 1, delim: {rep: 62}, tclass: 'delimx'}, - {c: '|', delim: {top: 120, bot: 121, rep: 63}, tclass: 'normal'}, - // 40 - 4F - {c: 'è', h: 1, delim: {top: 56, bot: 59, rep: 62}, tclass: 'delimx'}, - {c: 'ø', h: 1, delim: {top: 57, bot: 58, rep: 62}, tclass: 'delimx'}, - {c: 'ç', h: 1, delim: {rep: 66}, tclass: 'delimx'}, - {c: '÷', h: 1, delim: {rep: 67}, tclass: 'delimx'}, - {c: '〈', h: 0.04, d: 1.76, n: 28, tclass: 'delim2b'}, - {c: '〉', h: 0.04, d: 1.76, n: 29, tclass: 'delim2b'}, - {c: '⊔', h: 0, d: 1, n: 71, tclass: 'bigop1'}, - {c: '⊔', h: 0.1, d: 1.5, tclass: 'bigop2'}, - {c: '∮', h: 0, d: 1.11, ic: 0.095, n: 73, tclass: 'bigop1c'}, - {c: '∮', h: 0, d: 2.22, ic: 0.222, tclass: 'bigop2c'}, - {c: '⊙', h: 0, d: 1, n: 75, tclass: 'bigop1'}, - {c: '⊙', h: 0.1, d: 1.5, tclass: 'bigop2'}, - {c: '⊕', h: 0, d: 1, n: 77, tclass: 'bigop1'}, - {c: '⊕', h: 0.1, d: 1.5, tclass: 'bigop2'}, - {c: '⊗', h: 0, d: 1, n: 79, tclass: 'bigop1'}, - {c: '⊗', h: 0.1, d: 1.5, tclass: 'bigop2'}, - // 50 - 5F - {c: '∑', h: 0, d: 1, n: 88, tclass: 'bigop1a'}, - {c: '∏', h: 0, d: 1, n: 89, tclass: 'bigop1a'}, - {c: '∫', h: 0, d: 1.11, ic: 0.095, n: 90, tclass: 'bigop1c'}, - {c: '∪', h: 0, d: 1, n: 91, tclass: 'bigop1b'}, - {c: '∩', h: 0, d: 1, n: 92, tclass: 'bigop1b'}, - {c: '⊎', h: 0, d: 1, n: 93, tclass: 'bigop1b'}, - {c: '⋀', h: 0, d: 1, n: 94, tclass: 'bigop1'}, - {c: '⋁', h: 0, d: 1, n: 95, tclass: 'bigop1'}, - {c: '∑', h: 0.1, d: 1.6, tclass: 'bigop2a'}, - {c: '∏', h: 0.1, d: 1.5, tclass: 'bigop2a'}, - {c: '∫', h: 0, d: 2.22, ic: 0.222, tclass: 'bigop2c'}, - {c: '∪', h: 0.1, d: 1.5, tclass: 'bigop2b'}, - {c: '∩', h: 0.1, d: 1.5, tclass: 'bigop2b'}, - {c: '⊎', h: 0.1, d: 1.5, tclass: 'bigop2b'}, - {c: '⋀', h: 0.1, d: 1.5, tclass: 'bigop2'}, - {c: '⋁', h: 0.1, d: 1.5, tclass: 'bigop2'}, - // 60 - 6F - {c: '∐', h: 0, d: 1, n: 97, tclass: 'bigop1a'}, - {c: '∐', h: 0.1, d: 1.5, tclass: 'bigop2a'}, - {c: '︿', h: 0.8, d:0, w: .65, n: 99, tclass: 'wide1'}, - {c: '︿', h: 0.85, w: 1.1, n: 100, tclass: 'wide2'}, - {c: '︿', h: 0.99, w: 1.65, tclass: 'wide3'}, - {c: '~', h: 1, w: .5, n: 102, tclass: 'wide1a'}, - {c: '~', h: 1, w: .8, n: 103, tclass: 'wide2a'}, - {c: '~', h: 0.99, w: 1.3, tclass: 'wide3a'}, - {c: '[', h: 0.04, d: 1.76, n: 20, tclass: 'delim2'}, - {c: ']', h: 0.04, d: 1.76, n: 21, tclass: 'delim2'}, - {c: '⌈', h: 0.04, d: 1.76, n: 22, tclass: 'delim2a'}, - {c: '⌉', h: 0.04, d: 1.76, n: 23, tclass: 'delim2a'}, - {c: '⌊', h: 0.04, d: 1.76, n: 24, tclass: 'delim2a'}, - {c: '⌋', h: 0.04, d: 1.76, n: 25, tclass: 'delim2a'}, - {c: '{', h: 0.04, d: 1.76, n: 26, tclass: 'delim2'}, - {c: '}', h: 0.04, d: 1.76, n: 27, tclass: 'delim2'}, - // 70 - 7F - {c: '', h: 0.04, d: 1.16, n: 113, tclass: 'root'}, - {c: '', h: 0.04, d: 1.76, n: 114, tclass: 'root'}, - {c: '', h: 0.06, d: 2.36, n: 115, tclass: 'root'}, - {c: '', h: 0.08, d: 2.96, n: 116, tclass: 'root'}, - {c: '', h: 0.1, d: 3.75, n: 117, tclass: 'root'}, - {c: '', h: .12, d: 4.5, n: 118, tclass: 'root'}, - {c: '', h: .14, d: 5.7, tclass: 'root'}, - {c: '||', delim: {top: 126, bot: 127, rep: 119}, tclass: 'normal'}, - {c: '↑', h:.7, d:0, delim: {top: 120, rep: 63}, tclass: 'arrow1a'}, - {c: '↓', h:.7, d:0, delim: {bot: 121, rep: 63}, tclass: 'arrow1a'}, - {c: '', h: 0.05, tclass: 'symbol'}, - {c: '', h: 0.05, tclass: 'symbol'}, - {c: '', h: 0.05, tclass: 'symbol'}, - {c: '', h: 0.05, tclass: 'symbol'}, - {c: '⇑', h: .65, d:0, delim: {top: 126, rep: 119}, tclass: 'arrow1a'}, - {c: '⇓', h: .65, d:0, delim: {bot: 127, rep: 119}, tclass: 'arrow1a'} - ], - - cmti10: [ - // 00 - 0F - {c: 'Γ', ic: 0.133, tclass: 'igreek'}, - {c: 'Δ', tclass: 'igreek'}, - {c: 'Θ', ic: 0.094, tclass: 'igreek'}, - {c: 'Λ', tclass: 'igreek'}, - {c: 'Ξ', ic: 0.153, tclass: 'igreek'}, - {c: 'Π', ic: 0.164, tclass: 'igreek'}, - {c: 'Σ', ic: 0.12, tclass: 'igreek'}, - {c: 'Υ', ic: 0.111, tclass: 'igreek'}, - {c: 'Φ', ic: 0.0599, tclass: 'igreek'}, - {c: 'Ψ', ic: 0.111, tclass: 'igreek'}, - {c: 'Ω', ic: 0.103, tclass: 'igreek'}, - {c: 'ff', ic: 0.212, krn: {'39': 0.104, '63': 0.104, '33': 0.104, '41': 0.104, '93': 0.104}, lig: {'105': 14, '108': 15}, tclass: 'italic'}, - {c: 'fi', ic: 0.103, tclass: 'italic'}, - {c: 'fl', ic: 0.103, tclass: 'italic'}, - {c: 'ffi', ic: 0.103, tclass: 'italic'}, - {c: 'ffl', ic: 0.103, tclass: 'italic'}, - // 10 - 1F - {c: 'ı', a:0, ic: 0.0767, tclass: 'italic'}, - {c: 'j', d:.2, ic: 0.0374, tclass: 'italic'}, - {c: 'ˋ', tclass: 'iaccent'}, - {c: 'ˊ', ic: 0.0969, tclass: 'iaccent'}, - {c: 'ˇ', ic: 0.083, tclass: 'iaccent'}, - {c: '˘', ic: 0.108, tclass: 'iaccent'}, - {c: 'ˉ', ic: 0.103, tclass: 'iaccent'}, - {c: '˚', tclass: 'iaccent'}, - {c: '?', d: 0.17, w: 0.46, tclass: 'italic'}, - {c: 'ß', ic: 0.105, tclass: 'italic'}, - {c: 'æ', a:0, ic: 0.0751, tclass: 'italic'}, - {c: 'œ', a:0, ic: 0.0751, tclass: 'italic'}, - {c: 'ø', ic: 0.0919, tclass: 'italic'}, - {c: 'Æ', ic: 0.12, tclass: 'italic'}, - {c: 'Œ', ic: 0.12, tclass: 'italic'}, - {c: 'Ø', ic: 0.094, tclass: 'italic'}, - // 20 - 2F - {c: '?', krn: {'108': -0.256, '76': -0.321}, tclass: 'italic'}, - {c: '!', ic: 0.124, lig: {'96': 60}, tclass: 'italic'}, - {c: '”', ic: 0.0696, tclass: 'italic'}, - {c: '#', ic: 0.0662, tclass: 'italic'}, - {c: '$', tclass: 'italic'}, - {c: '%', ic: 0.136, tclass: 'italic'}, - {c: '&', ic: 0.0969, tclass: 'italic'}, - {c: '’', ic: 0.124, krn: {'63': 0.102, '33': 0.102}, lig: {'39': 34}, tclass: 'italic'}, - {c: '(', d:.2, ic: 0.162, tclass: 'italic'}, - {c: ')', d:.2, ic: 0.0369, tclass: 'italic'}, - {c: '*', ic: 0.149, tclass: 'italic'}, - {c: '+', a:.1, ic: 0.0369, tclass: 'italic'}, - {c: ',', a:-.3, d:.2, w: 0.278, tclass: 'italic'}, - {c: '-', a:0, ic: 0.0283, lig: {'45': 123}, tclass: 'italic'}, - {c: '.', a:-.25, tclass: 'italic'}, - {c: '/', ic: 0.162, tclass: 'italic'}, - // 30 - 3F - {c: '0', ic: 0.136, tclass: 'italic'}, - {c: '1', ic: 0.136, tclass: 'italic'}, - {c: '2', ic: 0.136, tclass: 'italic'}, - {c: '3', ic: 0.136, tclass: 'italic'}, - {c: '4', ic: 0.136, tclass: 'italic'}, - {c: '5', ic: 0.136, tclass: 'italic'}, - {c: '6', ic: 0.136, tclass: 'italic'}, - {c: '7', ic: 0.136, tclass: 'italic'}, - {c: '8', ic: 0.136, tclass: 'italic'}, - {c: '9', ic: 0.136, tclass: 'italic'}, - {c: ':', ic: 0.0582, tclass: 'italic'}, - {c: ';', ic: 0.0582, tclass: 'italic'}, - {c: '¡', ic: 0.0756, tclass: 'italic'}, - {c: '=', a:0, d:-.1, ic: 0.0662, tclass: 'italic'}, - {c: '¿', tclass: 'italic'}, - {c: '?', ic: 0.122, lig: {'96': 62}, tclass: 'italic'}, - // 40 - 4F - {c: '@', ic: 0.096, tclass: 'italic'}, - {c: 'A', krn: {'110': -0.0256, '108': -0.0256, '114': -0.0256, '117': -0.0256, '109': -0.0256, '116': -0.0256, '105': -0.0256, '67': -0.0256, '79': -0.0256, '71': -0.0256, '104': -0.0256, '98': -0.0256, '85': -0.0256, '107': -0.0256, '118': -0.0256, '119': -0.0256, '81': -0.0256, '84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - {c: 'B', ic: 0.103, tclass: 'italic'}, - {c: 'C', ic: 0.145, tclass: 'italic'}, - {c: 'D', ic: 0.094, krn: {'88': -0.0256, '87': -0.0256, '65': -0.0256, '86': -0.0256, '89': -0.0256}, tclass: 'italic'}, - {c: 'E', ic: 0.12, tclass: 'italic'}, - {c: 'F', ic: 0.133, krn: {'111': -0.0767, '101': -0.0767, '117': -0.0767, '114': -0.0767, '97': -0.0767, '65': -0.102, '79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}, tclass: 'italic'}, - {c: 'G', ic: 0.0872, tclass: 'italic'}, - {c: 'H', ic: 0.164, tclass: 'italic'}, - {c: 'I', ic: 0.158, tclass: 'italic'}, - {c: 'J', ic: 0.14, tclass: 'italic'}, - {c: 'K', ic: 0.145, krn: {'79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}, tclass: 'italic'}, - {c: 'L', krn: {'84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - {c: 'M', ic: 0.164, tclass: 'italic'}, - {c: 'N', ic: 0.164, tclass: 'italic'}, - {c: 'O', ic: 0.094, krn: {'88': -0.0256, '87': -0.0256, '65': -0.0256, '86': -0.0256, '89': -0.0256}, tclass: 'italic'}, - // 50 - 5F - {c: 'P', ic: 0.103, krn: {'65': -0.0767}, tclass: 'italic'}, - {c: 'Q', d:.2, ic: 0.094, tclass: 'italic'}, - {c: 'R', ic: 0.0387, krn: {'110': -0.0256, '108': -0.0256, '114': -0.0256, '117': -0.0256, '109': -0.0256, '116': -0.0256, '105': -0.0256, '67': -0.0256, '79': -0.0256, '71': -0.0256, '104': -0.0256, '98': -0.0256, '85': -0.0256, '107': -0.0256, '118': -0.0256, '119': -0.0256, '81': -0.0256, '84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - {c: 'S', ic: 0.12, tclass: 'italic'}, - {c: 'T', ic: 0.133, krn: {'121': -0.0767, '101': -0.0767, '111': -0.0767, '114': -0.0767, '97': -0.0767, '117': -0.0767, '65': -0.0767}, tclass: 'italic'}, - {c: 'U', ic: 0.164, tclass: 'italic'}, - {c: 'V', ic: 0.184, krn: {'111': -0.0767, '101': -0.0767, '117': -0.0767, '114': -0.0767, '97': -0.0767, '65': -0.102, '79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}, tclass: 'italic'}, - {c: 'W', ic: 0.184, krn: {'65': -0.0767}, tclass: 'italic'}, - {c: 'X', ic: 0.158, krn: {'79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}, tclass: 'italic'}, - {c: 'Y', ic: 0.194, krn: {'101': -0.0767, '111': -0.0767, '114': -0.0767, '97': -0.0767, '117': -0.0767, '65': -0.0767}, tclass: 'italic'}, - {c: 'Z', ic: 0.145, tclass: 'italic'}, - {c: '[', d:.1, ic: 0.188, tclass: 'italic'}, - {c: '“', ic: 0.169, tclass: 'italic'}, - {c: ']', d:.1, ic: 0.105, tclass: 'italic'}, - {c: 'ˆ', ic: 0.0665, tclass: 'iaccent'}, - {c: '˙', ic: 0.118, tclass: 'iaccent'}, - // 60 - 6F - {c: '‘', ic: 0.124, lig: {'96': 92}, tclass: 'italic'}, - {c: 'a', a:0, ic: 0.0767, tclass: 'italic'}, - {c: 'b', ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - {c: 'c', a:0, ic: 0.0565, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - {c: 'd', ic: 0.103, krn: {'108': 0.0511}, tclass: 'italic'}, - {c: 'e', a:0, ic: 0.0751, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - {c: 'f', ic: 0.212, krn: {'39': 0.104, '63': 0.104, '33': 0.104, '41': 0.104, '93': 0.104}, lig: {'105': 12, '102': 11, '108': 13}, tclass: 'italic'}, - {c: 'g', a:0, d:.2, ic: 0.0885, tclass: 'italic'}, - {c: 'h', ic: 0.0767, tclass: 'italic'}, - {c: 'i', ic: 0.102, tclass: 'italic'}, - {c: 'j', d:.2, ic: 0.145, tclass: 'italic'}, - {c: 'k', ic: 0.108, tclass: 'italic'}, - {c: 'l', ic: 0.103, krn: {'108': 0.0511}, tclass: 'italic'}, - {c: 'm', a:0, ic: 0.0767, tclass: 'italic'}, - {c: 'n', a:0, ic: 0.0767, krn: {'39': -0.102}, tclass: 'italic'}, - {c: 'o', a:0, ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - // 70 - 7F - {c: 'p', a:0, d:.2, ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - {c: 'q', a:0, d:.2, ic: 0.0885, tclass: 'italic'}, - {c: 'r', a:0, ic: 0.108, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - {c: 's', a:0, ic: 0.0821, tclass: 'italic'}, - {c: 't', ic: 0.0949, tclass: 'italic'}, - {c: 'u', a:0, ic: 0.0767, tclass: 'italic'}, - {c: 'v', a:0, ic: 0.108, tclass: 'italic'}, - {c: 'w', a:0, ic: 0.108, krn: {'108': 0.0511}, tclass: 'italic'}, - {c: 'x', a:0, ic: 0.12, tclass: 'italic'}, - {c: 'y', a:0, d:.2, ic: 0.0885, tclass: 'italic'}, - {c: 'z', a:0, ic: 0.123, tclass: 'italic'}, - {c: '–', a:.1, ic: 0.0921, lig: {'45': 124}, tclass: 'italic'}, - {c: '—', a:.1, ic: 0.0921, tclass: 'italic'}, - {c: '˝', ic: 0.122, tclass: 'iaccent'}, - {c: '˜', ic: 0.116, tclass: 'iaccent'}, - {c: '¨', tclass: 'iaccent'} - ], - - cmbx10: [ - // 00 - 0F - {c: 'Γ', tclass: 'bgreek'}, - {c: 'Δ', tclass: 'bgreek'}, - {c: 'Θ', tclass: 'bgreek'}, - {c: 'Λ', tclass: 'bgreek'}, - {c: 'Ξ', tclass: 'bgreek'}, - {c: 'Π', tclass: 'bgreek'}, - {c: 'Σ', tclass: 'bgreek'}, - {c: 'Υ', tclass: 'bgreek'}, - {c: 'Φ', tclass: 'bgreek'}, - {c: 'Ψ', tclass: 'bgreek'}, - {c: 'Ω', tclass: 'bgreek'}, - {c: 'ff', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 14, '108': 15}, tclass: 'bold'}, - {c: 'fi', tclass: 'bold'}, - {c: 'fl', tclass: 'bold'}, - {c: 'ffi', tclass: 'bold'}, - {c: 'ffl', tclass: 'bold'}, - // 10 - 1F - {c: 'ı', a:0, tclass: 'bold'}, - {c: 'j', d:.2, tclass: 'bold'}, - {c: 'ˋ', tclass: 'baccent'}, - {c: 'ˊ', tclass: 'baccent'}, - {c: 'ˇ', tclass: 'baccent'}, - {c: '˘', tclass: 'baccent'}, - {c: 'ˉ', tclass: 'baccent'}, - {c: '˚', tclass: 'baccent'}, - {c: '?', tclass: 'bold'}, - {c: 'ß', tclass: 'bold'}, - {c: 'æ', a:0, tclass: 'bold'}, - {c: 'œ', a:0, tclass: 'bold'}, - {c: 'ø', tclass: 'bold'}, - {c: 'Æ', tclass: 'bold'}, - {c: 'Œ', tclass: 'bold'}, - {c: 'Ø', tclass: 'bold'}, - // 20 - 2F - {c: '?', krn: {'108': -0.278, '76': -0.319}, tclass: 'bold'}, - {c: '!', lig: {'96': 60}, tclass: 'bold'}, - {c: '”', tclass: 'bold'}, - {c: '#', tclass: 'bold'}, - {c: '$', tclass: 'bold'}, - {c: '%', tclass: 'bold'}, - {c: '&', tclass: 'bold'}, - {c: '’', krn: {'63': 0.111, '33': 0.111}, lig: {'39': 34}, tclass: 'bold'}, - {c: '(', d:.2, tclass: 'bold'}, - {c: ')', d:.2, tclass: 'bold'}, - {c: '*', tclass: 'bold'}, - {c: '+', a:.1, tclass: 'bold'}, - {c: ',', a:-.3, d:.2, w: 0.278, tclass: 'bold'}, - {c: '-', a:0, lig: {'45': 123}, tclass: 'bold'}, - {c: '.', a:-.25, tclass: 'bold'}, - {c: '/', tclass: 'bold'}, - // 30 - 3F - {c: '0', tclass: 'bold'}, - {c: '1', tclass: 'bold'}, - {c: '2', tclass: 'bold'}, - {c: '3', tclass: 'bold'}, - {c: '4', tclass: 'bold'}, - {c: '5', tclass: 'bold'}, - {c: '6', tclass: 'bold'}, - {c: '7', tclass: 'bold'}, - {c: '8', tclass: 'bold'}, - {c: '9', tclass: 'bold'}, - {c: ':', tclass: 'bold'}, - {c: ';', tclass: 'bold'}, - {c: '¡', tclass: 'bold'}, - {c: '=', a:0, d:-.1, tclass: 'bold'}, - {c: '¿', tclass: 'bold'}, - {c: '?', lig: {'96': 62}, tclass: 'bold'}, - // 40 - 4F - {c: '@', tclass: 'bold'}, - {c: 'A', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'bold'}, - {c: 'B', tclass: 'bold'}, - {c: 'C', tclass: 'bold'}, - {c: 'D', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}, tclass: 'bold'}, - {c: 'E', tclass: 'bold'}, - {c: 'F', krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, - {c: 'G', tclass: 'bold'}, - {c: 'H', tclass: 'bold'}, - {c: 'I', krn: {'73': 0.0278}, tclass: 'bold'}, - {c: 'J', tclass: 'bold'}, - {c: 'K', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, - {c: 'L', krn: {'84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'bold'}, - {c: 'M', tclass: 'bold'}, - {c: 'N', tclass: 'bold'}, - {c: 'O', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}, tclass: 'bold'}, - // 50 - 5F - {c: 'P', krn: {'65': -0.0833, '111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}, tclass: 'bold'}, - {c: 'Q', d:.2, tclass: 'bold'}, - {c: 'R', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'bold'}, - {c: 'S', tclass: 'bold'}, - {c: 'T', krn: {'121': -0.0278, '101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}, tclass: 'bold'}, - {c: 'U', tclass: 'bold'}, - {c: 'V', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, - {c: 'W', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, - {c: 'X', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, - {c: 'Y', ic: 0.025, krn: {'101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}, tclass: 'bold'}, - {c: 'Z', tclass: 'bold'}, - {c: '[', d:.1, tclass: 'bold'}, - {c: '“', tclass: 'bold'}, - {c: ']', d:.1, tclass: 'bold'}, - {c: 'ˆ', tclass: 'baccent'}, - {c: '˙', tclass: 'baccent'}, - // 60 - 6F - {c: '‘', lig: {'96': 92}, tclass: 'bold'}, - {c: 'a', a:0, krn: {'118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'bold'}, - {c: 'b', krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'bold'}, - {c: 'c', a:0, krn: {'104': -0.0278, '107': -0.0278}, tclass: 'bold'}, - {c: 'd', tclass: 'bold'}, - {c: 'e', a:0, tclass: 'bold'}, - {c: 'f', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 12, '102': 11, '108': 13}, tclass: 'bold'}, - {c: 'g', a:0, d:.2, ic: 0.0139, krn: {'106': 0.0278}, tclass: 'bold'}, - {c: 'h', krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'bold'}, - {c: 'i', tclass: 'bold'}, - {c: 'j', d:.2, tclass: 'bold'}, - {c: 'k', krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'bold'}, - {c: 'l', tclass: 'bold'}, - {c: 'm', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'bold'}, - {c: 'n', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'bold'}, - {c: 'o', a:0, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'bold'}, - // 70 - 7F - {c: 'p', a:0, d:.2, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'bold'}, - {c: 'q', a:0, d:.2, tclass: 'bold'}, - {c: 'r', a:0, tclass: 'bold'}, - {c: 's', a:0, tclass: 'bold'}, - {c: 't', krn: {'121': -0.0278, '119': -0.0278}, tclass: 'bold'}, - {c: 'u', a:0, krn: {'119': -0.0278}, tclass: 'bold'}, - {c: 'v', a:0, ic: 0.0139, krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'bold'}, - {c: 'w', a:0, ic: 0.0139, krn: {'101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'bold'}, - {c: 'x', a:0, tclass: 'bold'}, - {c: 'y', a:0, d:.2, ic: 0.0139, krn: {'111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}, tclass: 'bold'}, - {c: 'z', a:0, tclass: 'bold'}, - {c: '–', a:.1, ic: 0.0278, lig: {'45': 124}, tclass: 'bold'}, - {c: '—', a:.1, ic: 0.0278, tclass: 'bold'}, - {c: '˝', tclass: 'baccent'}, - {c: '˜', tclass: 'baccent'}, - {c: '¨', tclass: 'baccent'} - ] -}); - - -jsMath.Setup.Styles({ - '.typeset .cmr10': "font-family: serif", - '.typeset .italic': "font-style: italic", - '.typeset .bold': "font-weight: bold", - '.typeset .lucida': "font-family: 'lucida sans unicode'", - '.typeset .arial': "font-family: 'Arial unicode MS'", - '.typeset .cal': "font-family: 'Script MT', 'Script MT Bold', cursive", - '.typeset .arrows': "font-family: 'Arial unicode MS'", - '.typeset .arrow1': "font-family: 'Arial unicode MS'", - '.typeset .arrow1a': "font-family: 'Arial unicode MS'; position:relative; top:.05em;left:-.15em; margin-right:-.15em; display:inline-block", - '.typeset .arrow2': "font-family: 'Arial unicode MS'; position:relative; top:-.1em; display:inline-block;", - '.typeset .arrow3': "font-family: 'Arial unicode MS'; margin:.1em", - '.typeset .symbol': "font-family: 'Arial unicode MS'", - '.typeset .symbol2': "font-family: 'Arial unicode MS'", - '.typeset .delim1': "font-family: 'Times New Roman'; font-size: 133%; position:relative; top:.7em; display:inline-block", - '.typeset .delim1a': "font-family: 'Lucida sans unicode'; font-size: 133%; position:relative; top:.8em; display:inline-block", - '.typeset .delim1b': "font-family: 'Arial unicode MS'; font-size: 133%; position:relative; top:.7em; display:inline-block", - '.typeset .delim2': "font-family: 'Times New Roman'; font-size: 180%; position:relative; top:.75em; display:inline-block", - '.typeset .delim2a': "font-family: 'Lucida sans unicode'; font-size: 180%; position:relative; top:.8em; display:inline-block", - '.typeset .delim2b': "font-family: 'Arial unicode MS'; font-size: 180%; position:relative; top:.7em; display:inline-block", - '.typeset .delim3': "font-family: 'Times New Roman'; font-size: 250%; position:relative; top:.725em; display:inline-block", - '.typeset .delim3a': "font-family: 'Lucida sans unicode'; font-size: 250%; position:relative; top:.775em; display:inline-block", - '.typeset .delim3b': "font-family: 'Arial unicode MS'; font-size: 250%; position:relative; top:.7em; display:inline-block", - '.typeset .delim4': "font-family: 'Times New Roman'; font-size: 325%; position:relative; top:.7em; display:inline-block", - '.typeset .delim4a': "font-family: 'Lucida sans unicode'; font-size: 325%; position:relative; top:.775em; display:inline-block", - '.typeset .delim4b': "font-family: 'Arial unicode MS'; font-size: 325%; position:relative; top:.7em; display:inline-block", - '.typeset .delimx': "font-family: Symbol", - '.typeset .greek': "font-family: 'Times New Roman'", - '.typeset .igreek': "font-family: 'Times New Roman'; font-style:italic", - '.typeset .bgreek': "font-family: 'Times New Roman'; font-weight:bold", - '.typeset .bigop1': "font-family: 'Arial unicode MS'; font-size: 130%; position: relative; top: .7em; margin:-.05em; display:inline-block", - '.typeset .bigop1a': "font-family: 'Arial unicode MS'; font-size: 110%; position: relative; top: .85em; display:inline-block;", - '.typeset .bigop1b': "font-family: 'Arial unicode MS'; font-size: 180%; position: relative; top: .6em; display:inline-block", - '.typeset .bigop1c': "font-family: 'Arial unicode MS'; font-size: 85%; position: relative; top: 1em; display:inline-block", - '.typeset .bigop2': "font-family: 'Arial unicode MS'; font-size: 230%; position: relative; top: .6em; margin:-.05em; display:inline-block", - '.typeset .bigop2a': "font-family: 'Arial unicode MS'; font-size: 185%; position: relative; top: .75em; display:inline-block", - '.typeset .bigop2b': "font-family: 'Arial unicode MS'; font-size: 275%; position: relative; top: .55em; display:inline-block", - '.typeset .bigop2c': "font-family: 'Arial unicode MS'; font-size: 185%; position: relative; top: 1em; margin-right:-.1em; display:inline-block", - '.typeset .wide1': "font-family: 'Arial unicode MS'; font-size: 67%; position: relative; top:-.75em; display:inline-block;", - '.typeset .wide2': "font-family: 'Arial unicode MS'; font-size: 110%; position: relative; top:-.4em; display:inline-block;", - '.typeset .wide3': "font-family: 'Arial unicode MS'; font-size: 175%; position: relative; top:-.25em; display:inline-block", - '.typeset .wide1a': "font-family: 'Times New Roman'; font-size: 75%; position: relative; top:-.5em; display:inline-block", - '.typeset .wide2a': "font-family: 'Times New Roman'; font-size: 133%; position: relative; top:-.2em; display:inline-block", - '.typeset .wide3a': "font-family: 'Times New Roman'; font-size: 200%; position: relative; top:-.1em; display:inline-block", - '.typeset .root': "font-family: 'Arial unicode MS'; margin-right:-.075em; display:inline-block", - '.typeset .accent': "font-family: 'Arial unicode MS'; position:relative; top:.05em; left:.15em; display:inline-block", - '.typeset .iaccent': "font-family: 'Arial unicode MS'; position:relative; top:.05em; left:.15em; font-style:italic; display:inline-block", - '.typeset .baccent': "font-family: 'Arial unicode MS'; position:relative; top:.05em; left:.15em; font-weight:bold; display:inline-block" -}); - -// -// adjust for Mozilla -// -if (jsMath.browser == 'Mozilla') { - jsMath.Update.TeXfonts({ - cmex10: { - '48': {c: ''}, - '49': {c: ''}, - '50': {c: ''}, - '51': {c: ''}, - '52': {c: ''}, - '53': {c: ''}, - '54': {c: ''}, - '55': {c: ''}, - '56': {c: ''}, - '57': {c: ''}, - '58': {c: ''}, - '59': {c: ''}, - '60': {c: ''}, - '61': {c: ''}, - '62': {c: ''}, - '64': {c: ''}, - '65': {c: ''}, - '66': {c: ''}, - '67': {c: ''} - } - }); - jsMath.Setup.Styles({ - '.typeset .accent': 'font-family: Arial unicode MS; position:relative; top:.05em; left:.05em' - }); -} - -// -// adjust for MSIE -// -if (jsMath.browser == "MSIE") { - jsMath.Browser.msieFontBug = 1; -} - -/* - * No access to TeX "not" character, so fake this - * Also ajust the bowtie spacing - */ -jsMath.Macro('not','\\mathrel{\\rlap{\\kern 3mu/}}'); -jsMath.Macro('bowtie','\\mathrel\\triangleright\\kern-6mu\\mathrel\\triangleleft'); - -jsMath.Box.defaultH = 0.8; diff --git a/literature/static/jsMath/uncompressed/jsMath-fallback-symbols.js b/literature/static/jsMath/uncompressed/jsMath-fallback-symbols.js deleted file mode 100644 index 05e56e65d..000000000 --- a/literature/static/jsMath/uncompressed/jsMath-fallback-symbols.js +++ /dev/null @@ -1,415 +0,0 @@ -/* - * jsMath-fallback-symbols.js - * - * Part of the jsMath package for mathematics on the web. - * - * This file makes changes needed to use image fonts for symbols - * but standard native fonts for letters and numbers. - * - * --------------------------------------------------------------------- - * - * Copyright 2004-2006 by Davide P. Cervone - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -jsMath.Add(jsMath.Img,{ - UpdateTeXFonts: function (change) { - for (var font in change) { - for (var code in change[font]) { - jsMath.TeX[font][code] = change[font][code]; - jsMath.TeX[font][code].tclass = 'i' + font; - } - } - } -}); - - -jsMath.Img.UpdateTeXFonts({ - cmr10: { - '33': {c: '!', lig: {'96': 60}}, - '35': {c: '#'}, - '36': {c: '$'}, - '37': {c: '%'}, - '38': {c: '&'}, - '40': {c: '(', d:.2}, - '41': {c: ')', d:.2}, - '42': {c: '*', d:-.3}, - '43': {c: '+', a:.1}, - '44': {c: ',', a:-.3}, - '45': {c: '-', a:0, lig: {'45': 123}}, - '46': {c: '.', a:-.25}, - '47': {c: '/'}, - '48': {c: '0'}, - '49': {c: '1'}, - '50': {c: '2'}, - '51': {c: '3'}, - '52': {c: '4'}, - '53': {c: '5'}, - '54': {c: '6'}, - '55': {c: '7'}, - '56': {c: '8'}, - '57': {c: '9'}, - '58': {c: ':'}, - '59': {c: ';'}, - '61': {c: '=', a:0, d:-.1}, - '63': {c: '?', lig: {'96': 62}}, - '64': {c: '@'}, - '65': {c: 'A', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}}, - '66': {c: 'B'}, - '67': {c: 'C'}, - '68': {c: 'D', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}}, - '69': {c: 'E'}, - '70': {c: 'F', krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}, - '71': {c: 'G'}, - '72': {c: 'H'}, - '73': {c: 'I', krn: {'73': 0.0278}}, - '74': {c: 'J'}, - '75': {c: 'K', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}, - '76': {c: 'L', krn: {'84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}}, - '77': {c: 'M'}, - '78': {c: 'N'}, - '79': {c: 'O', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}}, - '80': {c: 'P', krn: {'65': -0.0833, '111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}}, - '81': {c: 'Q', d: 1}, - '82': {c: 'R', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}}, - '83': {c: 'S'}, - '84': {c: 'T', krn: {'121': -0.0278, '101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}}, - '85': {c: 'U'}, - '86': {c: 'V', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}, - '87': {c: 'W', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}, - '88': {c: 'X', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}, - '89': {c: 'Y', ic: 0.025, krn: {'101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}}, - '90': {c: 'Z'}, - '91': {c: '[', d:.1}, - '93': {c: ']', d:.1}, - '97': {c: 'a', a:0, krn: {'118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}}, - '98': {c: 'b', krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}}, - '99': {c: 'c', a:0, krn: {'104': -0.0278, '107': -0.0278}}, - '100': {c: 'd'}, - '101': {c: 'e', a:0}, - '102': {c: 'f', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 12, '102': 11, '108': 13}}, - '103': {c: 'g', a:0, d:.2, ic: 0.0139, krn: {'106': 0.0278}}, - '104': {c: 'h', krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}}, - '105': {c: 'i'}, - '106': {c: 'j', d:1}, - '107': {c: 'k', krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}}, - '108': {c: 'l'}, - '109': {c: 'm', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}}, - '110': {c: 'n', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}}, - '111': {c: 'o', a:0, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}}, - '112': {c: 'p', a:0, d:.2, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}}, - '113': {c: 'q', a:0, d:1}, - '114': {c: 'r', a:0}, - '115': {c: 's', a:0}, - '116': {c: 't', krn: {'121': -0.0278, '119': -0.0278}}, - '117': {c: 'u', a:0, krn: {'119': -0.0278}}, - '118': {c: 'v', a:0, ic: 0.0139, krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}}, - '119': {c: 'w', a:0, ic: 0.0139, krn: {'101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}}, - '120': {c: 'x', a:0}, - '121': {c: 'y', a:0, d:.2, ic: 0.0139, krn: {'111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}}, - '122': {c: 'z', a:0} - }, - cmmi10: { - '65': {c: 'A', krn: {'127': 0.139}}, - '66': {c: 'B', ic: 0.0502, krn: {'127': 0.0833}}, - '67': {c: 'C', ic: 0.0715, krn: {'61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}}, - '68': {c: 'D', ic: 0.0278, krn: {'127': 0.0556}}, - '69': {c: 'E', ic: 0.0576, krn: {'127': 0.0833}}, - '70': {c: 'F', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}}, - '71': {c: 'G', krn: {'127': 0.0833}}, - '72': {c: 'H', ic: 0.0812, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}}, - '73': {c: 'I', ic: 0.0785, krn: {'127': 0.111}}, - '74': {c: 'J', ic: 0.0962, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.167}}, - '75': {c: 'K', ic: 0.0715, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}}, - '76': {c: 'L', krn: {'127': 0.0278}}, - '77': {c: 'M', ic: 0.109, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}}, - '78': {c: 'N', ic: 0.109, krn: {'61': -0.0833, '61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}}, - '79': {c: 'O', ic: 0.0278, krn: {'127': 0.0833}}, - '80': {c: 'P', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}}, - '81': {c: 'Q', d:.2, krn: {'127': 0.0833}}, - '82': {c: 'R', ic: 0.00773, krn: {'127': 0.0833}}, - '83': {c: 'S', ic: 0.0576, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}}, - '84': {c: 'T', ic: 0.139, krn: {'61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}}, - '85': {c: 'U', ic: 0.109, krn: {'59': -0.111, '58': -0.111, '61': -0.0556, '127': 0.0278}}, - '86': {c: 'V', ic: 0.222, krn: {'59': -0.167, '58': -0.167, '61': -0.111}}, - '87': {c: 'W', ic: 0.139, krn: {'59': -0.167, '58': -0.167, '61': -0.111}}, - '88': {c: 'X', ic: 0.0785, krn: {'61': -0.0833, '61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}}, - '89': {c: 'Y', ic: 0.222, krn: {'59': -0.167, '58': -0.167, '61': -0.111}}, - '90': {c: 'Z', ic: 0.0715, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}}, - '97': {c: 'a', a:0}, - '98': {c: 'b'}, - '99': {c: 'c', a:0, krn: {'127': 0.0556}}, - '100': {c: 'd', krn: {'89': 0.0556, '90': -0.0556, '106': -0.111, '102': -0.167, '127': 0.167}}, - '101': {c: 'e', a:0, krn: {'127': 0.0556}}, - '102': {c: 'f', d:.2, ic: 0.108, krn: {'59': -0.0556, '58': -0.0556, '127': 0.167}}, - '103': {c: 'g', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0278}}, - '104': {c: 'h', krn: {'127': -0.0278}}, - '105': {c: 'i'}, - '106': {c: 'j', d:.2, ic: 0.0572, krn: {'59': -0.0556, '58': -0.0556}}, - '107': {c: 'k', ic: 0.0315}, - '108': {c: 'l', ic: 0.0197, krn: {'127': 0.0833}}, - '109': {c: 'm', a:0}, - '110': {c: 'n', a:0}, - '111': {c: 'o', a:0, krn: {'127': 0.0556}}, - '112': {c: 'p', a:0, d:.2, krn: {'127': 0.0833}}, - '113': {c: 'q', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0833}}, - '114': {c: 'r', a:0, ic: 0.0278, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0556}}, - '115': {c: 's', a:0, krn: {'127': 0.0556}}, - '116': {c: 't', krn: {'127': 0.0833}}, - '117': {c: 'u', a:0, krn: {'127': 0.0278}}, - '118': {c: 'v', a:0, ic: 0.0359, krn: {'127': 0.0278}}, - '119': {c: 'w', a:0, ic: 0.0269, krn: {'127': 0.0833}}, - '120': {c: 'x', a:0, krn: {'127': 0.0278}}, - '121': {c: 'y', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0556}}, - '122': {c: 'z', a:0, ic: 0.044, krn: {'127': 0.0556}} - }, - cmsy10: { - '0': {c:'−', a:.1} - }, - cmti10: { - '33': {c: '!', lig: {'96': 60}}, - '35': {c: '#', ic: 0.0662}, - '37': {c: '%', ic: 0.136}, - '38': {c: '&', ic: 0.0969}, - '40': {c: '(', d:.2, ic: 0.162}, - '41': {c: ')', d:.2, ic: 0.0369}, - '42': {c: '*', ic: 0.149}, - '43': {c: '+', a:.1, ic: 0.0369}, - '44': {c: ',', a:-.3, d:.2, w: 0.278}, - '45': {c: '-', a:0, ic: 0.0283, lig: {'45': 123}}, - '46': {c: '.', a:-.25}, - '47': {c: '/', ic: 0.162}, - '48': {c: '0', ic: 0.136}, - '49': {c: '1', ic: 0.136}, - '50': {c: '2', ic: 0.136}, - '51': {c: '3', ic: 0.136}, - '52': {c: '4', ic: 0.136}, - '53': {c: '5', ic: 0.136}, - '54': {c: '6', ic: 0.136}, - '55': {c: '7', ic: 0.136}, - '56': {c: '8', ic: 0.136}, - '57': {c: '9', ic: 0.136}, - '58': {c: ':', ic: 0.0582}, - '59': {c: ';', ic: 0.0582}, - '61': {c: '=', a:0, d:-.1, ic: 0.0662}, - '63': {c: '?', ic: 0.122, lig: {'96': 62}}, - '64': {c: '@', ic: 0.096}, - '65': {c: 'A', krn: {'110': -0.0256, '108': -0.0256, '114': -0.0256, '117': -0.0256, '109': -0.0256, '116': -0.0256, '105': -0.0256, '67': -0.0256, '79': -0.0256, '71': -0.0256, '104': -0.0256, '98': -0.0256, '85': -0.0256, '107': -0.0256, '118': -0.0256, '119': -0.0256, '81': -0.0256, '84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}, - '66': {c: 'B', ic: 0.103}, - '67': {c: 'C', ic: 0.145}, - '68': {c: 'D', ic: 0.094, krn: {'88': -0.0256, '87': -0.0256, '65': -0.0256, '86': -0.0256, '89': -0.0256}}, - '69': {c: 'E', ic: 0.12}, - '70': {c: 'F', ic: 0.133, krn: {'111': -0.0767, '101': -0.0767, '117': -0.0767, '114': -0.0767, '97': -0.0767, '65': -0.102, '79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}}, - '71': {c: 'G', ic: 0.0872}, - '72': {c: 'H', ic: 0.164}, - '73': {c: 'I', ic: 0.158}, - '74': {c: 'J', ic: 0.14}, - '75': {c: 'K', ic: 0.145, krn: {'79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}}, - '76': {c: 'L', krn: {'84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}, - '77': {c: 'M', ic: 0.164}, - '78': {c: 'N', ic: 0.164}, - '79': {c: 'O', ic: 0.094, krn: {'88': -0.0256, '87': -0.0256, '65': -0.0256, '86': -0.0256, '89': -0.0256}}, - '80': {c: 'P', ic: 0.103, krn: {'65': -0.0767}}, - '81': {c: 'Q', d:.2, ic: 0.094}, - '82': {c: 'R', ic: 0.0387, krn: {'110': -0.0256, '108': -0.0256, '114': -0.0256, '117': -0.0256, '109': -0.0256, '116': -0.0256, '105': -0.0256, '67': -0.0256, '79': -0.0256, '71': -0.0256, '104': -0.0256, '98': -0.0256, '85': -0.0256, '107': -0.0256, '118': -0.0256, '119': -0.0256, '81': -0.0256, '84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}, - '83': {c: 'S', ic: 0.12}, - '84': {c: 'T', ic: 0.133, krn: {'121': -0.0767, '101': -0.0767, '111': -0.0767, '114': -0.0767, '97': -0.0767, '117': -0.0767, '65': -0.0767}}, - '85': {c: 'U', ic: 0.164}, - '86': {c: 'V', ic: 0.184, krn: {'111': -0.0767, '101': -0.0767, '117': -0.0767, '114': -0.0767, '97': -0.0767, '65': -0.102, '79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}}, - '87': {c: 'W', ic: 0.184, krn: {'65': -0.0767}}, - '88': {c: 'X', ic: 0.158, krn: {'79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}}, - '89': {c: 'Y', ic: 0.194, krn: {'101': -0.0767, '111': -0.0767, '114': -0.0767, '97': -0.0767, '117': -0.0767, '65': -0.0767}}, - '90': {c: 'Z', ic: 0.145}, - '91': {c: '[', d:.1, ic: 0.188}, - '93': {c: ']', d:.1, ic: 0.105}, - '97': {c: 'a', a:0, ic: 0.0767}, - '98': {c: 'b', ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}, - '99': {c: 'c', a:0, ic: 0.0565, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}, - '100': {c: 'd', ic: 0.103, krn: {'108': 0.0511}}, - '101': {c: 'e', a:0, ic: 0.0751, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}, - '102': {c: 'f', ic: 0.212, krn: {'39': 0.104, '63': 0.104, '33': 0.104, '41': 0.104, '93': 0.104}, lig: {'105': 12, '102': 11, '108': 13}}, - '103': {c: 'g', a:0, d:.2, ic: 0.0885}, - '104': {c: 'h', ic: 0.0767}, - '105': {c: 'i', ic: 0.102}, - '106': {c: 'j', d:.2, ic: 0.145}, - '107': {c: 'k', ic: 0.108}, - '108': {c: 'l', ic: 0.103, krn: {'108': 0.0511}}, - '109': {c: 'm', a:0, ic: 0.0767}, - '110': {c: 'n', a:0, ic: 0.0767, krn: {'39': -0.102}}, - '111': {c: 'o', a:0, ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}, - '112': {c: 'p', a:0, d:.2, ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}, - '113': {c: 'q', a:0, d:.2, ic: 0.0885}, - '114': {c: 'r', a:0, ic: 0.108, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}, - '115': {c: 's', a:0, ic: 0.0821}, - '116': {c: 't', ic: 0.0949}, - '117': {c: 'u', a:0, ic: 0.0767}, - '118': {c: 'v', a:0, ic: 0.108}, - '119': {c: 'w', a:0, ic: 0.108, krn: {'108': 0.0511}}, - '120': {c: 'x', a:0, ic: 0.12}, - '121': {c: 'y', a:0, d:.2, ic: 0.0885}, - '122': {c: 'z', a:0, ic: 0.123} - }, - cmbx10: { - '33': {c: '!', lig: {'96': 60}}, - '35': {c: '#'}, - '36': {c: '$'}, - '37': {c: '%'}, - '38': {c: '&'}, - '40': {c: '(', d:.2}, - '41': {c: ')', d:.2}, - '42': {c: '*'}, - '43': {c: '+', a:.1}, - '44': {c: ',', a:-.3, d:.2, w: 0.278}, - '45': {c: '-', a:0, lig: {'45': 123}}, - '46': {c: '.', a:-.25}, - '47': {c: '/'}, - '48': {c: '0'}, - '49': {c: '1'}, - '50': {c: '2'}, - '51': {c: '3'}, - '52': {c: '4'}, - '53': {c: '5'}, - '54': {c: '6'}, - '55': {c: '7'}, - '56': {c: '8'}, - '57': {c: '9'}, - '58': {c: ':'}, - '59': {c: ';'}, - '61': {c: '=', a:0, d:-.1}, - '63': {c: '?', lig: {'96': 62}}, - '64': {c: '@'}, - '65': {c: 'A', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}}, - '66': {c: 'B'}, - '67': {c: 'C'}, - '68': {c: 'D', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}}, - '69': {c: 'E'}, - '70': {c: 'F', krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}, - '71': {c: 'G'}, - '72': {c: 'H'}, - '73': {c: 'I', krn: {'73': 0.0278}}, - '74': {c: 'J'}, - '75': {c: 'K', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}, - '76': {c: 'L', krn: {'84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}}, - '77': {c: 'M'}, - '78': {c: 'N'}, - '79': {c: 'O', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}}, - '80': {c: 'P', krn: {'65': -0.0833, '111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}}, - '81': {c: 'Q', d: 1}, - '82': {c: 'R', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}}, - '83': {c: 'S'}, - '84': {c: 'T', krn: {'121': -0.0278, '101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}}, - '85': {c: 'U'}, - '86': {c: 'V', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}, - '87': {c: 'W', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}, - '88': {c: 'X', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}, - '89': {c: 'Y', ic: 0.025, krn: {'101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}}, - '90': {c: 'Z'}, - '91': {c: '[', d:.1}, - '93': {c: ']', d:.1}, - '97': {c: 'a', a:0, krn: {'118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}}, - '98': {c: 'b', krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}}, - '99': {c: 'c', a:0, krn: {'104': -0.0278, '107': -0.0278}}, - '100': {c: 'd'}, - '101': {c: 'e', a:0}, - '102': {c: 'f', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 12, '102': 11, '108': 13}}, - '103': {c: 'g', a:0, d:.2, ic: 0.0139, krn: {'106': 0.0278}}, - '104': {c: 'h', krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}}, - '105': {c: 'i'}, - '106': {c: 'j', d:1}, - '107': {c: 'k', krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}}, - '108': {c: 'l'}, - '109': {c: 'm', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}}, - '110': {c: 'n', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}}, - '111': {c: 'o', a:0, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}}, - '112': {c: 'p', a:0, d:.2, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}}, - '113': {c: 'q', a:0, d:1}, - '114': {c: 'r', a:0}, - '115': {c: 's', a:0}, - '116': {c: 't', krn: {'121': -0.0278, '119': -0.0278}}, - '117': {c: 'u', a:0, krn: {'119': -0.0278}}, - '118': {c: 'v', a:0, ic: 0.0139, krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}}, - '119': {c: 'w', a:0, ic: 0.0139, krn: {'101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}}, - '120': {c: 'x', a:0}, - '121': {c: 'y', a:0, d:.2, ic: 0.0139, krn: {'111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}}, - '122': {c: 'z', a:0} - } -}); - - -if (jsMath.browser == 'MSIE' && jsMath.platform == 'mac') { - jsMath.Setup.Styles({ - '.typeset .math': 'font-style: normal', - '.typeset .typeset': 'font-style: normal', - '.typeset .icmr10': 'font-family: Times', - '.typeset .icmmi10': 'font-family: Times; font-style: italic', - '.typeset .icmbx10': 'font-family: Times; font-weight: bold', - '.typeset .icmti10': 'font-family: Times; font-style: italic' - }); -} else { - jsMath.Setup.Styles({ - '.typeset .math': 'font-style: normal', - '.typeset .typeset': 'font-style: normal', - '.typeset .icmr10': 'font-family: serif', - '.typeset .icmmi10': 'font-family: serif; font-style: italic', - '.typeset .icmbx10': 'font-family: serif; font-weight: bold', - '.typeset .icmti10': 'font-family: serif; font-style: italic' - }); -} - - -jsMath.Add(jsMath.Img,{ - symbols: [ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 34, 39, - 60, 62, - - 92, 94, 95, - 96, - 123,124,125,126,127 - ] -}); - -/* - * for now, use images for everything - */ -jsMath.Img.SetFont({ - cmr10: jsMath.Img.symbols, - cmmi10: [ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, - 91, 92, 93, 94, 95, - 96, - 123,124,125,126,127 - ], - cmsy10: [ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99,100,101,102,103, 104,105,106,107,108,109,110,111, - 112,113,114,115,116,117,118,119, 120,121,122,123,124,125,126,127 - ], - cmex10: ['all'], - cmti10: jsMath.Img.symbols.concat(36), - cmbx10: jsMath.Img.symbols -}); - -jsMath.Img.LoadFont('cm-fonts'); - diff --git a/literature/static/jsMath/uncompressed/jsMath-fallback-unix.js b/literature/static/jsMath/uncompressed/jsMath-fallback-unix.js deleted file mode 100644 index 63e7856a6..000000000 --- a/literature/static/jsMath/uncompressed/jsMath-fallback-unix.js +++ /dev/null @@ -1,935 +0,0 @@ -/* - * jsMath-fallback-mac.js - * - * Part of the jsMath package for mathematics on the web. - * - * This file makes changes needed for when the TeX fonts are not available - * with a browser on the Mac. - * - * --------------------------------------------------------------------- - * - * Copyright 2004-2006 by Davide P. Cervone - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - -/******************************************************************** - * - * Here we replace the TeX character mappings by equivalent unicode - * points when possible, and adjust the character dimensions - * based on the fonts we hope we get them from (the styles are set - * to try to use the best characters available in the standard - * fonts). - */ - -jsMath.Add(jsMath.TeX,{ - - cmr10: [ - // 00 - 0F - {c: 'Γ', tclass: 'greek'}, - {c: 'Δ', tclass: 'greek'}, - {c: 'Θ', tclass: 'greek'}, - {c: 'Λ', tclass: 'greek'}, - {c: 'Ξ', tclass: 'greek'}, - {c: 'Π', tclass: 'greek'}, - {c: 'Σ', tclass: 'greek'}, - {c: 'Υ', tclass: 'greek'}, - {c: 'Φ', tclass: 'greek'}, - {c: 'Ψ', tclass: 'greek'}, - {c: 'Ω', tclass: 'greek'}, - {c: 'ff', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 14, '108': 15}, tclass: 'normal'}, - {c: 'fi', tclass: 'normal'}, - {c: 'fl', tclass: 'normal'}, - {c: 'ffi', tclass: 'normal'}, - {c: 'ffl', tclass: 'normal'}, - // 10 - 1F - {c: 'ı', a:0, tclass: 'normal'}, - {c: 'j', d:.2, tclass: 'normal'}, - {c: '`', tclass: 'accent'}, - {c: '´', tclass: 'accent'}, - {c: 'ˇ', tclass: 'accent'}, - {c: '˘', tclass: 'accent'}, - {c: 'ˉ', tclass: 'accent'}, - {c: '˚', tclass: 'accent'}, - {c: '̧', tclass: 'normal'}, - {c: 'ß', tclass: 'normal'}, - {c: 'æ', a:0, tclass: 'normal'}, - {c: 'œ', a:0, tclass: 'normal'}, - {c: 'ø', tclass: 'normal'}, - {c: 'Æ', tclass: 'normal'}, - {c: 'Œ', tclass: 'normal'}, - {c: 'Ø', tclass: 'normal'}, - // 20 - 2F - {c: '?', krn: {'108': -0.278, '76': -0.319}, tclass: 'normal'}, - {c: '!', lig: {'96': 60}, tclass: 'normal'}, - {c: '”', tclass: 'normal'}, - {c: '#', tclass: 'normal'}, - {c: '$', tclass: 'normal'}, - {c: '%', tclass: 'normal'}, - {c: '&', tclass: 'normal'}, - {c: '’', krn: {'63': 0.111, '33': 0.111}, lig: {'39': 34}, tclass: 'normal'}, - {c: '(', d:.2, tclass: 'normal'}, - {c: ')', d:.2, tclass: 'normal'}, - {c: '*', tclass: 'normal'}, - {c: '+', a:.1, tclass: 'normal'}, - {c: ',', a:-.3, d:.2, w: 0.278, tclass: 'normal'}, - {c: '-', a:0, lig: {'45': 123}, tclass: 'normal'}, - {c: '.', a:-.25, tclass: 'normal'}, - {c: '/', tclass: 'normal'}, - // 30 - 3F - {c: '0', tclass: 'normal'}, - {c: '1', tclass: 'normal'}, - {c: '2', tclass: 'normal'}, - {c: '3', tclass: 'normal'}, - {c: '4', tclass: 'normal'}, - {c: '5', tclass: 'normal'}, - {c: '6', tclass: 'normal'}, - {c: '7', tclass: 'normal'}, - {c: '8', tclass: 'normal'}, - {c: '9', tclass: 'normal'}, - {c: ':', tclass: 'normal'}, - {c: ';', tclass: 'normal'}, - {c: '¡', tclass: 'normal'}, - {c: '=', a:0, d:-.1, tclass: 'normal'}, - {c: '¿', tclass: 'normal'}, - {c: '?', lig: {'96': 62}, tclass: 'normal'}, - // 40 - 4F - {c: '@', tclass: 'normal'}, - {c: 'A', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'normal'}, - {c: 'B', tclass: 'normal'}, - {c: 'C', tclass: 'normal'}, - {c: 'D', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}, tclass: 'normal'}, - {c: 'E', tclass: 'normal'}, - {c: 'F', krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, - {c: 'G', tclass: 'normal'}, - {c: 'H', tclass: 'normal'}, - {c: 'I', krn: {'73': 0.0278}, tclass: 'normal'}, - {c: 'J', tclass: 'normal'}, - {c: 'K', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, - {c: 'L', krn: {'84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'normal'}, - {c: 'M', tclass: 'normal'}, - {c: 'N', tclass: 'normal'}, - {c: 'O', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}, tclass: 'normal'}, - // 50 - 5F - {c: 'P', krn: {'65': -0.0833, '111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}, tclass: 'normal'}, - {c: 'Q', d: 1, tclass: 'normal'}, - {c: 'R', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'normal'}, - {c: 'S', tclass: 'normal'}, - {c: 'T', krn: {'121': -0.0278, '101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}, tclass: 'normal'}, - {c: 'U', tclass: 'normal'}, - {c: 'V', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, - {c: 'W', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, - {c: 'X', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'normal'}, - {c: 'Y', ic: 0.025, krn: {'101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}, tclass: 'normal'}, - {c: 'Z', tclass: 'normal'}, - {c: '[', d:.1, tclass: 'normal'}, - {c: '“', tclass: 'normal'}, - {c: ']', d:.1, tclass: 'normal'}, - {c: 'ˆ', tclass: 'accent'}, - {c: '˙', tclass: 'accent'}, - // 60 - 6F - {c: '‘', lig: {'96': 92}, tclass: 'normal'}, - {c: 'a', a:0, krn: {'118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'normal'}, - {c: 'b', krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'normal'}, - {c: 'c', a:0, krn: {'104': -0.0278, '107': -0.0278}, tclass: 'normal'}, - {c: 'd', tclass: 'normal'}, - {c: 'e', a:0, tclass: 'normal'}, - {c: 'f', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 12, '102': 11, '108': 13}, tclass: 'normal'}, - {c: 'g', a:0, d:.2, ic: 0.0139, krn: {'106': 0.0278}, tclass: 'normal'}, - {c: 'h', krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'normal'}, - {c: 'i', tclass: 'normal'}, - {c: 'j', d:.2, tclass: 'normal'}, - {c: 'k', krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'normal'}, - {c: 'l', tclass: 'normal'}, - {c: 'm', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'normal'}, - {c: 'n', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'normal'}, - {c: 'o', a:0, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'normal'}, - // 70 - 7F - {c: 'p', a:0, d:.2, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'normal'}, - {c: 'q', a:0, d:.2, tclass: 'normal'}, - {c: 'r', a:0, tclass: 'normal'}, - {c: 's', a:0, tclass: 'normal'}, - {c: 't', krn: {'121': -0.0278, '119': -0.0278}, tclass: 'normal'}, - {c: 'u', a:0, krn: {'119': -0.0278}, tclass: 'normal'}, - {c: 'v', a:0, ic: 0.0139, krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'normal'}, - {c: 'w', a:0, ic: 0.0139, krn: {'101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'normal'}, - {c: 'x', a:0, tclass: 'normal'}, - {c: 'y', a:0, d:.2, ic: 0.0139, krn: {'111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}, tclass: 'normal'}, - {c: 'z', a:0, tclass: 'normal'}, - {c: '–', a:.1, ic: 0.0278, lig: {'45': 124}, tclass: 'normal'}, - {c: '—', a:.1, ic: 0.0278, tclass: 'normal'}, - {c: '˝', tclass: 'accent'}, - {c: '˜', tclass: 'accent'}, - {c: '¨', tclass: 'accent'} - ], - - cmmi10: [ - // 00 - 0F - {c: 'Γ', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}, tclass: 'igreek'}, - {c: 'Δ', krn: {'127': 0.167}, tclass: 'igreek'}, - {c: 'Θ', ic: 0.0278, krn: {'127': 0.0833}, tclass: 'igreek'}, - {c: 'Λ', krn: {'127': 0.167}, tclass: 'igreek'}, - {c: 'Ξ', ic: 0.0757, krn: {'127': 0.0833}, tclass: 'igreek'}, - {c: 'Π', ic: 0.0812, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'igreek'}, - {c: 'Σ', ic: 0.0576, krn: {'127': 0.0833}, tclass: 'igreek'}, - {c: 'Υ', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0556}, tclass: 'igreek'}, - {c: 'Φ', krn: {'127': 0.0833}, tclass: 'igreek'}, - {c: 'Ψ', ic: 0.11, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'igreek'}, - {c: 'Ω', ic: 0.0502, krn: {'127': 0.0833}, tclass: 'igreek'}, - {c: 'α', a:0, ic: 0.0037, krn: {'127': 0.0278}, tclass: 'greek'}, - {c: 'β', d:.2, ic: 0.0528, krn: {'127': 0.0833}, tclass: 'greek'}, - {c: 'γ', a:0, d:.2, ic: 0.0556, tclass: 'greek'}, - {c: 'δ', ic: 0.0378, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'greek'}, - {c: 'ε', a:0, krn: {'127': 0.0556}, tclass: 'symbol'}, - // 10 - 1F - {c: 'ζ', d:.2, ic: 0.0738, krn: {'127': 0.0833}, tclass: 'greek'}, - {c: 'η', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0556}, tclass: 'greek'}, - {c: 'θ', ic: 0.0278, krn: {'127': 0.0833}, tclass: 'greek'}, - {c: 'ι', a:0, krn: {'127': 0.0556}, tclass: 'greek'}, - {c: 'κ', a:0, tclass: 'greek'}, - {c: 'λ', tclass: 'greek'}, - {c: 'μ', a:0, d:.2, krn: {'127': 0.0278}, tclass: 'greek'}, - {c: 'ν', a:0, ic: 0.0637, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0278}, tclass: 'greek'}, - {c: 'ξ', d:.2, ic: 0.046, krn: {'127': 0.111}, tclass: 'greek'}, - {c: 'π', a:0, ic: 0.0359, tclass: 'greek'}, - {c: 'ρ', a:0, d:.2, krn: {'127': 0.0833}, tclass: 'greek'}, - {c: 'σ', a:0, ic: 0.0359, krn: {'59': -0.0556, '58': -0.0556}, tclass: 'greek'}, - {c: 'τ', a:0, ic: 0.113, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0278}, tclass: 'greek'}, - {c: 'υ', a:0, ic: 0.0359, krn: {'127': 0.0278}, tclass: 'greek'}, - {c: 'φ', a:.1, d:.2, krn: {'127': 0.0833}, tclass: 'greek'}, - {c: 'χ', a:0, d:.2, krn: {'127': 0.0556}, tclass: 'greek'}, - // 20 - 2F - {c: 'ψ', a:.1, d:.2, ic: 0.0359, krn: {'127': 0.111}, tclass: 'greek'}, - {c: 'ω', a:0, ic: 0.0359, tclass: 'greek'}, - {c: 'ε', a:0, krn: {'127': 0.0833}, tclass: 'greek'}, - {c: 'ϑ', krn: {'127': 0.0833}, tclass: 'normal'}, - {c: 'ϖ', a:0, ic: 0.0278, tclass: 'normal'}, - {c: 'ϱ', a:0, d:.2, krn: {'127': 0.0833}, tclass: 'normal'}, - {c: 'ς', a:0, d:.2, ic: 0.0799, krn: {'127': 0.0833}, tclass: 'normal'}, - {c: 'ϕ', a:.1, d:.2, krn: {'127': 0.0833}, tclass: 'normal'}, - {c: '↼', a:0, d:-.2, tclass: 'harpoon'}, - {c: '↽', a:0, d:-.1, tclass: 'harpoon'}, - {c: '⇀', a:0, d:-.2, tclass: 'harpoon'}, - {c: '⇁', a:0, d:-.1, tclass: 'harpoon'}, - {c: '˓', a:.1, tclass: 'symbol'}, - {c: '˒', a:.1, tclass: 'symbol'}, - {c: '', tclass: 'symbol'}, - {c: '', tclass: 'symbol'}, - // 30 - 3F - {c: '0', tclass: 'normal'}, - {c: '1', tclass: 'normal'}, - {c: '2', tclass: 'normal'}, - {c: '3', tclass: 'normal'}, - {c: '4', tclass: 'normal'}, - {c: '5', tclass: 'normal'}, - {c: '6', tclass: 'normal'}, - {c: '7', tclass: 'normal'}, - {c: '8', tclass: 'normal'}, - {c: '9', tclass: 'normal'}, - {c: '.', a:-.3, tclass: 'normal'}, - {c: ',', a:-.3, d:.2, tclass: 'normal'}, - {c: '<', a:.1, tclass: 'normal'}, - {c: '/', krn: {'1': -0.0556, '65': -0.0556, '77': -0.0556, '78': -0.0556, '89': 0.0556, '90': -0.0556}, tclass: 'normal'}, - {c: '>', a:.1, tclass: 'normal'}, - {c: '', a:0, tclass: 'symbol'}, - // 40 - 4F - {c: '∂', ic: 0.0556, krn: {'127': 0.0833}, tclass: 'normal'}, - {c: 'A', krn: {'127': 0.139}, tclass: 'italic'}, - {c: 'B', ic: 0.0502, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'C', ic: 0.0715, krn: {'61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, - {c: 'D', ic: 0.0278, krn: {'127': 0.0556}, tclass: 'italic'}, - {c: 'E', ic: 0.0576, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'F', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}, tclass: 'italic'}, - {c: 'G', krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'H', ic: 0.0812, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'italic'}, - {c: 'I', ic: 0.0785, krn: {'127': 0.111}, tclass: 'italic'}, - {c: 'J', ic: 0.0962, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.167}, tclass: 'italic'}, - {c: 'K', ic: 0.0715, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'italic'}, - {c: 'L', krn: {'127': 0.0278}, tclass: 'italic'}, - {c: 'M', ic: 0.109, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, - {c: 'N', ic: 0.109, krn: {'61': -0.0833, '61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, - {c: 'O', ic: 0.0278, krn: {'127': 0.0833}, tclass: 'italic'}, - // 50 - 5F - {c: 'P', ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}, tclass: 'italic'}, - {c: 'Q', d:.2, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'R', ic: 0.00773, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'S', ic: 0.0576, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, - {c: 'T', ic: 0.139, krn: {'61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, - {c: 'U', ic: 0.109, krn: {'59': -0.111, '58': -0.111, '61': -0.0556, '127': 0.0278}, tclass: 'italic'}, - {c: 'V', ic: 0.222, krn: {'59': -0.167, '58': -0.167, '61': -0.111}, tclass: 'italic'}, - {c: 'W', ic: 0.139, krn: {'59': -0.167, '58': -0.167, '61': -0.111}, tclass: 'italic'}, - {c: 'X', ic: 0.0785, krn: {'61': -0.0833, '61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, - {c: 'Y', ic: 0.222, krn: {'59': -0.167, '58': -0.167, '61': -0.111}, tclass: 'italic'}, - {c: 'Z', ic: 0.0715, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}, tclass: 'italic'}, - {c: '♭', tclass: 'symbol2'}, - {c: '♮', tclass: 'symbol2'}, - {c: '♯', tclass: 'symbol2'}, - {c: '⌣', a:0, d:-.1, tclass: 'normal'}, - {c: '⌢', a:0, d:-.1, tclass: 'normal'}, - // 60 - 6F - {c: 'ℓ', krn: {'127': 0.111}, tclass: 'symbol'}, - {c: 'a', a:0, tclass: 'italic'}, - {c: 'b', tclass: 'italic'}, - {c: 'c', a:0, krn: {'127': 0.0556}, tclass: 'italic'}, - {c: 'd', krn: {'89': 0.0556, '90': -0.0556, '106': -0.111, '102': -0.167, '127': 0.167}, tclass: 'italic'}, - {c: 'e', a:0, krn: {'127': 0.0556}, tclass: 'italic'}, - {c: 'f', d:.2, ic: 0.108, krn: {'59': -0.0556, '58': -0.0556, '127': 0.167}, tclass: 'italic'}, - {c: 'g', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0278}, tclass: 'italic'}, - {c: 'h', krn: {'127': -0.0278}, tclass: 'italic'}, - {c: 'i', tclass: 'italic'}, - {c: 'j', d:.2, ic: 0.0572, krn: {'59': -0.0556, '58': -0.0556}, tclass: 'italic'}, - {c: 'k', ic: 0.0315, tclass: 'italic'}, - {c: 'l', ic: 0.0197, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'm', a:0, tclass: 'italic'}, - {c: 'n', a:0, tclass: 'italic'}, - {c: 'o', a:0, krn: {'127': 0.0556}, tclass: 'italic'}, - // 70 - 7F - {c: 'p', a:0, d:.2, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'q', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'r', a:0, ic: 0.0278, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0556}, tclass: 'italic'}, - {c: 's', a:0, krn: {'127': 0.0556}, tclass: 'italic'}, - {c: 't', krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'u', a:0, krn: {'127': 0.0278}, tclass: 'italic'}, - {c: 'v', a:0, ic: 0.0359, krn: {'127': 0.0278}, tclass: 'italic'}, - {c: 'w', a:0, ic: 0.0269, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: 'x', a:0, krn: {'127': 0.0278}, tclass: 'italic'}, - {c: 'y', a:0, d:.2, ic: 0.0359, krn: {'127': 0.0556}, tclass: 'italic'}, - {c: 'z', a:0, ic: 0.044, krn: {'127': 0.0556}, tclass: 'italic'}, - {c: 'ı', a:0, krn: {'127': 0.0278}, tclass: 'italic'}, - {c: 'j', d:.2, krn: {'127': 0.0833}, tclass: 'italic'}, - {c: '℘', a:0, d:.2, krn: {'127': 0.111}, tclass: 'normal'}, - {c: '', ic: 0.154, tclass: 'symbol'}, - {c: '̑', ic: 0.399, tclass: 'normal'} - ], - - cmsy10: [ - // 00 - 0F - {c: '−', a:.1, tclass: 'symbol'}, - {c: '·', a:0, d:-.2, tclass: 'symbol'}, - {c: '×', a:0, tclass: 'symbol'}, - {c: '*', a:0, tclass: 'symbol'}, - {c: '÷', a:0, tclass: 'symbol'}, - {c: '◊', tclass: 'symbol'}, - {c: '±', a:.1, tclass: 'symbol'}, - {c: '∓', tclass: 'symbol'}, - {c: '⊕', tclass: 'symbol'}, - {c: '⊖', tclass: 'symbol'}, - {c: '⊗', tclass: 'symbol'}, - {c: '⊘', tclass: 'symbol'}, - {c: '⊙', tclass: 'symbol'}, - {c: '◯', tclass: 'symbol'}, - {c: '°', a:0, d:-.1, tclass: 'symbol'}, - {c: '•', a:0, d:-.2, tclass: 'symbol'}, - // 10 - 1F - {c: '≍', a:.1, tclass: 'symbol'}, - {c: '≡', a:.1, tclass: 'symbol'}, - {c: '⊆', tclass: 'symbol'}, - {c: '⊇', tclass: 'symbol'}, - {c: '≤', tclass: 'symbol'}, - {c: '≥', tclass: 'symbol'}, - {c: '≼', tclass: 'symbol'}, - {c: '≽', tclass: 'symbol'}, - {c: '~', a:0, d: -.2, tclass: 'normal'}, - {c: '≈', a:.1, d:-.1, tclass: 'symbol'}, - {c: '⊂', tclass: 'symbol'}, - {c: '⊃', tclass: 'symbol'}, - {c: '≪', tclass: 'symbol'}, - {c: '≫', tclass: 'symbol'}, - {c: '≺', tclass: 'symbol'}, - {c: '≻', tclass: 'symbol'}, - // 20 - 2F - {c: '←', a:0, d:-.15, tclass: 'arrows'}, - {c: '→', a:0, d:-.15, tclass: 'arrows'}, - {c: '↑', h:1, tclass: 'arrows'}, - {c: '↓', h:1, tclass: 'arrows'}, - {c: '↔', a:0, tclass: 'arrows'}, - {c: '↗', h:1, tclass: 'arrows'}, - {c: '↘', h:1, tclass: 'arrows'}, - {c: '≃', a: .1, tclass: 'symbol'}, - {c: '⇐', a:.1, tclass: 'arrows'}, - {c: '⇒', a:.1, tclass: 'arrows'}, - {c: '⇑', h:.9, d:.1, tclass: 'arrows'}, - {c: '⇓', h:.9, d:.1, tclass: 'arrows'}, - {c: '⇔', a:.1, tclass: 'arrows'}, - {c: '↖', h:1, tclass: 'arrows'}, - {c: '↙', h:1, tclass: 'arrows'}, - {c: '∝', a:.1, tclass: 'symbol'}, - // 30 - 3F - {c: '', a: 0, tclass: 'symbol'}, - {c: '∞', a:.1, tclass: 'symbol'}, - {c: '∈', tclass: 'symbol'}, - {c: '∋', tclass: 'symbol'}, - {c: '△', tclass: 'symbol'}, - {c: '▽', tclass: 'symbol'}, - {c: '/', tclass: 'symbol'}, - {c: '|', a:0, tclass: 'normal'}, - {c: '∀', tclass: 'symbol'}, - {c: '∃', tclass: 'symbol'}, - {c: '¬', a:0, d:-.1, tclass: 'symbol1'}, - {c: '∅', tclass: 'symbol'}, - {c: 'ℜ', tclass: 'symbol'}, - {c: 'ℑ', tclass: 'symbol'}, - {c: '⊤', tclass: 'symbol'}, - {c: '⊥', tclass: 'symbol'}, - // 40 - 4F - {c: 'ℵ', tclass: 'symbol'}, - {c: 'A', krn: {'48': 0.194}, tclass: 'cal'}, - {c: 'B', ic: 0.0304, krn: {'48': 0.139}, tclass: 'cal'}, - {c: 'C', ic: 0.0583, krn: {'48': 0.139}, tclass: 'cal'}, - {c: 'D', ic: 0.0278, krn: {'48': 0.0833}, tclass: 'cal'}, - {c: 'E', ic: 0.0894, krn: {'48': 0.111}, tclass: 'cal'}, - {c: 'F', ic: 0.0993, krn: {'48': 0.111}, tclass: 'cal'}, - {c: 'G', d:.2, ic: 0.0593, krn: {'48': 0.111}, tclass: 'cal'}, - {c: 'H', ic: 0.00965, krn: {'48': 0.111}, tclass: 'cal'}, - {c: 'I', ic: 0.0738, krn: {'48': 0.0278}, tclass: 'cal'}, - {c: 'J', d:.2, ic: 0.185, krn: {'48': 0.167}, tclass: 'cal'}, - {c: 'K', ic: 0.0144, krn: {'48': 0.0556}, tclass: 'cal'}, - {c: 'L', krn: {'48': 0.139}, tclass: 'cal'}, - {c: 'M', krn: {'48': 0.139}, tclass: 'cal'}, - {c: 'N', ic: 0.147, krn: {'48': 0.0833}, tclass: 'cal'}, - {c: 'O', ic: 0.0278, krn: {'48': 0.111}, tclass: 'cal'}, - // 50 - 5F - {c: 'P', ic: 0.0822, krn: {'48': 0.0833}, tclass: 'cal'}, - {c: 'Q', d:.2, krn: {'48': 0.111}, tclass: 'cal'}, - {c: 'R', krn: {'48': 0.0833}, tclass: 'cal'}, - {c: 'S', ic: 0.075, krn: {'48': 0.139}, tclass: 'cal'}, - {c: 'T', ic: 0.254, krn: {'48': 0.0278}, tclass: 'cal'}, - {c: 'U', ic: 0.0993, krn: {'48': 0.0833}, tclass: 'cal'}, - {c: 'V', ic: 0.0822, krn: {'48': 0.0278}, tclass: 'cal'}, - {c: 'W', ic: 0.0822, krn: {'48': 0.0833}, tclass: 'cal'}, - {c: 'X', ic: 0.146, krn: {'48': 0.139}, tclass: 'cal'}, - {c: 'Y', ic: 0.0822, krn: {'48': 0.0833}, tclass: 'cal'}, - {c: 'Z', ic: 0.0794, krn: {'48': 0.139}, tclass: 'cal'}, - {c: '⋃', tclass: 'symbol'}, - {c: '⋂', tclass: 'symbol'}, - {c: '⊎', tclass: 'symbol'}, - {c: '⋀', tclass: 'symbol'}, - {c: '⋁', tclass: 'symbol'}, - // 60 - 6F - {c: '⊢', tclass: 'symbol'}, - {c: '⊣', tclass: 'symbol2'}, - {c: '', a:.3, d:.2, tclass: 'normal'}, - {c: '', a:.3, d:.2, tclass: 'normal'}, - {c: '', a:.3, d:.2, tclass: 'normal'}, - {c: '', a:.3, d:.2, tclass: 'normal'}, - {c: '{', d:.2, tclass: 'normal'}, - {c: '}', d:.2, tclass: 'normal'}, - {c: '〈', a:.3, d:.2, tclass: 'normal'}, - {c: '〉', a:.3, d:.2, tclass: 'normal'}, - {c: '|', d:.1, tclass: 'vertical'}, - {c: '||', d:0, tclass: 'vertical'}, - {c: '↕', h:1, d:.15, tclass: 'arrows'}, - {c: '⇕', a:.2, d:.1, tclass: 'arrows'}, - {c: '∖', a:.3, d:.1, tclass: 'normal'}, - {c: '≀', tclass: 'symbol'}, - // 70 - 7F - {c: '', h:.04, d:.9, tclass: 'normal'}, - {c: '∐', a:.4, tclass: 'symbol'}, - {c: '∇', tclass: 'symbol'}, - {c: '∫', h:1, d:.1, ic: 0.111, tclass: 'root'}, - {c: '⊔', tclass: 'symbol'}, - {c: '⊓', tclass: 'symbol'}, - {c: '⊑', tclass: 'symbol'}, - {c: '⊒', tclass: 'symbol'}, - {c: '§', d:.1, tclass: 'normal'}, - {c: '†', d:.1, tclass: 'normal'}, - {c: '‡', d:.1, tclass: 'normal'}, - {c: '¶', a:.3, d:.1, tclass: 'normal'}, - {c: '♣', tclass: 'symbol'}, - {c: '♦', tclass: 'symbol'}, - {c: '♥', tclass: 'symbol'}, - {c: '♠', tclass: 'symbol'} - ], - - cmex10: [ - // 00 - 0F - {c: '(', h: 0.04, d: 1.16, n: 16, tclass: 'delim1'}, - {c: ')', h: 0.04, d: 1.16, n: 17, tclass: 'delim1'}, - {c: '[', h: 0.04, d: 1.16, n: 104, tclass: 'delim1'}, - {c: ']', h: 0.04, d: 1.16, n: 105, tclass: 'delim1'}, - {c: '', h: 0.04, d: 1.16, n: 106, tclass: 'delim1'}, - {c: '', h: 0.04, d: 1.16, n: 107, tclass: 'delim1'}, - {c: '', h: 0.04, d: 1.16, n: 108, tclass: 'delim1'}, - {c: '', h: 0.04, d: 1.16, n: 109, tclass: 'delim1'}, - {c: '{', h: 0.04, d: 1.16, n: 110, tclass: 'delim1'}, - {c: '}', h: 0.04, d: 1.16, n: 111, tclass: 'delim1'}, - {c: '〈', h: 0.04, d: 1.16, n: 68, tclass: 'delim1c'}, - {c: '〉', h: 0.04, d: 1.16, n: 69, tclass: 'delim1c'}, - {c: '|', h:.7, d:0, delim: {rep: 12}, tclass: 'vertical'}, - {c: '||', h:.7, d:0, delim: {rep: 13}, tclass: 'vertical'}, - {c: '/', h: 0.04, d: 1.16, n: 46, tclass: 'delim1b'}, - {c: '∖', h: 0.04, d: 1.16, n: 47, tclass: 'delim1b'}, - // 10 - 1F - {c: '(', h: 0.04, d: 1.76, n: 18, tclass: 'delim2'}, - {c: ')', h: 0.04, d: 1.76, n: 19, tclass: 'delim2'}, - {c: '(', h: 0.04, d: 2.36, n: 32, tclass: 'delim3'}, - {c: ')', h: 0.04, d: 2.36, n: 33, tclass: 'delim3'}, - {c: '[', h: 0.04, d: 2.36, n: 34, tclass: 'delim3'}, - {c: ']', h: 0.04, d: 2.36, n: 35, tclass: 'delim3'}, - {c: '', h: 0.04, d: 2.36, n: 36, tclass: 'delim3'}, - {c: '', h: 0.04, d: 2.36, n: 37, tclass: 'delim3'}, - {c: '', h: 0.04, d: 2.36, n: 38, tclass: 'delim3'}, - {c: '', h: 0.04, d: 2.36, n: 39, tclass: 'delim3'}, - {c: '{', h: 0.04, d: 2.36, n: 40, tclass: 'delim3'}, - {c: '}', h: 0.04, d: 2.36, n: 41, tclass: 'delim3'}, - {c: '〈', h: 0.04, d: 2.36, n: 42, tclass: 'delim3c'}, - {c: '〉', h: 0.04, d: 2.36, n: 43, tclass: 'delim3c'}, - {c: '/', h: 0.04, d: 2.36, n: 44, tclass: 'delim3b'}, - {c: '∖', h: 0.04, d: 2.36, n: 45, tclass: 'delim3b'}, - // 20 - 2F - {c: '(', h: 0.04, d: 2.96, n: 48, tclass: 'delim4'}, - {c: ')', h: 0.04, d: 2.96, n: 49, tclass: 'delim4'}, - {c: '[', h: 0.04, d: 2.96, n: 50, tclass: 'delim4'}, - {c: ']', h: 0.04, d: 2.96, n: 51, tclass: 'delim4'}, - {c: '', h: 0.04, d: 2.96, n: 52, tclass: 'delim4'}, - {c: '', h: 0.04, d: 2.96, n: 53, tclass: 'delim4'}, - {c: '', h: 0.04, d: 2.96, n: 54, tclass: 'delim4'}, - {c: '', h: 0.04, d: 2.96, n: 55, tclass: 'delim4'}, - {c: '{', h: 0.04, d: 2.96, n: 56, tclass: 'delim4'}, - {c: '}', h: 0.04, d: 2.96, n: 57, tclass: 'delim4'}, - {c: '〈', h: 0.04, d: 2.96, tclass: 'delim4c'}, - {c: '〉', h: 0.04, d: 2.96, tclass: 'delim4c'}, - {c: '/', h: 0.04, d: 2.96, tclass: 'delim4b'}, - {c: '∖', h: 0.04, d: 2.96, tclass: 'delim4b'}, - {c: '/', h: 0.04, d: 1.76, n: 30, tclass: 'delim2b'}, - {c: '∖', h: 0.04, d: 1.76, n: 31, tclass: 'delim2b'}, - // 30 - 3F - {c: '', h: .8, d: .15, delim: {top: 48, bot: 64, rep: 66}, tclass: 'delim'}, - {c: '', h: .8, d: .15, delim: {top: 49, bot: 65, rep: 67}, tclass: 'delim'}, - {c: '', h: .8, d: .15, delim: {top: 50, bot: 52, rep: 54}, tclass: 'delim'}, - {c: '', h: .8, d: .15, delim: {top: 51, bot: 53, rep: 55}, tclass: 'delim'}, - {c: '', h: .8, d: .15, delim: {bot: 52, rep: 54}, tclass: 'delim'}, - {c: '', h: .8, d: .15, delim: {bot: 53, rep: 55}, tclass: 'delim'}, - {c: '', h: .8, d: .15, delim: {top: 50, rep: 54}, tclass: 'delim'}, - {c: '', h: .8, d: .15, delim: {top: 51, rep: 55}, tclass: 'delim'}, - {c: '', h: .8, d: .15, delim: {top: 56, mid: 60, bot: 58, rep: 62}, tclass: 'delim'}, - {c: '', h: .8, d: .15, delim: {top: 57, mid: 61, bot: 59, rep: 62}, tclass: 'delim'}, - {c: '', h: .8, d: .15, delim: {top: 56, bot: 58, rep: 62}, tclass: 'delim'}, - {c: '', h: .8, d: .15, delim: {top: 57, bot: 59, rep: 62}, tclass: 'delim'}, - {c: '', h: .8, d: .15, delim: {rep: 63}, tclass: 'delim'}, - {c: '', h: .8, d: .15, delim: {rep: 119}, tclass: 'delim'}, - {c: '', h: .8, d: .15, delim: {rep: 62}, tclass: 'delim'}, - {c: '|', h: .65, d: 0, delim: {top: 120, bot: 121, rep: 63}, tclass: 'vertical'}, - // 40 - 4F - {c: '', h: .8, d: .15, delim: {top: 56, bot: 59, rep: 62}, tclass: 'delim'}, - {c: '', h: .8, d: .15, delim: {top: 57, bot: 58, rep: 62}, tclass: 'delim'}, - {c: '', h: .8, d: .15, delim: {rep: 66}, tclass: 'delim'}, - {c: '', h: .8, d: .15, delim: {rep: 67}, tclass: 'delim'}, - {c: '〈', h: 0.04, d: 1.76, n: 28, tclass: 'delim2c'}, - {c: '〉', h: 0.04, d: 1.76, n: 29, tclass: 'delim2c'}, - {c: '⊔', h: 0, d: 1, n: 71, tclass: 'bigop1'}, - {c: '⊔', h: 0.1, d: 1.5, tclass: 'bigop2'}, - {c: '∮', h: 0, d: 1.11, ic: 0.095, n: 73, tclass: 'bigop1c'}, - {c: '∮', h: 0, d: 2.22, ic: 0.222, tclass: 'bigop2c'}, - {c: '⊙', h: 0, d: 1, n: 75, tclass: 'bigop1'}, - {c: '⊙', h: 0.1, d: 1.5, tclass: 'bigop2'}, - {c: '⊕', h: 0, d: 1, n: 77, tclass: 'bigop1'}, - {c: '⊕', h: 0.1, d: 1.5, tclass: 'bigop2'}, - {c: '⊗', h: 0, d: 1, n: 79, tclass: 'bigop1'}, - {c: '⊗', h: 0.1, d: 1.5, tclass: 'bigop2'}, - // 50 - 5F - {c: '∑', h: 0, d: 1, n: 88, tclass: 'bigop1a'}, - {c: '∏', h: 0, d: 1, n: 89, tclass: 'bigop1a'}, - {c: '∫', h: 0, d: 1.11, ic: 0.095, n: 90, tclass: 'bigop1c'}, - {c: '∪', h: 0, d: 1, n: 91, tclass: 'bigop1b'}, - {c: '∩', h: 0, d: 1, n: 92, tclass: 'bigop1b'}, - {c: '⊎', h: 0, d: 1, n: 93, tclass: 'bigop1b'}, - {c: '∧', h: 0, d: 1, n: 94, tclass: 'bigop1'}, - {c: '∨', h: 0, d: 1, n: 95, tclass: 'bigop1'}, - {c: '∑', h: 0.1, d: 1.6, tclass: 'bigop2a'}, - {c: '∏', h: 0.1, d: 1.5, tclass: 'bigop2a'}, - {c: '∫', h: 0, d: 2.22, ic: 0.222, tclass: 'bigop2c'}, - {c: '∪', h: 0.1, d: 1.5, tclass: 'bigop2b'}, - {c: '∩', h: 0.1, d: 1.5, tclass: 'bigop2b'}, - {c: '⊎', h: 0.1, d: 1.5, tclass: 'bigop2b'}, - {c: '∧', h: 0.1, d: 1.5, tclass: 'bigop2'}, - {c: '∨', h: 0.1, d: 1.5, tclass: 'bigop2'}, - // 60 - 6F - {c: '∐', h: 0, d: 1, n: 97, tclass: 'bigop1a'}, - {c: '∐', h: 0.1, d: 1.5, tclass: 'bigop2a'}, - {c: '︿', h: 0.722, w: .65, n: 99, tclass: 'wide1'}, - {c: '︿', h: 0.85, w: 1.1, n: 100, tclass: 'wide2'}, - {c: '︿', h: 0.99, w: 1.65, tclass: 'wide3'}, - {c: '⁓', h: 0.722, w: .75, n: 102, tclass: 'wide1a'}, - {c: '⁓', h: 0.8, w: 1.35, n: 103, tclass: 'wide2a'}, - {c: '⁓', h: 0.99, w: 2, tclass: 'wide3a'}, - {c: '[', h: 0.04, d: 1.76, n: 20, tclass: 'delim2'}, - {c: ']', h: 0.04, d: 1.76, n: 21, tclass: 'delim2'}, - {c: '', h: 0.04, d: 1.76, n: 22, tclass: 'delim2'}, - {c: '', h: 0.04, d: 1.76, n: 23, tclass: 'delim2'}, - {c: '', h: 0.04, d: 1.76, n: 24, tclass: 'delim2'}, - {c: '', h: 0.04, d: 1.76, n: 25, tclass: 'delim2'}, - {c: '{', h: 0.04, d: 1.76, n: 26, tclass: 'delim2'}, - {c: '}', h: 0.04, d: 1.76, n: 27, tclass: 'delim2'}, - // 70 - 7F - {c: '', h: 0.04, d: 1.16, n: 113, tclass: 'root'}, - {c: '', h: 0.04, d: 1.76, n: 114, tclass: 'root'}, - {c: '', h: 0.06, d: 2.36, n: 115, tclass: 'root'}, - {c: '', h: 0.08, d: 2.96, n: 116, tclass: 'root'}, - {c: '', h: 0.1, d: 3.75, n: 117, tclass: 'root'}, - {c: '', h: .12, d: 4.5, n: 118, tclass: 'root'}, - {c: '', h: .14, d: 5.7, tclass: 'root'}, - {c: '||', h:.65, d:0, delim: {top: 126, bot: 127, rep: 119}, tclass: 'vertical'}, - {c: '▵', h:.45, delim: {top: 120, rep: 63}, tclass: 'arrow1'}, - {c: '▿', h:.45, delim: {bot: 121, rep: 63}, tclass: 'arrow1'}, - {c: '', h:.1, tclass: 'symbol'}, - {c: '', h:.1, tclass: 'symbol'}, - {c: '', h:.1, tclass: 'symbol'}, - {c: '', h:.1, tclass: 'symbol'}, - {c: '▵', h:.5, delim: {top: 126, rep: 119}, tclass: 'arrow2'}, - {c: '▿', h:.5, delim: {bot: 127, rep: 119}, tclass: 'arrow2'} - ], - - cmti10: [ - // 00 - 0F - {c: 'Γ', ic: 0.133, tclass: 'igreek'}, - {c: 'Δ', tclass: 'igreek'}, - {c: 'Θ', ic: 0.094, tclass: 'igreek'}, - {c: 'Λ', tclass: 'igreek'}, - {c: 'Ξ', ic: 0.153, tclass: 'igreek'}, - {c: 'Π', ic: 0.164, tclass: 'igreek'}, - {c: 'Σ', ic: 0.12, tclass: 'igreek'}, - {c: 'Υ', ic: 0.111, tclass: 'igreek'}, - {c: 'Φ', ic: 0.0599, tclass: 'igreek'}, - {c: 'Ψ', ic: 0.111, tclass: 'igreek'}, - {c: 'Ω', ic: 0.103, tclass: 'igreek'}, - {c: 'ff', ic: 0.212, krn: {'39': 0.104, '63': 0.104, '33': 0.104, '41': 0.104, '93': 0.104}, lig: {'105': 14, '108': 15}, tclass: 'italic'}, - {c: 'fi', ic: 0.103, tclass: 'italic'}, - {c: 'fl', ic: 0.103, tclass: 'italic'}, - {c: 'ffi', ic: 0.103, tclass: 'italic'}, - {c: 'ffl', ic: 0.103, tclass: 'italic'}, - // 10 - 1F - {c: 'ı', a:0, ic: 0.0767, tclass: 'italic'}, - {c: 'j', d:.2, ic: 0.0374, tclass: 'italic'}, - {c: '`', tclass: 'iaccent'}, - {c: '´', ic: 0.0969, tclass: 'iaccent'}, - {c: 'ˇ', ic: 0.083, tclass: 'iaccent'}, - {c: '˘', ic: 0.108, tclass: 'iaccent'}, - {c: 'ˉ', ic: 0.103, tclass: 'iaccent'}, - {c: '˚', tclass: 'iaccent'}, - {c: '?', d: 0.17, w: 0.46, tclass: 'italic'}, - {c: 'ß', ic: 0.105, tclass: 'italic'}, - {c: 'æ', a:0, ic: 0.0751, tclass: 'italic'}, - {c: 'œ', a:0, ic: 0.0751, tclass: 'italic'}, - {c: 'ø', ic: 0.0919, tclass: 'italic'}, - {c: 'Æ', ic: 0.12, tclass: 'italic'}, - {c: 'Œ', ic: 0.12, tclass: 'italic'}, - {c: 'Ø', ic: 0.094, tclass: 'italic'}, - // 20 - 2F - {c: '?', krn: {'108': -0.256, '76': -0.321}, tclass: 'italic'}, - {c: '!', ic: 0.124, lig: {'96': 60}, tclass: 'italic'}, - {c: '”', ic: 0.0696, tclass: 'italic'}, - {c: '#', ic: 0.0662, tclass: 'italic'}, - {c: '$', tclass: 'italic'}, - {c: '%', ic: 0.136, tclass: 'italic'}, - {c: '&', ic: 0.0969, tclass: 'italic'}, - {c: '’', ic: 0.124, krn: {'63': 0.102, '33': 0.102}, lig: {'39': 34}, tclass: 'italic'}, - {c: '(', d:.2, ic: 0.162, tclass: 'italic'}, - {c: ')', d:.2, ic: 0.0369, tclass: 'italic'}, - {c: '*', ic: 0.149, tclass: 'italic'}, - {c: '+', a:.1, ic: 0.0369, tclass: 'italic'}, - {c: ',', a:-.3, d:.2, w: 0.278, tclass: 'italic'}, - {c: '-', a:0, ic: 0.0283, lig: {'45': 123}, tclass: 'italic'}, - {c: '.', a:-.25, tclass: 'italic'}, - {c: '/', ic: 0.162, tclass: 'italic'}, - // 30 - 3F - {c: '0', ic: 0.136, tclass: 'italic'}, - {c: '1', ic: 0.136, tclass: 'italic'}, - {c: '2', ic: 0.136, tclass: 'italic'}, - {c: '3', ic: 0.136, tclass: 'italic'}, - {c: '4', ic: 0.136, tclass: 'italic'}, - {c: '5', ic: 0.136, tclass: 'italic'}, - {c: '6', ic: 0.136, tclass: 'italic'}, - {c: '7', ic: 0.136, tclass: 'italic'}, - {c: '8', ic: 0.136, tclass: 'italic'}, - {c: '9', ic: 0.136, tclass: 'italic'}, - {c: ':', ic: 0.0582, tclass: 'italic'}, - {c: ';', ic: 0.0582, tclass: 'italic'}, - {c: '¡', ic: 0.0756, tclass: 'italic'}, - {c: '=', a:0, d:-.1, ic: 0.0662, tclass: 'italic'}, - {c: '¿', tclass: 'italic'}, - {c: '?', ic: 0.122, lig: {'96': 62}, tclass: 'italic'}, - // 40 - 4F - {c: '@', ic: 0.096, tclass: 'italic'}, - {c: 'A', krn: {'110': -0.0256, '108': -0.0256, '114': -0.0256, '117': -0.0256, '109': -0.0256, '116': -0.0256, '105': -0.0256, '67': -0.0256, '79': -0.0256, '71': -0.0256, '104': -0.0256, '98': -0.0256, '85': -0.0256, '107': -0.0256, '118': -0.0256, '119': -0.0256, '81': -0.0256, '84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - {c: 'B', ic: 0.103, tclass: 'italic'}, - {c: 'C', ic: 0.145, tclass: 'italic'}, - {c: 'D', ic: 0.094, krn: {'88': -0.0256, '87': -0.0256, '65': -0.0256, '86': -0.0256, '89': -0.0256}, tclass: 'italic'}, - {c: 'E', ic: 0.12, tclass: 'italic'}, - {c: 'F', ic: 0.133, krn: {'111': -0.0767, '101': -0.0767, '117': -0.0767, '114': -0.0767, '97': -0.0767, '65': -0.102, '79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}, tclass: 'italic'}, - {c: 'G', ic: 0.0872, tclass: 'italic'}, - {c: 'H', ic: 0.164, tclass: 'italic'}, - {c: 'I', ic: 0.158, tclass: 'italic'}, - {c: 'J', ic: 0.14, tclass: 'italic'}, - {c: 'K', ic: 0.145, krn: {'79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}, tclass: 'italic'}, - {c: 'L', krn: {'84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - {c: 'M', ic: 0.164, tclass: 'italic'}, - {c: 'N', ic: 0.164, tclass: 'italic'}, - {c: 'O', ic: 0.094, krn: {'88': -0.0256, '87': -0.0256, '65': -0.0256, '86': -0.0256, '89': -0.0256}, tclass: 'italic'}, - // 50 - 5F - {c: 'P', ic: 0.103, krn: {'65': -0.0767}, tclass: 'italic'}, - {c: 'Q', d: 1, ic: 0.094, tclass: 'italic'}, - {c: 'R', ic: 0.0387, krn: {'110': -0.0256, '108': -0.0256, '114': -0.0256, '117': -0.0256, '109': -0.0256, '116': -0.0256, '105': -0.0256, '67': -0.0256, '79': -0.0256, '71': -0.0256, '104': -0.0256, '98': -0.0256, '85': -0.0256, '107': -0.0256, '118': -0.0256, '119': -0.0256, '81': -0.0256, '84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - {c: 'S', ic: 0.12, tclass: 'italic'}, - {c: 'T', ic: 0.133, krn: {'121': -0.0767, '101': -0.0767, '111': -0.0767, '114': -0.0767, '97': -0.0767, '117': -0.0767, '65': -0.0767}, tclass: 'italic'}, - {c: 'U', ic: 0.164, tclass: 'italic'}, - {c: 'V', ic: 0.184, krn: {'111': -0.0767, '101': -0.0767, '117': -0.0767, '114': -0.0767, '97': -0.0767, '65': -0.102, '79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}, tclass: 'italic'}, - {c: 'W', ic: 0.184, krn: {'65': -0.0767}, tclass: 'italic'}, - {c: 'X', ic: 0.158, krn: {'79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}, tclass: 'italic'}, - {c: 'Y', ic: 0.194, krn: {'101': -0.0767, '111': -0.0767, '114': -0.0767, '97': -0.0767, '117': -0.0767, '65': -0.0767}, tclass: 'italic'}, - {c: 'Z', ic: 0.145, tclass: 'italic'}, - {c: '[', d:.1, ic: 0.188, tclass: 'italic'}, - {c: '“', ic: 0.169, tclass: 'italic'}, - {c: ']', d:.1, ic: 0.105, tclass: 'italic'}, - {c: 'ˆ', ic: 0.0665, tclass: 'iaccent'}, - {c: '˙', ic: 0.118, tclass: 'iaccent'}, - // 60 - 6F - {c: '‘', ic: 0.124, lig: {'96': 92}, tclass: 'italic'}, - {c: 'a', a:0, ic: 0.0767, tclass: 'italic'}, - {c: 'b', ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - {c: 'c', a:0, ic: 0.0565, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - {c: 'd', ic: 0.103, krn: {'108': 0.0511}, tclass: 'italic'}, - {c: 'e', a:0, ic: 0.0751, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - {c: 'f', ic: 0.212, krn: {'39': 0.104, '63': 0.104, '33': 0.104, '41': 0.104, '93': 0.104}, lig: {'105': 12, '102': 11, '108': 13}, tclass: 'italic'}, - {c: 'g', a:0, d:.2, ic: 0.0885, tclass: 'italic'}, - {c: 'h', ic: 0.0767, tclass: 'italic'}, - {c: 'i', ic: 0.102, tclass: 'italic'}, - {c: 'j', d:.2, ic: 0.145, tclass: 'italic'}, - {c: 'k', ic: 0.108, tclass: 'italic'}, - {c: 'l', ic: 0.103, krn: {'108': 0.0511}, tclass: 'italic'}, - {c: 'm', a:0, ic: 0.0767, tclass: 'italic'}, - {c: 'n', a:0, ic: 0.0767, krn: {'39': -0.102}, tclass: 'italic'}, - {c: 'o', a:0, ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - // 70 - 7F - {c: 'p', a:0, d:.2, ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - {c: 'q', a:0, d:.2, ic: 0.0885, tclass: 'italic'}, - {c: 'r', a:0, ic: 0.108, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}, tclass: 'italic'}, - {c: 's', a:0, ic: 0.0821, tclass: 'italic'}, - {c: 't', ic: 0.0949, tclass: 'italic'}, - {c: 'u', a:0, ic: 0.0767, tclass: 'italic'}, - {c: 'v', a:0, ic: 0.108, tclass: 'italic'}, - {c: 'w', a:0, ic: 0.108, krn: {'108': 0.0511}, tclass: 'italic'}, - {c: 'x', a:0, ic: 0.12, tclass: 'italic'}, - {c: 'y', a:0, d:.2, ic: 0.0885, tclass: 'italic'}, - {c: 'z', a:0, ic: 0.123, tclass: 'italic'}, - {c: '–', a:.1, ic: 0.0921, lig: {'45': 124}, tclass: 'italic'}, - {c: '—', a:.1, ic: 0.0921, tclass: 'italic'}, - {c: '˝', ic: 0.122, tclass: 'iaccent'}, - {c: '˜', ic: 0.116, tclass: 'iaccent'}, - {c: '¨', tclass: 'iaccent'} - ], - - cmbx10: [ - // 00 - 0F - {c: 'Γ', tclass: 'bgreek'}, - {c: 'Δ', tclass: 'bgreek'}, - {c: 'Θ', tclass: 'bgreek'}, - {c: 'Λ', tclass: 'bgreek'}, - {c: 'Ξ', tclass: 'bgreek'}, - {c: 'Π', tclass: 'bgreek'}, - {c: 'Σ', tclass: 'bgreek'}, - {c: 'Υ', tclass: 'bgreek'}, - {c: 'Φ', tclass: 'bgreek'}, - {c: 'Ψ', tclass: 'bgreek'}, - {c: 'Ω', tclass: 'bgreek'}, - {c: 'ff', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 14, '108': 15}, tclass: 'bold'}, - {c: 'fi', tclass: 'bold'}, - {c: 'fl', tclass: 'bold'}, - {c: 'ffi', tclass: 'bold'}, - {c: 'ffl', tclass: 'bold'}, - // 10 - 1F - {c: 'ı', a:0, tclass: 'bold'}, - {c: 'j', d:.2, tclass: 'bold'}, - {c: '`', tclass: 'baccent'}, - {c: '´', tclass: 'baccent'}, - {c: 'ˇ', tclass: 'baccent'}, - {c: '˘', tclass: 'baccent'}, - {c: 'ˉ', tclass: 'baccent'}, - {c: '˚', tclass: 'baccent'}, - {c: '?', tclass: 'bold'}, - {c: 'ß', tclass: 'bold'}, - {c: 'æ', a:0, tclass: 'bold'}, - {c: 'œ', a:0, tclass: 'bold'}, - {c: 'ø', tclass: 'bold'}, - {c: 'Æ', tclass: 'bold'}, - {c: 'Œ', tclass: 'bold'}, - {c: 'Ø', tclass: 'bold'}, - // 20 - 2F - {c: '?', krn: {'108': -0.278, '76': -0.319}, tclass: 'bold'}, - {c: '!', lig: {'96': 60}, tclass: 'bold'}, - {c: '”', tclass: 'bold'}, - {c: '#', tclass: 'bold'}, - {c: '$', tclass: 'bold'}, - {c: '%', tclass: 'bold'}, - {c: '&', tclass: 'bold'}, - {c: '’', krn: {'63': 0.111, '33': 0.111}, lig: {'39': 34}, tclass: 'bold'}, - {c: '(', d:.2, tclass: 'bold'}, - {c: ')', d:.2, tclass: 'bold'}, - {c: '*', tclass: 'bold'}, - {c: '+', a:.1, tclass: 'bold'}, - {c: ',', a:-.3, d:.2, w: 0.278, tclass: 'bold'}, - {c: '-', a:0, lig: {'45': 123}, tclass: 'bold'}, - {c: '.', a:-.25, tclass: 'bold'}, - {c: '/', tclass: 'bold'}, - // 30 - 3F - {c: '0', tclass: 'bold'}, - {c: '1', tclass: 'bold'}, - {c: '2', tclass: 'bold'}, - {c: '3', tclass: 'bold'}, - {c: '4', tclass: 'bold'}, - {c: '5', tclass: 'bold'}, - {c: '6', tclass: 'bold'}, - {c: '7', tclass: 'bold'}, - {c: '8', tclass: 'bold'}, - {c: '9', tclass: 'bold'}, - {c: ':', tclass: 'bold'}, - {c: ';', tclass: 'bold'}, - {c: '¡', tclass: 'bold'}, - {c: '=', a:0, d:-.1, tclass: 'bold'}, - {c: '¿', tclass: 'bold'}, - {c: '?', lig: {'96': 62}, tclass: 'bold'}, - // 40 - 4F - {c: '@', tclass: 'bold'}, - {c: 'A', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'bold'}, - {c: 'B', tclass: 'bold'}, - {c: 'C', tclass: 'bold'}, - {c: 'D', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}, tclass: 'bold'}, - {c: 'E', tclass: 'bold'}, - {c: 'F', krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, - {c: 'G', tclass: 'bold'}, - {c: 'H', tclass: 'bold'}, - {c: 'I', krn: {'73': 0.0278}, tclass: 'bold'}, - {c: 'J', tclass: 'bold'}, - {c: 'K', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, - {c: 'L', krn: {'84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'bold'}, - {c: 'M', tclass: 'bold'}, - {c: 'N', tclass: 'bold'}, - {c: 'O', krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}, tclass: 'bold'}, - // 50 - 5F - {c: 'P', krn: {'65': -0.0833, '111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}, tclass: 'bold'}, - {c: 'Q', d: 1, tclass: 'bold'}, - {c: 'R', krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}, tclass: 'bold'}, - {c: 'S', tclass: 'bold'}, - {c: 'T', krn: {'121': -0.0278, '101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}, tclass: 'bold'}, - {c: 'U', tclass: 'bold'}, - {c: 'V', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, - {c: 'W', ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, - {c: 'X', krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}, tclass: 'bold'}, - {c: 'Y', ic: 0.025, krn: {'101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}, tclass: 'bold'}, - {c: 'Z', tclass: 'bold'}, - {c: '[', d:.1, tclass: 'bold'}, - {c: '“', tclass: 'bold'}, - {c: ']', d:.1, tclass: 'bold'}, - {c: 'ˆ', tclass: 'baccent'}, - {c: '˙', tclass: 'baccent'}, - // 60 - 6F - {c: '‘', lig: {'96': 92}, tclass: 'bold'}, - {c: 'a', a:0, krn: {'118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'bold'}, - {c: 'b', krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'bold'}, - {c: 'c', a:0, krn: {'104': -0.0278, '107': -0.0278}, tclass: 'bold'}, - {c: 'd', tclass: 'bold'}, - {c: 'e', a:0, tclass: 'bold'}, - {c: 'f', ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 12, '102': 11, '108': 13}, tclass: 'bold'}, - {c: 'g', a:0, d:.2, ic: 0.0139, krn: {'106': 0.0278}, tclass: 'bold'}, - {c: 'h', krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'bold'}, - {c: 'i', tclass: 'bold'}, - {c: 'j', d:.2, tclass: 'bold'}, - {c: 'k', krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'bold'}, - {c: 'l', tclass: 'bold'}, - {c: 'm', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'bold'}, - {c: 'n', a:0, krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}, tclass: 'bold'}, - {c: 'o', a:0, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'bold'}, - // 70 - 7F - {c: 'p', a:0, d:.2, krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}, tclass: 'bold'}, - {c: 'q', a:0, d:.2, tclass: 'bold'}, - {c: 'r', a:0, tclass: 'bold'}, - {c: 's', a:0, tclass: 'bold'}, - {c: 't', krn: {'121': -0.0278, '119': -0.0278}, tclass: 'bold'}, - {c: 'u', a:0, krn: {'119': -0.0278}, tclass: 'bold'}, - {c: 'v', a:0, ic: 0.0139, krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'bold'}, - {c: 'w', a:0, ic: 0.0139, krn: {'101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}, tclass: 'bold'}, - {c: 'x', a:0, tclass: 'bold'}, - {c: 'y', a:0, d:.2, ic: 0.0139, krn: {'111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}, tclass: 'bold'}, - {c: 'z', a:0, tclass: 'bold'}, - {c: '–', a:.1, ic: 0.0278, lig: {'45': 124}, tclass: 'bold'}, - {c: '—', a:.1, ic: 0.0278, tclass: 'bold'}, - {c: '˝', tclass: 'baccent'}, - {c: '˜', tclass: 'baccent'}, - {c: '¨', tclass: 'baccent'} - ] -}); - -jsMath.Setup.Styles({ - '.typeset .math': 'font-style: normal', - '.typeset .italic': 'font-style: italic', - '.typeset .bold': 'font-weight: bold', - '.typeset .cmr10': 'font-family: serif', - '.typeset .cal': 'font-family: cursive', - '.typeset .arrows': '', - '.typeset .arrow1': '', - '.typeset .arrow2': '', - '.typeset .harpoon': 'font-size: 125%', - '.typeset .symbol': '', - '.typeset .symbol2': '', - '.typeset .delim1': 'font-size: 133%; position:relative; top:.75em', - '.typeset .delim1b': 'font-size: 133%; position:relative; top:.8em; margin: -.1em', - '.typeset .delim1c': 'font-size: 120%; position:relative; top:.8em;', - '.typeset .delim2': 'font-size: 180%; position:relative; top:.75em', - '.typeset .delim2b': 'font-size: 190%; position:relative; top:.8em; margin: -.1em', - '.typeset .delim2c': 'font-size: 167%; position:relative; top:.8em;', - '.typeset .delim3': 'font-size: 250%; position:relative; top:.725em', - '.typeset .delim3b': 'font-size: 250%; position:relative; top:.8em; margin: -.1em', - '.typeset .delim3c': 'font-size: 240%; position:relative; top:.775em;', - '.typeset .delim4': 'font-size: 325%; position:relative; top:.7em', - '.typeset .delim4b': 'font-size: 325%; position:relative; top:.8em; margin: -.1em', - '.typeset .delim4c': 'font-size: 300%; position:relative; top:.8em;', - '.typeset .delim': '', - '.typeset .vertical': '', - '.typeset .greek': '', - '.typeset .igreek': 'font-style: italic', - '.typeset .bgreek': 'font-weight: bold', - '.typeset .bigop1': 'font-size: 133%; position: relative; top: .85em; margin:-.05em', - '.typeset .bigop1a': 'font-size: 100%; position: relative; top: .775em;', - '.typeset .bigop1b': 'font-size: 160%; position: relative; top: .7em; margin:-.1em', - '.typeset .bigop1c': 'font-size: 125%; position: relative; top: .75em; margin:-.1em;', - '.typeset .bigop2': 'font-size: 200%; position: relative; top: .8em; margin:-.07em', - '.typeset .bigop2a': 'font-size: 175%; position: relative; top: .7em;', - '.typeset .bigop2b': 'font-size: 270%; position: relative; top: .62em; margin:-.1em', - '.typeset .bigop2c': 'font-size: 250%; position: relative; top: .7em; margin:-.17em;', - '.typeset .wide1': 'font-size: 67%; position: relative; top:-.8em', - '.typeset .wide2': 'font-size: 110%; position: relative; top:-.5em', - '.typeset .wide3': 'font-size: 175%; position: relative; top:-.32em', - '.typeset .wide1a': 'font-size: 75%; position: relative; top:-.5em', - '.typeset .wide2a': 'font-size: 133%; position: relative; top: -.15em', - '.typeset .wide3a': 'font-size: 200%; position: relative; top: -.05em', - '.typeset .root': '', - '.typeset .accent': 'position: relative; top: .02em', - '.typeset .iaccent': 'position: relative; top: .02em; font-style: italic', - '.typeset .baccent': 'position: relative; top: .02em; font-weight: bold' -}); - - -jsMath.Setup.Styles(); - -/* - * No access to TeX "not" character, so fake this - */ -jsMath.Macro('not','\\mathrel{\\rlap{\\kern 4mu/}}'); -jsMath.Macro('joinrel','\\mathrel{\\kern-2mu}'); - - -jsMath.Box.DelimExtend = jsMath.Box.DelimExtendRelative; - -jsMath.Box.defaultH = 0.8; diff --git a/literature/static/jsMath/uncompressed/jsMath.js b/literature/static/jsMath/uncompressed/jsMath.js deleted file mode 100644 index 3080cea64..000000000 --- a/literature/static/jsMath/uncompressed/jsMath.js +++ /dev/null @@ -1,6577 +0,0 @@ -/***************************************************************************** - * - * jsMath: Mathematics on the Web - * - * This jsMath package makes it possible to display mathematics in HTML pages - * that are viewable by a wide range of browsers on both the Mac and the IBM PC, - * including browsers that don't process MathML. See - * - * http://www.math.union.edu/locate/jsMath - * - * for the latest version, and for documentation on how to use jsMath. - * - * Copyright 2004-2010 by Davide P. Cervone - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - *****************************************************************************/ - -/* - * Prevent running everything again if this file is loaded twice - */ -if (!window.jsMath || !window.jsMath.loaded) { - -var jsMath_old = window.jsMath; // save user customizations - -// -// debugging routine -// -/* - * function ShowObject (obj,spaces) { - * var s = ''; if (!spaces) {spaces = ""} - * for (var i in obj) { - * if (obj[i] != null) { - * if (typeof(obj[i]) == "object") { - * s += spaces + i + ": {\n" - * + ShowObject(obj[i],spaces + ' ') - * + spaces + "}\n"; - * } else if (typeof(obj[i]) != "function") { - * s += spaces + i + ': ' + obj[i] + "\n"; - * } - * } - * } - * return s; - * } - */ - -/***************************************************************************/ -// -// Check for DOM support -// -if (!document.getElementById || !document.childNodes || !document.createElement) { - alert('The mathematics on this page requires W3C DOM support in its JavaScript. ' - + 'Unfortunately, your browser doesn\'t seem to have this.'); -} else { - -/***************************************************************************/ - -window.jsMath = { - - version: "3.6e", // change this if you edit the file, but don't edit this file - - document: document, // the document loading jsMath - window: window, // the window of the of loading document - - platform: (navigator.platform.match(/Mac/) ? "mac" : - navigator.platform.match(/Win/) ? "pc" : "unix"), - - // Font sizes for \tiny, \small, etc. (must match styles below) - sizes: [50, 60, 70, 85, 100, 120, 144, 173, 207, 249], - - // - // The styles needed for the TeX fonts and other jsMath elements - // - styles: { - '.math': { // unprocessed mathematics - 'font-family': 'serif', - 'font-style': 'normal', - 'font-weight': 'normal' - }, - - '.typeset': { // final typeset mathematics - 'font-family': 'serif', - 'font-style': 'normal', - 'font-weight': 'normal', - 'line-height': 'normal', - 'text-indent': '0px', - 'white-space': 'normal' - }, - - '.typeset .normal': { // \hbox contents style - 'font-family': 'serif', - 'font-style': 'normal', - 'font-weight': 'normal' - }, - - 'div.typeset': { // display mathematics - 'text-align': 'center', - margin: '1em 0px' - }, - - 'span.typeset': { // in-line mathematics - 'text-align': 'left' - }, - - '.typeset span': { // prevent outside CSS from setting these - 'text-align': 'left', - border: '0px', - margin: '0px', - padding: '0px' - }, - - 'a .typeset img, .typeset a img': { // links in image mode - border: '0px', - 'border-bottom': '1px solid blue;' - }, - - // Font sizes - '.typeset .size0': {'font-size': '50%'}, // tiny (\scriptscriptsize) - '.typeset .size1': {'font-size': '60%'}, // (50% of \large for consistency) - '.typeset .size2': {'font-size': '70%'}, // scriptsize - '.typeset .size3': {'font-size': '85%'}, // small (70% of \large for consistency) - '.typeset .size4': {'font-size': '100%'}, // normalsize - '.typeset .size5': {'font-size': '120%'}, // large - '.typeset .size6': {'font-size': '144%'}, // Large - '.typeset .size7': {'font-size': '173%'}, // LARGE - '.typeset .size8': {'font-size': '207%'}, // huge - '.typeset .size9': {'font-size': '249%'}, // Huge - - // TeX fonts - '.typeset .cmr10': {'font-family': 'jsMath-cmr10, serif'}, - '.typeset .cmbx10': {'font-family': 'jsMath-cmbx10, jsMath-cmr10'}, - '.typeset .cmti10': {'font-family': 'jsMath-cmti10, jsMath-cmr10'}, - '.typeset .cmmi10': {'font-family': 'jsMath-cmmi10'}, - '.typeset .cmsy10': {'font-family': 'jsMath-cmsy10'}, - '.typeset .cmex10': {'font-family': 'jsMath-cmex10'}, - - '.typeset .textit': {'font-family': 'serif', 'font-style': 'italic'}, - '.typeset .textbf': {'font-family': 'serif', 'font-weight': 'bold'}, - - '.typeset .link': {'text-decoration': 'none'}, // links in mathematics - - '.typeset .error': { // in-line error messages - 'font-size': '90%', - 'font-style': 'italic', - 'background-color': '#FFFFCC', - padding: '1px', - border: '1px solid #CC0000' - }, - - '.typeset .blank': { // internal use - display: 'inline-block', - overflow: 'hidden', - border: '0px none', - width: '0px', - height: '0px' - }, - '.typeset .spacer': { // internal use - display: 'inline-block' - }, - - '#jsMath_hiddenSpan': { // used for measuring BBoxes - visibility: 'hidden', - position: 'absolute', - top: '0px', - left: '0px', - 'line-height': 'normal', - 'text-indent': '0px' - }, - - '#jsMath_message': { // percentage complete message - position: 'fixed', - bottom: '1px', - left: '2px', - 'background-color': '#E6E6E6', - border: 'solid 1px #959595', - margin: '0px', - padding: '1px 8px', - 'z-index': '102', - color: 'black', - 'font-size': 'small', - width: 'auto' - }, - - '#jsMath_panel': { // control panel - position: 'fixed', - bottom: '1.75em', - right: '1.5em', - padding: '.8em 1.6em', - 'background-color': '#DDDDDD', - border: 'outset 2px', - 'z-index': '103', - width: 'auto', - color: 'black', - 'font-size': '10pt', - 'font-style': 'normal' - }, - '#jsMath_panel .disabled': {color: '#888888'}, // disabled items in the panel - '#jsMath_panel .infoLink': {'font-size': '85%'}, // links to web pages - - // avoid CSS polution from outside the panel - '#jsMath_panel *': { - 'font-size': 'inherit', - 'font-style': 'inherit', - 'font-family': 'inherit', - 'line-height': 'normal' - }, - '#jsMath_panel div': {'background-color': 'inherit', color: 'inherit'}, - '#jsMath_panel span': {'background-color': 'inherit', color: 'inherit'}, - '#jsMath_panel td': { - border: '0px', padding: '0px', margin: '0px', - 'background-color': 'inherit', color: 'inherit' - }, - '#jsMath_panel tr': { - border: '0px', padding: '0px', margin: '0px', - 'background-color': 'inherit', color: 'inherit' - }, - '#jsMath_panel table': { - border: '0px', padding: '0px', margin: '0px', - 'background-color': 'inherit', color: 'inherit', - height: 'auto', width: 'auto' - }, - - '#jsMath_button': { // the jsMath floating button (to open control panel) - position: 'fixed', - bottom: '1px', - right: '2px', - 'background-color': 'white', - border: 'solid 1px #959595', - margin: '0px', - padding: '0px 3px 1px 3px', - 'z-index': '102', - color: 'black', - 'text-decoration': 'none', - 'font-size': 'x-small', - width: 'auto', - cursor: 'hand' - }, - '#jsMath_button *': { - padding: '0px', border: '0px', margin: '0px', 'line-height': 'normal', - 'font-size': 'inherit', 'font-style': 'inherit', 'font-family': 'inherit' - }, - - '#jsMath_global': {'font-style': 'italic'}, // 'global' in jsMath button - - '#jsMath_noFont .message': { // missing font message window - 'text-align': 'center', - padding: '.8em 1.6em', - border: '3px solid #DD0000', - 'background-color': '#FFF8F8', - color: '#AA0000', - 'font-size': 'small', - width: 'auto' - }, - '#jsMath_noFont .link': { - padding: '0px 5px 2px 5px', - border: '2px outset', - 'background-color': '#E8E8E8', - color: 'black', - 'font-size': '80%', - width: 'auto', - cursor: 'hand' - }, - - '#jsMath_PrintWarning .message': { // warning on print pages - 'text-align': 'center', - padding: '.8em 1.6em', - border: '3px solid #DD0000', - 'background-color': '#FFF8F8', - color: '#AA0000', - 'font-size': 'x-small', - width: 'auto' - }, - - '@media print': { - '#jsMath_button': {display: 'none'}, - '#jsMath_Warning': {display: 'none'} - }, - - '@media screen': { - '#jsMath_PrintWarning': {display:'none'} - } - - }, - - - /***************************************************************************/ - - /* - * Get a jsMath DOM element - */ - Element: function (name) {return jsMath.document.getElementById('jsMath_'+name)}, - - /* - * Get the width and height (in pixels) of an HTML string - */ - BBoxFor: function (s) { - this.hidden.innerHTML = - ''+s+''; - var math = (jsMath.Browser.msieBBoxBug ? this.hidden.firstChild.firstChild : this.hidden); - var bbox = {w: math.offsetWidth, h: this.hidden.offsetHeight}; - this.hidden.innerHTML = ''; - return bbox; - }, - - /* - * Get the width and height (in ems) of an HTML string. - * Check the cache first to see if we've already measured it. - */ - EmBoxFor: function (s) { - var cache = jsMath.Global.cache.R; - if (!cache[this.em]) {cache[this.em] = {}} - if (!cache[this.em][s]) { - var bbox = this.BBoxFor(s); - cache[this.em][s] = {w: bbox.w/this.em, h: bbox.h/this.em}; - } - return cache[this.em][s]; - }, - - /* - * Initialize jsMath. This determines the em size, and a variety - * of other parameters used throughout jsMath. - */ - Init: function () { - if (jsMath.Setup.inited != 1) { - if (!jsMath.Setup.inited) {jsMath.Setup.Body()} - if (jsMath.Setup.inited != 1) { - if (jsMath.Setup.inited == -100) return; - alert("It looks like jsMath failed to set up properly (error code " - + jsMath.Setup.inited + "). " - + "I will try to keep going, but it could get ugly."); - jsMath.Setup.inited = 1; - } - } - this.em = this.CurrentEm(); - var cache = jsMath.Global.cache.B; - if (!cache[this.em]) { - cache[this.em] = {}; - cache[this.em].bb = this.BBoxFor('x'); var hh = cache[this.em].bb.h; - cache[this.em].d = this.BBoxFor('x'+jsMath.HTML.Strut(hh/this.em)).h - hh; - } - jsMath.Browser.italicCorrection = cache[this.em].ic; - var bb = cache[this.em].bb; var h = bb.h; var d = cache[this.em].d - this.h = (h-d)/this.em; this.d = d/this.em; - this.hd = this.h + this.d; - - this.Setup.TeXfonts(); - - var x_height = this.EmBoxFor('M').w/2; - this.TeX.M_height = x_height*(26/14); - this.TeX.h = this.h; this.TeX.d = this.d; this.TeX.hd = this.hd; - - this.Img.Scale(); - if (!this.initialized) { - this.Setup.Sizes(); - this.Img.UpdateFonts(); - } - - // factor for \big and its brethren - this.p_height = (this.TeX.cmex10[0].h + this.TeX.cmex10[0].d) / .85; - - this.initialized = 1; - }, - - /* - * Get the x size and if it has changed, reinitialize the sizes - */ - ReInit: function () { - if (this.em != this.CurrentEm()) {this.Init()} - }, - - /* - * Find the em size in effect at the current text location - */ - CurrentEm: function () { - var em = this.BBoxFor('').w/27; - if (em > 0) {return em} - // handle older browsers - return this.BBoxFor('').w/13; - }, - - /* - * Mark jsMath as loaded and copy any user-provided overrides - */ - Loaded: function () { - if (jsMath_old) { - var override = ['Process', 'ProcessBeforeShowing','ProcessElement', - 'ConvertTeX','ConvertTeX2','ConvertLaTeX','ConvertCustom', - 'CustomSearch', 'Synchronize', 'Macro', 'document']; - for (var i = 0; i < override.length; i++) { - if (jsMath_old[override[i]]) {delete jsMath_old[override[i]]} - } - } - if (jsMath_old) {this.Insert(jsMath,jsMath_old)} - jsMath_old = null; - jsMath.loaded = 1; - }, - - /* - * Manage JavaScript objects: - * - * Add: add/replace items in an object - * Insert: add items to an object - * Package: add items to an object prototype - */ - Add: function (dst,src) {for (var id in src) {dst[id] = src[id]}}, - Insert: function (dst,src) { - for (var id in src) { - if (dst[id] && typeof(src[id]) == 'object' - && (typeof(dst[id]) == 'object' - || typeof(dst[id]) == 'function')) { - this.Insert(dst[id],src[id]); - } else { - dst[id] = src[id]; - } - } - }, - Package: function (obj,def) {this.Insert(obj.prototype,def)} - -}; - - -/***************************************************************************/ - - /* - * Implements items associated with the global cache. - * - * This object will be replaced by a global version when - * (and if) jsMath-global.html is loaded. - */ -jsMath.Global = { - isLocal: 1, // a local copy if jsMath-global.html hasn't been loaded - cache: {T: {}, D: {}, R: {}, B: {}}, - - /* - * Clear the global (or local) cache - */ - ClearCache: function () {jsMath.Global.cache = {T: {}, D: {}, R: {}, B: {}}}, - - /* - * Initiate global mode - */ - GoGlobal: function (cookie) { - var url = String(jsMath.window.location); - var c = (jsMath.isCHMmode ? '#' : '?'); - if (cookie) {url = url.replace(/\?.*/,'') + '?' + cookie} - jsMath.Controls.Reload(jsMath.root + "jsMath-global.html" + c +escape(url)); - }, - - /* - * Check if we need to go to global mode - */ - Init: function () { - if (jsMath.Controls.cookie.global == "always" && !jsMath.noGoGlobal) { - if (navigator.accentColorName) return; // OmniWeb crashes on GoGlobal - if (!jsMath.window) {jsMath.window = window} - jsMath.Controls.loaded = 1; - jsMath.Controls.defaults.hiddenGlobal = null; - this.GoGlobal(jsMath.Controls.SetCookie(2)); - } - }, - - /* - * Try to register with a global.html window that contains us - */ - Register: function () { - var parent = jsMath.window.parent; - if (!jsMath.isCHMmode) - {jsMath.isCHMmode = (jsMath.window.location.protocol == 'mk:')} - try { - if (!jsMath.isCHMmode) this.Domain(); - if (parent.jsMath && parent.jsMath.isGlobal) - {parent.jsMath.Register(jsMath.window)} - } catch (err) {jsMath.noGoGlobal = 1} - }, - - /* - * If we're not the parent window, try to set the domain to - * match the parent's domain (so we can use the Global data - * if the surrounding frame is a Global frame). - */ - Domain: function () { - // MSIE/Mac can't do domain changes, so don't bother trying - if (navigator.appName == 'Microsoft Internet Explorer' && - jsMath.platform == 'mac' && navigator.userProfile != null) return; - // MSIE/PC can do domain change, but gets mixed up if we don't - // find a domain that works, and then can't look in window.location - // any longer. So don't try, since we can't afford to leave it confused. - if (jsMath.document.all && !jsMath.window.opera) return; - - if (window == parent) return; - var oldDomain = jsMath.document.domain; - try { - while (true) { - try {if (parent.document.title != null) return} catch (err) {} - if (!document.domain.match(/\..*\./)) break; - jsMath.document.domain = jsMath.document.domain.replace(/^[^.]*\./,''); - } - } catch (err) {} - jsMath.document.domain = oldDomain; - } - -}; - - - -/***************************************************************************/ - -/* - * - * Implement loading of remote scripts using XMLHttpRequest, if - * possible, otherwise use a hidden IFRAME and fake it. That - * method runs asynchronously, which causes lots of headaches. - * Solve these using Push command, which queues actions - * until files have loaded. - */ - -jsMath.Script = { - - request: null, // the XMLHttpRequest object - - /* - * Create the XMLHttpRequest object, if we can. - * Otherwise, use the iframe-based fallback method. - */ - Init: function () { - if (!(jsMath.Controls.cookie.asynch && jsMath.Controls.cookie.progress)) { - if (window.XMLHttpRequest) { - try {this.request = new XMLHttpRequest} catch (err) {} - // MSIE and FireFox3 can't use xmlRequest on local files, - // but we don't have jsMath.browser yet to tell, so use this check - if (this.request && jsMath.root.match(/^file:\/\//)) { - try { - this.request.open("GET",jsMath.root+"jsMath.js",false); - this.request.send(null); - } catch (err) { - this.request = null; - // Firefox3 has window.postMessage for inter-window communication. - // It can be used to handle the new file:// security model, - // so set up the listener. - if (window.postMessage && window.addEventListener) { - this.mustPost = 1; - jsMath.window.addEventListener("message",jsMath.Post.Listener,false); - } - } - } - } - if (!this.request && window.ActiveXObject && !this.mustPost) { - var xml = ["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0", - "MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"]; - for (var i = 0; i < xml.length && !this.request; i++) { - try {this.request = new ActiveXObject(xml[i])} catch (err) {} - } - } - } - // - // Use the delayed-script fallback for MSIE/Mac and old versions - // of several browsers (Opera 7.5, OmniWeb 4.5). - // - if (!this.request || jsMath.Setup.domainChanged) - {this.Load = this.delayedLoad; this.needsBody = 1} - }, - - /* - * Load a script and evaluate it in the window's context - */ - Load: function (url,show) { - if (show) { - jsMath.Message.Set("Loading "+url); - jsMath.Script.Delay(1); - jsMath.Script.Push(this,'xmlRequest',url); - jsMath.Script.Push(jsMath.Message,'Clear'); - } else { - jsMath.Script.Push(this,'xmlRequest',url); - } - }, - - /* - * Load a URL and run the contents of the file - */ - xmlRequest: function (url) { - this.blocking = 1; -// this.debug('xmlRequest: '+url); - try { - this.request.open("GET",url,false); - this.request.send(null); - } catch (err) { - this.blocking = 0; - if (jsMath.Translate.restart && jsMath.Translate.asynchronous) {return ""} - throw Error("jsMath can't load the file '"+url+"'\n" - + "Message: "+err.message); - } - if (this.request.status != null && (this.request.status >= 400 || this.request.status < 0)) { - // Do we need to deal with redirected links? - this.blocking = 0; - if (jsMath.Translate.restart && jsMath.Translate.asynchronous) {return ""} - throw Error("jsMath can't load the file '"+url+"'\n" - + "Error status: "+this.request.status); - } - if (!url.match(/\.js$/)) {return(this.request.responseText)} - var tmpQueue = this.queue; this.queue = []; -// this.debug('xml Eval ['+tmpQueue.length+']'); - jsMath.window.eval(this.request.responseText); -// this.debug('xml Done ['+this.queue.length+' + '+tmpQueue.length+']'); - this.blocking = 0; this.queue = this.queue.concat(tmpQueue); - this.Process(); - return ""; - }, - - /******************************************************************** - * - * Implement asynchronous loading and execution of scripts - * (via hidden IFRAME) interleved with other JavaScript commands - * that must be synchronized with the file loading. (Basically, this - * is for MSIE/Mac and Opera 7.5, which don't have XMLHttpRequest.) - */ - - cancelTimeout: 30*1000, // delay for canceling load (30 sec) - - blocking: 0, // true when an asynchronous action is being performed - cancelTimer: null, // timer to cancel load if it takes too long - needsBody: 0, // true if loading files requires BODY to be present - - queue: [], // the stack of pending actions - - /* - * Provide mechanism for synchronizing with the asynchronous jsMath - * file-loading mechanism. 'code' can be a string or a function. - */ - Synchronize: function (code,data) { - if (typeof(code) != 'string') {jsMath.Script.Push(null,code,data)} - else {jsMath.Script.Push(jsMath.window,'eval',code)} - }, - - /* - * Queue a function to be processed. - * If nothing is being loaded, do the pending commands. - */ - Push: function (object,method,data) { -// this.debug('Pushing: '+method+' at '+this.queue.length); // debug - this.queue[this.queue.length] = [object,method,data]; - if (!(this.blocking || (this.needsBody && !jsMath.document.body))) this.Process(); - }, - - /* - * Do any pending functions (stopping if a file load is started) - */ - Process: function () { - while (this.queue.length && !this.blocking) { - var call = this.queue[0]; this.queue = this.queue.slice(1); - var savedQueue = this.SaveQueue(); - var object = call[0]; var method = call[1]; var data = call[2]; -// this.debug('Calling: '+method+' ['+savedQueue.length+']'); // debug - if (object) {object[method](data)} else if (method) {method(data)} -// this.debug('Done: '+method+' ['+this.queue.length+' + '+savedQueue.length+'] ('+this.blocking+')'); // debug - this.RestoreQueue(savedQueue); - } - }, - - /* - * Allows pushes to occur at the FRONT of the queue - * (so a command acts as a single unit, including anything - * that it pushes on to the command stack) - */ - SaveQueue: function () { - var queue = this.queue; - this.queue = []; - return queue; - }, - RestoreQueue: function (queue) { - this.queue = this.queue.concat(queue); - }, - - /* - * Handle loading of scripts that run asynchronously - */ - delayedLoad: function (url) { -// this.debug('Loading: '+url); - this.Push(this,'startLoad',url); - }, - startLoad: function (url) { - var iframe = jsMath.document.createElement('iframe'); - iframe.style.visibility = 'hidden'; - iframe.style.position = 'absolute'; - iframe.style.width = '0px'; - iframe.style.height = '0px'; - if (jsMath.document.body.firstChild) { - jsMath.document.body.insertBefore(iframe,jsMath.document.body.firstChild); - } else { - jsMath.document.body.appendChild(iframe); - } - this.blocking = 1; this.url = url; - if (url.substr(0,jsMath.root.length) == jsMath.root) - {url = url.substr(jsMath.root.length)} - jsMath.Message.Set("Loading "+url); - this.cancelTimer = setTimeout('jsMath.Script.cancelLoad()',this.cancelTimeout); - if (this.mustPost) {iframe.src = jsMath.Post.startLoad(url,iframe)} - else if (url.match(/\.js$/)) {iframe.src = jsMath.root+"jsMath-loader.html"} - else {iframe.src = this.url} - }, - endLoad: function (action) { - if (this.cancelTimer) {clearTimeout(this.cancelTimer); this.cancelTimer = null} - jsMath.Post.endLoad(); - jsMath.Message.Clear(); - if (action != 'cancel') {this.blocking = 0; this.Process()} - }, - - Start: function () { -// this.debug('Starting: ['+this.queue.length+'] '+this.url); - this.tmpQueue = this.queue; this.queue = []; - }, - End: function () { -// this.debug('Ending: ['+this.queue.length+' + '+this.tmpQueue.length+'] '+this.url); - this.queue = this.queue.concat(this.tmpQueue); delete this.tmpQueue; - }, - - /* - * If the loading takes too long, cancel it and end the load. - */ - cancelLoad: function (message,delay) { - if (this.cancelTimer) {clearTimeout(this.cancelTimer); this.cancelTimer = null} - if (message == null) {message = "Can't load file"} - if (delay == null) {delay = 2000} - jsMath.Message.Set(message); - setTimeout('jsMath.Script.endLoad("cancel")',delay); - }, - - /* - * Perform a delay (to let the browser catch up) - */ - Delay: function (time) { - this.blocking = 1; - setTimeout('jsMath.Script.endDelay()',time); - }, - endDelay: function () { -// this.debug('endDelay'); - this.blocking = 0; - this.Process(); - }, - - /* - * Load an image and wait for it - * (so MSIE won't load extra copies of it) - */ - imageCount: 0, - WaitForImage: function (file) { - this.blocking = 1; this.imageCount++; - if (this.img == null) {this.img = []} - var img = new Image(); this.img[this.img.length] = img; - img.onload = function () {if (--jsMath.Script.imageCount == 0) jsMath.Script.endDelay()} - img.onerror = img.onload; img.onabort = img.onload; - img.src = file; - }, - - /* - * The code uncompressor - */ - Uncompress: function (data) { - for (var k = 0; k < data.length; k++) { - var d = data[k]; var n = d.length; - for (var i = 0; i < n; i++) {if (typeof(d[i]) == 'number') {d[i] = d[d[i]]}} - data[k] = d.join(''); - } - window.eval(data.join('')); - } - - /* - * for debugging the event queue - */ - /* - * ,debug: function (message) { - * if (jsMath.document.body && jsMath.window.debug) {jsMath.window.debug(message)} - * else {alert(message)} - * } - */ - -}; - -/***************************************************************************/ - -/* - * Handle window.postMessage() events in Firefox3 - */ - -jsMath.Post = { - window: null, // iframe we are listening to - - Listener: function (event) { - if (event.source != jsMath.Post.window) return; - var domain = event.origin.replace(/^file:\/\//,''); - var ddomain = document.domain.replace(/^file:\/\//,''); - if (domain == null || domain == "" || domain == "null") {domain = "localhost"} - if (ddomain == null || ddomain == "" || ddomain == "null") {ddomain = "localhost"} - if (domain != ddomain || !event.data.substr(0,6).match(/jsM(CP|LD|AL):/)) return; - var type = event.data.substr(6,3).replace(/ /g,''); - var message = event.data.substr(10); - if (jsMath.Post.Commands[type]) (jsMath.Post.Commands[type])(message); - // cancel event? - }, - - /* - * Commands that can be performed by the listener - */ - Commands: { - SCR: function (message) {jsMath.window.eval(message)}, - ERR: function (message) {jsMath.Script.cancelLoad(message,3000)}, - BGN: function (message) {jsMath.Script.Start()}, - END: function (message) {if (message) jsMath.Script.End(); jsMath.Script.endLoad()} - }, - - startLoad: function (url,iframe) { - this.window = iframe.contentWindow; - if (!url.match(/\.js$/)) {return jsMath.root+url} - return jsMath.root+"jsMath-loader-post.html?"+url; - }, - endLoad: function () {this.window = null} -}; - -/***************************************************************************/ - -/* - * Message and screen blanking facility - */ - -jsMath.Message = { - - blank: null, // the div to blank out the screen - message: null, // the div for the messages - text: null, // the text node for messages - clear: null, // timer for clearing message - - /* - * Create the elements needed for the message box - */ - Init: function () { - if (!jsMath.document.body || !jsMath.Controls.cookie.progress) return; - this.message = jsMath.Element('message'); - if (!this.message) { - if (jsMath.Setup.stylesReady) { - this.message = jsMath.Setup.DIV('message',{visibility:'hidden'},jsMath.fixedDiv); - } else { - this.message = jsMath.Setup.DIV('message',{ - visibility:'hidden', position:'absolute', bottom:'1px', left:'2px', - backgroundColor:'#E6E6E6', border:'solid 1px #959595', - margin:'0px', padding:'1px 8px', zIndex:102, - color:'black', fontSize:'small', width:'auto' - },jsMath.fixedDiv); - } - } - this.text = jsMath.document.createTextNode(''); - this.message.appendChild(this.text); - this.message.onmousedown = jsMath.Translate.Cancel; - }, - - /* - * Set the contents of the message box, or use the window status line - */ - Set: function (text,canCancel) { - if (this.clear) {clearTimeout(this.clear); this.clear = null} - if (jsMath.Controls.cookie.progress) { - if (!this.text) {this.Init(); if (!this.text) return} - if (jsMath.Browser.textNodeBug) {this.message.innerHTML = text} - else {this.text.nodeValue = text} - this.message.style.visibility = 'visible'; - if (canCancel) { - this.message.style.cursor = 'pointer'; - if (!this.message.style.cursor) {this.message.style.cursor = 'hand'} - this.message.title = ' Cancel Processing of Math '; - } else { - this.message.style.cursor = ''; - this.message.title = ''; - } - } else { - if (text.substr(0,8) != "Loading ") {jsMath.window.status = text} - } - }, - - /* - * Clear the message box or status line - */ - Clear: function () { - if (this.clear) {clearTimeout(this.clear)} - this.clear = setTimeout("jsMath.Message.doClear()",1000); - }, - doClear: function () { - if (this.clear) { - this.clear = null; - jsMath.window.status = ''; - if (this.text) {this.text.nodeValue = ''} - if (this.message) {this.message.style.visibility = 'hidden'} - } - }, - - - /* - * Put up a DIV that covers the window so that the - * "flicker" of processing the mathematics will not be visible - */ - Blank: function () { - if (this.blank || !jsMath.document.body) return; - this.blank = jsMath.Setup.DIV("blank",{ - position:(jsMath.Browser.msiePositionFixedBug? 'absolute': 'fixed'), - top:'0px', left:'0px', bottom:'0px', right:'0px', - zIndex:101, backgroundColor:'white' - },jsMath.fixedDiv); - if (jsMath.Browser.msieBlankBug) { - this.blank.innerHTML = ' '; - this.blank.style.width = "110%"; - this.blank.style.height = "110%"; - } - }, - - UnBlank: function () { - if (this.blank) {jsMath.document.body.removeChild(this.blank)} - this.blank = null; - } -}; - - -/***************************************************************************/ - -/* - * Miscellaneous setup and initialization - */ -jsMath.Setup = { - - loaded: [], // array of files already loaded - - /* - * Insert a DIV at the top of the page with given ID, - * attributes, and style settings - */ - DIV: function (id,styles,parent) { - if (parent == null) {parent = jsMath.document.body} - var div = jsMath.document.createElement('div'); - div.id = 'jsMath_'+id; - for (var i in styles) {div.style[i]= styles[i]} - if (!parent.hasChildNodes) {parent.appendChild(div)} - else {parent.insertBefore(div,parent.firstChild)} - return div; - }, - - /* - * Source a jsMath JavaScript file (only load any given file once) - */ - Script: function (file,show) { - if (this.loaded[file]) {return} else {this.loaded[file] = 1} - if (!file.match('^([a-zA-Z]+:/?)?/')) {file = jsMath.root + file} - jsMath.Script.Load(file,show); - }, - - /* - * Use a hidden
for measuring the BBoxes of things - */ - Hidden: function () { - jsMath.hidden = this.DIV("Hidden",{ - visibility: 'hidden', position:"absolute", - top:0, left:0, border:0, padding:0, margin:0 - }); - jsMath.hiddenTop = jsMath.hidden; - return; - }, - - /* - * Find the root URL for the jsMath files (so we can load - * the other .js and .gif files) - */ - Source: function () { - if (jsMath.Autoload && jsMath.Autoload.root) { - jsMath.root = jsMath.Autoload.root; - } else { - jsMath.root = ''; - var script = jsMath.document.getElementsByTagName('script'); - if (script) { - for (var i = 0; i < script.length; i++) { - var src = script[i].src; - if (src && src.match('(^|/|\\\\)jsMath.js$')) { - jsMath.root = src.replace(/jsMath.js$/,''); - break; - } - } - } - } - if (jsMath.root.charAt(0) == '\\') {jsMath.root = jsMath.root.replace(/\\/g,'/')} - if (jsMath.root.charAt(0) == '/') { - if (jsMath.root.charAt(1) != '/') - {jsMath.root = '//' + jsMath.document.location.host + jsMath.root} - jsMath.root = jsMath.document.location.protocol + jsMath.root; - } else if (!jsMath.root.match(/^[a-z]+:/i)) { - var src = new String(jsMath.document.location); - var pattern = new RegExp('/[^/]*/\\.\\./') - jsMath.root = src.replace(new RegExp('[^/]*$'),'') + jsMath.root; - while (jsMath.root.match(pattern)) - {jsMath.root = jsMath.root.replace(pattern,'/')} - } - jsMath.Img.root = jsMath.root + "fonts/"; - jsMath.blank = jsMath.root + "blank.gif"; - this.Domain(); - }, - - /* - * Find the most restricted common domain for the main - * page and jsMath. Report an error if jsMath is outside - * the domain of the calling page. - */ - Domain: function () { - try {jsMath.document.domain} catch (err) {return} - var jsDomain = ''; var pageDomain = jsMath.document.domain; - if (jsMath.root.match('://([^/]*)/')) {jsDomain = RegExp.$1} - jsDomain = jsDomain.replace(/:\d+$/,''); - if (jsDomain == "" || jsDomain == pageDomain) return; - // - // MSIE on the Mac can't change jsMath.document.domain and 'try' won't - // catch the error (Grrr!), so exit for them. - // - if (navigator.appName == 'Microsoft Internet Explorer' && - jsMath.platform == 'mac' && navigator.onLine && - navigator.userProfile && jsMath.document.all) return; - jsDomain = jsDomain.split(/\./); pageDomain = pageDomain.split(/\./); - if (jsDomain.length < 2 || pageDomain.length < 2 || - jsDomain[jsDomain.length-1] != pageDomain[pageDomain.length-1] || - jsDomain[jsDomain.length-2] != pageDomain[pageDomain.length-2]) { - this.DomainWarning(); - return; - } - var domain = jsDomain[jsDomain.length-2] + '.' + jsDomain[jsDomain.length-1]; - for (var i = 3; i <= jsDomain.length && i <= pageDomain.length; i++) { - if (jsDomain[jsDomain.length-i] != pageDomain[pageDomain.length-i]) break; - domain = jsDomain[jsDomain.length-i] + '.' + domain; - } - jsMath.document.domain = domain; - this.domainChanged = 1; - }, - - DomainWarning: function () { - alert("In order for jsMath to be able to load the additional " - + "components that it may need, the jsMath.js file must be " - + "loaded from a server in the same domain as the page that " - + "contains it. Because that is not the case for this page, " - + "the mathematics displayed here may not appear correctly."); - }, - - /* - * Initialize a font's encoding array - */ - EncodeFont: function (name) { - var font = jsMath.TeX[name]; - if (font[0].c != null) return; - for (var k = 0; k < 128; k++) { - var data = font[k]; font[k] = data[3]; - if (font[k] == null) {font[k] = {}}; - font[k].w = data[0]; font[k].h = data[1]; - if (data[2] != null) {font[k].d = data[2]} - font[k].c = jsMath.TeX.encoding[k]; - } - }, - - /* - * Initialize the encodings for all fonts - */ - Fonts: function () { - for (var i = 0; i < jsMath.TeX.fam.length; i++) { - var name = jsMath.TeX.fam[i]; - if (name) {this.EncodeFont(name)} - } - }, - - /* - * Look up the default height and depth for a TeX font - * and set the skewchar - */ - TeXfont: function (name) { - var font = jsMath.TeX[name]; if (font == null) return; - font.hd = jsMath.EmBoxFor(''+font[65].c+'').h; - font.d = jsMath.EmBoxFor(''+font[65].c+jsMath.HTML.Strut(font.hd)+'').h - font.hd; - font.h = font.hd - font.d; - if (name == 'cmmi10') {font.skewchar = 0177} - else if (name == 'cmsy10') {font.skewchar = 060} - }, - - /* - * Init all the TeX fonts - */ - TeXfonts: function () { - for (var i = 0; i < jsMath.TeX.fam.length; i++) - {if (jsMath.TeX.fam[i]) {this.TeXfont(jsMath.TeX.fam[i])}} - }, - - /* - * Compute font parameters for various sizes - */ - Sizes: function () { - jsMath.TeXparams = []; var i; var j; - for (j=0; j < jsMath.sizes.length; j++) {jsMath.TeXparams[j] = {}} - for (i in jsMath.TeX) { - if (typeof(jsMath.TeX[i]) != 'object') { - for (j=0; j < jsMath.sizes.length; j++) { - jsMath.TeXparams[j][i] = jsMath.sizes[j]*jsMath.TeX[i]/100; - } - } - } - }, - - /* - * Send the style definitions to the browser (these may be adjusted - * by the browser-specific code) - */ - Styles: function (styles) { - if (!styles) { - styles = jsMath.styles; - styles['.typeset .scale'] = {'font-size': jsMath.Controls.cookie.scale+'%'}; - this.stylesReady = 1; - } - jsMath.Script.Push(this,'AddStyleSheet',styles); - if (jsMath.Browser.styleChangeDelay) {jsMath.Script.Push(jsMath.Script,'Delay',1)} - }, - - /* - * Make a style string from a hash of style definitions, which are - * either strings themselves or hashes of style settings. - */ - StyleString: function (styles) { - var styleString = {}, id; - for (id in styles) { - if (typeof styles[id] === 'string') { - styleString[id] = styles[id]; - } else if (id.substr(0,1) === '@') { - styleString[id] = this.StyleString(styles[id]); - } else if (styles[id] != null) { - var style = []; - for (var name in styles[id]) { - if (styles[id][name] != null) - {style[style.length] = name + ': ' + styles[id][name]} - } - styleString[id] = style.join('; '); - } - } - var string = ''; - for (id in styleString) {string += id + " {"+styleString[id]+"}\n"} - return string; - }, - - AddStyleSheet: function (styles) { - var head = jsMath.document.getElementsByTagName('head')[0]; - if (head) { - var string = this.StyleString(styles); - if (jsMath.document.createStyleSheet) {// check for MSIE - head.insertAdjacentHTML('beforeEnd', - 'x' // MSIE needs this for some reason - + ''); - } else { - var style = jsMath.document.createElement('style'); style.type = "text/css"; - style.appendChild(jsMath.document.createTextNode(string)); - head.appendChild(style); - } - } else if (!jsMath.noHEAD) { - jsMath.noHEAD = 1; - alert("Document is missing its section. Style sheet can't be created without it."); - } - }, - - /* - * Do the initialization that requires the to be in place. - */ - Body: function () { - if (this.inited) return; - - this.inited = -1; - - jsMath.Setup.Hidden(); this.inited = -2; - jsMath.Browser.Init(); this.inited = -3; - - // blank screen if necessary - if (jsMath.Controls.cookie.blank) {jsMath.Message.Blank()}; this.inited = -4; - - jsMath.Setup.Styles(); this.inited = -5; - jsMath.Controls.Init(); this.inited = -6; - - // do user-specific initialization - jsMath.Script.Push(jsMath.Setup,'User','pre-font'); this.inited = -7; - - // make sure browser-specific loads are done before this - jsMath.Script.Push(jsMath.Font,'Check'); - if (jsMath.Font.register.length) - {jsMath.Script.Push(jsMath.Font,'LoadRegistered')} - - this.inited = 1; - }, - - /* - * Web page author can override the entries to the UserEvent hash - * functions that will be run at various times during jsMath's setup - * process. - */ - User: function (when) { - if (jsMath.Setup.UserEvent[when]) {(jsMath.Setup.UserEvent[when])()} - }, - - UserEvent: { - "pre-font": null, // after browser is set up but before fonts are tested - "onload": null // after jsMath.js is loaded and finished running - } - -}; - -jsMath.Update = { - - /* - * Update specific parameters for a limited number of font entries - */ - TeXfonts: function (change) { - for (var font in change) { - for (var code in change[font]) { - for (var id in change[font][code]) { - jsMath.TeX[font][code][id] = change[font][code][id]; - } - } - } - }, - - /* - * Update the character code for every character in a list - * of fonts - */ - TeXfontCodes: function (change) { - for (var font in change) { - for (var i = 0; i < change[font].length; i++) { - jsMath.TeX[font][i].c = change[font][i]; - } - } - } - -}; - -/***************************************************************************/ - -/* - * Implement browser-specific checks - */ - -jsMath.Browser = { - - allowAbsolute: 1, // tells if browser can nest absolutely positioned - // SPANs inside relative SPANs - allowAbsoluteDelim: 0, // OK to use absolute placement for building delims? - separateSkips: 0, // MSIE doesn't do negative left margins, and - // Netscape doesn't combine skips well - - valignBug: 0, // Konqueror doesn't nest vertical-align - operaHiddenFix: '', // for Opera to fix bug with math in tables - msieCenterBugFix: '', // for MSIE centering bug with image fonts - msieInlineBlockFix: '', // for MSIE alignment bug in non-quirks mode - msieSpaceFix: '', // for MSIE to avoid dropping empty spans - imgScale: 1, // MSI scales images for 120dpi screens, so compensate - - renameOK: 1, // tells if brower will find a tag whose name - // has been set via setAttributes - styleChangeDelay: 0, // true if style changes need a delay in order - // for them to be available - - delay: 1, // delay for asynchronous math processing - processAtOnce: 16, // number of math elements to process before screen update - - version: 0, // browser version number (when needed) - - /* - * Determine if the "top" of a is always at the same height - * or varies with the height of the rest of the line (MSIE). - */ - TestSpanHeight: function () { - jsMath.hidden.innerHTML = 'x'; - var span = jsMath.hidden.firstChild; - var img = span.firstChild; - this.spanHeightVaries = (span.offsetHeight >= img.offsetHeight && span.offsetHeight > 0); - this.spanHeightTooBig = (span.offsetHeight > img.offsetHeight); - jsMath.hidden.innerHTML = ''; - }, - - /* - * Determine if an inline-block with 0 width is OK or not - * and decide whether to use spans or images for spacing - */ - TestInlineBlock: function () { - this.block = "display:-moz-inline-box"; - this.hasInlineBlock = jsMath.BBoxFor('').w > 0; - if (this.hasInlineBlock) { - jsMath.styles['.typeset .blank'].display = '-moz-inline-box'; - delete jsMath.styles['.typeset .spacer'].display; - } else { - this.block = "display:inline-block"; - this.hasInlineBlock = jsMath.BBoxFor('').w > 0; - if (!this.hasInlineBlock) return; - } - this.block += ';overflow:hidden'; - var h = jsMath.BBoxFor('x').h; - this.mozInlineBlockBug = jsMath.BBoxFor( - 'x'+ - '').h > 2*h; - this.widthAddsBorder = jsMath.BBoxFor('').w > 10; - var h1 = jsMath.BBoxFor('x').h, - h2 = jsMath.BBoxFor('x').h, - h3 = jsMath.BBoxFor('').h; - this.msieBlockDepthBug = (h1 == h); - this.msieRuleDepthBug = (h2 == h); - this.blankWidthBug = (h3 == 0); - }, - - /* - * Determine if the NAME attribute of a tag can be changed - * using the setAttribute function, and then be properly - * returned by getElementByName. - */ - TestRenameOK: function () { - jsMath.hidden.innerHTML = ''; - var test = jsMath.hidden.firstChild; - test.setAttribute('name','jsMath_test'); - this.renameOK = (jsMath.document.getElementsByName('jsMath_test').length > 0); - jsMath.hidden.innerHTML = ''; - }, - - /* - * See if style changes occur immediately, or if we need to delay - * in order to let them take effect. - */ - TestStyleChange: function () { - jsMath.hidden.innerHTML = 'x'; - var span = jsMath.hidden.firstChild; - var w = span.offsetWidth; - jsMath.Setup.AddStyleSheet({'#jsMath_test': 'font-size:200%'}); - this.styleChangeDelay = (span.offsetWidth == w); - jsMath.hidden.innerHTML = ''; - }, - - /* - * Perform a version check on a standard version string - */ - VersionAtLeast: function (v) { - var bv = new String(this.version).split('.'); - v = new String(v).split('.'); if (v[1] == null) {v[1] = '0'} - return bv[0] > v[0] || (bv[0] == v[0] && bv[1] >= v[1]); - }, - - /* - * Test for browser characteristics, and adjust things - * to overcome specific browser bugs - */ - Init: function () { - jsMath.browser = 'unknown'; - this.TestInlineBlock(); - this.TestSpanHeight(); - this.TestRenameOK(); - this.TestStyleChange(); - - this.MSIE(); - this.Mozilla(); - this.Opera(); - this.OmniWeb(); - this.Safari(); - this.Konqueror(); - - // - // Change some routines depending on the browser - // - if (this.allowAbsoluteDelim) { - jsMath.Box.DelimExtend = jsMath.Box.DelimExtendAbsolute; - jsMath.Box.Layout = jsMath.Box.LayoutAbsolute; - } else { - jsMath.Box.DelimExtend = jsMath.Box.DelimExtendRelative; - jsMath.Box.Layout = jsMath.Box.LayoutRelative; - } - - if (this.separateSkips) { - jsMath.HTML.Place = jsMath.HTML.PlaceSeparateSkips; - jsMath.Typeset.prototype.Place = jsMath.Typeset.prototype.PlaceSeparateSkips; - } - }, - - // - // Handle bug-filled Internet Explorer - // - MSIE: function () { - if (jsMath.BBoxFor("").w) { - jsMath.browser = 'MSIE'; - if (jsMath.platform == 'pc') { - this.IE7 = (window.XMLHttpRequest != null); - this.IE8 = (jsMath.BBoxFor("").w > 0); - this.isReallyIE8 = (jsMath.document.documentMode != null); - this.quirks = (jsMath.document.compatMode == "BackCompat"); - this.msieMode = (jsMath.document.documentMode || (this.quirks ? 5 : 7)); - this.msieStandard6 = !this.quirks && !this.IE7; - this.allowAbsoluteDelim = 1; this.separateSkips = 1; - this.buttonCheck = 1; this.msieBlankBug = 1; - this.msieAccentBug = 1; this.msieRelativeClipBug = 1; - this.msieDivWidthBug = 1; this.msiePositionFixedBug = 1; - this.msieIntegralBug = 1; this.waitForImages = 1; - this.msieAlphaBug = !this.IE7; this.alphaPrintBug = !this.IE7; - this.msieCenterBugFix = 'position:relative; '; - this.msieInlineBlockFix = ' display:inline-block;'; - this.msie8HeightBug = this.msieBBoxBug = (this.msieMode == 8); - this.blankWidthBug = (this.msieMode != 8); - this.msieSpaceFix = (this.isReallyIE8 ? - '' : - ''); - jsMath.Macro('joinrel','\\mathrel{\\kern-5mu}'), - jsMath.Parser.prototype.mathchardef.mapstocharOrig = jsMath.Parser.prototype.mathchardef.mapstochar; - delete jsMath.Parser.prototype.mathchardef.mapstochar; - jsMath.Macro('mapstochar','\\rlap{\\mapstocharOrig\\,}\\kern1mu'), - jsMath.styles['.typeset .arial'] = {'font-family': "'Arial unicode MS'"}; - if (!this.IE7 || this.quirks) { - // MSIE doesn't implement fixed positioning, so use absolute - jsMath.styles['#jsMath_message'].position = 'absolute'; - delete jsMath.styles['#jsMath_message'].width; - jsMath.styles['#jsMath_panel'].position = 'absolute'; - delete jsMath.styles['#jsMath_panel'].width; - jsMath.styles['#jsMath_button'].width = '1px'; - jsMath.styles['#jsMath_button'].position = 'absolute' - delete jsMath.styles['#jsMath_button'].width; - jsMath.fixedDiv = jsMath.Setup.DIV("fixedDiv",{position:'absolute', zIndex: 101}); - jsMath.window.attachEvent("onscroll",jsMath.Controls.MoveButton); - jsMath.window.attachEvent("onresize",jsMath.Controls.MoveButton); - jsMath.Controls.MoveButton(); - } - // Make MSIE put borders around the whole button - jsMath.styles['#jsMath_noFont .link'].display = "inline-block"; - // MSIE needs this NOT to be inline-block - delete jsMath.styles['.typeset .spacer'].display; - // MSIE can't insert DIV's into text nodes, so tex2math must use SPAN's to fake DIV's - jsMath.styles['.tex2math_div'] = {}; jsMath.Add(jsMath.styles['.tex2math_div'],jsMath.styles['div.typeset']); - jsMath.styles['.tex2math_div'].width = '100%'; - jsMath.styles['.tex2math_div'].display = 'inline-block'; - // Reduce occurrance of zoom bug in IE7 - jsMath.styles['.typeset']['letter-spacing'] = '0'; - // MSIE will rescale images if the DPIs differ - if (screen.deviceXDPI && screen.logicalXDPI - && screen.deviceXDPI != screen.logicalXDPI) { - this.imgScale *= screen.logicalXDPI/screen.deviceXDPI; - jsMath.Controls.cookie.alpha = 0; - } - // IE8 doesn't puts ALL boxes at the bottom rather than on the baseline - if (this.msieRuleDepthBug) {jsMath.HTML.Strut = jsMath.HTML.msieStrut} - } else if (jsMath.platform == 'mac') { - this.msieAbsoluteBug = 1; this.msieButtonBug = 1; - this.msieDivWidthBug = 1; this.msieBlankBug = 1; - this.quirks = 1; - jsMath.Setup.Script('jsMath-msie-mac.js'); - jsMath.Parser.prototype.macros.angle = ['Replace','ord','','normal']; - jsMath.styles['#jsMath_panel'].width = '42em'; - jsMath.Controls.cookie.printwarn = 0; // MSIE/Mac doesn't handle '@media screen' - } - this.processAtOnce = Math.max(Math.floor((this.processAtOnce+1)/2),1); - jsMath.Macro('not','\\mathrel{\\rlap{\\kern3mu/}}'); - jsMath.Macro('angle','\\raise1.84pt{\\kern2.5mu\\rlap{\\scriptstyle/}\\kern.5pt\\rule{.4em}{-1.5pt}{1.84pt}\\kern2.5mu}'); - } - }, - - // - // Handle Netscape/Mozilla (any flavor) - // - Mozilla: function () { - if (jsMath.hidden.ATTRIBUTE_NODE && jsMath.window.directories) { - jsMath.browser = 'Mozilla'; - if (jsMath.platform == 'pc') {this.alphaPrintBug = 1} - this.allowAbsoluteDelim = 1; - jsMath.styles['#jsMath_button'].cursor = jsMath.styles['#jsMath_noFont .link'].cursor = 'pointer', - jsMath.Macro('not','\\mathrel{\\rlap{\\kern3mu/}}'); - jsMath.Macro('angle','\\raise1.34pt{\\kern2.5mu\\rlap{\\scriptstyle/}\\rule{.4em}{-1pt}{1.34pt}\\kern2.5mu}'); - if (navigator.vendor == 'Firefox') { - this.version = navigator.vendorSub; - } else if (navigator.userAgent.match(' Firefox/([0-9.]+)([a-z ]|$)')) { - this.version = RegExp.$1; - } - if (this.VersionAtLeast("3.0")) {this.mozImageSizeBug = this.lineBreakBug = 1} - } - }, - - // - // Handle OmniWeb - // - OmniWeb: function () { - if (navigator.accentColorName) { - jsMath.browser = 'OmniWeb'; - this.allowAbsolute = this.hasInlineBlock; - this.allowAbsoluteDelim = this.allowAbsolute; - this.valignBug = !this.allowAbsolute; - this.buttonCheck = 1; this.textNodeBug = 1; - jsMath.noChangeGlobal = 1; // OmniWeb craches on GoGlobal - if (!this.hasInlineBlock) {jsMath.Setup.Script('jsMath-old-browsers.js')} - } - }, - - // - // Handle Opera - // - Opera: function () { - if (this.spanHeightTooBig) { - jsMath.browser = 'Opera'; - var isOld = navigator.userAgent.match("Opera 7"); - this.allowAbsolute = 0; - this.delay = 10; - this.operaHiddenFix = '[Processing]'; - if (isOld) {jsMath.Setup.Script('jsMath-old-browsers.js')} - var version = navigator.appVersion.match(/^(\d+\.\d+)/); - if (version) {this.version = version[1]} else {this.vesion = 0} - this.operaAbsoluteWidthBug = this.operaLineHeightBug = (version[1] >= 9.5 && version[1] < 9.6); - } - }, - - // - // Handle Safari - // - Safari: function () { - if (navigator.appVersion.match(/Safari\//)) { - jsMath.browser = 'Safari'; - if (navigator.vendor.match(/Google/)) {jsMath.browser = 'Chrome'} - var version = navigator.userAgent.match("Safari/([0-9]+)"); - version = (version)? version[1] : 400; this.version = version; - jsMath.TeX.axis_height += .05; - this.allowAbsoluteDelim = version >= 125; - this.safariIFRAMEbug = version >= 312 && version < 412; - this.safariButtonBug = version < 412; - this.safariImgBug = 1; this.textNodeBug = 1; - this.lineBreakBug = version >= 526; - this.buttonCheck = version < 500; - this.styleChangeDelay = 1; - jsMath.Macro('not','\\mathrel{\\rlap{\\kern3.25mu/}}'); - } - }, - - // - // Handle Konqueror - // - Konqueror: function () { - if (navigator.product && navigator.product.match("Konqueror")) { - jsMath.browser = 'Konqueror'; - this.allowAbsolute = 0; - this.allowAbsoluteDelim = 0; - if (navigator.userAgent.match(/Konqueror\/(\d+)\.(\d+)/)) { - if (RegExp.$1 < 3 || (RegExp.$1 == 3 && RegExp.$2 < 3)) { - this.separateSkips = 1; - this.valignBug = 1; - jsMath.Setup.Script('jsMath-old-browsers.js'); - } - } - // Apparently, Konqueror wants the names without the hyphen - jsMath.Add(jsMath.styles,{ - '.typeset .cmr10': 'font-family: jsMath-cmr10, jsMath cmr10, serif', - '.typeset .cmbx10': 'font-family: jsMath-cmbx10, jsMath cmbx10, jsMath-cmr10, jsMath cmr10', - '.typeset .cmti10': 'font-family: jsMath-cmti10, jsMath cmti10, jsMath-cmr10, jsMath cmr10', - '.typeset .cmmi10': 'font-family: jsMath-cmmi10, jsMath cmmi10', - '.typeset .cmsy10': 'font-family: jsMath-cmsy10, jsMath cmsy10', - '.typeset .cmex10': 'font-family: jsMath-cmex10, jsMath cmex10' - }); - jsMath.Font.testFont = "jsMath-cmex10, jsMath cmex10"; - } - } - -}; - -/***************************************************************************/ - -/* - * Implement font check and messages - */ -jsMath.Font = { - - testFont: "jsMath-cmex10", - fallback: "symbol", // the default fallback method - register: [], // list of fonts registered before jsMath.Init() - - // the HTML for the missing font message - message: - 'No jsMath TeX fonts found -- using image fonts instead.
\n' - + 'These may be slow and might not print well.
\n' - + 'Use the jsMath control panel to get additional information.', - - extra_message: - 'Extra TeX fonts not found:
' - + 'Using image fonts instead. This may be slow and might not print well.
\n' - + 'Use the jsMath control panel to get additional information.', - - print_message: - 'To print higher-resolution math symbols, click the
\n' - + 'Hi-Res Fonts for Printing button on the jsMath control panel.
\n', - - alpha_message: - 'If the math symbols print as black boxes, turn off image alpha channels
\n' - + 'using the Options pane of the jsMath control panel.
\n', - - /* - * Look to see if a font is found. - * Check the character in a given position, and see if it is - * wider than the usual one in that position. - */ - Test1: function (name,n,factor,prefix) { - if (n == null) {n = 0x7C}; if (factor == null) {factor = 2}; if (prefix == null) {prefix = ''} - var wh1 = jsMath.BBoxFor(''+jsMath.TeX[name][n].c+''); - var wh2 = jsMath.BBoxFor(''+jsMath.TeX[name][n].c+''); - //alert([wh1.w,wh2.w,wh1.h,factor*wh2.w]); - return (wh1.w > factor*wh2.w && wh1.h != 0); - }, - - Test2: function (name,n,factor,prefix) { - if (n == null) {n = 0x7C}; if (factor == null) {factor = 2}; if (prefix == null) {prefix = ''} - var wh1 = jsMath.BBoxFor(''+jsMath.TeX[name][n].c+''); - var wh2 = jsMath.BBoxFor(''+jsMath.TeX[name][n].c+''); - //alert([wh2.w,wh1.w,wh1.h,factor*wh1.w]); - return (wh2.w > factor*wh1.w && wh1.h != 0); - }, - - /* - * Check for the new jsMath versions of the fonts (blacker with - * different encoding) and if not found, look for old-style fonts. - * If they are found, load the BaKoMa encoding information. - */ - CheckTeX: function () { - var wh = jsMath.BBoxFor(''+jsMath.TeX.cmex10[1].c+''); - jsMath.nofonts = ((wh.w*3 > wh.h || wh.h == 0) && !this.Test1('cmr10',null,null,'jsMath-')); - if (!jsMath.nofonts) return; - /* - * if (jsMath.browser != 'Mozilla' || - * (jsMath.platform == "mac" && - * (!jsMath.Browser.VersionAtLeast(1.5) || jsMath.Browser.VersionAtLeast(3.0))) || - * (jsMath.platform != "mac" && !jsMath.Browser.VersionAtLeast(3.0))) { - * wh = jsMath.BBoxFor(''+jsMath.TeX.cmex10[1].c+''); - * jsMath.nofonts = ((wh.w*3 > wh.h || wh.h == 0) && !this.Test1('cmr10')); - * if (!jsMath.nofonts) {jsMath.Setup.Script("jsMath-BaKoMa-fonts.js")} - * } - */ - }, - - /* - * Check for the availability of TeX fonts. We do this by looking at - * the width and height of a character in the cmex10 font. The cmex10 - * font has depth considerably greater than most characters' widths (the - * whole font has the depth of the character with greatest depth). This - * is not the case for most fonts, so if we can access cmex10, the - * height of a character should be much bigger than the width. - * Otherwise, if we don't have cmex10, we'll get a character in another - * font with normal height and width. In this case, we insert a message - * pointing the user to the jsMath site, and load one of the fallback - * definitions. - * - */ - Check: function () { - var cookie = jsMath.Controls.cookie; - this.CheckTeX(); - if (jsMath.nofonts) { - if (cookie.autofont || cookie.font == 'tex') { - cookie.font = this.fallback; - if (cookie.warn) { - jsMath.nofontMessage = 1; - cookie.warn = 0; jsMath.Controls.SetCookie(0); - if (jsMath.window.NoFontMessage) {jsMath.window.NoFontMessage()} - else {this.Message(this.message)} - } - } - } else { - if (cookie.autofont) {cookie.font = 'tex'} - if (cookie.font == 'tex') return; - } - if (jsMath.noImgFonts) {cookie.font = 'unicode'} - if (cookie.font == 'unicode') { - jsMath.Setup.Script('jsMath-fallback-'+jsMath.platform+'.js'); - jsMath.Box.TeXnonfallback = jsMath.Box.TeX; - jsMath.Box.TeX = jsMath.Box.TeXfallback; - return; - } - if (!cookie.print && cookie.printwarn) { - this.PrintMessage( - (jsMath.Browser.alphaPrintBug && jsMath.Controls.cookie.alpha) ? - this.print_message + this.alpha_message : this.print_message); - } - if (jsMath.Browser.waitForImages) { - jsMath.Script.Push(jsMath.Script,"WaitForImage",jsMath.blank); - } - if (cookie.font == 'symbol') { - jsMath.Setup.Script('jsMath-fallback-symbols.js'); - jsMath.Box.TeXnonfallback = jsMath.Box.TeX; - jsMath.Box.TeX = jsMath.Box.TeXfallback; - return; - } - jsMath.Img.SetFont({ - cmr10: ['all'], cmmi10: ['all'], cmsy10: ['all'], - cmex10: ['all'], cmbx10: ['all'], cmti10: ['all'] - }); - jsMath.Img.LoadFont('cm-fonts'); - }, - - /* - * The message for when no TeX fonts. You can eliminate this message - * by including - * - * - * - * in your HTML file, before loading jsMath.js, if you want. But this - * means the user may not know that he or she can get a better version - * of your page. - */ - Message: function (message) { - if (jsMath.Element("Warning")) return; - var div = jsMath.Setup.DIV("Warning",{}); - div.innerHTML = - '
' - + '
' + message - + '
' - + 'jsMath Control Panel' - + '' - + 'Hide this Message' - + '

' - + '
' - + '

'; - }, - - HideMessage: function () { - var message = jsMath.Element("Warning"); - if (message) {message.style.display = "none"} - }, - - PrintMessage: function (message) { - if (jsMath.Element("PrintWarning")) return; - var div = jsMath.Setup.DIV("PrintWarning",{}); - div.innerHTML = - '
' - + '
' + message + '
' - + '
' - + '

'; - }, - - /* - * Register an extra font so jsMath knows about it - */ - Register: function (data,force) { - if (typeof(data) == 'string') {data = {name: data}} - if (!jsMath.Setup.inited && !force) { - this.register[this.register.length] = data; - return; - } - var fontname = data.name; var name = fontname.replace(/10$/,''); - var fontfam = jsMath.TeX.fam.length; - if (data.prefix == null) {data.prefix = ""} - if (!data.style) {data.style = "font-family: "+data.prefix+fontname+", serif"} - if (!data.styles) {data.styles = {}} - if (!data.macros) {data.macros = {}} - /* - * Register font family - */ - jsMath.TeX.fam[fontfam] = fontname; - jsMath.TeX.famName[fontname] = fontfam; - data.macros[name] = ['HandleFont',fontfam]; - jsMath.Add(jsMath.Parser.prototype.macros,data.macros); - /* - * Set up styles - */ - data.styles['.typeset .'+fontname] = data.style; - jsMath.Setup.Styles(data.styles); - if (jsMath.initialized) {jsMath.Script.Push(jsMath.Setup,'TeXfont',fontname)} - /* - * Check for font and give message if missing - */ - var cookie = jsMath.Controls.cookie; - var hasTeXfont = !jsMath.nofonts && - data.test(fontname,data.testChar,data.testFactor,data.prefix); - if (hasTeXfont && cookie.font == 'tex') { - if (data.tex) {data.tex(fontname,fontfam,data)} - return; - } - if (!hasTeXfont && cookie.warn && cookie.font == 'tex' && !jsMath.nofonts) { - if (!cookie.fonts.match("/"+fontname+"/")) { - cookie.fonts += fontname + "/"; jsMath.Controls.SetCookie(0); - if (!jsMath.Element("Warning")) this.Message(this.extra_message); - var extra = jsMath.Element("ExtraFonts"); - if (extra) { - if (extra.innerHTML != "") {extra.innerHTML += ','} - extra.innerHTML += " " + data.prefix+fontname; - } - } - } - if (cookie.font == 'unicode' || jsMath.noImgFonts) { - if (data.fallback) {data.fallback(fontname,fontfam,data)} - return; - } - // Image fonts - var font = {}; - if (cookie.font == 'symbol' && data.symbol != null) { - font[fontname] = data.symbol(fontname,fontfam,data); - } else { - font[fontname] = ['all']; - } - jsMath.Img.SetFont(font); - jsMath.Img.LoadFont(fontname); - if (jsMath.initialized) { - jsMath.Script.Push(jsMath.Img,'Scale'); - jsMath.Script.Push(jsMath.Img,'UpdateFonts'); - } - }, - /* - * If fonts are registered before jsMath.Init() is called, jsMath.em - * will not be available, so they need to be delayed. - */ - LoadRegistered: function () { - var i = 0; - while (i < this.register.length) {this.Register(this.register[i++],1)} - this.register = []; - }, - - /* - * Load a font - */ - Load: function (name) {jsMath.Setup.Script(this.URL(name))}, - URL: function (name) {return jsMath.Img.root+name+'/def.js'} - -}; - -/***************************************************************************/ - -/* - * Implements the jsMath control panel. - * Much of the code is in jsMath-controls.html, which is - * loaded into a hidden IFRAME on demand - */ -jsMath.Controls = { - - // Data stored in the jsMath cookie - cookie: { - scale: 100, - font: 'tex', autofont: 1, scaleImg: 0, alpha: 1, - warn: 1, fonts: '/', printwarn: 1, stayhires: 0, - button: 1, progress: 1, asynch: 0, blank: 0, - print: 0, keep: '0D', global: 'auto', hiddenGlobal: 1 - }, - - cookiePath: '/', // can also set cookieDomain - noCookiePattern: /^(file|mk):$/, // pattern for handling cookies locally - - - /* - * Create the HTML needed for control panel - */ - Init: function () { - this.panel = jsMath.Setup.DIV("panel",{display:'none'},jsMath.fixedDiv); - if (!jsMath.Browser.msieButtonBug) {this.Button()} - else {setTimeout("jsMath.Controls.Button()",500)} - }, - - /* - * Load the control panel - */ - Panel: function () { - jsMath.Translate.Cancel(); - if (this.loaded) {this.Main()} - else {jsMath.Script.delayedLoad(jsMath.root+"jsMath-controls.html")} - }, - - /* - * Create the control panel button - */ - Button: function () { - var button = jsMath.Setup.DIV("button",{},jsMath.fixedDiv); - button.title = ' Open jsMath Control Panel '; - button.innerHTML = - 'jsMath'; - if (!jsMath.Global.isLocal && !jsMath.noShowGlobal) { - button.innerHTML += - 'Global '; - } - if (button.offsetWidth < 30) {button.style.width = "auto"} - if (!this.cookie.button) {button.style.display = "none"} - }, - - /* - * Since MSIE doesn't handle position:float, we need to have the - * window repositioned every time the window scrolls. We do that - * putting the floating elements into a window-sized DIV, but - * absolutely positioned, and then move the DIV. - */ - MoveButton: function () { - var body = (jsMath.Browser.quirks ? document.body : document.documentElement); - jsMath.fixedDiv.style.left = body.scrollLeft + 'px'; - jsMath.fixedDiv.style.top = body.scrollTop + body.clientHeight + 'px'; - jsMath.fixedDiv.style.width = body.clientWidth + 'px'; -// jsMath.fixedDiv.style.top = body.scrollTop + 'px'; -// jsMath.fixedDiv.style.height = body.clientHeight + 'px'; - }, - - /* - * Get the cookie data from the browser - * (for file: references, use url '?' syntax) - */ - GetCookie: function () { - // save the current cookie settings as the defaults - if (this.defaults == null) {this.defaults = {}} - jsMath.Add(this.defaults,this.cookie); this.userSet = {}; - // get the browser's cookie data - var cookies = jsMath.document.cookie; - if (jsMath.window.location.protocol.match(this.noCookiePattern)) { - cookies = this.localGetCookie(); - this.isLocalCookie = 1; - } - if (cookies.match(/jsMath=([^;]+)/)) { - var data = unescape(RegExp.$1).split(/,/); - for (var i = 0; i < data.length; i++) { - var x = data[i].match(/(.*):(.*)/); - if (x[2].match(/^\d+$/)) {x[2] = 1*x[2]} // convert from string - this.cookie[x[1]] = x[2]; - this.userSet[x[1]] = 1; - } - } - }, - localGetCookie: function () { - return jsMath.window.location.search.substr(1); - }, - - /* - * Save the cookie data in the browser - * (for file: urls, append data like CGI reference) - */ - SetCookie: function (warn) { - var cookie = []; - for (var id in this.cookie) { - if (this.defaults[id] == null || this.cookie[id] != this.defaults[id]) - {cookie[cookie.length] = id + ':' + this.cookie[id]} - } - cookie = cookie.join(','); - if (this.isLocalCookie) { - if (warn == 2) {return 'jsMath='+escape(cookie)} - this.localSetCookie(cookie,warn); - } else { - cookie = escape(cookie); - if (cookie == '') {warn = 0} - if (this.cookiePath) {cookie += '; path='+this.cookiePath} - if (this.cookieDomain) {cookie += '; domain='+this.cookieDomain} - if (this.cookie.keep != '0D') { - var ms = { - D: 1000*60*60*24, - W: 1000*60*60*24*7, - M: 1000*60*60*24*30, - Y: 1000*60*60*24*365 - }; - var exp = new Date; - exp.setTime(exp.getTime() + - this.cookie.keep.substr(0,1) * ms[this.cookie.keep.substr(1,1)]); - cookie += '; expires=' + exp.toGMTString(); - } - if (cookie != '') { - jsMath.document.cookie = 'jsMath='+cookie; - var cookies = jsMath.document.cookie; - if (warn && !cookies.match(/jsMath=/)) - {alert("Cookies must be enabled in order to save jsMath options")} - } - } - return null; - }, - localSetCookie: function (cookie,warn) { - if (!warn) return; - var href = String(jsMath.window.location).replace(/\?.*/,""); - if (cookie != '') {href += '?jsMath=' + escape(cookie)} - if (href != jsMath.window.location.href) {this.Reload(href)} - }, - - /* - * Reload the page (with the given URL) - */ - Reload: function (url) { - if (!this.loaded) return; - this.loaded = 0; jsMath.Setup.inited = -100; - jsMath.Global.ClearCache(); - if (url) {jsMath.window.location.replace(url)} - else {jsMath.window.location.reload()} - } - -}; - -/***************************************************************************/ - -/* - * Implements the actions for clicking and double-clicking - * on math formulas - */ -jsMath.Click = { - - /* - * Handle clicking on math to get control panel - */ - CheckClick: function (event) { - if (!event) {event = jsMath.window.event} - if (event.altKey) jsMath.Controls.Panel(); - }, - - /* - * Handle double-click for seeing TeX code - */ - - CheckDblClick: function (event) { - if (!event) {event = jsMath.window.event} - if (!jsMath.Click.DblClick) { - jsMath.Extension.Require('double-click',1); - // Firefox clears the event, so copy it - var tmpEvent = event; event = {}; - for (var id in tmpEvent) {event[id] = tmpEvent[id]} - } - jsMath.Script.Push(jsMath.Click,'DblClick',[event,this.alt]); - } - -}; - -/***************************************************************************/ - -/* - * The TeX font information - */ -jsMath.TeX = { - - // - // The TeX font parameters - // - thinmuskip: 3/18, - medmuskip: 4/18, - thickmuskip: 5/18, - - x_height: .430554, - quad: 1, - num1: .676508, - num2: .393732, - num3: .44373, - denom1: .685951, - denom2: .344841, - sup1: .412892, - sup2: .362892, - sup3: .288888, - sub1: .15, - sub2: .247217, - sup_drop: .386108, - sub_drop: .05, - delim1: 2.39, - delim2: 1.0, - axis_height: .25, - default_rule_thickness: .06, - big_op_spacing1: .111111, - big_op_spacing2: .166666, - big_op_spacing3: .2, - big_op_spacing4: .6, - big_op_spacing5: .1, - - integer: 6553.6, // conversion of em's to TeX internal integer - scriptspace: .05, - nulldelimiterspace: .12, - delimiterfactor: 901, - delimitershortfall: .5, - scale: 1, // scaling factor for font dimensions - - // The TeX math atom types (see Appendix G of the TeXbook) - atom: ['ord', 'op', 'bin', 'rel', 'open', 'close', 'punct', 'ord'], - - // The TeX font families - fam: ['cmr10','cmmi10','cmsy10','cmex10','cmti10','','cmbx10',''], - famName: {cmr10:0, cmmi10:1, cmsy10:2, cmex10:3, cmti10:4, cmbx10:6}, - - // Encoding used by jsMath fonts - encoding: [ - 'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ç', - 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', - - '°', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', '·', - 'Ø', 'Ù', 'Ú', 'Û', 'Ü', 'µ', '¶', 'ß', - - 'ï', '!', '"', '#', '$', '%', '&', ''', - '(', ')', '*', '+', ',', '-', '.', '/', - - '0', '1', '2', '3', '4', '5', '6', '7', - '8', '9', ':', ';', '<', '=', '>', '?', - - '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', - 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', - - 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', - 'X', 'Y', 'Z', '[', '\', ']', '^', '_', - - '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', - 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', - - 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', - 'x', 'y', 'z', '{', '|', '}', '~', 'ÿ' - ], - - /* - * The following are the TeX font mappings and metrics. The metric - * information comes directly from the TeX .tfm files. Browser-specific - * adjustments are made to these tables in the Browser.Init() routine - */ - cmr10: [ - [0.625,0.683], [0.833,0.683], [0.778,0.683], [0.694,0.683], - [0.667,0.683], [0.75,0.683], [0.722,0.683], [0.778,0.683], - [0.722,0.683], [0.778,0.683], [0.722,0.683], - [0.583,0.694,0,{ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 14, '108': 15}}], - [0.556,0.694], [0.556,0.694], [0.833,0.694], [0.833,0.694], - - [0.278,0.431], [0.306,0.431,0.194], [0.5,0.694], [0.5,0.694], - [0.5,0.628], [0.5,0.694], [0.5,0.568], [0.75,0.694], - [0.444,0,0.17], [0.5,0.694], [0.722,0.431], [0.778,0.431], - [0.5,0.528,0.0972], [0.903,0.683], [1.01,0.683], [0.778,0.732,0.0486], - - [0.278,0.431,0,{krn: {'108': -0.278, '76': -0.319}}], - [0.278,0.694,0,{lig: {'96': 60}}], - [0.5,0.694], [0.833,0.694,0.194], [0.5,0.75,0.0556], - [0.833,0.75,0.0556], [0.778,0.694], - [0.278,0.694,0,{krn: {'63': 0.111, '33': 0.111}, lig: {'39': 34}}], - [0.389,0.75,0.25], [0.389,0.75,0.25], [0.5,0.75], - [0.778,0.583,0.0833], [0.278,0.106,0.194], - [0.333,0.431,0,{lig: {'45': 123}}], - [0.278,0.106], [0.5,0.75,0.25], - - [0.5,0.644], [0.5,0.644], [0.5,0.644], [0.5,0.644], - [0.5,0.644], [0.5,0.644], [0.5,0.644], [0.5,0.644], - [0.5,0.644], [0.5,0.644], [0.278,0.431], [0.278,0.431,0.194], - [0.278,0.5,0.194], [0.778,0.367,-0.133], [0.472,0.5,0.194], - [0.472,0.694,0,{lig: {'96': 62}}], - - [0.778,0.694], - [0.75,0.683,0,{krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}}], - [0.708,0.683], [0.722,0.683], - [0.764,0.683,0,{krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}}], - [0.681,0.683], - [0.653,0.683,0,{krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}], - [0.785,0.683], [0.75,0.683], [0.361,0.683,0,{krn: {'73': 0.0278}}], - [0.514,0.683], - [0.778,0.683,0,{krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}], - [0.625,0.683,0,{krn: {'84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}}], - [0.917,0.683], [0.75,0.683], - [0.778,0.683,0,{krn: {'88': -0.0278, '87': -0.0278, '65': -0.0278, '86': -0.0278, '89': -0.0278}}], - - [0.681,0.683,0,{krn: {'65': -0.0833, '111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}}], - [0.778,0.683,0.194], - [0.736,0.683,0,{krn: {'116': -0.0278, '67': -0.0278, '79': -0.0278, '71': -0.0278, '85': -0.0278, '81': -0.0278, '84': -0.0833, '89': -0.0833, '86': -0.111, '87': -0.111}}], - [0.556,0.683], - [0.722,0.683,0,{krn: {'121': -0.0278, '101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}}], - [0.75,0.683], - [0.75,0.683,0,{ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}], - [1.03,0.683,0,{ic: 0.0139, krn: {'111': -0.0833, '101': -0.0833, '117': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.111, '79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}], - [0.75,0.683,0,{krn: {'79': -0.0278, '67': -0.0278, '71': -0.0278, '81': -0.0278}}], - [0.75,0.683,0,{ic: 0.025, krn: {'101': -0.0833, '111': -0.0833, '114': -0.0833, '97': -0.0833, '65': -0.0833, '117': -0.0833}}], - [0.611,0.683], [0.278,0.75,0.25], [0.5,0.694], - [0.278,0.75,0.25], [0.5,0.694], [0.278,0.668], - - [0.278,0.694,0,{lig: {'96': 92}}], - [0.5,0.431,0,{krn: {'118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}}], - [0.556,0.694,0,{krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}}], - [0.444,0.431,0,{krn: {'104': -0.0278, '107': -0.0278}}], - [0.556,0.694], [0.444,0.431], - [0.306,0.694,0,{ic: 0.0778, krn: {'39': 0.0778, '63': 0.0778, '33': 0.0778, '41': 0.0778, '93': 0.0778}, lig: {'105': 12, '102': 11, '108': 13}}], - [0.5,0.431,0.194,{ic: 0.0139, krn: {'106': 0.0278}}], - [0.556,0.694,0,{krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}}], - [0.278,0.668], [0.306,0.668,0.194], - [0.528,0.694,0,{krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}}], - [0.278,0.694], - [0.833,0.431,0,{krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}}], - [0.556,0.431,0,{krn: {'116': -0.0278, '117': -0.0278, '98': -0.0278, '121': -0.0278, '118': -0.0278, '119': -0.0278}}], - [0.5,0.431,0,{krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}}], - - [0.556,0.431,0.194,{krn: {'101': 0.0278, '111': 0.0278, '120': -0.0278, '100': 0.0278, '99': 0.0278, '113': 0.0278, '118': -0.0278, '106': 0.0556, '121': -0.0278, '119': -0.0278}}], - [0.528,0.431,0.194], [0.392,0.431], [0.394,0.431], - [0.389,0.615,0,{krn: {'121': -0.0278, '119': -0.0278}}], - [0.556,0.431,0,{krn: {'119': -0.0278}}], - [0.528,0.431,0,{ic: 0.0139, krn: {'97': -0.0556, '101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}}], - [0.722,0.431,0,{ic: 0.0139, krn: {'101': -0.0278, '97': -0.0278, '111': -0.0278, '99': -0.0278}}], - [0.528,0.431], - [0.528,0.431,0.194,{ic: 0.0139, krn: {'111': -0.0278, '101': -0.0278, '97': -0.0278, '46': -0.0833, '44': -0.0833}}], - [0.444,0.431], [0.5,0.431,0,{ic: 0.0278, lig: {'45': 124}}], - [1,0.431,0,{ic: 0.0278}], [0.5,0.694], [0.5,0.668], [0.5,0.668] - ], - - cmmi10: [ - [0.615,0.683,0,{ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}}], - [0.833,0.683,0,{krn: {'127': 0.167}}], - [0.763,0.683,0,{ic: 0.0278, krn: {'127': 0.0833}}], - [0.694,0.683,0,{krn: {'127': 0.167}}], - [0.742,0.683,0,{ic: 0.0757, krn: {'127': 0.0833}}], - [0.831,0.683,0,{ic: 0.0812, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}}], - [0.78,0.683,0,{ic: 0.0576, krn: {'127': 0.0833}}], - [0.583,0.683,0,{ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0556}}], - [0.667,0.683,0,{krn: {'127': 0.0833}}], - [0.612,0.683,0,{ic: 0.11, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}}], - [0.772,0.683,0,{ic: 0.0502, krn: {'127': 0.0833}}], - [0.64,0.431,0,{ic: 0.0037, krn: {'127': 0.0278}}], - [0.566,0.694,0.194,{ic: 0.0528, krn: {'127': 0.0833}}], - [0.518,0.431,0.194,{ic: 0.0556}], - [0.444,0.694,0,{ic: 0.0378, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0556}}], - [0.406,0.431,0,{krn: {'127': 0.0556}}], - - [0.438,0.694,0.194,{ic: 0.0738, krn: {'127': 0.0833}}], - [0.497,0.431,0.194,{ic: 0.0359, krn: {'127': 0.0556}}], - [0.469,0.694,0,{ic: 0.0278, krn: {'127': 0.0833}}], - [0.354,0.431,0,{krn: {'127': 0.0556}}], - [0.576,0.431], [0.583,0.694], - [0.603,0.431,0.194,{krn: {'127': 0.0278}}], - [0.494,0.431,0,{ic: 0.0637, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0278}}], - [0.438,0.694,0.194,{ic: 0.046, krn: {'127': 0.111}}], - [0.57,0.431,0,{ic: 0.0359}], - [0.517,0.431,0.194,{krn: {'127': 0.0833}}], - [0.571,0.431,0,{ic: 0.0359, krn: {'59': -0.0556, '58': -0.0556}}], - [0.437,0.431,0,{ic: 0.113, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0278}}], - [0.54,0.431,0,{ic: 0.0359, krn: {'127': 0.0278}}], - [0.596,0.694,0.194,{krn: {'127': 0.0833}}], - [0.626,0.431,0.194,{krn: {'127': 0.0556}}], - - [0.651,0.694,0.194,{ic: 0.0359, krn: {'127': 0.111}}], - [0.622,0.431,0,{ic: 0.0359}], - [0.466,0.431,0,{krn: {'127': 0.0833}}], - [0.591,0.694,0,{krn: {'127': 0.0833}}], - [0.828,0.431,0,{ic: 0.0278}], - [0.517,0.431,0.194,{krn: {'127': 0.0833}}], - [0.363,0.431,0.0972,{ic: 0.0799, krn: {'127': 0.0833}}], - [0.654,0.431,0.194,{krn: {'127': 0.0833}}], - [1,0.367,-0.133], [1,0.367,-0.133], [1,0.367,-0.133], [1,0.367,-0.133], - [0.278,0.464,-0.0363], [0.278,0.464,-0.0363], [0.5,0.465,-0.0347], [0.5,0.465,-0.0347], - - [0.5,0.431], [0.5,0.431], [0.5,0.431], [0.5,0.431,0.194], - [0.5,0.431,0.194], [0.5,0.431,0.194], [0.5,0.644], [0.5,0.431,0.194], - [0.5,0.644], [0.5,0.431,0.194], [0.278,0.106], [0.278,0.106,0.194], - [0.778,0.539,0.0391], - [0.5,0.75,0.25,{krn: {'1': -0.0556, '65': -0.0556, '77': -0.0556, '78': -0.0556, '89': 0.0556, '90': -0.0556}}], - [0.778,0.539,0.0391], [0.5,0.465,-0.0347], - - [0.531,0.694,0,{ic: 0.0556, krn: {'127': 0.0833}}], - [0.75,0.683,0,{krn: {'127': 0.139}}], - [0.759,0.683,0,{ic: 0.0502, krn: {'127': 0.0833}}], - [0.715,0.683,0,{ic: 0.0715, krn: {'61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}}], - [0.828,0.683,0,{ic: 0.0278, krn: {'127': 0.0556}}], - [0.738,0.683,0,{ic: 0.0576, krn: {'127': 0.0833}}], - [0.643,0.683,0,{ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}}], - [0.786,0.683,0,{krn: {'127': 0.0833}}], - [0.831,0.683,0,{ic: 0.0812, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}}], - [0.44,0.683,0,{ic: 0.0785, krn: {'127': 0.111}}], - [0.555,0.683,0,{ic: 0.0962, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.167}}], - [0.849,0.683,0,{ic: 0.0715, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0556}}], - [0.681,0.683,0,{krn: {'127': 0.0278}}], - [0.97,0.683,0,{ic: 0.109, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}}], - [0.803,0.683,0,{ic: 0.109, krn: {'61': -0.0833, '61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}}], - [0.763,0.683,0,{ic: 0.0278, krn: {'127': 0.0833}}], - - [0.642,0.683,0,{ic: 0.139, krn: {'61': -0.0556, '59': -0.111, '58': -0.111, '127': 0.0833}}], - [0.791,0.683,0.194,{krn: {'127': 0.0833}}], - [0.759,0.683,0,{ic: 0.00773, krn: {'127': 0.0833}}], - [0.613,0.683,0,{ic: 0.0576, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}}], - [0.584,0.683,0,{ic: 0.139, krn: {'61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}}], - [0.683,0.683,0,{ic: 0.109, krn: {'59': -0.111, '58': -0.111, '61': -0.0556, '127': 0.0278}}], - [0.583,0.683,0,{ic: 0.222, krn: {'59': -0.167, '58': -0.167, '61': -0.111}}], - [0.944,0.683,0,{ic: 0.139, krn: {'59': -0.167, '58': -0.167, '61': -0.111}}], - [0.828,0.683,0,{ic: 0.0785, krn: {'61': -0.0833, '61': -0.0278, '59': -0.0556, '58': -0.0556, '127': 0.0833}}], - [0.581,0.683,0,{ic: 0.222, krn: {'59': -0.167, '58': -0.167, '61': -0.111}}], - [0.683,0.683,0,{ic: 0.0715, krn: {'61': -0.0556, '59': -0.0556, '58': -0.0556, '127': 0.0833}}], - [0.389,0.75], [0.389,0.694,0.194], [0.389,0.694,0.194], - [1,0.358,-0.142], [1,0.358,-0.142], - - [0.417,0.694,0,{krn: {'127': 0.111}}], - [0.529,0.431], [0.429,0.694], [0.433,0.431,0,{krn: {'127': 0.0556}}], - [0.52,0.694,0,{krn: {'89': 0.0556, '90': -0.0556, '106': -0.111, '102': -0.167, '127': 0.167}}], - [0.466,0.431,0,{krn: {'127': 0.0556}}], - [0.49,0.694,0.194,{ic: 0.108, krn: {'59': -0.0556, '58': -0.0556, '127': 0.167}}], - [0.477,0.431,0.194,{ic: 0.0359, krn: {'127': 0.0278}}], - [0.576,0.694,0,{krn: {'127': -0.0278}}], [0.345,0.66], - [0.412,0.66,0.194,{ic: 0.0572, krn: {'59': -0.0556, '58': -0.0556}}], - [0.521,0.694,0,{ic: 0.0315}], [0.298,0.694,0,{ic: 0.0197, krn: {'127': 0.0833}}], - [0.878,0.431], [0.6,0.431], [0.485,0.431,0,{krn: {'127': 0.0556}}], - - [0.503,0.431,0.194,{krn: {'127': 0.0833}}], - [0.446,0.431,0.194,{ic: 0.0359, krn: {'127': 0.0833}}], - [0.451,0.431,0,{ic: 0.0278, krn: {'59': -0.0556, '58': -0.0556, '127': 0.0556}}], - [0.469,0.431,0,{krn: {'127': 0.0556}}], [0.361,0.615,0,{krn: {'127': 0.0833}}], - [0.572,0.431,0,{krn: {'127': 0.0278}}], - [0.485,0.431,0,{ic: 0.0359, krn: {'127': 0.0278}}], - [0.716,0.431,0,{ic: 0.0269, krn: {'127': 0.0833}}], - [0.572,0.431,0,{krn: {'127': 0.0278}}], - [0.49,0.431,0.194,{ic: 0.0359, krn: {'127': 0.0556}}], - [0.465,0.431,0,{ic: 0.044, krn: {'127': 0.0556}}], - [0.322,0.431,0,{krn: {'127': 0.0278}}], - [0.384,0.431,0.194,{krn: {'127': 0.0833}}], - [0.636,0.431,0.194,{krn: {'127': 0.111}}], - [0.5,0.714,0,{ic: 0.154}], [0.278,0.694,0,{ic: 0.399}] - ], - - cmsy10: [ - [0.778,0.583,0.0833], [0.278,0.444,-0.0556], [0.778,0.583,0.0833], - [0.5,0.465,-0.0347], [0.778,0.583,0.0833], [0.5,0.444,-0.0556], - [0.778,0.583,0.0833], [0.778,0.583,0.0833], [0.778,0.583,0.0833], - [0.778,0.583,0.0833], [0.778,0.583,0.0833], [0.778,0.583,0.0833], - [0.778,0.583,0.0833], [1,0.694,0.194], [0.5,0.444,-0.0556], [0.5,0.444,-0.0556], - - [0.778,0.464,-0.0363], [0.778,0.464,-0.0363], [0.778,0.636,0.136], - [0.778,0.636,0.136], [0.778,0.636,0.136], [0.778,0.636,0.136], - [0.778,0.636,0.136], [0.778,0.636,0.136], [0.778,0.367,-0.133], - [0.778,0.483,-0.0169], [0.778,0.539,0.0391], [0.778,0.539,0.0391], - [1,0.539,0.0391], [1,0.539,0.0391], [0.778,0.539,0.0391], [0.778,0.539,0.0391], - - [1,0.367,-0.133], [1,0.367,-0.133], [0.5,0.694,0.194], [0.5,0.694,0.194], - [1,0.367,-0.133], [1,0.694,0.194], [1,0.694,0.194], [0.778,0.464,-0.0363], - [1,0.367,-0.133], [1,0.367,-0.133], [0.611,0.694,0.194], [0.611,0.694,0.194], - [1,0.367,-0.133], [1,0.694,0.194], [1,0.694,0.194], [0.778,0.431], - - [0.275,0.556], [1,0.431], [0.667,0.539,0.0391], [0.667,0.539,0.0391], - [0.889,0.694,0.194], [0.889,0.694,0.194], [0,0.694,0.194], [0,0.367,-0.133], - [0.556,0.694], [0.556,0.694], [0.667,0.431], [0.5,0.75,0.0556], - [0.722,0.694], [0.722,0.694], [0.778,0.694], [0.778,0.694], - - [0.611,0.694], [0.798,0.683,0,{krn: {'48': 0.194}}], - [0.657,0.683,0,{ic: 0.0304, krn: {'48': 0.139}}], - [0.527,0.683,0,{ic: 0.0583, krn: {'48': 0.139}}], - [0.771,0.683,0,{ic: 0.0278, krn: {'48': 0.0833}}], - [0.528,0.683,0,{ic: 0.0894, krn: {'48': 0.111}}], - [0.719,0.683,0,{ic: 0.0993, krn: {'48': 0.111}}], - [0.595,0.683,0.0972,{ic: 0.0593, krn: {'48': 0.111}}], - [0.845,0.683,0,{ic: 0.00965, krn: {'48': 0.111}}], - [0.545,0.683,0,{ic: 0.0738, krn: {'48': 0.0278}}], - [0.678,0.683,0.0972,{ic: 0.185, krn: {'48': 0.167}}], - [0.762,0.683,0,{ic: 0.0144, krn: {'48': 0.0556}}], - [0.69,0.683,0,{krn: {'48': 0.139}}], [1.2,0.683,0,{krn: {'48': 0.139}}], - [0.82,0.683,0,{ic: 0.147, krn: {'48': 0.0833}}], - [0.796,0.683,0,{ic: 0.0278, krn: {'48': 0.111}}], - - [0.696,0.683,0,{ic: 0.0822, krn: {'48': 0.0833}}], - [0.817,0.683,0.0972,{krn: {'48': 0.111}}], - [0.848,0.683,0,{krn: {'48': 0.0833}}], - [0.606,0.683,0,{ic: 0.075, krn: {'48': 0.139}}], - [0.545,0.683,0,{ic: 0.254, krn: {'48': 0.0278}}], - [0.626,0.683,0,{ic: 0.0993, krn: {'48': 0.0833}}], - [0.613,0.683,0,{ic: 0.0822, krn: {'48': 0.0278}}], - [0.988,0.683,0,{ic: 0.0822, krn: {'48': 0.0833}}], - [0.713,0.683,0,{ic: 0.146, krn: {'48': 0.139}}], - [0.668,0.683,0.0972,{ic: 0.0822, krn: {'48': 0.0833}}], - [0.725,0.683,0,{ic: 0.0794, krn: {'48': 0.139}}], - [0.667,0.556], [0.667,0.556], [0.667,0.556], [0.667,0.556], [0.667,0.556], - - [0.611,0.694], [0.611,0.694], [0.444,0.75,0.25], [0.444,0.75,0.25], - [0.444,0.75,0.25], [0.444,0.75,0.25], [0.5,0.75,0.25], [0.5,0.75,0.25], - [0.389,0.75,0.25], [0.389,0.75,0.25], [0.278,0.75,0.25], [0.5,0.75,0.25], - [0.5,0.75,0.25], [0.611,0.75,0.25], [0.5,0.75,0.25], [0.278,0.694,0.194], - - [0.833,0.04,0.96], [0.75,0.683], [0.833,0.683], [0.417,0.694,0.194,{ic: 0.111}], - [0.667,0.556], [0.667,0.556], [0.778,0.636,0.136], [0.778,0.636,0.136], - [0.444,0.694,0.194], [0.444,0.694,0.194], [0.444,0.694,0.194], - [0.611,0.694,0.194], [0.778,0.694,0.13], [0.778,0.694,0.13], - [0.778,0.694,0.13], [0.778,0.694,0.13] - ], - - cmex10: [ - [0.458,0.04,1.16,{n: 16}], [0.458,0.04,1.16,{n: 17}], - [0.417,0.04,1.16,{n: 104}], [0.417,0.04,1.16,{n: 105}], - [0.472,0.04,1.16,{n: 106}], [0.472,0.04,1.16,{n: 107}], - [0.472,0.04,1.16,{n: 108}], [0.472,0.04,1.16,{n: 109}], - [0.583,0.04,1.16,{n: 110}], [0.583,0.04,1.16,{n: 111}], - [0.472,0.04,1.16,{n: 68}], [0.472,0.04,1.16,{n: 69}], - [0.333,0,0.6,{delim: {rep: 12}}], [0.556,0,0.6,{delim: {rep: 13}}], - [0.578,0.04,1.16,{n: 46}], [0.578,0.04,1.16,{n: 47}], - - [0.597,0.04,1.76,{n: 18}], [0.597,0.04,1.76,{n: 19}], - [0.736,0.04,2.36,{n: 32}], [0.736,0.04,2.36,{n: 33}], - [0.528,0.04,2.36,{n: 34}], [0.528,0.04,2.36,{n: 35}], - [0.583,0.04,2.36,{n: 36}], [0.583,0.04,2.36,{n: 37}], - [0.583,0.04,2.36,{n: 38}], [0.583,0.04,2.36,{n: 39}], - [0.75,0.04,2.36,{n: 40}], [0.75,0.04,2.36,{n: 41}], - [0.75,0.04,2.36,{n: 42}], [0.75,0.04,2.36,{n: 43}], - [1.04,0.04,2.36,{n: 44}], [1.04,0.04,2.36,{n: 45}], - - [0.792,0.04,2.96,{n: 48}], [0.792,0.04,2.96,{n: 49}], - [0.583,0.04,2.96,{n: 50}], [0.583,0.04,2.96,{n: 51}], - [0.639,0.04,2.96,{n: 52}], [0.639,0.04,2.96,{n: 53}], - [0.639,0.04,2.96,{n: 54}], [0.639,0.04,2.96,{n: 55}], - [0.806,0.04,2.96,{n: 56}], [0.806,0.04,2.96,{n: 57}], - [0.806,0.04,2.96], [0.806,0.04,2.96], - [1.28,0.04,2.96], [1.28,0.04,2.96], - [0.811,0.04,1.76,{n: 30}], [0.811,0.04,1.76,{n: 31}], - - [0.875,0.04,1.76,{delim: {top: 48, bot: 64, rep: 66}}], - [0.875,0.04,1.76,{delim: {top: 49, bot: 65, rep: 67}}], - [0.667,0.04,1.76,{delim: {top: 50, bot: 52, rep: 54}}], - [0.667,0.04,1.76,{delim: {top: 51, bot: 53, rep: 55}}], - [0.667,0.04,1.76,{delim: {bot: 52, rep: 54}}], - [0.667,0.04,1.76,{delim: {bot: 53, rep: 55}}], - [0.667,0,0.6,{delim: {top: 50, rep: 54}}], - [0.667,0,0.6,{delim: {top: 51, rep: 55}}], - [0.889,0,0.9,{delim: {top: 56, mid: 60, bot: 58, rep: 62}}], - [0.889,0,0.9,{delim: {top: 57, mid: 61, bot: 59, rep: 62}}], - [0.889,0,0.9,{delim: {top: 56, bot: 58, rep: 62}}], - [0.889,0,0.9,{delim: {top: 57, bot: 59, rep: 62}}], - [0.889,0,1.8,{delim: {rep: 63}}], - [0.889,0,1.8,{delim: {rep: 119}}], - [0.889,0,0.3,{delim: {rep: 62}}], - [0.667,0,0.6,{delim: {top: 120, bot: 121, rep: 63}}], - - [0.875,0.04,1.76,{delim: {top: 56, bot: 59, rep: 62}}], - [0.875,0.04,1.76,{delim: {top: 57, bot: 58, rep: 62}}], - [0.875,0,0.6,{delim: {rep: 66}}], [0.875,0,0.6,{delim: {rep: 67}}], - [0.611,0.04,1.76,{n: 28}], [0.611,0.04,1.76,{n: 29}], - [0.833,0,1,{n: 71}], [1.11,0.1,1.5], [0.472,0,1.11,{ic: 0.194, n: 73}], - [0.556,0,2.22,{ic: 0.444}], [1.11,0,1,{n: 75}], [1.51,0.1,1.5], - [1.11,0,1,{n: 77}], [1.51,0.1,1.5], [1.11,0,1,{n: 79}], [1.51,0.1,1.5], - - [1.06,0,1,{n: 88}], [0.944,0,1,{n: 89}], [0.472,0,1.11,{ic: 0.194, n: 90}], - [0.833,0,1,{n: 91}], [0.833,0,1,{n: 92}], [0.833,0,1,{n: 93}], - [0.833,0,1,{n: 94}], [0.833,0,1,{n: 95}], [1.44,0.1,1.5], - [1.28,0.1,1.5], [0.556,0,2.22,{ic: 0.444}], [1.11,0.1,1.5], - [1.11,0.1,1.5], [1.11,0.1,1.5], [1.11,0.1,1.5], [1.11,0.1,1.5], - - [0.944,0,1,{n: 97}], [1.28,0.1,1.5], [0.556,0.722,0,{n: 99}], - [1,0.75,0,{n: 100}], [1.44,0.75], [0.556,0.722,0,{n: 102}], - [1,0.75,0,{n: 103}], [1.44,0.75], [0.472,0.04,1.76,{n: 20}], - [0.472,0.04,1.76,{n: 21}], [0.528,0.04,1.76,{n: 22}], - [0.528,0.04,1.76,{n: 23}], [0.528,0.04,1.76,{n: 24}], - [0.528,0.04,1.76,{n: 25}], [0.667,0.04,1.76,{n: 26}], - [0.667,0.04,1.76,{n: 27}], - - [1,0.04,1.16,{n: 113}], [1,0.04,1.76,{n: 114}], [1,0.04,2.36,{n: 115}], - [1,0.04,2.96,{n: 116}], [1.06,0,1.8,{delim: {top: 118, bot: 116, rep: 117}}], - [1.06,0,0.6], [1.06,0.04,0.56], - [0.778,0,0.6,{delim: {top: 126, bot: 127, rep: 119}}], - [0.667,0,0.6,{delim: {top: 120, rep: 63}}], - [0.667,0,0.6,{delim: {bot: 121, rep: 63}}], - [0.45,0.12], [0.45,0.12], [0.45,0.12], [0.45,0.12], - [0.778,0,0.6,{delim: {top: 126, rep: 119}}], - [0.778,0,0.6,{delim: {bot: 127, rep: 119}}] - ], - - cmti10: [ - [0.627,0.683,0,{ic: 0.133}], [0.818,0.683], [0.767,0.683,0,{ic: 0.094}], - [0.692,0.683], [0.664,0.683,0,{ic: 0.153}], [0.743,0.683,0,{ic: 0.164}], - [0.716,0.683,0,{ic: 0.12}], [0.767,0.683,0,{ic: 0.111}], - [0.716,0.683,0,{ic: 0.0599}], [0.767,0.683,0,{ic: 0.111}], - [0.716,0.683,0,{ic: 0.103}], - [0.613,0.694,0.194,{ic: 0.212, krn: {'39': 0.104, '63': 0.104, '33': 0.104, '41': 0.104, '93': 0.104}, lig: {'105': 14, '108': 15}}], - [0.562,0.694,0.194,{ic: 0.103}], [0.588,0.694,0.194,{ic: 0.103}], - [0.882,0.694,0.194,{ic: 0.103}], [0.894,0.694,0.194,{ic: 0.103}], - - [0.307,0.431,0,{ic: 0.0767}], [0.332,0.431,0.194,{ic: 0.0374}], - [0.511,0.694], [0.511,0.694,0,{ic: 0.0969}], [0.511,0.628,0,{ic: 0.083}], - [0.511,0.694,0,{ic: 0.108}], [0.511,0.562,0,{ic: 0.103}], [0.831,0.694], - [0.46,0,0.17], [0.537,0.694,0.194,{ic: 0.105}], [0.716,0.431,0,{ic: 0.0751}], - [0.716,0.431,0,{ic: 0.0751}], [0.511,0.528,0.0972,{ic: 0.0919}], - [0.883,0.683,0,{ic: 0.12}], [0.985,0.683,0,{ic: 0.12}], - [0.767,0.732,0.0486,{ic: 0.094}], - - [0.256,0.431,0,{krn: {'108': -0.256, '76': -0.321}}], - [0.307,0.694,0,{ic: 0.124, lig: {'96': 60}}], - [0.514,0.694,0,{ic: 0.0696}], [0.818,0.694,0.194,{ic: 0.0662}], - [0.769,0.694], [0.818,0.75,0.0556,{ic: 0.136}], - [0.767,0.694,0,{ic: 0.0969}], - [0.307,0.694,0,{ic: 0.124, krn: {'63': 0.102, '33': 0.102}, lig: {'39': 34}}], - [0.409,0.75,0.25,{ic: 0.162}], [0.409,0.75,0.25,{ic: 0.0369}], - [0.511,0.75,0,{ic: 0.149}], [0.767,0.562,0.0567,{ic: 0.0369}], - [0.307,0.106,0.194], [0.358,0.431,0,{ic: 0.0283, lig: {'45': 123}}], - [0.307,0.106], [0.511,0.75,0.25,{ic: 0.162}], - - [0.511,0.644,0,{ic: 0.136}], [0.511,0.644,0,{ic: 0.136}], - [0.511,0.644,0,{ic: 0.136}], [0.511,0.644,0,{ic: 0.136}], - [0.511,0.644,0.194,{ic: 0.136}], [0.511,0.644,0,{ic: 0.136}], - [0.511,0.644,0,{ic: 0.136}], [0.511,0.644,0.194,{ic: 0.136}], - [0.511,0.644,0,{ic: 0.136}], [0.511,0.644,0,{ic: 0.136}], - [0.307,0.431,0,{ic: 0.0582}], [0.307,0.431,0.194,{ic: 0.0582}], - [0.307,0.5,0.194,{ic: 0.0756}], [0.767,0.367,-0.133,{ic: 0.0662}], - [0.511,0.5,0.194], [0.511,0.694,0,{ic: 0.122, lig: {'96': 62}}], - - [0.767,0.694,0,{ic: 0.096}], - [0.743,0.683,0,{krn: {'110': -0.0256, '108': -0.0256, '114': -0.0256, '117': -0.0256, '109': -0.0256, '116': -0.0256, '105': -0.0256, '67': -0.0256, '79': -0.0256, '71': -0.0256, '104': -0.0256, '98': -0.0256, '85': -0.0256, '107': -0.0256, '118': -0.0256, '119': -0.0256, '81': -0.0256, '84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}], - [0.704,0.683,0,{ic: 0.103}], [0.716,0.683,0,{ic: 0.145}], - [0.755,0.683,0,{ic: 0.094, krn: {'88': -0.0256, '87': -0.0256, '65': -0.0256, '86': -0.0256, '89': -0.0256}}], - [0.678,0.683,0,{ic: 0.12}], - [0.653,0.683,0,{ic: 0.133, krn: {'111': -0.0767, '101': -0.0767, '117': -0.0767, '114': -0.0767, '97': -0.0767, '65': -0.102, '79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}}], - [0.774,0.683,0,{ic: 0.0872}], [0.743,0.683,0,{ic: 0.164}], - [0.386,0.683,0,{ic: 0.158}], [0.525,0.683,0,{ic: 0.14}], - [0.769,0.683,0,{ic: 0.145, krn: {'79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}}], - [0.627,0.683,0,{krn: {'84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}], - [0.897,0.683,0,{ic: 0.164}], [0.743,0.683,0,{ic: 0.164}], - [0.767,0.683,0,{ic: 0.094, krn: {'88': -0.0256, '87': -0.0256, '65': -0.0256, '86': -0.0256, '89': -0.0256}}], - - [0.678,0.683,0,{ic: 0.103, krn: {'65': -0.0767}}], - [0.767,0.683,0.194,{ic: 0.094}], - [0.729,0.683,0,{ic: 0.0387, krn: {'110': -0.0256, '108': -0.0256, '114': -0.0256, '117': -0.0256, '109': -0.0256, '116': -0.0256, '105': -0.0256, '67': -0.0256, '79': -0.0256, '71': -0.0256, '104': -0.0256, '98': -0.0256, '85': -0.0256, '107': -0.0256, '118': -0.0256, '119': -0.0256, '81': -0.0256, '84': -0.0767, '89': -0.0767, '86': -0.102, '87': -0.102, '101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}], - [0.562,0.683,0,{ic: 0.12}], - [0.716,0.683,0,{ic: 0.133, krn: {'121': -0.0767, '101': -0.0767, '111': -0.0767, '114': -0.0767, '97': -0.0767, '117': -0.0767, '65': -0.0767}}], - [0.743,0.683,0,{ic: 0.164}], - [0.743,0.683,0,{ic: 0.184, krn: {'111': -0.0767, '101': -0.0767, '117': -0.0767, '114': -0.0767, '97': -0.0767, '65': -0.102, '79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}}], - [0.999,0.683,0,{ic: 0.184, krn: {'65': -0.0767}}], - [0.743,0.683,0,{ic: 0.158, krn: {'79': -0.0256, '67': -0.0256, '71': -0.0256, '81': -0.0256}}], - [0.743,0.683,0,{ic: 0.194, krn: {'101': -0.0767, '111': -0.0767, '114': -0.0767, '97': -0.0767, '117': -0.0767, '65': -0.0767}}], - [0.613,0.683,0,{ic: 0.145}], [0.307,0.75,0.25,{ic: 0.188}], - [0.514,0.694,0,{ic: 0.169}], [0.307,0.75,0.25,{ic: 0.105}], - [0.511,0.694,0,{ic: 0.0665}], [0.307,0.668,0,{ic: 0.118}], - - [0.307,0.694,0,{ic: 0.124, lig: {'96': 92}}], [0.511,0.431,0,{ic: 0.0767}], - [0.46,0.694,0,{ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}], - [0.46,0.431,0,{ic: 0.0565, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}], - [0.511,0.694,0,{ic: 0.103, krn: {'108': 0.0511}}], - [0.46,0.431,0,{ic: 0.0751, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}], - [0.307,0.694,0.194,{ic: 0.212, krn: {'39': 0.104, '63': 0.104, '33': 0.104, '41': 0.104, '93': 0.104}, lig: {'105': 12, '102': 11, '108': 13}}], - [0.46,0.431,0.194,{ic: 0.0885}], [0.511,0.694,0,{ic: 0.0767}], - [0.307,0.655,0,{ic: 0.102}], [0.307,0.655,0.194,{ic: 0.145}], - [0.46,0.694,0,{ic: 0.108}], [0.256,0.694,0,{ic: 0.103, krn: {'108': 0.0511}}], - [0.818,0.431,0,{ic: 0.0767}], [0.562,0.431,0,{ic: 0.0767, krn: {'39': -0.102}}], - [0.511,0.431,0,{ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}], - - [0.511,0.431,0.194,{ic: 0.0631, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}], - [0.46,0.431,0.194,{ic: 0.0885}], - [0.422,0.431,0,{ic: 0.108, krn: {'101': -0.0511, '97': -0.0511, '111': -0.0511, '100': -0.0511, '99': -0.0511, '103': -0.0511, '113': -0.0511}}], - [0.409,0.431,0,{ic: 0.0821}], [0.332,0.615,0,{ic: 0.0949}], - [0.537,0.431,0,{ic: 0.0767}], [0.46,0.431,0,{ic: 0.108}], - [0.664,0.431,0,{ic: 0.108, krn: {'108': 0.0511}}], - [0.464,0.431,0,{ic: 0.12}], [0.486,0.431,0.194,{ic: 0.0885}], - [0.409,0.431,0,{ic: 0.123}], [0.511,0.431,0,{ic: 0.0921, lig: {'45': 124}}], - [1.02,0.431,0,{ic: 0.0921}], [0.511,0.694,0,{ic: 0.122}], - [0.511,0.668,0,{ic: 0.116}], [0.511,0.668,0,{ic: 0.105}] - ], - - cmbx10: [ - [0.692,0.686], [0.958,0.686], [0.894,0.686], [0.806,0.686], - [0.767,0.686], [0.9,0.686], [0.831,0.686], [0.894,0.686], - [0.831,0.686], [0.894,0.686], [0.831,0.686], - [0.671,0.694,0,{ic: 0.109, krn: {'39': 0.109, '63': 0.109, '33': 0.109, '41': 0.109, '93': 0.109}, lig: {'105': 14, '108': 15}}], - [0.639,0.694], [0.639,0.694], [0.958,0.694], [0.958,0.694], - - [0.319,0.444], [0.351,0.444,0.194], [0.575,0.694], [0.575,0.694], - [0.575,0.632], [0.575,0.694], [0.575,0.596], [0.869,0.694], - [0.511,0,0.17], [0.597,0.694], [0.831,0.444], [0.894,0.444], - [0.575,0.542,0.0972], [1.04,0.686], [1.17,0.686], [0.894,0.735,0.0486], - - [0.319,0.444,0,{krn: {'108': -0.319, '76': -0.378}}], - [0.35,0.694,0,{lig: {'96': 60}}], [0.603,0.694], [0.958,0.694,0.194], - [0.575,0.75,0.0556], [0.958,0.75,0.0556], [0.894,0.694], - [0.319,0.694,0,{krn: {'63': 0.128, '33': 0.128}, lig: {'39': 34}}], - [0.447,0.75,0.25], [0.447,0.75,0.25], [0.575,0.75], [0.894,0.633,0.133], - [0.319,0.156,0.194], [0.383,0.444,0,{lig: {'45': 123}}], - [0.319,0.156], [0.575,0.75,0.25], - - [0.575,0.644], [0.575,0.644], [0.575,0.644], [0.575,0.644], - [0.575,0.644], [0.575,0.644], [0.575,0.644], [0.575,0.644], - [0.575,0.644], [0.575,0.644], [0.319,0.444], [0.319,0.444,0.194], - [0.35,0.5,0.194], [0.894,0.391,-0.109], [0.543,0.5,0.194], - [0.543,0.694,0,{lig: {'96': 62}}], - - [0.894,0.694], - [0.869,0.686,0,{krn: {'116': -0.0319, '67': -0.0319, '79': -0.0319, '71': -0.0319, '85': -0.0319, '81': -0.0319, '84': -0.0958, '89': -0.0958, '86': -0.128, '87': -0.128}}], - [0.818,0.686], [0.831,0.686], - [0.882,0.686,0,{krn: {'88': -0.0319, '87': -0.0319, '65': -0.0319, '86': -0.0319, '89': -0.0319}}], - [0.756,0.686], - [0.724,0.686,0,{krn: {'111': -0.0958, '101': -0.0958, '117': -0.0958, '114': -0.0958, '97': -0.0958, '65': -0.128, '79': -0.0319, '67': -0.0319, '71': -0.0319, '81': -0.0319}}], - [0.904,0.686], [0.9,0.686], [0.436,0.686,0,{krn: {'73': 0.0319}}], - [0.594,0.686], - [0.901,0.686,0,{krn: {'79': -0.0319, '67': -0.0319, '71': -0.0319, '81': -0.0319}}], - [0.692,0.686,0,{krn: {'84': -0.0958, '89': -0.0958, '86': -0.128, '87': -0.128}}], - [1.09,0.686], [0.9,0.686], - [0.864,0.686,0,{krn: {'88': -0.0319, '87': -0.0319, '65': -0.0319, '86': -0.0319, '89': -0.0319}}], - - [0.786,0.686,0,{krn: {'65': -0.0958, '111': -0.0319, '101': -0.0319, '97': -0.0319, '46': -0.0958, '44': -0.0958}}], - [0.864,0.686,0.194], - [0.862,0.686,0,{krn: {'116': -0.0319, '67': -0.0319, '79': -0.0319, '71': -0.0319, '85': -0.0319, '81': -0.0319, '84': -0.0958, '89': -0.0958, '86': -0.128, '87': -0.128}}], - [0.639,0.686], - [0.8,0.686,0,{krn: {'121': -0.0319, '101': -0.0958, '111': -0.0958, '114': -0.0958, '97': -0.0958, '65': -0.0958, '117': -0.0958}}], - [0.885,0.686], - [0.869,0.686,0,{ic: 0.016, krn: {'111': -0.0958, '101': -0.0958, '117': -0.0958, '114': -0.0958, '97': -0.0958, '65': -0.128, '79': -0.0319, '67': -0.0319, '71': -0.0319, '81': -0.0319}}], - [1.19,0.686,0,{ic: 0.016, krn: {'111': -0.0958, '101': -0.0958, '117': -0.0958, '114': -0.0958, '97': -0.0958, '65': -0.128, '79': -0.0319, '67': -0.0319, '71': -0.0319, '81': -0.0319}}], - [0.869,0.686,0,{krn: {'79': -0.0319, '67': -0.0319, '71': -0.0319, '81': -0.0319}}], - [0.869,0.686,0,{ic: 0.0287, krn: {'101': -0.0958, '111': -0.0958, '114': -0.0958, '97': -0.0958, '65': -0.0958, '117': -0.0958}}], - [0.703,0.686], [0.319,0.75,0.25], [0.603,0.694], [0.319,0.75,0.25], - [0.575,0.694], [0.319,0.694], - - [0.319,0.694,0,{lig: {'96': 92}}], - [0.559,0.444,0,{krn: {'118': -0.0319, '106': 0.0639, '121': -0.0319, '119': -0.0319}}], - [0.639,0.694,0,{krn: {'101': 0.0319, '111': 0.0319, '120': -0.0319, '100': 0.0319, '99': 0.0319, '113': 0.0319, '118': -0.0319, '106': 0.0639, '121': -0.0319, '119': -0.0319}}], - [0.511,0.444,0,{krn: {'104': -0.0319, '107': -0.0319}}], - [0.639,0.694], [0.527,0.444], - [0.351,0.694,0,{ic: 0.109, krn: {'39': 0.109, '63': 0.109, '33': 0.109, '41': 0.109, '93': 0.109}, lig: {'105': 12, '102': 11, '108': 13}}], - [0.575,0.444,0.194,{ic: 0.016, krn: {'106': 0.0319}}], - [0.639,0.694,0,{krn: {'116': -0.0319, '117': -0.0319, '98': -0.0319, '121': -0.0319, '118': -0.0319, '119': -0.0319}}], - [0.319,0.694], [0.351,0.694,0.194], - [0.607,0.694,0,{krn: {'97': -0.0639, '101': -0.0319, '97': -0.0319, '111': -0.0319, '99': -0.0319}}], - [0.319,0.694], - [0.958,0.444,0,{krn: {'116': -0.0319, '117': -0.0319, '98': -0.0319, '121': -0.0319, '118': -0.0319, '119': -0.0319}}], - [0.639,0.444,0,{krn: {'116': -0.0319, '117': -0.0319, '98': -0.0319, '121': -0.0319, '118': -0.0319, '119': -0.0319}}], - [0.575,0.444,0,{krn: {'101': 0.0319, '111': 0.0319, '120': -0.0319, '100': 0.0319, '99': 0.0319, '113': 0.0319, '118': -0.0319, '106': 0.0639, '121': -0.0319, '119': -0.0319}}], - - [0.639,0.444,0.194,{krn: {'101': 0.0319, '111': 0.0319, '120': -0.0319, '100': 0.0319, '99': 0.0319, '113': 0.0319, '118': -0.0319, '106': 0.0639, '121': -0.0319, '119': -0.0319}}], - [0.607,0.444,0.194], [0.474,0.444], [0.454,0.444], - [0.447,0.635,0,{krn: {'121': -0.0319, '119': -0.0319}}], - [0.639,0.444,0,{krn: {'119': -0.0319}}], - [0.607,0.444,0,{ic: 0.016, krn: {'97': -0.0639, '101': -0.0319, '97': -0.0319, '111': -0.0319, '99': -0.0319}}], - [0.831,0.444,0,{ic: 0.016, krn: {'101': -0.0319, '97': -0.0319, '111': -0.0319, '99': -0.0319}}], - [0.607,0.444], - [0.607,0.444,0.194,{ic: 0.016, krn: {'111': -0.0319, '101': -0.0319, '97': -0.0319, '46': -0.0958, '44': -0.0958}}], - [0.511,0.444], [0.575,0.444,0,{ic: 0.0319, lig: {'45': 124}}], - [1.15,0.444,0,{ic: 0.0319}], [0.575,0.694], [0.575,0.694], [0.575,0.694] - ] -}; - -/***************************************************************************/ - -/* - * Implement image-based fonts for fallback method - */ -jsMath.Img = { - - // font sizes available - fonts: [50, 60, 70, 85, 100, 120, 144, 173, 207, 249, 298, 358, 430], - - // em widths for the various font size directories - w: {'50': 6.9, '60': 8.3, '70': 9.7, '85': 11.8, '100': 13.9, - '120': 16.7, '144': 20.0, '173': 24.0, '207': 28.8, '249': 34.6, - '298': 41.4, '358': 49.8, '430': 59.8}, - - best: 4, // index of best font size in the fonts list - update: {}, // fonts to update (see UpdateFonts below) - factor: 1, // factor by which to shrink images (for better printing) - loaded: 0, // image fonts are loaded - - // add characters to be drawn using images - SetFont: function (change) { - for (var font in change) { - if (!this.update[font]) {this.update[font] = []} - this.update[font] = this.update[font].concat(change[font]); - } - }, - - /* - * Called by the exta-font definition files to add an image font - * into the mix - */ - AddFont: function (size,def) { - if (!jsMath.Img[size]) {jsMath.Img[size] = {}}; - jsMath.Add(jsMath.Img[size],def); - }, - - /* - * Update font(s) to use image data rather than native fonts - * It looks in the jsMath.Img.update array to find the names - * of the fonts to udpate, and the arrays of character codes - * to set (or 'all' to change every character); - */ - UpdateFonts: function () { - var change = this.update; if (!this.loaded) return; - for (var font in change) { - for (var i = 0; i < change[font].length; i++) { - var c = change[font][i]; - if (c == 'all') {for (c in jsMath.TeX[font]) {jsMath.TeX[font][c].img = {}}} - else {jsMath.TeX[font][c].img = {}} - } - } - this.update = {}; - }, - - /* - * Find the font size that best fits our current font - * (this is the directory name for the img files used - * in some fallback modes). - */ - BestSize: function () { - var w = jsMath.em * this.factor; - var m = this.w[this.fonts[0]]; - for (var i = 1; i < this.fonts.length; i++) { - if (w < (this.w[this.fonts[i]] + 2*m) / 3) {return i-1} - m = this.w[this.fonts[i]]; - } - return i-1; - }, - - /* - * Get the scaling factor for the image fonts - */ - Scale: function () { - if (!this.loaded) return; - this.best = this.BestSize(); - this.em = jsMath.Img.w[this.fonts[this.best]]; - this.scale = (jsMath.em/this.em); - if (Math.abs(this.scale - 1) < .12) {this.scale = 1} - }, - - /* - * Get URL to directory for given font and size, based on the - * user's alpha/plain setting - */ - URL: function (name,size,C) { - var type = (jsMath.Controls.cookie.alpha) ? '/alpha/': '/plain/'; - if (C == null) {C = "def.js"} else {C = 'char'+C+'.png'} - if (size != "") {size += '/'} - return this.root+name+type+size+C; - }, - - /* - * Laod the data for an image font - */ - LoadFont: function (name) { - if (!this.loaded) this.Init(); - jsMath.Setup.Script(this.URL(name,"")); - }, - - /* - * Setup for print mode, and create the hex code table - */ - Init: function () { - if (jsMath.Controls.cookie.print || jsMath.Controls.cookie.stayhires) { - jsMath.Controls.cookie.print = jsMath.Controls.cookie.stayhires; - this.factor *= 3; - if (!jsMath.Controls.isLocalCookie || !jsMath.Global.isLocal) {jsMath.Controls.SetCookie(0)} - if (jsMath.Browser.alphaPrintBug) {jsMath.Controls.cookie.alpha = 0} - } - var codes = '0123456789ABCDEF'; - this.HexCode = []; - for (var i = 0; i < 128; i++) { - var h = Math.floor(i/16); var l = i - 16*h; - this.HexCode[i] = codes.charAt(h)+codes.charAt(l); - } - this.loaded = 1; - } - -}; - -/***************************************************************************/ - -/* - * jsMath.HTML handles creation of most of the HTML needed for - * presenting mathematics in HTML pages. - */ - -jsMath.HTML = { - - /* - * Produce a string version of a measurement in ems, - * showing only a limited number of digits, and - * using 0 when the value is near zero. - */ - Em: function (m) { - if (Math.abs(m) < .000001) {m = 0} - var s = String(m); s = s.replace(/(\.\d\d\d).+/,'$1'); - return s+'em' - }, - - /* - * Create a horizontal space of width w - */ - Spacer: function (w) { - if (w == 0) {return ''}; - return jsMath.Browser.msieSpaceFix+''; - }, - - /* - * Create a blank rectangle of the given size - * If the height is small, it is converted to pixels so that it - * will not disappear at small font sizes. - */ - - Blank: function (w,h,d,isRule) { - var backspace = ''; var style = '' - if (isRule) { - style += 'border-left:'+this.Em(w)+' solid;'; - if (jsMath.Browser.widthAddsBorder) {w = 0}; - } - if (w == 0) { - if (jsMath.Browser.blankWidthBug) { - if (jsMath.Browser.quirks) { - style += 'width:1px;'; - backspace = '' - } else if (!isRule) { - style += 'width:1px;margin-right:-1px;'; - } - } - } else {style += 'width:'+this.Em(w)+';'} - if (d == null) {d = 0} - if (h) { - var H = this.Em(h+d); - if (isRule && h*jsMath.em <= 1.5) {H = "1.5px"; h = 1.5/jsMath.em} - style += 'height:'+H+';'; - } - if (jsMath.Browser.mozInlineBlockBug) {d = -h} - if (jsMath.Browser.msieBlockDepthBug && !isRule) {d -= jsMath.d} - if (d) {style += 'vertical-align:'+this.Em(-d)} - return backspace+''; - }, - - /* - * Create a rule line for fractions, etc. - */ - Rule: function (w,h) { - if (h == null) {h = jsMath.TeX.default_rule_thickness} - return this.Blank(w,h,0,1); - }, - - /* - * Create a strut for measuring position of baseline - */ - Strut: function (h) {return this.Blank(1,h,0,1)}, - msieStrut: function (h) { - return '' - }, - - /* - * Add a tag to activate a specific CSS class - */ - Class: function (tclass,html) { - return ''+html+''; - }, - - /* - * Use a to place some HTML at a specific position. - * (This can be replaced by the ones below to overcome - * some browser-specific bugs.) - */ - Place: function (html,x,y) { - if (Math.abs(x) < .0001) {x = 0} - if (Math.abs(y) < .0001) {y = 0} - if (x || y) { - var span = '' + html + ''; - } - return html; - }, - - /* - * For MSIE on Windows, backspacing must be done in a separate - * , otherwise the contents will be clipped. Netscape - * also doesn't combine vertical and horizontal spacing well. - * Here the x and y positioning are done in separate tags - */ - PlaceSeparateSkips: function (html,x,y,mw,Mw,w) { - if (Math.abs(x) < .0001) {x = 0} - if (Math.abs(y) < .0001) {y = 0} - if (y) { - var lw = 0; var rw = 0; var width = ""; - if (mw != null) { - rw = Mw - w; lw = mw; - width = ' width:'+this.Em(Mw-mw)+';'; - } - html = - this.Spacer(lw-rw) + - '' + - this.Spacer(-lw) + - html + - this.Spacer(rw) + - '' - } - if (x) {html = this.Spacer(x) + html} - return html; - }, - - /* - * Place a SPAN with absolute coordinates - */ - PlaceAbsolute: function (html,x,y,mw,Mw,w) { - if (Math.abs(x) < .0001) {x = 0} - if (Math.abs(y) < .0001) {y = 0} - var leftSpace = ""; var rightSpace = ""; var width = ""; - if (jsMath.Browser.msieRelativeClipBug && mw != null) { - leftSpace = this.Spacer(-mw); x += mw; - rightSpace = this.Spacer(Mw-w); - } - if (jsMath.Browser.operaAbsoluteWidthBug) {width = " width: "+this.Em(w+2)} - html = - '' + - leftSpace + html + rightSpace + - ' ' + // space normalizes line height in script styles - ''; - return html; - }, - - Absolute: function(html,w,h,d,y) { - if (y != "none") { - if (Math.abs(y) < .0001) {y = 0} - html = '' - + html + ' ' // space normalizes line height in script styles - + ''; - } - if (d == "none") {d = 0} - html += this.Blank((jsMath.Browser.lineBreakBug ? 0 : w),h-d,d); - if (jsMath.Browser.msieAbsoluteBug) { // for MSIE (Mac) - html = '' + html + ''; - } - html = '' + html + ''; - if (jsMath.Browser.lineBreakBug) - {html = ''+html+''} - return html; - } - -}; - - -/***************************************************************************/ - -/* - * jsMath.Box handles TeX's math boxes and jsMath's equivalent of hboxes. - */ - -jsMath.Box = function (format,text,w,h,d) { - if (d == null) {d = jsMath.d} - this.type = 'typeset'; - this.w = w; this.h = h; this.d = d; this.bh = h; this.bd = d; - this.x = 0; this.y = 0; this.mw = 0; this.Mw = w; - this.html = text; this.format = format; -}; - - -jsMath.Add(jsMath.Box,{ - - defaultH: 0, // default height for characters with none specified - - /* - * An empty box - */ - Null: function () {return new jsMath.Box('null','',0,0,0)}, - - /* - * A box containing only text whose class and style haven't been added - * yet (so that we can combine ones with the same styles). It gets - * the text dimensions, if needed. (In general, this has been - * replaced by TeX() below, but is still used in fallback mode.) - */ - Text: function (text,tclass,style,size,a,d) { - var html = jsMath.Typeset.AddClass(tclass,text); - html = jsMath.Typeset.AddStyle(style,size,html); - var BB = jsMath.EmBoxFor(html); var TeX = jsMath.Typeset.TeX(style,size); - var bd = ((tclass == 'cmsy10' || tclass == 'cmex10')? BB.h-TeX.h: TeX.d*BB.h/TeX.hd); - var box = new jsMath.Box('text',text,BB.w,BB.h-bd,bd); - box.style = style; box.size = size; box.tclass = tclass; - if (d != null) {box.d = d*TeX.scale} else {box.d = 0} - if (a == null || a == 1) {box.h = .9*TeX.M_height} - else {box.h = 1.1*TeX.x_height + TeX.scale*a} - return box; - }, - - /* - * Produce a box containing a given TeX character from a given font. - * The box is a text box (like the ones above), so that characters from - * the same font can be combined. - */ - TeX: function (C,font,style,size) { - var c = jsMath.TeX[font][C]; - if (c.d == null) {c.d = 0}; if (c.h == null) {c.h = 0} - if (c.img != null && c.c != '') this.TeXIMG(font,C,jsMath.Typeset.StyleSize(style,size)); - var scale = jsMath.Typeset.TeX(style,size).scale; - var box = new jsMath.Box('text',c.c,c.w*scale,c.h*scale,c.d*scale); - box.style = style; box.size = size; - if (c.tclass) { - box.tclass = c.tclass; - if (c.img) {box.bh = c.img.bh; box.bd = c.img.bd} - else {box.bh = scale*jsMath.h; box.bd = scale*jsMath.d} - } else { - box.tclass = font; - box.bh = scale*jsMath.TeX[font].h; - box.bd = scale*jsMath.TeX[font].d; - if (jsMath.Browser.msieFontBug && box.html.match(/&#/)) { - // hack to avoid font changing back to the default - // font when a unicode reference is not followed - // by a letter or number - box.html += 'x'; - } - } - return box; - }, - - /* - * In fallback modes, handle the fact that we don't have the - * sizes of the characters precomputed - */ - TeXfallback: function (C,font,style,size) { - var c = jsMath.TeX[font][C]; if (!c.tclass) {c.tclass = font} - if (c.img != null) {return this.TeXnonfallback(C,font,style,size)} - if (c.h != null && c.a == null) {c.a = c.h-1.1*jsMath.TeX.x_height} - var a = c.a; var d = c.d; // avoid Firefox warnings - var box = this.Text(c.c,c.tclass,style,size,a,d); - var scale = jsMath.Typeset.TeX(style,size).scale; - if (c.bh != null) { - box.bh = c.bh*scale; - box.bd = c.bd*scale; - } else { - var h = box.bd+box.bh; - var html = jsMath.Typeset.AddClass(box.tclass,box.html); - html = jsMath.Typeset.AddStyle(style,size,html); - box.bd = jsMath.EmBoxFor(html + jsMath.HTML.Strut(h)).h - h; - box.bh = h - box.bd; - if (scale == 1) {c.bh = box.bh; c.bd = box.bd} - } - if (jsMath.msieFontBug && box.html.match(/&#/)) - {box.html += 'x'} - return box; - }, - - /* - * Set the character's string to the appropriate image file - */ - TeXIMG: function (font,C,size) { - var c = jsMath.TeX[font][C]; - if (c.img.size != null && c.img.size == size && - c.img.best != null && c.img.best == jsMath.Img.best) return; - var mustScale = (jsMath.Img.scale != 1); - var id = jsMath.Img.best + size - 4; - if (id < 0) {id = 0; mustScale = 1} else - if (id >= jsMath.Img.fonts.length) {id = jsMath.Img.fonts.length-1; mustScale = 1} - var imgFont = jsMath.Img[jsMath.Img.fonts[id]]; - var img = imgFont[font][C]; - var scale = 1/jsMath.Img.w[jsMath.Img.fonts[id]]; - if (id != jsMath.Img.best + size - 4) { - if (c.w != null) {scale = c.w/img[0]} else { - scale *= jsMath.Img.fonts[size]/jsMath.Img.fonts[4] - * jsMath.Img.fonts[jsMath.Img.best]/jsMath.Img.fonts[id]; - } - } - var w = img[0]*scale; var h = img[1]*scale; var d = -img[2]*scale; var v; - var wadjust = (c.w == null || Math.abs(c.w-w) < .01)? "" : " margin-right:"+jsMath.HTML.Em(c.w-w)+';'; - var resize = ""; C = jsMath.Img.HexCode[C]; - if (!mustScale && !jsMath.Controls.cookie.scaleImg) { - if (jsMath.Browser.mozImageSizeBug || 2*w < h || - (jsMath.Browser.msieAlphaBug && jsMath.Controls.cookie.alpha)) - {resize = "height:"+(img[1]*jsMath.Browser.imgScale)+'px;'} - resize += " width:"+(img[0]*jsMath.Browser.imgScale)+'px;' - v = -img[2]+'px'; - } else { - if (jsMath.Browser.mozImageSizeBug || 2*w < h || - (jsMath.Browser.msieAlphaBug && jsMath.Controls.cookie.alpha)) - {resize = "height:"+jsMath.HTML.Em(h*jsMath.Browser.imgScale)+';'} - resize += " width:"+jsMath.HTML.Em(w*jsMath.Browser.imgScale)+';' - v = jsMath.HTML.Em(d); - } - var vadjust = (Math.abs(d) < .01 && !jsMath.Browser.valignBug)? - "": " vertical-align:"+v+';'; - var URL = jsMath.Img.URL(font,jsMath.Img.fonts[id],C); - if (jsMath.Browser.msieAlphaBug && jsMath.Controls.cookie.alpha) { - c.c = ''; - } else { - c.c = ''; - } - c.tclass = "normal"; - c.img.bh = h+d; c.img.bd = -d; - c.img.size = size; c.img.best = jsMath.Img.best; - }, - - /* - * A box containing a spacer of a specific width - */ - Space: function (w) { - return new jsMath.Box('html',jsMath.HTML.Spacer(w),w,0,0); - }, - - /* - * A box containing a horizontal rule - */ - Rule: function (w,h) { - if (h == null) {h = jsMath.TeX.default_rule_thickness} - var html = jsMath.HTML.Rule(w,h); - return new jsMath.Box('html',html,w,h,0); - }, - - /* - * Get a character from a TeX font, and make sure that it has - * its metrics specified. - */ - GetChar: function (code,font) { - var c = jsMath.TeX[font][code]; - if (c.img != null) {this.TeXIMG(font,code,4)} - if (c.tclass == null) {c.tclass = font} - if (!c.computedW) { - c.w = jsMath.EmBoxFor(jsMath.Typeset.AddClass(c.tclass,c.c)).w; - if (c.h == null) {c.h = jsMath.Box.defaultH}; if (c.d == null) {c.d = 0} - c.computedW = 1; - } - return c; - }, - - /* - * Locate the TeX delimiter character that matches a given height. - * Return the character, font, style and actual height used. - */ - DelimBestFit: function (H,c,font,style) { - if (c == 0 && font == 0) return null; - var C; var h; font = jsMath.TeX.fam[font]; - var isSS = (style.charAt(1) == 'S'); - var isS = (style.charAt(0) == 'S'); - while (c != null) { - C = jsMath.TeX[font][c]; - if (C.h == null) {C.h = jsMath.Box.defaultH}; if (C.d == null) {C.d = 0} - h = C.h+C.d; - if (C.delim) {return [c,font,'',H]} - if (isSS && .5*h >= H) {return [c,font,'SS',.5*h]} - if (isS && .7*h >= H) {return [c,font,'S',.7*h]} - if (h >= H || C.n == null) {return [c,font,'T',h]} - c = C.n; - } - return null; - }, - - /* - * Create the HTML needed for a stretchable delimiter of a given height, - * either centered or not. This version uses relative placement (i.e., - * backspaces, not line-breaks). This works with more browsers, but - * if the font size changes, the backspacing may not be right, so the - * delimiters may become jagged. - */ - DelimExtendRelative: function (H,c,font,a,nocenter) { - var C = jsMath.TeX[font][c]; - var top = this.GetChar(C.delim.top? C.delim.top: C.delim.rep,font); - var rep = this.GetChar(C.delim.rep,font); - var bot = this.GetChar(C.delim.bot? C.delim.bot: C.delim.rep,font); - var ext = jsMath.Typeset.AddClass(rep.tclass,rep.c); - var w = rep.w; var h = rep.h+rep.d - var y; var Y; var html; var dx; var i; var n; - if (C.delim.mid) {// braces - var mid = this.GetChar(C.delim.mid,font); - n = Math.ceil((H-(top.h+top.d)-(mid.h+mid.d)-(bot.h+bot.d))/(2*(rep.h+rep.d))); - H = 2*n*(rep.h+rep.d) + (top.h+top.d) + (mid.h+mid.d) + (bot.h+bot.d); - if (nocenter) {y = 0} else {y = H/2+a}; Y = y; - html = jsMath.HTML.Place(jsMath.Typeset.AddClass(top.tclass,top.c),0,y-top.h) - + jsMath.HTML.Place(jsMath.Typeset.AddClass(bot.tclass,bot.c),-(top.w+bot.w)/2,y-(H-bot.d)) - + jsMath.HTML.Place(jsMath.Typeset.AddClass(mid.tclass,mid.c),-(bot.w+mid.w)/2,y-(H+mid.h-mid.d)/2); - dx = (w-mid.w)/2; if (Math.abs(dx) < .0001) {dx = 0} - if (dx) {html += jsMath.HTML.Spacer(dx)} - y -= top.h+top.d + rep.h; - for (i = 0; i < n; i++) {html += jsMath.HTML.Place(ext,-w,y-i*h)} - y -= H/2 - rep.h/2; - for (i = 0; i < n; i++) {html += jsMath.HTML.Place(ext,-w,y-i*h)} - } else {// everything else - n = Math.ceil((H - (top.h+top.d) - (bot.h+bot.d))/(rep.h+rep.d)); - // make sure two-headed arrows have an extender - if (top.h+top.d < .9*(rep.h+rep.d)) {n = Math.max(1,n)} - H = n*(rep.h+rep.d) + (top.h+top.d) + (bot.h+bot.d); - if (nocenter) {y = 0} else {y = H/2+a}; Y = y; - html = jsMath.HTML.Place(jsMath.Typeset.AddClass(top.tclass,top.c),0,y-top.h) - dx = (w-top.w)/2; if (Math.abs(dx) < .0001) {dx = 0} - if (dx) {html += jsMath.HTML.Spacer(dx)} - y -= top.h+top.d + rep.h; - for (i = 0; i < n; i++) {html += jsMath.HTML.Place(ext,-w,y-i*h)} - html += jsMath.HTML.Place(jsMath.Typeset.AddClass(bot.tclass,bot.c),-(w+bot.w)/2,Y-(H-bot.d)); - } - if (nocenter) {h = top.h} else {h = H/2+a} - var box = new jsMath.Box('html',html,rep.w,h,H-h); - box.bh = jsMath.TeX[font].h; box.bd = jsMath.TeX[font].d; - return box; - }, - - /* - * Create the HTML needed for a stretchable delimiter of a given height, - * either centered or not. This version uses absolute placement (i.e., - * line-breaks, not backspacing). This gives more reliable results, - * but doesn't work with all browsers. - */ - DelimExtendAbsolute: function (H,c,font,a,nocenter) { - var Font = jsMath.TeX[font]; - var C = Font[c]; var html; - var top = this.GetChar(C.delim.top? C.delim.top: C.delim.rep,font); - var rep = this.GetChar(C.delim.rep,font); - var bot = this.GetChar(C.delim.bot? C.delim.bot: C.delim.rep,font); - var n; var h; var y; var ext; var i; - - if (C.delim.mid) {// braces - var mid = this.GetChar(C.delim.mid,font); - n = Math.ceil((H-(top.h+top.d)-(mid.h+mid.d-.05)-(bot.h+bot.d-.05))/(2*(rep.h+rep.d-.05))); - H = 2*n*(rep.h+rep.d-.05) + (top.h+top.d) + (mid.h+mid.d-.05) + (bot.h+bot.d-.05); - - html = jsMath.HTML.PlaceAbsolute(jsMath.Typeset.AddClass(top.tclass,top.c),0,0); - h = rep.h+rep.d - .05; y = top.d-.05 + rep.h; - ext = jsMath.Typeset.AddClass(rep.tclass,rep.c) - for (i = 0; i < n; i++) {html += jsMath.HTML.PlaceAbsolute(ext,0,y+i*h)} - html += jsMath.HTML.PlaceAbsolute(jsMath.Typeset.AddClass(mid.tclass,mid.c),0,y+n*h-rep.h+mid.h); - y += n*h + mid.h+mid.d - .05; - for (i = 0; i < n; i++) {html += jsMath.HTML.PlaceAbsolute(ext,0,y+i*h)} - html += jsMath.HTML.PlaceAbsolute(jsMath.Typeset.AddClass(bot.tclass,bot.c),0,y+n*h-rep.h+bot.h); - } else {// all others - n = Math.ceil((H - (top.h+top.d) - (bot.h+bot.d-.05))/(rep.h+rep.d-.05)); - H = n*(rep.h+rep.d-.05) + (top.h+top.d) + (bot.h+bot.d-.05); - - html = jsMath.HTML.PlaceAbsolute(jsMath.Typeset.AddClass(top.tclass,top.c),0,0); - h = rep.h+rep.d-.05; y = top.d-.05 + rep.h; - ext = jsMath.Typeset.AddClass(rep.tclass,rep.c); - for (i = 0; i < n; i++) {html += jsMath.HTML.PlaceAbsolute(ext,0,y+i*h)} - html += jsMath.HTML.PlaceAbsolute(jsMath.Typeset.AddClass(bot.tclass,bot.c),0,y+n*h-rep.h+bot.h); - } - - var w = top.w; - if (nocenter) {h = top.h; y = 0} else {h = H/2 + a; y = h - top.h} - if (jsMath.Controls.cookie.font === "unicode") { - if (jsMath.Browser.msie8HeightBug) {y -= jsMath.hd} - else if (jsMath.Browser.msieBlockDepthBug) {y += jsMath.d} - } - html = jsMath.HTML.Absolute(html,w,Font.h,"none",-y); - var box = new jsMath.Box('html',html,rep.w,h,H-h); - box.bh = jsMath.TeX[font].h; box.bd = jsMath.TeX[font].d; - return box; - }, - - /* - * Get the HTML for a given delimiter of a given height. - * It will return either a single character, if one exists, or the - * more complex HTML needed for a stretchable delimiter. - */ - Delimiter: function (H,delim,style,nocenter) { - var size = 4; //### pass this? - var TeX = jsMath.Typeset.TeX(style,size); - if (!delim) {return this.Space(TeX.nulldelimiterspace)} - var CFSH = this.DelimBestFit(H,delim[2],delim[1],style); - if (CFSH == null || CFSH[3] < H) - {CFSH = this.DelimBestFit(H,delim[4],delim[3],style)} - if (CFSH == null) {return this.Space(TeX.nulldelimiterspace)} - if (CFSH[2] == '') - {return this.DelimExtend(H,CFSH[0],CFSH[1],TeX.axis_height,nocenter)} - var box = jsMath.Box.TeX(CFSH[0],CFSH[1],CFSH[2],size).Styled(); - if (!nocenter) {box.y = -((box.h+box.d)/2 - box.d - TeX.axis_height)} - if (Math.abs(box.y) < .0001) {box.y = 0} - if (box.y) {box = jsMath.Box.SetList([box],CFSH[2],size)} - return box; - }, - - /* - * Get a character by its TeX charcode, and make sure its width - * is specified. - */ - GetCharCode: function (code) { - var font = jsMath.TeX.fam[code[0]]; - var Font = jsMath.TeX[font]; - var c = Font[code[1]]; - if (c.img != null) {this.TeXIMG(font,code[1],4)} - if (c.w == null) {c.w = jsMath.EmBoxFor(jsMath.Typeset.AddClass(c.tclass,c.c)).w} - if (c.font == null) {c.font = font} - return c; - }, - - /* - * Add the class to the html, and use the font if there isn't one - * specified already - */ - - AddClass: function (tclass,html,font) { - if (tclass == null) {tclass = font} - return jsMath.Typeset.AddClass(tclass,html); - }, - - /* - * Create the HTML for an alignment (e.g., array or matrix) - * Since the widths are not really accurate (they are based on pixel - * widths not the sub-pixel widths of the actual characters), there - * is some drift involved. We lay out the table column by column - * to help reduce the problem. - * - * ### still need to allow users to specify row and column attributes, - * and do things like \span and \multispan ### - */ - LayoutRelative: function (size,table,align,cspacing,rspacing,vspace,useStrut,addWidth) { - if (align == null) {align = []} - if (cspacing == null) {cspacing = []} - if (rspacing == null) {rspacing = []} - if (useStrut == null) {useStrut = 1} - if (addWidth == null) {addWidth = 1} - - // get row and column maximum dimensions - var scale = jsMath.sizes[size]/100; - var W = []; var H = []; var D = []; - var unset = -1000; var bh = unset; var bd = unset; - var i; var j; var row; - for (i = 0; i < table.length; i++) { - if (rspacing[i] == null) {rspacing[i] = 0} - row = table[i]; - H[i] = useStrut*jsMath.h*scale; D[i] = useStrut*jsMath.d*scale; - for (j = 0; j < row.length; j++) { - row[j] = row[j].Remeasured(); - if (row[j].h > H[i]) {H[i] = row[j].h} - if (row[j].d > D[i]) {D[i] = row[j].d} - if (j >= W.length) {W[j] = row[j].w} - else if (row[j].w > W[j]) {W[j] = row[j].w} - if (row[j].bh > bh) {bh = row[j].bh} - if (row[j].bd > bd) {bd = row[j].bd} - } - } - if (rspacing[table.length] == null) {rspacing[table.length] = 0} - if (bh == unset) {bh = 0}; if (bd == unset) {bd = 0} - - // lay out the columns - var HD = useStrut*(jsMath.hd-.01)*scale; - var dy = (vspace || 1) * scale/6; - var html = ''; var pW = 0; var cW = 0; - var w; var h; var y; - var box; var mlist; var entry; - for (j = 0; j < W.length; j++) { - mlist = []; y = -H[0]-rspacing[0]; pW = 0; - for (i = 0; i < table.length; i++) { - entry = table[i][j]; - if (entry && entry.format != 'null') { - if (align[j] == 'l') {w = 0} else - if (align[j] == 'r') {w = W[j] - entry.w} else - {w = (W[j] - entry.w)/2} - entry.x = w - pW; pW = entry.w + w; entry.y = y; - mlist[mlist.length] = entry; - } - if (i+1 < table.length) {y -= Math.max(HD,D[i]+H[i+1]) + dy + rspacing[i+1]} - } - if (cspacing[j] == null) cspacing[j] = scale; - if (mlist.length > 0) { - box = jsMath.Box.SetList(mlist,'T',size); - html += jsMath.HTML.Place(box.html,cW,0); - cW = W[j] - box.w + cspacing[j]; - } else {cW += cspacing[j]} - } - - // get the full width and height - w = -cspacing[W.length-1]; y = (H.length-1)*dy + rspacing[0]; - for (i = 0; i < W.length; i++) {w += W[i] + cspacing[i]} - for (i = 0; i < H.length; i++) {y += Math.max(HD,H[i]+D[i]) + rspacing[i+1]} - h = y/2 + jsMath.TeX.axis_height; var d = y-h; - - // adjust the final row width, and vcenter the table - // (add 1/6em at each side for the \,) - html += jsMath.HTML.Spacer(cW-cspacing[W.length-1] + addWidth*scale/6); - html = jsMath.HTML.Place(html,addWidth*scale/6,h); - box = new jsMath.Box('html',html,w+addWidth*scale/3,h,d); - box.bh = bh; box.bd = bd; - return box; - }, - - /* - * Create the HTML for an alignment (e.g., array or matrix) - * Use absolute position for elements in the array. - * - * ### still need to allow users to specify row and column attributes, - * and do things like \span and \multispan ### - */ - LayoutAbsolute: function (size,table,align,cspacing,rspacing,vspace,useStrut,addWidth) { - if (align == null) {align = []} - if (cspacing == null) {cspacing = []} - if (rspacing == null) {rspacing = []} - if (useStrut == null) {useStrut = 1} - if (addWidth == null) {addWidth = 1} - // get row and column maximum dimensions - var scale = jsMath.sizes[size]/100; - var HD = useStrut*(jsMath.hd-.01)*scale; - var dy = (vspace || 1) * scale/6; - var W = []; var H = []; var D = []; - var w = 0; var h; var x; var y; - var i; var j; var row; - for (i = 0; i < table.length; i++) { - if (rspacing[i] == null) {rspacing[i] = 0} - row = table[i]; - H[i] = useStrut*jsMath.h*scale; D[i] = useStrut*jsMath.d*scale; - for (j = 0; j < row.length; j++) { - row[j] = row[j].Remeasured(); - if (row[j].h > H[i]) {H[i] = row[j].h} - if (row[j].d > D[i]) {D[i] = row[j].d} - if (j >= W.length) {W[j] = row[j].w} - else if (row[j].w > W[j]) {W[j] = row[j].w} - } - } - if (rspacing[table.length] == null) {rspacing[table.length] = 0} - - // get the height and depth of the centered table - y = (H.length-1)*dy + rspacing[0]; - for (i = 0; i < H.length; i++) {y += Math.max(HD,H[i]+D[i]) + rspacing[i+1]} - h = y/2 + jsMath.TeX.axis_height; var d = y - h; - - // lay out the columns - var html = ''; var entry; w = addWidth*scale/6; - for (j = 0; j < W.length; j++) { - y = H[0]-h + rspacing[0]; - for (i = 0; i < table.length; i++) { - entry = table[i][j]; - if (entry && entry.format != 'null') { - if (align[j] && align[j] == 'l') {x = 0} else - if (align[j] && align[j] == 'r') {x = W[j] - entry.w} else - {x = (W[j] - entry.w)/2} - html += jsMath.HTML.PlaceAbsolute(entry.html,w+x, - y-Math.max(0,entry.bh-jsMath.h*scale), - entry.mw,entry.Mw,entry.w); - } - if (i+1 < table.length) {y += Math.max(HD,D[i]+H[i+1]) + dy + rspacing[i+1]} - } - if (cspacing[j] == null) cspacing[j] = scale; - w += W[j] + cspacing[j]; - } - - // get the full width - w = -cspacing[W.length-1]+addWidth*scale/3; - for (i = 0; i < W.length; i++) {w += W[i] + cspacing[i]} - - html = jsMath.HTML.Spacer(addWidth*scale/6)+html+jsMath.HTML.Spacer(addWidth*scale/6); - if (jsMath.Browser.spanHeightVaries) {y = h-jsMath.h} else {y = 0} - if (jsMath.Browser.msie8HeightBug) {y = d-jsMath.d} - html = jsMath.HTML.Absolute(html,w,h+d,d,y); - var box = new jsMath.Box('html',html,w+addWidth*scale/3,h,d); - return box; - }, - - /* - * Look for math within \hbox and other non-math text - */ - InternalMath: function (text,size) { - if (!jsMath.safeHBoxes) {text = text.replace(/@\(([^)]*)\)/g,'<$1>')} - if (!text.match(/\$|\\\(/)) - {return this.Text(this.safeHTML(text),'normal','T',size).Styled()} - - var i = 0; var k = 0; var c; var match = ''; - var mlist = []; var parse, s; - while (i < text.length) { - c = text.charAt(i++); - if (c == '$') { - if (match == '$') { - parse = jsMath.Parse(text.slice(k,i-1),null,size); - if (parse.error) { - mlist[mlist.length] = this.Text(parse.error,'error','T',size,1,.2); - } else { - parse.Atomize(); - mlist[mlist.length] = parse.mlist.Typeset('T',size).Styled(); - } - match = ''; k = i; - } else { - s = this.safeHTML(text.slice(k,i-1)); - mlist[mlist.length] = this.Text(s,'normal','T',size,1,.2); - match = '$'; k = i; - } - } else if (c == '\\') { - c = text.charAt(i++); - if (c == '(' && match == '') { - s = this.safeHTML(text.slice(k,i-2)); - mlist[mlist.length] = this.Text(s,'normal','T',size,1,.2); - match = ')'; k = i; - } else if (c == ')' && match == ')') { - parse = jsMath.Parse(text.slice(k,i-2),null,size); - if (parse.error) { - mlist[mlist.length] = this.Text(parse.error,'error','T',size,1,.2); - } else { - parse.Atomize(); - mlist[mlist.length] = parse.mlist.Typeset('T',size).Styled(); - } - match = ''; k = i; - } - } - } - s = this.safeHTML(text.slice(k)); - mlist[mlist.length] = this.Text(s,'normal','T',size,1,.2); - return this.SetList(mlist,'T',size); - }, - - /* - * Quote HTML characters if we are in safe mode - */ - safeHTML: function (s) { - if (jsMath.safeHBoxes) { - s = s.replace(/&/g,'&') - .replace(//g,'>'); - } - return s; - }, - - /* - * Convert an abitrary box to a typeset box. I.e., make an - * HTML version of the contents of the box, at its desired (x,y) - * position. - */ - Set: function (box,style,size,addstyle) { - if (box && box.type) { - if (box.type == 'typeset') {return box} - if (box.type == 'mlist') { - box.mlist.Atomize(style,size); - return box.mlist.Typeset(style,size); - } - if (box.type == 'text') { - box = this.Text(box.text,box.tclass,style,size,box.ascend||null,box.descend||null); - if (addstyle != 0) {box.Styled()} - return box; - } - box = this.TeX(box.c,box.font,style,size); - if (addstyle != 0) {box.Styled()} - return box; - } - return jsMath.Box.Null(); - }, - - /* - * Convert a list of boxes to a single typeset box. I.e., finalize - * the HTML for the list of boxes, properly spaced and positioned. - */ - SetList: function (boxes,style,size) { - var mlist = []; var box; - for (var i = 0; i < boxes.length; i++) { - box = boxes[i]; - if (box.type == 'typeset') {box = jsMath.mItem.Typeset(box)} - mlist[mlist.length] = box; - } - var typeset = new jsMath.Typeset(mlist); - return typeset.Typeset(style,size); - } - -}); - - -jsMath.Package(jsMath.Box,{ - - /* - * Add the class and style to a text box (i.e., finalize the - * unpositioned HTML for the box). - */ - Styled: function () { - if (this.format == 'text') { - this.html = jsMath.Typeset.AddClass(this.tclass,this.html); - this.html = jsMath.Typeset.AddStyle(this.style,this.size,this.html); - delete this.tclass; delete this.style; - this.format = 'html'; - } - return this; - }, - - /* - * Recompute the box width to make it more accurate. - */ - Remeasured: function () { - if (this.w > 0) { - var w = this.w; this.w = jsMath.EmBoxFor(this.html).w; - if (this.w > this.Mw) {this.Mw = this.w} - w = this.w/w; if (Math.abs(w-1) > .05) {this.h *= w; this.d *= w} - } - return this; - } - -}); - - -/***************************************************************************/ - -/* - * mItems are the building blocks of mLists (math lists) used to - * store the information about a mathematical expression. These are - * basically the items listed in the TeXbook in Appendix G (plus some - * minor extensions). - */ -jsMath.mItem = function (type,def) { - this.type = type; - jsMath.Add(this,def); -} - -jsMath.Add(jsMath.mItem,{ - - /* - * A general atom (given a nucleus for the atom) - */ - Atom: function (type,nucleus) { - return new jsMath.mItem(type,{atom: 1, nuc: nucleus}); - }, - - /* - * An atom whose nucleus is a piece of text, in a given - * class, with a given additional height and depth - */ - TextAtom: function (type,text,tclass,a,d) { - var atom = new jsMath.mItem(type,{ - atom: 1, - nuc: { - type: 'text', - text: text, - tclass: tclass - } - }); - if (a != null) {atom.nuc.ascend = a} - if (d != null) {atom.nuc.descend = d} - return atom; - }, - - /* - * An atom whose nucleus is a TeX character in a specific font - */ - TeXAtom: function (type,c,font) { - return new jsMath.mItem(type,{ - atom: 1, - nuc: { - type: 'TeX', - c: c, - font: font - } - }); - }, - - /* - * A generalized fraction atom, with given delimiters, rule - * thickness, and a numerator and denominator. - */ - Fraction: function (name,num,den,thickness,left,right) { - return new jsMath.mItem('fraction',{ - from: name, num: num, den: den, - thickness: thickness, left: left, right: right - }); - }, - - /* - * An atom that inserts some glue - */ - Space: function (w) {return new jsMath.mItem('space',{w: w})}, - - /* - * An atom that contains a typeset box (like an hbox or vbox) - */ - Typeset: function (box) {return new jsMath.mItem('ord',{atom:1, nuc: box})}, - - /* - * An atom that contains some finished HTML (acts like a typeset box) - */ - HTML: function (html) {return new jsMath.mItem('html',{html: html})} - -}); - -/***************************************************************************/ - -/* - * mLists are lists of mItems, and encode the contents of - * mathematical expressions and sub-expressions. They act as - * the expression "stack" as the mathematics is parsed, and - * contain some state information, like the position of the - * most recent open paren and \over command, and the current font. - */ -jsMath.mList = function (list,font,size,style) { - if (list) {this.mlist = list} else {this.mlist = []} - if (style == null) {style = 'T'}; if (size == null) {size = 4} - this.data = {openI: null, overI: null, overF: null, - font: font, size: size, style: style}; - this.init = {size: size, style: style}; -} - -jsMath.Package(jsMath.mList,{ - - /* - * Add an mItem to the list - */ - Add: function (box) {return (this.mlist[this.mlist.length] = box)}, - - /* - * Get the i-th mItem from the list - */ - Get: function (i) {return this.mlist[i]}, - - /* - * Get the length of the list - */ - Length: function() {return this.mlist.length}, - - /* - * Get the tail mItem of the list - */ - Last: function () { - if (this.mlist.length == 0) {return null} - return this.mlist[this.mlist.length-1] - }, - - /* - * Get a sublist of an mList - */ - Range: function (i,j) { - if (j == null) {j = this.mlist.length} - return new jsMath.mList(this.mlist.slice(i,j+1)); - }, - - /* - * Remove a range of mItems from the list. - */ - Delete: function (i,j) { - if (j == null) {j = i} - if (this.mlist.splice) {this.mlist.splice(i,j-i+1)} else { - var mlist = []; - for (var k = 0; k < this.mlist.length; k++) - {if (k < i || k > j) {mlist[mlist.length] = this.mlist[k]}} - this.mlist = mlist; - } - }, - - /* - * Add an open brace and maintain the stack information - * about the previous open brace so we can recover it - * when this one os closed. - */ - Open: function (left) { - var box = this.Add(new jsMath.mItem('boundary',{data: this.data})); - var olddata = this.data; - this.data = {}; for (var i in olddata) {this.data[i] = olddata[i]} - delete this.data.overI; delete this.data.overF; - this.data.openI = this.mlist.length-1; - if (left != null) {box.left = left} - return box; - }, - - /* - * Attempt to close a brace. Recover the stack information - * about previous open braces and \over commands. If there was an - * \over (or \above, etc) in this set of braces, create a fraction - * atom from the two halves, otherwise create an inner or ord - * from the contents of the braces. - * Remove the braced material from the list and add the newly - * created atom (the fraction, inner or ord). - */ - Close: function (right) { - if (right != null) {right = new jsMath.mItem('boundary',{right: right})} - var atom; var open = this.data.openI; - var over = this.data.overI; var from = this.data.overF; - this.data = this.mlist[open].data; - if (over) { - atom = jsMath.mItem.Fraction(from.name, - {type: 'mlist', mlist: this.Range(open+1,over-1)}, - {type: 'mlist', mlist: this.Range(over)}, - from.thickness,from.left,from.right); - if (right) { - var mlist = new jsMath.mList([this.mlist[open],atom,right]); - atom = jsMath.mItem.Atom('inner',{type: 'mlist', mlist: mlist}); - } - } else { - var openI = open+1; if (right) {this.Add(right); openI--} - atom = jsMath.mItem.Atom((right)?'inner':'ord', - {type: 'mlist', mlist: this.Range(openI)}); - } - this.Delete(open,this.Length()); - return this.Add(atom); - }, - - /* - * Create a generalized fraction from an mlist that - * contains an \over (or \above, etc). - */ - Over: function () { - var over = this.data.overI; var from = this.data.overF; - var atom = jsMath.mItem.Fraction(from.name, - {type: 'mlist', mlist: this.Range(open+1,over-1)}, - {type: 'mlist', mlist: this.Range(over)}, - from.thickness,from.left,from.right); - this.mlist = [atom]; - }, - - /* - * Take a raw mList (that has been produced by parsing some TeX - * expression), and perform the modifications outlined in - * Appendix G of the TeXbook. - */ - Atomize: function (style,size) { - var mitem; var prev = ''; - this.style = style; this.size = size; - for (var i = 0; i < this.mlist.length; i++) { - mitem = this.mlist[i]; mitem.delta = 0; - if (mitem.type == 'choice') - {this.mlist = this.Atomize.choice(this.style,mitem,i,this.mlist); i--} - else if (this.Atomize[mitem.type]) { - var f = this.Atomize[mitem.type]; // Opera needs separate name - f(this.style,this.size,mitem,prev,this,i); - } - prev = mitem; - } - if (mitem && mitem.type == 'bin') {mitem.type = 'ord'} - if (this.mlist.length >= 2 && mitem.type == 'boundary' && - this.mlist[0].type == 'boundary') {this.AddDelimiters(style,size)} - }, - - /* - * For a list that has boundary delimiters as its first and last - * entries, we replace the boundary atoms by open and close - * atoms whose nuclii are the specified delimiters properly sized - * for the contents of the list. (Rule 19) - */ - AddDelimiters: function(style,size) { - var unset = -10000; var h = unset; var d = unset; - for (var i = 0; i < this.mlist.length; i++) { - var mitem = this.mlist[i]; - if (mitem.atom || mitem.type == 'box') { - h = Math.max(h,mitem.nuc.h+mitem.nuc.y); - d = Math.max(d,mitem.nuc.d-mitem.nuc.y); - } - } - var TeX = jsMath.TeX; var a = jsMath.Typeset.TeX(style,size).axis_height; - var delta = Math.max(h-a,d+a); - var H = Math.max(Math.floor(TeX.integer*delta/500)*TeX.delimiterfactor, - TeX.integer*(2*delta-TeX.delimitershortfall))/TeX.integer; - var left = this.mlist[0]; var right = this.mlist[this.mlist.length-1]; - left.nuc = jsMath.Box.Delimiter(H,left.left,style); - right.nuc = jsMath.Box.Delimiter(H,right.right,style); - left.type = 'open'; left.atom = 1; delete left.left; - right.type = 'close'; right.atom = 1; delete right.right; - }, - - /* - * Typeset a math list to produce final HTML for the list. - */ - Typeset: function (style,size) { - var typeset = new jsMath.Typeset(this.mlist); - return typeset.Typeset(style,size); - } - -}); - - -/* - * These routines implement the main rules given in Appendix G of the - * TeXbook - */ - -jsMath.Add(jsMath.mList.prototype.Atomize,{ - - /* - * Handle \displaystyle, \textstyle, etc. - */ - style: function (style,size,mitem,prev,mlist) { - mlist.style = mitem.style; - }, - - /* - * Handle \tiny, \small, etc. - */ - size: function (style,size,mitem,prev,mlist) { - mlist.size = mitem.size; - }, - - /* - * Create empty boxes of the proper sizes for the various - * phantom-type commands - */ - phantom: function (style,size,mitem) { - var box = mitem.nuc = jsMath.Box.Set(mitem.phantom,style,size); - if (mitem.h) {box.Remeasured(); box.html = jsMath.HTML.Spacer(box.w)} - else {box.html = '', box.w = box.Mw = box.mw = 0;} - if (!mitem.v) {box.h = box.d = 0} - box.bd = box.bh = 0; - delete mitem.phantom; - mitem.type = 'box'; - }, - - /* - * Create a box of zero height and depth containing the - * contents of the atom - */ - smash: function (style,size,mitem) { - var box = mitem.nuc = jsMath.Box.Set(mitem.smash,style,size).Remeasured(); - box.h = box.d = 0; - delete mitem.smash; - mitem.type = 'box'; - }, - - /* - * Move a box up or down vertically - */ - raise: function (style,size,mitem) { - mitem.nuc = jsMath.Box.Set(mitem.nuc,style,size); - var y = mitem.raise; - mitem.nuc.html = - jsMath.HTML.Place(mitem.nuc.html,0,y,mitem.nuc.mw,mitem.nuc.Mw,mitem.nuc.w); - mitem.nuc.h += y; mitem.nuc.d -= y; - mitem.type = 'ord'; mitem.atom = 1; - }, - - /* - * Hide the size of a box so that it laps to the left or right, or - * up or down. - */ - lap: function (style,size,mitem) { - var box = jsMath.Box.Set(mitem.nuc,style,size).Remeasured(); - var mlist = [box]; - if (mitem.lap == 'llap') {box.x = -box.w} else - if (mitem.lap == 'rlap') {mlist[1] = jsMath.mItem.Space(-box.w)} else - if (mitem.lap == 'ulap') {box.y = box.d; box.h = box.d = 0} else - if (mitem.lap == 'dlap') {box.y = -box.h; box.h = box.d = 0} - mitem.nuc = jsMath.Box.SetList(mlist,style,size); - if (mitem.lap == 'ulap' || mitem.lap == 'dlap') {mitem.nuc.h = mitem.nuc.d = 0} - mitem.type = 'box'; delete mitem.atom; - }, - - /* - * Handle a Bin atom. (Rule 5) - */ - bin: function (style,size,mitem,prev) { - if (prev && prev.type) { - var type = prev.type; - if (type == 'bin' || type == 'op' || type == 'rel' || - type == 'open' || type == 'punct' || type == '' || - (type == 'boundary' && prev.left != '')) {mitem.type = 'ord'} - } else {mitem.type = 'ord'} - jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); - }, - - /* - * Handle a Rel atom. (Rule 6) - */ - rel: function (style,size,mitem,prev) { - if (prev.type && prev.type == 'bin') {prev.type = 'ord'} - jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); - }, - - /* - * Handle a Close atom. (Rule 6) - */ - close: function (style,size,mitem,prev) { - if (prev.type && prev.type == 'bin') {prev.type = 'ord'} - jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); - }, - - /* - * Handle a Punct atom. (Rule 6) - */ - punct: function (style,size,mitem,prev) { - if (prev.type && prev.type == 'bin') {prev.type = 'ord'} - jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); - }, - - /* - * Handle an Open atom. (Rule 7) - */ - open: function (style,size,mitem) { - jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); - }, - - /* - * Handle an Inner atom. (Rule 7) - */ - inner: function (style,size,mitem) { - jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); - }, - - /* - * Handle a Vcent atom. (Rule 8) - */ - vcenter: function (style,size,mitem) { - var box = jsMath.Box.Set(mitem.nuc,style,size); - var TeX = jsMath.Typeset.TeX(style,size); - box.y = TeX.axis_height - (box.h-box.d)/2; - mitem.nuc = box; mitem.type = 'ord'; - jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); - }, - - /* - * Handle an Over atom. (Rule 9) - */ - overline: function (style,size,mitem) { - var TeX = jsMath.Typeset.TeX(style,size); - var box = jsMath.Box.Set(mitem.nuc,jsMath.Typeset.PrimeStyle(style),size).Remeasured(); - var t = TeX.default_rule_thickness; - var rule = jsMath.Box.Rule(box.w,t); - rule.x = -rule.w; rule.y = box.h + 3*t; - mitem.nuc = jsMath.Box.SetList([box,rule],style,size); - mitem.nuc.h += t; - mitem.type = 'ord'; - jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); - }, - - /* - * Handle an Under atom. (Rule 10) - */ - underline: function (style,size,mitem) { - var TeX = jsMath.Typeset.TeX(style,size); - var box = jsMath.Box.Set(mitem.nuc,jsMath.Typeset.PrimeStyle(style),size).Remeasured(); - var t = TeX.default_rule_thickness; - var rule = jsMath.Box.Rule(box.w,t); - rule.x = -rule.w; rule.y = -box.d - 3*t - t; - mitem.nuc = jsMath.Box.SetList([box,rule],style,size); - mitem.nuc.d += t; - mitem.type = 'ord'; - jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); - }, - - /* - * Handle a Rad atom. (Rule 11 plus stuff for \root..\of) - */ - radical: function (style,size,mitem) { - var TeX = jsMath.Typeset.TeX(style,size); - var Cp = jsMath.Typeset.PrimeStyle(style); - var box = jsMath.Box.Set(mitem.nuc,Cp,size).Remeasured(); - var t = TeX.default_rule_thickness; - var p = t; if (style == 'D' || style == "D'") {p = TeX.x_height} - var r = t + p/4; - var surd = jsMath.Box.Delimiter(box.h+box.d+r+t,[0,2,0x70,3,0x70],style,1); -// if (surd.h > 0) {t = surd.h} // thickness of rule is height of surd character - if (surd.d > box.h+box.d+r) {r = (r+surd.d-box.h-box.d)/2} - surd.y = box.h+r; - var rule = jsMath.Box.Rule(box.w,t); - rule.y = surd.y-t/2; rule.h += 3*t/2; box.x = -box.w; - var Cr = jsMath.Typeset.UpStyle(jsMath.Typeset.UpStyle(style)); - var root = jsMath.Box.Set(mitem.root || null,Cr,size).Remeasured(); - if (mitem.root) { - root.y = .55*(box.h+box.d+3*t+r)-box.d; - surd.x = Math.max(root.w-(11/18)*surd.w,0); - rule.x = (7/18)*surd.w; - root.x = -(root.w+rule.x); - } - mitem.nuc = jsMath.Box.SetList([surd,root,rule,box],style,size); - mitem.type = 'ord'; - jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); - }, - - /* - * Handle an Acc atom. (Rule 12) - */ - accent: function (style,size,mitem) { - var TeX = jsMath.Typeset.TeX(style,size); - var Cp = jsMath.Typeset.PrimeStyle(style); - var box = jsMath.Box.Set(mitem.nuc,Cp,size); - var u = box.w; var s; var Font; var ic = 0; - if (mitem.nuc.type == 'TeX') { - Font = jsMath.TeX[mitem.nuc.font]; - if (Font[mitem.nuc.c].krn && Font.skewchar) - {s = Font[mitem.nuc.c].krn[Font.skewchar]} - ic = Font[mitem.nuc.c].ic; if (ic == null) {ic = 0} - } - if (s == null) {s = 0} - - var c = mitem.accent[2]; - var font = jsMath.TeX.fam[mitem.accent[1]]; Font = jsMath.TeX[font]; - while (Font[c].n && Font[Font[c].n].w <= u) {c = Font[c].n} - - var delta = Math.min(box.h,TeX.x_height); - if (mitem.nuc.type == 'TeX') { - var nitem = jsMath.mItem.Atom('ord',mitem.nuc); - nitem.sup = mitem.sup; nitem.sub = mitem.sub; nitem.delta = 0; - jsMath.mList.prototype.Atomize.SupSub(style,size,nitem); - delta += (nitem.nuc.h - box.h); - box = mitem.nuc = nitem.nuc; - delete mitem.sup; delete mitem.sub; - } - var acc = jsMath.Box.TeX(c,font,style,size); - acc.y = box.h - delta; acc.x = -box.w + s + (u-acc.w)/2; - if (jsMath.Browser.msieAccentBug) - {acc.html += jsMath.HTML.Spacer(.1); acc.w += .1; acc.Mw += .1} - if (Font[c].ic || ic) {acc.x += (ic - (Font[c].ic||0)) * TeX.scale} - - mitem.nuc = jsMath.Box.SetList([box,acc],style,size); - if (mitem.nuc.w != box.w) { - var space = jsMath.mItem.Space(box.w-mitem.nuc.w); - mitem.nuc = jsMath.Box.SetList([mitem.nuc,space],style,size); - } - mitem.type = 'ord'; - jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); - }, - - /* - * Handle an Op atom. (Rules 13 and 13a) - */ - op: function (style,size,mitem) { - var TeX = jsMath.Typeset.TeX(style,size); var box; - mitem.delta = 0; var isD = (style.charAt(0) == 'D'); - if (mitem.limits == null && isD) {mitem.limits = 1} - - if (mitem.nuc.type == 'TeX') { - var C = jsMath.TeX[mitem.nuc.font][mitem.nuc.c]; - if (isD && C.n) {mitem.nuc.c = C.n; C = jsMath.TeX[mitem.nuc.font][C.n]} - box = mitem.nuc = jsMath.Box.Set(mitem.nuc,style,size); - if (C.ic) { - mitem.delta = C.ic * TeX.scale; - if (mitem.limits || !mitem.sub || jsMath.Browser.msieIntegralBug) { - box = mitem.nuc = jsMath.Box.SetList([box,jsMath.mItem.Space(mitem.delta)],style,size); - } - } - box.y = -((box.h+box.d)/2 - box.d - TeX.axis_height); - if (Math.abs(box.y) < .0001) {box.y = 0} - } - - if (!box) {box = mitem.nuc = jsMath.Box.Set(mitem.nuc,style,size).Remeasured()} - if (mitem.limits) { - var W = box.w; var x = box.w; - var mlist = [box]; var dh = 0; var dd = 0; - if (mitem.sup) { - var sup = jsMath.Box.Set(mitem.sup,jsMath.Typeset.UpStyle(style),size).Remeasured(); - sup.x = ((box.w-sup.w)/2 + mitem.delta/2) - x; dh = TeX.big_op_spacing5; - W = Math.max(W,sup.w); x += sup.x + sup.w; - sup.y = box.h+sup.d + box.y + - Math.max(TeX.big_op_spacing1,TeX.big_op_spacing3-sup.d); - mlist[mlist.length] = sup; delete mitem.sup; - } - if (mitem.sub) { - var sub = jsMath.Box.Set(mitem.sub,jsMath.Typeset.DownStyle(style),size).Remeasured(); - sub.x = ((box.w-sub.w)/2 - mitem.delta/2) - x; dd = TeX.big_op_spacing5; - W = Math.max(W,sub.w); x += sub.x + sub.w; - sub.y = -box.d-sub.h + box.y - - Math.max(TeX.big_op_spacing2,TeX.big_op_spacing4-sub.h); - mlist[mlist.length] = sub; delete mitem.sub; - } - if (W > box.w) {box.x = (W-box.w)/2; x += box.x} - if (x < W) {mlist[mlist.length] = jsMath.mItem.Space(W-x)} - mitem.nuc = jsMath.Box.SetList(mlist,style,size); - mitem.nuc.h += dh; mitem.nuc.d += dd; - } else { - if (jsMath.Browser.msieIntegralBug && mitem.sub && C && C.ic) - {mitem.nuc = jsMath.Box.SetList([box,jsMath.Box.Space(-C.ic*TeX.scale)],style,size)} - else if (box.y) {mitem.nuc = jsMath.Box.SetList([box],style,size)} - jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); - } - }, - - /* - * Handle an Ord atom. (Rule 14) - */ - ord: function (style,size,mitem,prev,mList,i) { - if (mitem.nuc.type == 'TeX' && !mitem.sup && !mitem.sub) { - var nitem = mList.mlist[i+1]; - if (nitem && nitem.atom && nitem.type && - (nitem.type == 'ord' || nitem.type == 'op' || nitem.type == 'bin' || - nitem.type == 'rel' || nitem.type == 'open' || - nitem.type == 'close' || nitem.type == 'punct')) { - if (nitem.nuc.type == 'TeX' && nitem.nuc.font == mitem.nuc.font) { - mitem.textsymbol = 1; - var krn = jsMath.TeX[mitem.nuc.font][mitem.nuc.c].krn; - krn *= jsMath.Typeset.TeX(style,size).scale; - if (krn && krn[nitem.nuc.c]) { - for (var k = mList.mlist.length-1; k > i; k--) - {mList.mlist[k+1] = mList.mlist[k]} - mList.mlist[i+1] = jsMath.mItem.Space(krn[nitem.nuc.c]); - } - } - } - } - jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); - }, - - /* - * Handle a generalized fraction. (Rules 15 to 15e) - */ - fraction: function (style,size,mitem) { - var TeX = jsMath.Typeset.TeX(style,size); var t = 0; - if (mitem.thickness != null) {t = mitem.thickness} - else if (mitem.from.match(/over/)) {t = TeX.default_rule_thickness} - var isD = (style.charAt(0) == 'D'); - var Cn = (style == 'D')? 'T': (style == "D'")? "T'": jsMath.Typeset.UpStyle(style); - var Cd = (isD)? "T'": jsMath.Typeset.DownStyle(style); - var num = jsMath.Box.Set(mitem.num,Cn,size).Remeasured(); - var den = jsMath.Box.Set(mitem.den,Cd,size).Remeasured(); - - var u; var v; var w; var p; var r; - var H = (isD)? TeX.delim1 : TeX.delim2; - var mlist = [jsMath.Box.Delimiter(H,mitem.left,style)] - var right = jsMath.Box.Delimiter(H,mitem.right,style); - - if (num.w < den.w) { - num.x = (den.w-num.w)/2; - den.x = -(num.w + num.x); - w = den.w; mlist[1] = num; mlist[2] = den; - } else { - den.x = (num.w-den.w)/2; - num.x = -(den.w + den.x); - w = num.w; mlist[1] = den; mlist[2] = num; - } - if (isD) {u = TeX.num1; v = TeX.denom1} else { - u = (t != 0)? TeX.num2: TeX.num3; - v = TeX.denom2; - } - if (t == 0) {// atop - p = (isD)? 7*TeX.default_rule_thickness: 3*TeX.default_rule_thickness; - r = (u - num.d) - (den.h - v); - if (r < p) {u += (p-r)/2; v += (p-r)/2} - } else {// over - p = (isD)? 3*t: t; var a = TeX.axis_height; - r = (u-num.d)-(a+t/2); if (r < p) {u += p-r} - r = (a-t/2)-(den.h-v); if (r < p) {v += p-r} - var rule = jsMath.Box.Rule(w,t); rule.x = -w; rule.y = a - t/2; - mlist[mlist.length] = rule; - } - num.y = u; den.y = -v; - - mlist[mlist.length] = right; - mitem.nuc = jsMath.Box.SetList(mlist,style,size); - mitem.type = 'ord'; mitem.atom = 1; - delete mitem.num; delete mitem.den; - jsMath.mList.prototype.Atomize.SupSub(style,size,mitem); - }, - - /* - * Add subscripts and superscripts. (Rules 17-18f) - */ - SupSub: function (style,size,mitem) { - var TeX = jsMath.Typeset.TeX(style,size); - var nuc = mitem.nuc; - var box = mitem.nuc = jsMath.Box.Set(mitem.nuc,style,size,0); - if (box.format == 'null') - {box = mitem.nuc = jsMath.Box.Text('','normal',style,size)} - - if (nuc.type == 'TeX') { - if (!mitem.textsymbol) { - var C = jsMath.TeX[nuc.font][nuc.c]; - if (C.ic) { - mitem.delta = C.ic * TeX.scale; - if (!mitem.sub) { - box = mitem.nuc = jsMath.Box.SetList([box,jsMath.Box.Space(mitem.delta)],style,size); - mitem.delta = 0; - } - } - } else {mitem.delta = 0} - } - - if (!mitem.sup && !mitem.sub) return; - mitem.nuc.Styled(); - - var Cd = jsMath.Typeset.DownStyle(style); - var Cu = jsMath.Typeset.UpStyle(style); - var q = jsMath.Typeset.TeX(Cu,size).sup_drop; - var r = jsMath.Typeset.TeX(Cd,size).sub_drop; - var u = 0; var v = 0; var p; - if (nuc.type && nuc.type != 'text' && nuc.type != 'TeX' && nuc.type != 'null') - {u = box.h - q; v = box.d + r} - - if (mitem.sub) { - var sub = jsMath.Box.Set(mitem.sub,Cd,size); - sub = jsMath.Box.SetList([sub,jsMath.mItem.Space(TeX.scriptspace)],style,size); - } - - if (!mitem.sup) { - sub.y = -Math.max(v,TeX.sub1,sub.h-(4/5)*jsMath.Typeset.TeX(Cd,size).x_height); - mitem.nuc = jsMath.Box.SetList([box,sub],style,size).Styled(); delete mitem.sub; - return; - } - - var sup = jsMath.Box.Set(mitem.sup,Cu,size); - sup = jsMath.Box.SetList([sup,jsMath.mItem.Space(TeX.scriptspace)],style,size); - if (style == 'D') {p = TeX.sup1} - else if (style.charAt(style.length-1) == "'") {p = TeX.sup3} - else {p = TeX.sup2} - u = Math.max(u,p,sup.d+jsMath.Typeset.TeX(Cu,size).x_height/4); - - if (!mitem.sub) { - sup.y = u; - mitem.nuc = jsMath.Box.SetList([box,sup],style,size); delete mitem.sup; - return; - } - - v = Math.max(v,jsMath.Typeset.TeX(Cd,size).sub2); - var t = TeX.default_rule_thickness; - if ((u-sup.d) - (sub.h -v) < 4*t) { - v = 4*t + sub.h - (u-sup.d); - p = (4/5)*TeX.x_height - (u-sup.d); - if (p > 0) {u += p; v -= p} - } - sup.Remeasured(); sub.Remeasured(); - sup.y = u; sub.y = -v; sup.x = mitem.delta; - if (sup.w+sup.x > sub.w) - {sup.x -= sub.w; mitem.nuc = jsMath.Box.SetList([box,sub,sup],style,size)} else - {sub.x -= (sup.w+sup.x); mitem.nuc = jsMath.Box.SetList([box,sup,sub],style,size)} - - delete mitem.sup; delete mitem.sub; - } - -}); - - -/***************************************************************************/ - -/* - * The Typeset object handles most of the TeX-specific processing - */ - -jsMath.Typeset = function (mlist) { - this.type = 'typeset'; - this.mlist = mlist; -} - -jsMath.Add(jsMath.Typeset,{ - - /* - * The "C-uparrow" style table (TeXbook, p. 441) - */ - upStyle: { - D: "S", T: "S", "D'": "S'", "T'": "S'", - S: "SS", SS: "SS", "S'": "SS'", "SS'": "SS'" - }, - - /* - * The "C-downarrow" style table (TeXbook, p. 441) - */ - downStyle: { - D: "S'", T: "S'", "D'": "S'", "T'": "S'", - S: "SS'", SS: "SS'", "S'": "SS'", "SS'": "SS'" - }, - - /* - * Get the various styles given the current style - * (see TeXbook, p. 441) - */ - UpStyle: function (style) {return this.upStyle[style]}, - DownStyle: function (style) {return this.downStyle[style]}, - PrimeStyle: function (style) { - if (style.charAt(style.length-1) == "'") {return style} - return style + "'" - }, - - /* - * A value scaled to the appropriate size for scripts - */ - StyleValue: function (style,v) { - if (style == "S" || style == "S'") {return .7*v} - if (style == "SS" || style == "SS'") {return .5*v} - return v; - }, - - /* - * Return the size associated with a given style and size - */ - StyleSize: function (style,size) { - if (style == "S" || style == "S'") {size = Math.max(0,size-2)} - else if (style == "SS" || style == "SS'") {size = Math.max(0,size-4)} - return size; - }, - - /* - * Return the font parameter table for the given style - */ - TeX: function (style,size) { - if (style == "S" || style == "S'") {size = Math.max(0,size-2)} - else if (style == "SS" || style == "SS'") {size = Math.max(0,size-4)} - return jsMath.TeXparams[size]; - }, - - - /* - * Add the CSS class for the given TeX style - */ - AddStyle: function (style,size,html) { - if (style == "S" || style == "S'") {size = Math.max(0,size-2)} - else if (style == "SS" || style == "SS'") {size = Math.max(0,size-4)} - if (size != 4) {html = '' + html + ''} - return html; - }, - - /* - * Add the font class, if needed - */ - AddClass: function (tclass,html) { - if (tclass != '' && tclass != 'normal') {html = jsMath.HTML.Class(tclass,html)} - return html; - } - -}); - - -jsMath.Package(jsMath.Typeset,{ - - /* - * The spacing tables for inter-atom spacing - * (See rule 20, and Chapter 18, p 170) - */ - DTsep: { - ord: {op: 1, bin: 2, rel: 3, inner: 1}, - op: {ord: 1, op: 1, rel: 3, inner: 1}, - bin: {ord: 2, op: 2, open: 2, inner: 2}, - rel: {ord: 3, op: 3, open: 3, inner: 3}, - open: {}, - close: {op: 1, bin:2, rel: 3, inner: 1}, - punct: {ord: 1, op: 1, rel: 1, open: 1, close: 1, punct: 1, inner: 1}, - inner: {ord: 1, op: 1, bin: 2, rel: 3, open: 1, punct: 1, inner: 1} - }, - - SSsep: { - ord: {op: 1}, - op: {ord: 1, op: 1}, - bin: {}, - rel: {}, - open: {}, - close: {op: 1}, - punct: {}, - inner: {op: 1} - }, - - /* - * The sizes used in the tables above - */ - sepW: ['','thinmuskip','medmuskip','thickmuskip'], - - - /* - * Find the amount of separation to use between two adjacent - * atoms in the given style - */ - GetSeparation: function (l,r,style) { - if (l && l.atom && r.atom) { - var table = this.DTsep; if (style.charAt(0) == "S") {table = this.SSsep} - var row = table[l.type]; - if (row && row[r.type] != null) {return jsMath.TeX[this.sepW[row[r.type]]]} - } - return 0; - }, - - /* - * Typeset an mlist (i.e., turn it into HTML). - * Here, text items of the same class and style are combined - * to reduce the number of tags used (though it is still - * huge). Spaces are combined, when possible. - * ### More needs to be done with that. ### - * The width of the final box is recomputed at the end, since - * the final width is not necessarily the sum of the widths of - * the individual parts (widths are in pixels, but the browsers - * puts pieces together using sub-pixel accuracy). - */ - Typeset: function (style,size) { - this.style = style; this.size = size; var unset = -10000 - this.w = 0; this.mw = 0; this.Mw = 0; - this.h = unset; this.d = unset; - this.bh = this.h; this.bd = this.d; - this.tbuf = ''; this.tx = 0; this.tclass = ''; - this.cbuf = ''; this.hbuf = ''; this.hx = 0; - var mitem = null; var prev; this.x = 0; this.dx = 0; - - for (var i = 0; i < this.mlist.length; i++) { - prev = mitem; mitem = this.mlist[i]; - switch (mitem.type) { - - case 'size': - this.FlushClassed(); - this.size = mitem.size; - mitem = prev; // hide this from TeX - break; - - case 'style': - this.FlushClassed(); - if (this.style.charAt(this.style.length-1) == "'") - {this.style = mitem.style + "'"} else {this.style = mitem.style} - mitem = prev; // hide this from TeX - break; - - case 'space': - if (typeof(mitem.w) == 'object') { - if (this.style.charAt(1) == 'S') {mitem.w = .5*mitem.w[0]/18} - else if (this.style.charAt(0) == 'S') {mitem.w = .7*mitem.w[0]/18} - else {mitem.w = mitem.w[0]/18} - } - this.dx += mitem.w-0; // mitem.w is sometimes a string? - mitem = prev; // hide this from TeX - break; - - case 'html': - this.FlushClassed(); - if (this.hbuf == '') {this.hx = this.x} - this.hbuf += mitem.html; - mitem = prev; // hide this from TeX - break; - - default: // atom - if (!mitem.atom && mitem.type != 'box') break; - mitem.nuc.x += this.dx + this.GetSeparation(prev,mitem,this.style); - if (mitem.nuc.x || mitem.nuc.y) mitem.nuc.Styled(); - this.dx = 0; this.x = this.x + this.w; - if (this.x + mitem.nuc.x + mitem.nuc.mw < this.mw) - {this.mw = this.x + mitem.nuc.x + mitem.nuc.mw} - if (this.w + mitem.nuc.x + mitem.nuc.Mw > this.Mw) - {this.Mw = this.w + mitem.nuc.x + mitem.nuc.Mw} - this.w += mitem.nuc.w + mitem.nuc.x; - if (mitem.nuc.format == 'text') { - if (this.tclass != mitem.nuc.tclass && this.tclass != '') this.FlushText(); - if (this.tbuf == '' && this.cbuf == '') {this.tx = this.x} - this.tbuf += mitem.nuc.html; this.tclass = mitem.nuc.tclass; - } else { - this.FlushClassed(); - if (mitem.nuc.x || mitem.nuc.y) this.Place(mitem.nuc); - if (this.hbuf == '') {this.hx = this.x} - this.hbuf += mitem.nuc.html; - } - this.h = Math.max(this.h,mitem.nuc.h+mitem.nuc.y); this.bh = Math.max(this.bh,mitem.nuc.bh); - this.d = Math.max(this.d,mitem.nuc.d-mitem.nuc.y); this.bd = Math.max(this.bd,mitem.nuc.bd); - break; - } - } - - this.FlushClassed(); // make sure scaling is included - if (this.dx) { - this.hbuf += jsMath.HTML.Spacer(this.dx); this.w += this.dx; - if (this.w > this.Mw) {this.Mw = this.w} - if (this.w < this.mw) {this.mw = this.w} - } - if (this.hbuf == '') {return jsMath.Box.Null()} - if (this.h == unset) {this.h = 0} - if (this.d == unset) {this.d = 0} - var box = new jsMath.Box('html',this.hbuf,this.w,this.h,this.d); - box.bh = this.bh; box.bd = this.bd; - box.mw = this.mw; box.Mw = this.Mw; - return box; - }, - - /* - * Add the font to the buffered text and move it to the - * classed-text buffer. - */ - FlushText: function () { - if (this.tbuf == '') return; - this.cbuf += jsMath.Typeset.AddClass(this.tclass,this.tbuf); - this.tbuf = ''; this.tclass = ''; - }, - - /* - * Add the script or scriptscript style to the text and - * move it to the HTML buffer - */ - FlushClassed: function () { - this.FlushText(); - if (this.cbuf == '') return; - if (this.hbuf == '') {this.hx = this.tx} - this.hbuf += jsMath.Typeset.AddStyle(this.style,this.size,this.cbuf); - this.cbuf = ''; - }, - - /* - * Add a to position an item's HTML, and - * adjust the item's height and depth. - * (This may be replaced buy one of the following browser-specific - * versions by Browser.Init().) - */ - Place: function (item) { - var html = '' + item.html + ''; - item.h += item.y; item.d -= item.y; - item.x = 0; item.y = 0; - }, - - /* - * For MSIE on Windows, backspacing must be done in a separate - * , otherwise the contents will be clipped. Netscape - * also doesn't combine vertical and horizontal spacing well. - * Here, the horizontal and vertical spacing are done separately. - */ - - PlaceSeparateSkips: function (item) { - if (item.y) { - var rw = item.Mw - item.w; var lw = item.mw; - var W = item.Mw - item.mw; - item.html = - jsMath.HTML.Spacer(lw-rw) + - '' + - jsMath.HTML.Spacer(-lw) + - item.html + - jsMath.HTML.Spacer(rw) + - '' - } - if (item.x) {item.html = jsMath.HTML.Spacer(item.x) + item.html} - item.h += item.y; item.d -= item.y; - item.x = 0; item.y = 0; - } - -}); - - - -/***************************************************************************/ - -/* - * The Parse object handles the parsing of the TeX input string, and creates - * the mList to be typeset by the Typeset object above. - */ - -jsMath.Parse = function (s,font,size,style) { - var parse = new jsMath.Parser(s,font,size,style); - parse.Parse(); - return parse; -} - -jsMath.Parser = function (s,font,size,style) { - this.string = s; this.i = 0; - this.mlist = new jsMath.mList(null,font,size,style); -} - -jsMath.Package(jsMath.Parser,{ - - // special characters - cmd: '\\', - open: '{', - close: '}', - - // patterns for letters and numbers - letter: /[a-z]/i, - number: /[0-9]/, - // pattern for macros to ^ and _ that should be read with arguments - scriptargs: /^((math|text)..|mathcal|[hm]box)$/, - - // the \mathchar definitions (see Appendix B of the TeXbook). - mathchar: { - '!': [5,0,0x21], - '(': [4,0,0x28], - ')': [5,0,0x29], - '*': [2,2,0x03], // \ast - '+': [2,0,0x2B], - ',': [6,1,0x3B], - '-': [2,2,0x00], - '.': [0,1,0x3A], - '/': [0,1,0x3D], - ':': [3,0,0x3A], - ';': [6,0,0x3B], - '<': [3,1,0x3C], - '=': [3,0,0x3D], - '>': [3,1,0x3E], - '?': [5,0,0x3F], - '[': [4,0,0x5B], - ']': [5,0,0x5D], -// '{': [4,2,0x66], -// '}': [5,2,0x67], - '|': [0,2,0x6A] - }, - - // handle special \catcode characters - special: { - '~': 'Tilde', - '^': 'HandleSuperscript', - '_': 'HandleSubscript', - ' ': 'Space', - '\01': 'Space', - "\t": 'Space', - "\r": 'Space', - "\n": 'Space', - "'": 'Prime', - '%': 'HandleComment', - '&': 'HandleEntry', - '#': 'Hash' - }, - - // the \mathchardef table (see Appendix B of the TeXbook). - mathchardef: { - // brace parts - braceld: [0,3,0x7A], - bracerd: [0,3,0x7B], - bracelu: [0,3,0x7C], - braceru: [0,3,0x7D], - - // Greek letters - alpha: [0,1,0x0B], - beta: [0,1,0x0C], - gamma: [0,1,0x0D], - delta: [0,1,0x0E], - epsilon: [0,1,0x0F], - zeta: [0,1,0x10], - eta: [0,1,0x11], - theta: [0,1,0x12], - iota: [0,1,0x13], - kappa: [0,1,0x14], - lambda: [0,1,0x15], - mu: [0,1,0x16], - nu: [0,1,0x17], - xi: [0,1,0x18], - pi: [0,1,0x19], - rho: [0,1,0x1A], - sigma: [0,1,0x1B], - tau: [0,1,0x1C], - upsilon: [0,1,0x1D], - phi: [0,1,0x1E], - chi: [0,1,0x1F], - psi: [0,1,0x20], - omega: [0,1,0x21], - varepsilon: [0,1,0x22], - vartheta: [0,1,0x23], - varpi: [0,1,0x24], - varrho: [0,1,0x25], - varsigma: [0,1,0x26], - varphi: [0,1,0x27], - - Gamma: [7,0,0x00], - Delta: [7,0,0x01], - Theta: [7,0,0x02], - Lambda: [7,0,0x03], - Xi: [7,0,0x04], - Pi: [7,0,0x05], - Sigma: [7,0,0x06], - Upsilon: [7,0,0x07], - Phi: [7,0,0x08], - Psi: [7,0,0x09], - Omega: [7,0,0x0A], - - // Ord symbols - aleph: [0,2,0x40], - imath: [0,1,0x7B], - jmath: [0,1,0x7C], - ell: [0,1,0x60], - wp: [0,1,0x7D], - Re: [0,2,0x3C], - Im: [0,2,0x3D], - partial: [0,1,0x40], - infty: [0,2,0x31], - prime: [0,2,0x30], - emptyset: [0,2,0x3B], - nabla: [0,2,0x72], - surd: [1,2,0x70], - top: [0,2,0x3E], - bot: [0,2,0x3F], - triangle: [0,2,0x34], - forall: [0,2,0x38], - exists: [0,2,0x39], - neg: [0,2,0x3A], - lnot: [0,2,0x3A], - flat: [0,1,0x5B], - natural: [0,1,0x5C], - sharp: [0,1,0x5D], - clubsuit: [0,2,0x7C], - diamondsuit: [0,2,0x7D], - heartsuit: [0,2,0x7E], - spadesuit: [0,2,0x7F], - - // big ops - coprod: [1,3,0x60], - bigvee: [1,3,0x57], - bigwedge: [1,3,0x56], - biguplus: [1,3,0x55], - bigcap: [1,3,0x54], - bigcup: [1,3,0x53], - intop: [1,3,0x52], - prod: [1,3,0x51], - sum: [1,3,0x50], - bigotimes: [1,3,0x4E], - bigoplus: [1,3,0x4C], - bigodot: [1,3,0x4A], - ointop: [1,3,0x48], - bigsqcup: [1,3,0x46], - smallint: [1,2,0x73], - - // binary operations - triangleleft: [2,1,0x2F], - triangleright: [2,1,0x2E], - bigtriangleup: [2,2,0x34], - bigtriangledown: [2,2,0x35], - wedge: [2,2,0x5E], - land: [2,2,0x5E], - vee: [2,2,0x5F], - lor: [2,2,0x5F], - cap: [2,2,0x5C], - cup: [2,2,0x5B], - ddagger: [2,2,0x7A], - dagger: [2,2,0x79], - sqcap: [2,2,0x75], - sqcup: [2,2,0x74], - uplus: [2,2,0x5D], - amalg: [2,2,0x71], - diamond: [2,2,0x05], - bullet: [2,2,0x0F], - wr: [2,2,0x6F], - div: [2,2,0x04], - odot: [2,2,0x0C], - oslash: [2,2,0x0B], - otimes: [2,2,0x0A], - ominus: [2,2,0x09], - oplus: [2,2,0x08], - mp: [2,2,0x07], - pm: [2,2,0x06], - circ: [2,2,0x0E], - bigcirc: [2,2,0x0D], - setminus: [2,2,0x6E], // for set difference A\setminus B - cdot: [2,2,0x01], - ast: [2,2,0x03], - times: [2,2,0x02], - star: [2,1,0x3F], - - // Relations - propto: [3,2,0x2F], - sqsubseteq: [3,2,0x76], - sqsupseteq: [3,2,0x77], - parallel: [3,2,0x6B], - mid: [3,2,0x6A], - dashv: [3,2,0x61], - vdash: [3,2,0x60], - leq: [3,2,0x14], - le: [3,2,0x14], - geq: [3,2,0x15], - ge: [3,2,0x15], - lt: [3,1,0x3C], // extra since < and > are hard - gt: [3,1,0x3E], // to get in HTML - succ: [3,2,0x1F], - prec: [3,2,0x1E], - approx: [3,2,0x19], - succeq: [3,2,0x17], - preceq: [3,2,0x16], - supset: [3,2,0x1B], - subset: [3,2,0x1A], - supseteq: [3,2,0x13], - subseteq: [3,2,0x12], - 'in': [3,2,0x32], - ni: [3,2,0x33], - owns: [3,2,0x33], - gg: [3,2,0x1D], - ll: [3,2,0x1C], - not: [3,2,0x36], - sim: [3,2,0x18], - simeq: [3,2,0x27], - perp: [3,2,0x3F], - equiv: [3,2,0x11], - asymp: [3,2,0x10], - smile: [3,1,0x5E], - frown: [3,1,0x5F], - - // Arrows - Leftrightarrow: [3,2,0x2C], - Leftarrow: [3,2,0x28], - Rightarrow: [3,2,0x29], - leftrightarrow: [3,2,0x24], - leftarrow: [3,2,0x20], - gets: [3,2,0x20], - rightarrow: [3,2,0x21], - to: [3,2,0x21], - mapstochar: [3,2,0x37], - leftharpoonup: [3,1,0x28], - leftharpoondown: [3,1,0x29], - rightharpoonup: [3,1,0x2A], - rightharpoondown: [3,1,0x2B], - nearrow: [3,2,0x25], - searrow: [3,2,0x26], - nwarrow: [3,2,0x2D], - swarrow: [3,2,0x2E], - - minuschar: [3,2,0x00], // for longmapsto - hbarchar: [0,0,0x16], // for \hbar - lhook: [3,1,0x2C], - rhook: [3,1,0x2D], - - ldotp: [6,1,0x3A], // ldot as a punctuation mark - cdotp: [6,2,0x01], // cdot as a punctuation mark - colon: [6,0,0x3A], // colon as a punctuation mark - - '#': [7,0,0x23], - '$': [7,0,0x24], - '%': [7,0,0x25], - '&': [7,0,0x26] - }, - - // The delimiter table (see Appendix B of the TeXbook) - delimiter: { - '(': [0,0,0x28,3,0x00], - ')': [0,0,0x29,3,0x01], - '[': [0,0,0x5B,3,0x02], - ']': [0,0,0x5D,3,0x03], - '<': [0,2,0x68,3,0x0A], - '>': [0,2,0x69,3,0x0B], - '\\lt': [0,2,0x68,3,0x0A], // extra since < and > are - '\\gt': [0,2,0x69,3,0x0B], // hard to get in HTML - '/': [0,0,0x2F,3,0x0E], - '|': [0,2,0x6A,3,0x0C], - '.': [0,0,0x00,0,0x00], - '\\': [0,2,0x6E,3,0x0F], - '\\lmoustache': [4,3,0x7A,3,0x40], // top from (, bottom from ) - '\\rmoustache': [5,3,0x7B,3,0x41], // top from ), bottom from ( - '\\lgroup': [4,6,0x28,3,0x3A], // extensible ( with sharper tips - '\\rgroup': [5,6,0x29,3,0x3B], // extensible ) with sharper tips - '\\arrowvert': [0,2,0x6A,3,0x3C], // arrow without arrowheads - '\\Arrowvert': [0,2,0x6B,3,0x3D], // double arrow without arrowheads -// '\\bracevert': [0,7,0x7C,3,0x3E], // the vertical bar that extends braces - '\\bracevert': [0,2,0x6A,3,0x3E], // we don't load tt, so use | instead - '\\Vert': [0,2,0x6B,3,0x0D], - '\\|': [0,2,0x6B,3,0x0D], - '\\vert': [0,2,0x6A,3,0x0C], - '\\uparrow': [3,2,0x22,3,0x78], - '\\downarrow': [3,2,0x23,3,0x79], - '\\updownarrow': [3,2,0x6C,3,0x3F], - '\\Uparrow': [3,2,0x2A,3,0x7E], - '\\Downarrow': [3,2,0x2B,3,0x7F], - '\\Updownarrow': [3,2,0x6D,3,0x77], - '\\backslash': [0,2,0x6E,3,0x0F], // for double coset G\backslash H - '\\rangle': [5,2,0x69,3,0x0B], - '\\langle': [4,2,0x68,3,0x0A], - '\\rbrace': [5,2,0x67,3,0x09], - '\\lbrace': [4,2,0x66,3,0x08], - '\\}': [5,2,0x67,3,0x09], - '\\{': [4,2,0x66,3,0x08], - '\\rceil': [5,2,0x65,3,0x07], - '\\lceil': [4,2,0x64,3,0x06], - '\\rfloor': [5,2,0x63,3,0x05], - '\\lfloor': [4,2,0x62,3,0x04], - '\\lbrack': [0,0,0x5B,3,0x02], - '\\rbrack': [0,0,0x5D,3,0x03] - }, - - /* - * The basic macros for plain TeX. - * - * When the control sequence on the left is called, the JavaScript - * funtion on the right is called, with the name of the control sequence - * as its first parameter (this way, the same function can be called by - * several different control sequences to do similar actions, and the - * function can still tell which TeX command was issued). If the right - * is an array, the first entry is the routine to call, and the - * remaining entries in the array are parameters to pass to the function - * as the second parameter (they are in an array reference). - * - * Note: TeX macros as defined by the user are discussed below. - */ - macros: { - displaystyle: ['HandleStyle','D'], - textstyle: ['HandleStyle','T'], - scriptstyle: ['HandleStyle','S'], - scriptscriptstyle: ['HandleStyle','SS'], - - rm: ['HandleFont',0], - mit: ['HandleFont',1], - oldstyle: ['HandleFont',1], - cal: ['HandleFont',2], - it: ['HandleFont',4], - bf: ['HandleFont',6], - - font: ['Extension','font'], - - left: 'HandleLeft', - right: 'HandleRight', - - arcsin: ['NamedOp',0], - arccos: ['NamedOp',0], - arctan: ['NamedOp',0], - arg: ['NamedOp',0], - cos: ['NamedOp',0], - cosh: ['NamedOp',0], - cot: ['NamedOp',0], - coth: ['NamedOp',0], - csc: ['NamedOp',0], - deg: ['NamedOp',0], - det: 'NamedOp', - dim: ['NamedOp',0], - exp: ['NamedOp',0], - gcd: 'NamedOp', - hom: ['NamedOp',0], - inf: 'NamedOp', - ker: ['NamedOp',0], - lg: ['NamedOp',0], - lim: 'NamedOp', - liminf: ['NamedOp',null,'liminf'], - limsup: ['NamedOp',null,'limsup'], - ln: ['NamedOp',0], - log: ['NamedOp',0], - max: 'NamedOp', - min: 'NamedOp', - Pr: 'NamedOp', - sec: ['NamedOp',0], - sin: ['NamedOp',0], - sinh: ['NamedOp',0], - sup: 'NamedOp', - tan: ['NamedOp',0], - tanh: ['NamedOp',0], - - vcenter: ['HandleAtom','vcenter'], - overline: ['HandleAtom','overline'], - underline: ['HandleAtom','underline'], - over: 'HandleOver', - overwithdelims: 'HandleOver', - atop: 'HandleOver', - atopwithdelims: 'HandleOver', - above: 'HandleOver', - abovewithdelims: 'HandleOver', - brace: ['HandleOver','\\{','\\}'], - brack: ['HandleOver','[',']'], - choose: ['HandleOver','(',')'], - - overbrace: ['Extension','leaders'], - underbrace: ['Extension','leaders'], - overrightarrow: ['Extension','leaders'], - underrightarrow: ['Extension','leaders'], - overleftarrow: ['Extension','leaders'], - underleftarrow: ['Extension','leaders'], - overleftrightarrow: ['Extension','leaders'], - underleftrightarrow: ['Extension','leaders'], - overset: ['Extension','underset-overset'], - underset: ['Extension','underset-overset'], - - llap: 'HandleLap', - rlap: 'HandleLap', - ulap: 'HandleLap', - dlap: 'HandleLap', - raise: 'RaiseLower', - lower: 'RaiseLower', - moveleft: 'MoveLeftRight', - moveright: 'MoveLeftRight', - - frac: 'Frac', - root: 'Root', - sqrt: 'Sqrt', - - // TeX substitution macros - hbar: ['Macro','\\hbarchar\\kern-.5em h'], - ne: ['Macro','\\not='], - neq: ['Macro','\\not='], - notin: ['Macro','\\mathrel{\\rlap{\\kern2mu/}}\\in'], - cong: ['Macro','\\mathrel{\\lower2mu{\\mathrel{{\\rlap{=}\\raise6mu\\sim}}}}'], - bmod: ['Macro','\\mathbin{\\rm mod}'], - pmod: ['Macro','\\kern 18mu ({\\rm mod}\\,\\,#1)',1], - 'int': ['Macro','\\intop\\nolimits'], - oint: ['Macro','\\ointop\\nolimits'], - doteq: ['Macro','\\buildrel\\textstyle.\\over='], - ldots: ['Macro','\\mathinner{\\ldotp\\ldotp\\ldotp}'], - cdots: ['Macro','\\mathinner{\\cdotp\\cdotp\\cdotp}'], - vdots: ['Macro','\\mathinner{\\rlap{\\raise8pt{.\\rule 0pt 6pt 0pt}}\\rlap{\\raise4pt{.}}.}'], - ddots: ['Macro','\\mathinner{\\kern1mu\\raise7pt{\\rule 0pt 7pt 0pt .}\\kern2mu\\raise4pt{.}\\kern2mu\\raise1pt{.}\\kern1mu}'], - joinrel: ['Macro','\\mathrel{\\kern-4mu}'], - relbar: ['Macro','\\mathrel{\\smash-}'], // \smash, because - has the same height as + - Relbar: ['Macro','\\mathrel='], - bowtie: ['Macro','\\mathrel\\triangleright\\joinrel\\mathrel\\triangleleft'], - models: ['Macro','\\mathrel|\\joinrel='], - mapsto: ['Macro','\\mathrel{\\mapstochar\\rightarrow}'], - rightleftharpoons: ['Macro','\\vcenter{\\mathrel{\\rlap{\\raise3mu{\\rightharpoonup}}}\\leftharpoondown}'], - hookrightarrow: ['Macro','\\lhook\\joinrel\\rightarrow'], - hookleftarrow: ['Macro','\\leftarrow\\joinrel\\rhook'], - Longrightarrow: ['Macro','\\Relbar\\joinrel\\Rightarrow'], - longrightarrow: ['Macro','\\relbar\\joinrel\\rightarrow'], - longleftarrow: ['Macro','\\leftarrow\\joinrel\\relbar'], - Longleftarrow: ['Macro','\\Leftarrow\\joinrel\\Relbar'], - longmapsto: ['Macro','\\mathrel{\\mapstochar\\minuschar\\joinrel\\rightarrow}'], - longleftrightarrow: ['Macro','\\leftarrow\\joinrel\\rightarrow'], - Longleftrightarrow: ['Macro','\\Leftarrow\\joinrel\\Rightarrow'], - iff: ['Macro','\\;\\Longleftrightarrow\\;'], - mathcal: ['Macro','{\\cal #1}',1], - mathrm: ['Macro','{\\rm #1}',1], - mathbf: ['Macro','{\\bf #1}',1], - mathbb: ['Macro','{\\bf #1}',1], - mathit: ['Macro','{\\it #1}',1], - textrm: ['Macro','\\mathord{\\hbox{#1}}',1], - textit: ['Macro','\\mathord{\\class{textit}{\\hbox{#1}}}',1], - textbf: ['Macro','\\mathord{\\class{textbf}{\\hbox{#1}}}',1], - pmb: ['Macro','\\rlap{#1}\\kern1px{#1}',1], - - TeX: ['Macro','T\\kern-.1667em\\lower.5ex{E}\\kern-.125em X'], - - limits: ['Limits',1], - nolimits: ['Limits',0], - - ',': ['Spacer',1/6], - ':': ['Spacer',1/6], // for LaTeX - '>': ['Spacer',2/9], - ';': ['Spacer',5/18], - '!': ['Spacer',-1/6], - enspace: ['Spacer',1/2], - quad: ['Spacer',1], - qquad: ['Spacer',2], - thinspace: ['Spacer',1/6], - negthinspace: ['Spacer',-1/6], - - hskip: 'Hskip', - kern: 'Hskip', - rule: ['Rule','colored'], - space: ['Rule','blank'], - - big: ['MakeBig','ord',0.85], - Big: ['MakeBig','ord',1.15], - bigg: ['MakeBig','ord',1.45], - Bigg: ['MakeBig','ord',1.75], - bigl: ['MakeBig','open',0.85], - Bigl: ['MakeBig','open',1.15], - biggl: ['MakeBig','open',1.45], - Biggl: ['MakeBig','open',1.75], - bigr: ['MakeBig','close',0.85], - Bigr: ['MakeBig','close',1.15], - biggr: ['MakeBig','close',1.45], - Biggr: ['MakeBig','close',1.75], - bigm: ['MakeBig','rel',0.85], - Bigm: ['MakeBig','rel',1.15], - biggm: ['MakeBig','rel',1.45], - Biggm: ['MakeBig','rel',1.75], - - mathord: ['HandleAtom','ord'], - mathop: ['HandleAtom','op'], - mathopen: ['HandleAtom','open'], - mathclose: ['HandleAtom','close'], - mathbin: ['HandleAtom','bin'], - mathrel: ['HandleAtom','rel'], - mathpunct: ['HandleAtom','punct'], - mathinner: ['HandleAtom','inner'], - - mathchoice: ['Extension','mathchoice'], - buildrel: 'BuildRel', - - hbox: 'HBox', - text: 'HBox', - mbox: 'HBox', - fbox: ['Extension','fbox'], - - strut: 'Strut', - mathstrut: ['Macro','\\vphantom{(}'], - phantom: ['Phantom',1,1], - vphantom: ['Phantom',1,0], - hphantom: ['Phantom',0,1], - smash: 'Smash', - - acute: ['MathAccent', [7,0,0x13]], - grave: ['MathAccent', [7,0,0x12]], - ddot: ['MathAccent', [7,0,0x7F]], - tilde: ['MathAccent', [7,0,0x7E]], - bar: ['MathAccent', [7,0,0x16]], - breve: ['MathAccent', [7,0,0x15]], - check: ['MathAccent', [7,0,0x14]], - hat: ['MathAccent', [7,0,0x5E]], - vec: ['MathAccent', [0,1,0x7E]], - dot: ['MathAccent', [7,0,0x5F]], - widetilde: ['MathAccent', [0,3,0x65]], - widehat: ['MathAccent', [0,3,0x62]], - - '_': ['Replace','ord','_','normal',-.4,.1], - ' ': ['Replace','ord',' ','normal'], -// angle: ['Replace','ord','∠','normal'], - angle: ['Macro','\\kern2.5mu\\raise1.54pt{\\rlap{\\scriptstyle \\char{cmsy10}{54}}\\kern1pt\\rule{.45em}{-1.2pt}{1.54pt}\\kern2.5mu}'], - - matrix: 'Matrix', - array: 'Matrix', // ### still need to do alignment options ### - pmatrix: ['Matrix','(',')','c'], - cases: ['Matrix','\\{','.',['l','l'],null,2], - eqalign: ['Matrix',null,null,['r','l'],[5/18],3,'D'], - displaylines: ['Matrix',null,null,['c'],null,3,'D'], - cr: 'HandleRow', - '\\': 'HandleRow', - newline: 'HandleRow', - noalign: 'HandleNoAlign', - eqalignno: ['Matrix',null,null,['r','l','r'],[5/8,3],3,'D'], - leqalignno: ['Matrix',null,null,['r','l','r'],[5/8,3],3,'D'], - - // LaTeX - begin: 'Begin', - end: 'End', - tiny: ['HandleSize',0], - Tiny: ['HandleSize',1], // non-standard - scriptsize: ['HandleSize',2], - small: ['HandleSize',3], - normalsize: ['HandleSize',4], - large: ['HandleSize',5], - Large: ['HandleSize',6], - LARGE: ['HandleSize',7], - huge: ['HandleSize',8], - Huge: ['HandleSize',9], - dots: ['Macro','\\ldots'], - - newcommand: ['Extension','newcommand'], - newenvironment: ['Extension','newcommand'], - def: ['Extension','newcommand'], - - // Extensions to TeX - color: ['Extension','HTML'], - href: ['Extension','HTML'], - 'class': ['Extension','HTML'], - style: ['Extension','HTML'], - cssId: ['Extension','HTML'], - unicode: ['Extension','HTML'], - bbox: ['Extension','bbox'], - - require: 'Require', - - // debugging and test routines - 'char': 'Char' - }, - - /* - * LaTeX environments - */ - environments: { - array: 'Array', - matrix: ['Array',null,null,'c'], - pmatrix: ['Array','(',')','c'], - bmatrix: ['Array','[',']','c'], - Bmatrix: ['Array','\\{','\\}','c'], - vmatrix: ['Array','\\vert','\\vert','c'], - Vmatrix: ['Array','\\Vert','\\Vert','c'], - cases: ['Array','\\{','.','ll',null,2], - eqnarray: ['Array',null,null,'rcl',[5/18,5/18],3,'D'], - 'eqnarray*': ['Array',null,null,'rcl',[5/18,5/18],3,'D'], - equation: 'Equation', - 'equation*': 'Equation', - - align: ['Extension','AMSmath'], - 'align*': ['Extension','AMSmath'], - aligned: ['Extension','AMSmath'], - multline: ['Extension','AMSmath'], - 'multline*': ['Extension','AMSmath'], - split: ['Extension','AMSmath'], - gather: ['Extension','AMSmath'], - 'gather*': ['Extension','AMSmath'], - gathered: ['Extension','AMSmath'] - }, - - - /***************************************************************************/ - - /* - * Add special characters to list above. (This makes it possible - * to define them in a variable that the user can change.) - */ - AddSpecial: function (obj) { - for (var id in obj) { - jsMath.Parser.prototype.special[jsMath.Parser.prototype[id]] = obj[id]; - } - }, - - /* - * Throw an error - */ - Error: function (s) { - this.i = this.string.length; - if (s.error) {this.error = s.error} else { - if (!this.error) {this.error = s} - } - }, - - /***************************************************************************/ - - /* - * Check if the next character is a space - */ - nextIsSpace: function () { - return this.string.charAt(this.i).match(/[ \n\r\t]/); - }, - - /* - * Trim spaces from a string - */ - trimSpaces: function (text) { - if (typeof(text) != 'string') {return text} - return text.replace(/^\s+|\s+$/g,''); - }, - - /* - * Parse a substring to get its mList, and return it. - * Check that no errors occured - */ - Process: function (arg) { - var data = this.mlist.data; - arg = jsMath.Parse(arg,data.font,data.size,data.style); - if (arg.error) {this.Error(arg); return null} - if (arg.mlist.Length() == 0) {return null} - if (arg.mlist.Length() == 1) { - var atom = arg.mlist.Last(); - if (atom.atom && atom.type == 'ord' && atom.nuc && - !atom.sub && !atom.sup && (atom.nuc.type == 'text' || atom.nuc.type == 'TeX')) - {return atom.nuc} - } - return {type: 'mlist', mlist: arg.mlist}; - }, - - /* - * Get and return a control-sequence name from the TeX string - */ - GetCommand: function () { - var letter = /^([a-z]+|.) ?/i; - var cmd = letter.exec(this.string.slice(this.i)); - if (cmd) {this.i += cmd[1].length; return cmd[1]} - this.i++; return " "; - }, - - /* - * Get and return a TeX argument (either a single character or control sequence, - * or the contents of the next set of braces). - */ - GetArgument: function (name,noneOK) { - while (this.nextIsSpace()) {this.i++} - if (this.i >= this.string.length) {if (!noneOK) this.Error("Missing argument for "+name); return null} - if (this.string.charAt(this.i) == this.close) {if (!noneOK) this.Error("Extra close brace"); return null} - if (this.string.charAt(this.i) == this.cmd) {this.i++; return this.cmd+this.GetCommand()} - if (this.string.charAt(this.i) != this.open) {return this.string.charAt(this.i++)} - var j = ++this.i; var pcount = 1; var c = ''; - while (this.i < this.string.length) { - c = this.string.charAt(this.i++); - if (c == this.cmd) {this.i++} - else if (c == this.open) {pcount++} - else if (c == this.close) { - if (pcount == 0) {this.Error("Extra close brace"); return null} - if (--pcount == 0) {return this.string.slice(j,this.i-1)} - } - } - this.Error("Missing close brace"); - return null; - }, - - /* - * Get an argument and process it into an mList - */ - ProcessArg: function (name) { - var arg = this.GetArgument(name); if (this.error) {return null} - return this.Process(arg); - }, - - /* - * Get and process an argument for a super- or subscript. - * (read extra args for \frac, \sqrt, \mathrm, etc.) - * This handles these macros as special cases, so is really - * rather a hack. A more general method for indicating - * how to handle macros in scripts needs to be developed. - */ - ProcessScriptArg: function (name) { - var arg = this.GetArgument(name); if (this.error) {return null} - if (arg.charAt(0) == this.cmd) { - var csname = arg.substr(1); - if (csname == "frac") { - arg += '{'+this.GetArgument(csname)+'}'; if (this.error) {return null} - arg += '{'+this.GetArgument(csname)+'}'; if (this.error) {return null} - } else if (csname == "sqrt") { - arg += '['+this.GetBrackets(csname)+']'; if (this.error) {return null} - arg += '{'+this.GetArgument(csname)+'}'; if (this.error) {return null} - } else if (csname.match(this.scriptargs)) { - arg += '{'+this.GetArgument(csname)+'}'; if (this.error) {return null} - } - } - return this.Process(arg); - }, - - /* - * Get the name of a delimiter (check it in the delimiter list). - */ - GetDelimiter: function (name) { - while (this.nextIsSpace()) {this.i++} - var c = this.string.charAt(this.i); - if (this.i < this.string.length) { - this.i++; - if (c == this.cmd) {c = '\\'+this.GetCommand(name); if (this.error) return null} - if (this.delimiter[c] != null) {return this.delimiter[c]} - } - this.Error("Missing or unrecognized delimiter for "+name); - return null; - }, - - /* - * Get a dimension (including its units). - * Convert the dimen to em's, except for mu's, which must be - * converted when typeset. - */ - GetDimen: function (name,nomu) { - var rest; var advance = 0; - if (this.nextIsSpace()) {this.i++} - if (this.string.charAt(this.i) == '{') { - rest = this.GetArgument(name); - } else { - rest = this.string.slice(this.i); - advance = 1; - } - return this.ParseDimen(rest,name,advance,nomu); - }, - - ParseDimen: function (dimen,name,advance,nomu) { - var match = dimen.match(/^\s*([-+]?(\.\d+|\d+(\.\d*)?))(pt|em|ex|mu|px)/); - if (!match) {this.Error("Missing dimension or its units for "+name); return null} - if (advance) { - this.i += match[0].length; - if (this.nextIsSpace()) {this.i++} - } - var d = match[1]-0; - if (match[4] == 'px') {d /= jsMath.em} - else if (match[4] == 'pt') {d /= 10} - else if (match[4] == 'ex') {d *= jsMath.TeX.x_height} - else if (match[4] == 'mu') {if (nomu) {d = d/18} else {d = [d,'mu']}} - return d; - }, - - /* - * Get the next non-space character - */ - GetNext: function () { - while (this.nextIsSpace()) {this.i++} - return this.string.charAt(this.i); - }, - - /* - * Get an optional LaTeX argument in brackets - */ - GetBrackets: function (name) { - var c = this.GetNext(); if (c != '[') return ''; - var start = ++this.i; var pcount = 0; - while (this.i < this.string.length) { - c = this.string.charAt(this.i++); - if (c == '{') {pcount++} - else if (c == '}') { - if (pcount == 0) - {this.Error("Extra close brace while looking for ']'"); return null} - pcount --; - } else if (c == this.cmd) { - this.i++; - } else if (c == ']') { - if (pcount == 0) {return this.string.slice(start,this.i-1)} - } - } - this.Error("Couldn't find closing ']' for argument to "+this.cmd+name); - return null; - }, - - /* - * Get everything up to the given control sequence name (token) - */ - GetUpto: function (name,token) { - while (this.nextIsSpace()) {this.i++} - var start = this.i; var pcount = 0; - while (this.i < this.string.length) { - var c = this.string.charAt(this.i++); - if (c == '{') {pcount++} - else if (c == '}') { - if (pcount == 0) - {this.Error("Extra close brace while looking for "+this.cmd+token); return null} - pcount --; - } else if (c == this.cmd) { - // really need separate counter for begin/end - // and it should really be a stack (new pcount for each begin) - if (this.string.slice(this.i,this.i+5) == "begin") {pcount++; this.i+=4} - else if (this.string.slice(this.i,this.i+3) == "end") { - if (pcount > 0) {pcount--; this.i += 2} - } - if (pcount == 0) { - if (this.string.slice(this.i,this.i+token.length) == token) { - c = this.string.charAt(this.i+token.length); - if (c.match(/[^a-z]/i) || !token.match(/[a-z]/i)) { - var arg = this.string.slice(start,this.i-1); - this.i += token.length; - return arg; - } - } - } - this.i++; - } - } - this.Error("Couldn't find "+this.cmd+token+" for "+name); - return null; - }, - - /* - * Get a parameter delimited by a control sequence, and - * process it to get its mlist - */ - ProcessUpto: function (name,token) { - var arg = this.GetUpto(name,token); if (this.error) return null; - return this.Process(arg); - }, - - /* - * Get everything up to \end{env} - */ - GetEnd: function (env) { - var body = ''; var name = ''; - while (name != env) { - body += this.GetUpto('begin{'+env+'}','end'); if (this.error) return null; - name = this.GetArgument(this.cmd+'end'); if (this.error) return null; - } - return body; - }, - - - /***************************************************************************/ - - - /* - * Ignore spaces - */ - Space: function () {}, - - /* - * Collect together any primes and convert them to a superscript - */ - Prime: function (c) { - var base = this.mlist.Last(); - if (base == null || (!base.atom && base.type != 'box' && base.type != 'frac')) - {base = this.mlist.Add(jsMath.mItem.Atom('ord',{type:null}))} - if (base.sup) {this.Error("Prime causes double exponent: use braces to clarify"); return} - var sup = ''; - while (c == "'") {sup += this.cmd+'prime'; c = this.GetNext(); if (c == "'") {this.i++}} - base.sup = this.Process(sup); - base.sup.isPrime = 1; - }, - - /* - * Raise or lower its parameter by a given amount - * @@@ Note that this is different from TeX, which requires an \hbox @@@ - * ### make this work with mu's ### - */ - RaiseLower: function (name) { - var h = this.GetDimen(this.cmd+name,1); if (this.error) return; - var box = this.ProcessScriptArg(this.cmd+name); if (this.error) return; - if (name == 'lower') {h = -h} - this.mlist.Add(new jsMath.mItem('raise',{nuc: box, raise: h})); - }, - - /* - * Shift an expression to the right or left - * @@@ Note that this is different from TeX, which requires a \vbox @@@ - * ### make this work with mu's ### - */ - MoveLeftRight: function (name) { - var x = this.GetDimen(this.cmd+name,1); if (this.error) return; - var box = this.ProcessScriptArg(this.cmd+name); if (this.error) return; - if (name == 'moveleft') {x = -x} - this.mlist.Add(jsMath.mItem.Space(x)); - this.mlist.Add(jsMath.mItem.Atom('ord',box)); - this.mlist.Add(jsMath.mItem.Space(-x)); - }, - - /* - * Load an extension if it has not already been loaded - */ - Require: function (name) { - var file = this.GetArgument(this.cmd+name); if (this.error) return; - file = jsMath.Extension.URL(file); - if (jsMath.Setup.loaded[file]) return; - this.Extension(null,[file]); - }, - - /* - * Load an extension file and restart processing the math - */ - Extension: function (name,data) { - jsMath.Translate.restart = 1; - if (name != null) {delete jsMath.Parser.prototype[data[1]||'macros'][name]} - jsMath.Extension.Require(data[0],jsMath.Translate.asynchronous); - throw "restart"; - }, - - /* - * Implements \frac{num}{den} - */ - Frac: function (name) { - var num = this.ProcessArg(this.cmd+name); if (this.error) return; - var den = this.ProcessArg(this.cmd+name); if (this.error) return; - this.mlist.Add(jsMath.mItem.Fraction('over',num,den)); - }, - - /* - * Implements \sqrt[n]{...} - */ - Sqrt: function (name) { - var n = this.GetBrackets(this.cmd+name); if (this.error) return; - var arg = this.ProcessArg(this.cmd+name); if (this.error) return; - var box = jsMath.mItem.Atom('radical',arg); - if (n != '') {box.root = this.Process(n); if (this.error) return} - this.mlist.Add(box); - }, - - /* - * Implements \root...\of{...} - */ - Root: function (name) { - var n = this.ProcessUpto(this.cmd+name,'of'); if (this.error) return; - var arg = this.ProcessArg(this.cmd+name); if (this.error) return; - var box = jsMath.mItem.Atom('radical',arg); - box.root = n; this.mlist.Add(box); - }, - - - /* - * Implements \buildrel...\over{...} - */ - BuildRel: function (name) { - var top = this.ProcessUpto(this.cmd+name,'over'); if (this.error) return; - var bot = this.ProcessArg(this.cmd+name); if (this.error) return; - var op = jsMath.mItem.Atom('op',bot); - op.limits = 1; op.sup = top; - this.mlist.Add(op); - }, - - /* - * Create a delimiter of the type and size specified in the parameters - */ - MakeBig: function (name,data) { - var type = data[0]; var h = data[1] * jsMath.p_height; - var delim = this.GetDelimiter(this.cmd+name); if (this.error) return; - this.mlist.Add(jsMath.mItem.Atom(type,jsMath.Box.Delimiter(h,delim,'T'))); - }, - - /* - * Insert the specified character in the given font. - * (Try to load the font if it is not already available.) - */ - Char: function (name) { - var font = this.GetArgument(this.cmd+name); if (this.error) return; - var n = this.GetArgument(this.cmd+name); if (this.error) return; - if (!jsMath.TeX[font]) { - jsMath.TeX[font] = []; - this.Extension(null,[jsMath.Font.URL(font)]); - } else { - this.mlist.Add(jsMath.mItem.Typeset(jsMath.Box.TeX(n-0,font,this.mlist.data.style,this.mlist.data.size))); - } - }, - - /* - * Create an array or matrix. - */ - Matrix: function (name,delim) { - var data = this.mlist.data; - var arg = this.GetArgument(this.cmd+name); if (this.error) return; - var parse = new jsMath.Parser(arg+this.cmd+'\\',null,data.size,delim[5] || 'T'); - parse.matrix = name; parse.row = []; parse.table = []; parse.rspacing = []; - parse.Parse(); if (parse.error) {this.Error(parse); return} - parse.HandleRow(name,1); // be sure the last row is recorded - var box = jsMath.Box.Layout(data.size,parse.table,delim[2]||null,delim[3]||null,parse.rspacing,delim[4]||null); - // Add parentheses, if needed - if (delim[0] && delim[1]) { - var left = jsMath.Box.Delimiter(box.h+box.d-jsMath.hd/4,this.delimiter[delim[0]],'T'); - var right = jsMath.Box.Delimiter(box.h+box.d-jsMath.hd/4,this.delimiter[delim[1]],'T'); - box = jsMath.Box.SetList([left,box,right],data.style,data.size); - } - this.mlist.Add(jsMath.mItem.Atom((delim[0]? 'inner': 'ord'),box)); - }, - - /* - * When we see an '&', try to add a matrix entry to the row data. - * (Use all the data in the current mList, and then clear it) - */ - HandleEntry: function (name) { - if (!this.matrix) - {this.Error(name+" can only appear in a matrix or array"); return} - if (this.mlist.data.openI != null) { - var open = this.mlist.Get(this.mlist.data.openI); - if (open.left) {this.Error("Missing "+this.cmd+"right")} - else {this.Error("Missing close brace")} - } - if (this.mlist.data.overI != null) {this.mlist.Over()} - var data = this.mlist.data; - this.mlist.Atomize(data.style,data.size); - var box = this.mlist.Typeset(data.style,data.size); - box.entry = data.entry; delete data.entry; if (!box.entry) {box.entry = {}}; - this.row[this.row.length] = box; - this.mlist = new jsMath.mList(null,null,data.size,data.style); - }, - - /* - * When we see a \cr or \\, try to add a row to the table - */ - HandleRow: function (name,last) { - var dimen; - if (!this.matrix) {this.Error(this.cmd+name+" can only appear in a matrix or array"); return} - if (name == "\\") { - dimen = this.GetBrackets(this.cmd+name); if (this.error) return; - if (dimen) {dimen = this.ParseDimen(dimen,this.cmd+name,0,1)} - } - this.HandleEntry(name); - if (!last || this.row.length > 1 || this.row[0].format != 'null') - {this.table[this.table.length] = this.row} - if (dimen) {this.rspacing[this.table.length] = dimen} - this.row = []; - }, - - /* - * Look for \vskip or \vspace in \noalign parameters - */ - HandleNoAlign: function (name) { - var arg = this.GetArgument(this.cmd+name); if (this.error) return; - var skip = arg.replace(/^.*(vskip|vspace)([^a-z])/i,'$2'); - if (skip.length == arg.length) return; - var d = this.ParseDimen(skip,this.cmd+RegExp.$1,0,1); if (this.error) return; - this.rspacing[this.table.length] = (this.rspacing[this.table.length] || 0) + d; - }, - - /* - * LaTeX array environment - */ - Array: function (name,delim) { - var columns = delim[2]; var cspacing = delim[3]; - if (!columns) { - columns = this.GetArgument(this.cmd+'begin{'+name+'}'); - if (this.error) return; - } - columns = columns.replace(/[^clr]/g,''); - columns = columns.split(''); - var data = this.mlist.data; var style = delim[5] || 'T'; - var arg = this.GetEnd(name); if (this.error) return; - var parse = new jsMath.Parser(arg+this.cmd+'\\',null,data.size,style); - parse.matrix = name; parse.row = []; parse.table = []; parse.rspacing = []; - parse.Parse(); if (parse.error) {this.Error(parse); return} - parse.HandleRow(name,1); // be sure the last row is recorded - var box = jsMath.Box.Layout(data.size,parse.table,columns,cspacing,parse.rspacing,delim[4],delim[6],delim[7]); - // Add parentheses, if needed - if (delim[0] && delim[1]) { - var left = jsMath.Box.Delimiter(box.h+box.d-jsMath.hd/4,this.delimiter[delim[0]],'T'); - var right = jsMath.Box.Delimiter(box.h+box.d-jsMath.hd/4,this.delimiter[delim[1]],'T'); - box = jsMath.Box.SetList([left,box,right],data.style,data.size); - } - this.mlist.Add(jsMath.mItem.Atom((delim[0]? 'inner': 'ord'),box)); - }, - - /* - * LaTeX \begin{env} - */ - Begin: function (name) { - var env = this.GetArgument(this.cmd+name); if (this.error) return; - if (env.match(/[^a-z*]/i)) {this.Error('Invalid environment name "'+env+'"'); return} - if (!this.environments[env]) {this.Error('Unknown environment "'+env+'"'); return} - var cmd = this.environments[env]; - if (typeof(cmd) == "string") {cmd = [cmd]} - this[cmd[0]](env,cmd.slice(1)); - }, - - /* - * LaTeX \end{env} - */ - End: function (name) { - var env = this.GetArgument(this.cmd+name); if (this.error) return; - this.Error(this.cmd+name+'{'+env+'} without matching '+this.cmd+'begin'); - }, - - /* - * LaTeX equation environment (just remove the environment) - */ - Equation: function (name) { - var arg = this.GetEnd(name); if (this.error) return; - this.string = arg+this.string.slice(this.i); this.i = 0; - }, - - /* - * Add a fixed amount of horizontal space - */ - Spacer: function (name,w) { - this.mlist.Add(jsMath.mItem.Space(w-0)); - }, - - /* - * Add horizontal space given by the argument - */ - Hskip: function (name) { - var w = this.GetDimen(this.cmd+name); if (this.error) return; - this.mlist.Add(jsMath.mItem.Space(w)); - }, - - /* - * Typeset the argument as plain text rather than math. - */ - HBox: function (name) { - var text = this.GetArgument(this.cmd+name); if (this.error) return; - var box = jsMath.Box.InternalMath(text,this.mlist.data.size); - this.mlist.Add(jsMath.mItem.Typeset(box)); - }, - - /* - * Insert a rule of a particular width, height and depth - * This replaces \hrule and \vrule - * @@@ not a standard TeX command, and all three parameters must be given @@@ - */ - Rule: function (name,style) { - var w = this.GetDimen(this.cmd+name,1); if (this.error) return; - var h = this.GetDimen(this.cmd+name,1); if (this.error) return; - var d = this.GetDimen(this.cmd+name,1); if (this.error) return; - h += d; var html; - if (h != 0) {h = Math.max(1.05/jsMath.em,h)} - if (h == 0 || w == 0 || style == "blank") - {html = jsMath.HTML.Blank(w,h)} else {html = jsMath.HTML.Rule(w,h)} - if (d) { - html = '' - + html + ''; - } - this.mlist.Add(jsMath.mItem.Typeset(new jsMath.Box('html',html,w,h-d,d))); - }, - - /* - * Inserts an empty box of a specific height and depth - */ - Strut: function () { - var size = this.mlist.data.size; - var box = jsMath.Box.Text('','normal','T',size).Styled(); - box.bh = box.bd = 0; box.h = .8; box.d = .3; box.w = box.Mw = 0; - this.mlist.Add(jsMath.mItem.Typeset(box)); - }, - - /* - * Handles \phantom, \vphantom and \hphantom - */ - Phantom: function (name,data) { - var arg = this.ProcessArg(this.cmd+name); if (this.error) return; - this.mlist.Add(new jsMath.mItem('phantom',{phantom: arg, v: data[0], h: data[1]})); - }, - - /* - * Implements \smash - */ - Smash: function (name,data) { - var arg = this.ProcessArg(this.cmd+name); if (this.error) return; - this.mlist.Add(new jsMath.mItem('smash',{smash: arg})); - }, - - /* - * Puts an accent on the following argument - */ - MathAccent: function (name,accent) { - var c = this.ProcessArg(this.cmd+name); if (this.error) return; - var atom = jsMath.mItem.Atom('accent',c); atom.accent = accent[0]; - this.mlist.Add(atom); - }, - - /* - * Handles functions and operators like sin, cos, sum, etc. - */ - NamedOp: function (name,data) { - var a = (name.match(/[^acegm-su-z]/)) ? 1: 0; - var d = (name.match(/[gjpqy]/)) ? .2: 0; - if (data[1]) {name = data[1]} - var box = jsMath.mItem.TextAtom('op',name,jsMath.TeX.fam[0],a,d); - if (data[0] != null) {box.limits = data[0]} - this.mlist.Add(box); - }, - - /* - * Implements \limits - */ - Limits: function (name,data) { - var atom = this.mlist.Last(); - if (!atom || atom.type != 'op') - {this.Error(this.cmd+name+" is allowed only on operators"); return} - atom.limits = data[0]; - }, - - /* - * Implements macros like those created by \def. The named control - * sequence is replaced by the string given as the first data value. - * If there is a second data value, this specifies how many arguments - * the macro uses, and in this case, those arguments are substituted - * for #1, #2, etc. within the replacement string. - * - * See the jsMath.Macro() command below for more details. - * The "newcommand" extension implements \newcommand and \def - * and are loaded automatically if needed. - */ - Macro: function (name,data) { - var text = data[0]; - if (data[1]) { - var args = []; - for (var i = 0; i < data[1]; i++) - {args[args.length] = this.GetArgument(this.cmd+name); if (this.error) return} - text = this.SubstituteArgs(args,text); - } - this.string = this.AddArgs(text,this.string.slice(this.i)); - this.i = 0; - }, - - /* - * Replace macro paramters with their values - */ - SubstituteArgs: function (args,string) { - var text = ''; var newstring = ''; var c; var i = 0; - while (i < string.length) { - c = string.charAt(i++); - if (c == this.cmd) {text += c + string.charAt(i++)} - else if (c == '#') { - c = string.charAt(i++); - if (c == "#") {text += c} else { - if (!c.match(/[1-9]/) || c > args.length) - {this.Error("Illegal macro parameter reference"); return null} - newstring = this.AddArgs(this.AddArgs(newstring,text),args[c-1]); - text = ''; - } - } else {text += c} - } - return this.AddArgs(newstring,text); - }, - - /* - * Make sure that macros are followed by a space if their names - * could accidentally be continued into the following text. - */ - AddArgs: function (s1,s2) { - if (s2.match(/^[a-z]/i) && s1.match(/(^|[^\\])(\\\\)*\\[a-z]+$/i)) {s1 += ' '} - return s1+s2; - }, - - /* - * Replace the control sequence with the given text - */ - Replace: function (name,data) { - this.mlist.Add(jsMath.mItem.TextAtom(data[0],data[1],data[2],data[3])); - }, - - /* - * Error for # (must use \#) - */ - Hash: function (name) { - this.Error("You can't use 'macro parameter character #' in math mode"); - }, - - /* - * Insert space for ~ - */ - Tilde: function (name) { - this.mlist.Add(jsMath.mItem.TextAtom('ord',' ','normal')); - }, - - /* - * Implements \llap, \rlap, etc. - */ - HandleLap: function (name) { - var box = this.ProcessArg(); if (this.error) return; - box = this.mlist.Add(new jsMath.mItem('lap',{nuc: box, lap: name})); - }, - - /* - * Adds the argument as a specific type of atom (for commands like - * \overline, etc.) - */ - HandleAtom: function (name,data) { - var arg = this.ProcessArg(this.cmd+name); if (this.error) return; - this.mlist.Add(jsMath.mItem.Atom(data[0],arg)); - }, - - - /* - * Process the character associated with a specific \mathcharcode - */ - HandleMathCode: function (name,code) { - this.HandleTeXchar(code[0],code[1],code[2]); - }, - - /* - * Add a specific character from a TeX font (use the current - * font if the type is 7 (variable) or the font is not specified) - * Load the font if it is not already loaded. - */ - HandleTeXchar: function (type,font,code) { - if (type == 7 && this.mlist.data.font != null) {font = this.mlist.data.font} - font = jsMath.TeX.fam[font]; - if (!jsMath.TeX[font]) { - jsMath.TeX[font] = []; - this.Extension(null,[jsMath.Font.URL(font)]); - } else { - this.mlist.Add(jsMath.mItem.TeXAtom(jsMath.TeX.atom[type],code,font)); - } - }, - - /* - * Add a TeX variable character or number - */ - HandleVariable: function (c) {this.HandleTeXchar(7,1,c.charCodeAt(0))}, - HandleNumber: function (c) {this.HandleTeXchar(7,0,c.charCodeAt(0))}, - - /* - * For unmapped characters, just add them in as normal - * (non-TeX) characters - */ - HandleOther: function (c) { - this.mlist.Add(jsMath.mItem.TextAtom('ord',c,'normal')); - }, - - /* - * Ignore comments in TeX data - * ### Some browsers remove the newlines, so this might cause - * extra stuff to be ignored; look into this ### - */ - HandleComment: function () { - var c; - while (this.i < this.string.length) { - c = this.string.charAt(this.i++); - if (c == "\r" || c == "\n") return; - } - }, - - /* - * Add a style change (e.g., \displaystyle, etc) - */ - HandleStyle: function (name,style) { - this.mlist.data.style = style[0]; - this.mlist.Add(new jsMath.mItem('style',{style: style[0]})); - }, - - /* - * Implements \small, \large, etc. - */ - HandleSize: function (name,size) { - this.mlist.data.size = size[0]; - this.mlist.Add(new jsMath.mItem('size',{size: size[0]})); - }, - - /* - * Set the current font (e.g., \rm, etc) - */ - HandleFont: function (name,font) { - this.mlist.data.font = font[0]; - }, - - /* - * Look for and process a control sequence - */ - HandleCS: function () { - var cmd = this.GetCommand(); if (this.error) return; - if (this.macros[cmd]) { - var macro = this.macros[cmd]; - if (typeof(macro) == "string") {macro = [macro]} - this[macro[0]](cmd,macro.slice(1)); return; - } - if (this.mathchardef[cmd]) { - this.HandleMathCode(cmd,this.mathchardef[cmd]); - return; - } - if (this.delimiter[this.cmd+cmd]) { - this.HandleMathCode(cmd,this.delimiter[this.cmd+cmd].slice(0,3)) - return; - } - this.Error("Unknown control sequence '"+this.cmd+cmd+"'"); - }, - - /* - * Process open and close braces - */ - HandleOpen: function () {this.mlist.Open()}, - HandleClose: function () { - if (this.mlist.data.openI == null) {this.Error("Extra close brace"); return} - var open = this.mlist.Get(this.mlist.data.openI); - if (!open || open.left == null) {this.mlist.Close()} - else {this.Error("Extra close brace or missing "+this.cmd+"right"); return} - }, - - /* - * Implements \left - */ - HandleLeft: function (name) { - var left = this.GetDelimiter(this.cmd+name); if (this.error) return; - this.mlist.Open(left); - }, - - /* - * Implements \right - */ - HandleRight: function (name) { - var right = this.GetDelimiter(this.cmd+name); if (this.error) return; - var open = this.mlist.Get(this.mlist.data.openI); - if (open && open.left != null) {this.mlist.Close(right)} - else {this.Error("Extra open brace or missing "+this.cmd+"left");} - }, - - /* - * Implements generalized fractions (\over, \above, etc.) - */ - HandleOver: function (name,data) { - if (this.mlist.data.overI != null) - {this.Error('Ambiguous use of '+this.cmd+name); return} - this.mlist.data.overI = this.mlist.Length(); - this.mlist.data.overF = {name: name}; - if (data.length > 0) { - this.mlist.data.overF.left = this.delimiter[data[0]]; - this.mlist.data.overF.right = this.delimiter[data[1]]; - } else if (name.match(/withdelims$/)) { - this.mlist.data.overF.left = this.GetDelimiter(this.cmd+name); if (this.error) return; - this.mlist.data.overF.right = this.GetDelimiter(this.cmd+name); if (this.error) return; - } else { - this.mlist.data.overF.left = null; - this.mlist.data.overF.right = null; - } - if (name.match(/^above/)) { - this.mlist.data.overF.thickness = this.GetDimen(this.cmd+name,1); - if (this.error) return; - } else { - this.mlist.data.overF.thickness = null; - } - }, - - /* - * Add a superscript to the preceeding atom - */ - HandleSuperscript: function () { - var base = this.mlist.Last(); - if (this.mlist.data.overI == this.mlist.Length()) {base = null} - if (base == null || (!base.atom && base.type != 'box' && base.type != 'frac')) - {base = this.mlist.Add(jsMath.mItem.Atom('ord',{type:null}))} - if (base.sup) { - if (base.sup.isPrime) {base = this.mlist.Add(jsMath.mItem.Atom('ord',{type:null}))} - else {this.Error("Double exponent: use braces to clarify"); return} - } - base.sup = this.ProcessScriptArg('superscript'); if (this.error) return; - }, - - /* - * Add a subscript to the preceeding atom - */ - HandleSubscript: function () { - var base = this.mlist.Last(); - if (this.mlist.data.overI == this.mlist.Length()) {base = null} - if (base == null || (!base.atom && base.type != 'box' && base.type != 'frac')) - {base = this.mlist.Add(jsMath.mItem.Atom('ord',{type:null}))} - if (base.sub) {this.Error("Double subscripts: use braces to clarify"); return} - base.sub = this.ProcessScriptArg('subscript'); if (this.error) return; - }, - - /* - * Parse a TeX math string, handling macros, etc. - */ - Parse: function () { - var c; - while (this.i < this.string.length) { - c = this.string.charAt(this.i++); - if (this.mathchar[c]) {this.HandleMathCode(c,this.mathchar[c])} - else if (this.special[c]) {this[this.special[c]](c)} - else if (this.letter.test(c)) {this.HandleVariable(c)} - else if (this.number.test(c)) {this.HandleNumber(c)} - else {this.HandleOther(c)} - } - if (this.mlist.data.openI != null) { - var open = this.mlist.Get(this.mlist.data.openI); - if (open.left) {this.Error("Missing "+this.cmd+"right")} - else {this.Error("Missing close brace")} - } - if (this.mlist.data.overI != null) {this.mlist.Over()} - }, - - /* - * Perform the processing of Appendix G - */ - Atomize: function () { - var data = this.mlist.init; - if (!this.error) this.mlist.Atomize(data.style,data.size) - }, - - /* - * Produce the final HTML. - * - * We have to wrap the HTML it appropriate tags to hide its - * actual dimensions when these don't match the TeX dimensions of the - * results. We also include an image to force the results to take up - * the right amount of space. The results may need to be vertically - * adjusted to make the baseline appear in the correct place. - */ - Typeset: function () { - var data = this.mlist.init; - var box = this.typeset = this.mlist.Typeset(data.style,data.size); - if (this.error) {return ''+this.error+''} - if (box.format == 'null') {return ''}; - - box.Styled().Remeasured(); var isSmall = 0; var isBig = 0; - if (box.bh > box.h && box.bh > jsMath.h+.001) {isSmall = 1} - if (box.bd > box.d && box.bd > jsMath.d+.001) {isSmall = 1} - if (box.h > jsMath.h || box.d > jsMath.d) {isBig = 1} - - var html = box.html; - if (isSmall) {// hide the extra size - if (jsMath.Browser.allowAbsolute) { - var y = (box.bh > jsMath.h+.001 ? jsMath.h - box.bh : 0); - html = jsMath.HTML.Absolute(html,box.w,jsMath.h,0,y); - } else if (jsMath.Browser.valignBug) { - // remove line height - html = '' - + html + ''; - } else if (!jsMath.Browser.operaLineHeightBug) { - // remove line height and try to hide the depth - var dy = jsMath.HTML.Em(Math.max(0,box.bd-jsMath.hd)/3); - html = '' + html + ''; - } - isBig = 1; - } - if (isBig) { - // add height and depth to the line - // (force a little extra to separate lines if needed) - html += jsMath.HTML.Blank(0,box.h+.05,box.d+.05); - } - return ''+html+''; - } - -}); - -/* - * Make these characters special (and call the given routines) - */ -jsMath.Parser.prototype.AddSpecial({ - cmd: 'HandleCS', - open: 'HandleOpen', - close: 'HandleClose' -}); - - -/* - * The web-page author can call jsMath.Macro to create additional - * TeX macros for use within his or her mathematics. See the - * author's documentation for more details. - */ - -jsMath.Add(jsMath,{ - Macro: function (name) { - var macro = jsMath.Parser.prototype.macros; - macro[name] = ['Macro']; - for (var i = 1; i < arguments.length; i++) - {macro[name][macro[name].length] = arguments[i]} - } -}); - -/* - * Use these commands to create macros that load - * JavaScript files and reprocess the mathematics when - * the file is loaded. This lets you to have macros or - * LaTeX environments that autoload their own definitions - * only when they are needed, saving initial download time - * on pages where they are not used. See the author's - * documentation for more details. - * - */ - -jsMath.Extension = { - - safeRequire: 1, // disables access to files outside of jsMath/extensions - - Macro: function (name,file) { - var macro = jsMath.Parser.prototype.macros; - if (file == null) {file = name} - macro[name] = ['Extension',file]; - }, - - LaTeX: function (env,file) { - var latex = jsMath.Parser.prototype.environments; - latex[env] = ['Extension',file,'environments']; - }, - - Font: function (name,font) { - if (font == null) {font = name + "10"} - var macro = jsMath.Parser.prototype.macros; - macro[name] = ['Extension',jsMath.Font.URL(font)]; - }, - - MathChar: function (font,defs) { - var fam = jsMath.TeX.famName[font]; - if (fam == null) { - fam = jsMath.TeX.fam.length; - jsMath.TeX.fam[fam] = font; - jsMath.TeX.famName[font] = fam; - } - var mathchardef = jsMath.Parser.prototype.mathchardef; - for (var c in defs) {mathchardef[c] = [defs[c][0],fam,defs[c][1]]} - }, - - Require: function (file,show) { - if (this.safeRequire && (file.match(/\.\.\/|[^-a-z0-9.\/:_+=%~]/i) || - (file.match(/:/) && file.substr(0,jsMath.root.length) != jsMath.root))) { - jsMath.Setup.loaded[file] = 1; - return; - } - jsMath.Setup.Script(this.URL(file),show); - }, - - URL: function (file) { - file = file.replace(/^\s+|\s+$/g,''); - if (!file.match(/^([a-z]+:|\/|fonts|extensions\/)/i)) {file = 'extensions/'+file} - if (!file.match(/\.js$/)) {file += '.js'} - return file; - } -} - - -/***************************************************************************/ - -/* - * These routines look through the web page for math elements to process. - * There are two main entry points you can call: - * - * - * or - * - * - * The first will process the page asynchronously (so the user can start - * reading the top of the file while jsMath is still processing the bottom) - * while the second does not update until all the mathematics is typeset. - */ - -jsMath.Add(jsMath,{ - /* - * Call this at the bottom of your HTML page to have the - * mathematics typeset asynchronously. This lets the user - * start reading the mathematics while the rest of the page - * is being processed. - */ - Process: function (obj) { - jsMath.Setup.Body(); - jsMath.Script.Push(jsMath.Translate,'Asynchronous',obj); - }, - - /* - * Call this at the bottom of your HTML page to have the - * mathematics typeset before the page is displayed. - * This can take a long time, so the user could cancel the - * page before it is complete; use it with caution, and only - * when there is a relatively small amount of math on the page. - */ - ProcessBeforeShowing: function (obj) { - jsMath.Setup.Body(); - var method = (jsMath.Controls.cookie.asynch ? "Asynchronous": "Synchronous"); - jsMath.Script.Push(jsMath.Translate,method,obj); - }, - - /* - * Process the contents of a single element. It must be of - * class "math". - */ - ProcessElement: function (obj) { - jsMath.Setup.Body(); - jsMath.Script.Push(jsMath.Translate,'ProcessOne',obj); - } - -}); - -jsMath.Translate = { - - element: [], // the list of math elements on the page - cancel: 0, // set to 1 to cancel asynchronous processing - - /* - * Parse a TeX string in Text or Display mode and return - * the HTML for it (taking it from the cache, if available) - */ - Parse: function (style,s,noCache) { - var cache = jsMath.Global.cache[style]; - if (!cache[jsMath.em]) {cache[jsMath.em] = {}} - var HTML = cache[jsMath.em][s]; - if (!HTML || noCache) { - var parse = jsMath.Parse(s,null,null,style); - parse.Atomize(); HTML = parse.Typeset(); - if (!noCache) {cache[jsMath.em][s] = HTML} - } - return HTML; - }, - - TextMode: function (s,noCache) {this.Parse('T',s,noCache)}, - DisplayMode: function (s,noCache) {this.Parse('D',s,noCache)}, - - /* - * Return the text of a given DOM element - */ - GetElementText: function (element) { - if (element.childNodes.length == 1 && element.childNodes[0].nodeName === "#comment") { - var result = element.childNodes[0].nodeValue.match(/^\[CDATA\[(.*)\]\]$/); - if (result != null) {return result[1]}; - } - var text = this.recursiveElementText(element); - element.alt = text; - if (text.search('&') >= 0) { - text = text.replace(/</g,'<'); - text = text.replace(/>/g,'>'); - text = text.replace(/"/g,'"'); - text = text.replace(/&/g,'&'); - } - return text; - }, - recursiveElementText: function (element) { - if (element.nodeValue != null) { - if (element.nodeName !== "#comment") {return element.nodeValue} - return element.nodeValue.replace(/^\[CDATA\[((.|\n)*)\]\]$/,"$1"); - } - if (element.childNodes.length === 0) {return " "} - var text = ''; - for (var i = 0; i < element.childNodes.length; i++) - {text += this.recursiveElementText(element.childNodes[i])} - return text; - }, - - /* - * Move hidden to the location of the math element to be - * processed and reinitialize sizes for that location. - */ - ResetHidden: function (element) { - element.innerHTML = - '' - + jsMath.Browser.operaHiddenFix; // needed by Opera in tables - element.className = ''; - jsMath.hidden = element.firstChild; - if (!jsMath.BBoxFor("x").w) {jsMath.hidden = jsMath.hiddenTop} - jsMath.ReInit(); - }, - - - /* - * Typeset the contents of an element in \textstyle or \displaystyle - */ - ConvertMath: function (style,element,noCache) { - var text = this.GetElementText(element); - this.ResetHidden(element); - if (text.match(/^\s*\\nocache([^a-zA-Z])/)) - {noCache = true; text = text.replace(/\s*\\nocache/,'')} - text = this.Parse(style,text,noCache); - element.className = 'typeset'; - element.innerHTML = text; - }, - - /* - * Process a math element - */ - ProcessElement: function (element) { - this.restart = 0; - if (!element.className.match(/(^| )math( |$)/)) return; // don't reprocess elements - var noCache = (element.className.toLowerCase().match(/(^| )nocache( |$)/) != null); - try { - var style = (element.tagName.toLowerCase() == 'div' ? 'D' : 'T'); - this.ConvertMath(style,element,noCache); - element.onclick = jsMath.Click.CheckClick; - element.ondblclick = jsMath.Click.CheckDblClick; - } catch (err) { - if (element.alt) { - var tex = element.alt; - tex = tex.replace(/&/g,'&') - .replace(//g,'>'); - element.innerHTML = tex; - element.className = 'math'; - if (noCache) {element.className += ' nocache'} - } - jsMath.hidden = jsMath.hiddenTop; - } - }, - - /* - * Asynchronously process all the math elements starting with - * the k-th one. Do them in blocks of 8 (more efficient than one - * at a time, but still allows screen updates periodically). - */ - ProcessElements: function (k) { - jsMath.Script.blocking = 1; - for (var i = 0; i < jsMath.Browser.processAtOnce; i++, k++) { - if (k >= this.element.length || this.cancel) { - this.ProcessComplete(); - if (this.cancel) { - jsMath.Message.Set("Process Math: Canceled"); - jsMath.Message.Clear() - } - jsMath.Script.blocking = 0; - jsMath.Script.Process(); - return; - } else { - var savedQueue = jsMath.Script.SaveQueue(); - this.ProcessElement(this.element[k]); - if (this.restart) { - jsMath.Script.Push(this,'ProcessElements',k); - jsMath.Script.RestoreQueue(savedQueue); - jsMath.Script.blocking = 0; - setTimeout('jsMath.Script.Process()',jsMath.Browser.delay); - return; - } - } - } - jsMath.Script.RestoreQueue(savedQueue); - var p = Math.floor(100 * k / this.element.length); - jsMath.Message.Set('Processing Math: '+p+'%'); - setTimeout('jsMath.Translate.ProcessElements('+k+')',jsMath.Browser.delay); - }, - - /* - * Start the asynchronous processing of mathematics - */ - Asynchronous: function (obj) { - if (!jsMath.initialized) {jsMath.Init()} - this.element = this.GetMathElements(obj); - jsMath.Script.blocking = 1; - this.cancel = 0; this.asynchronous = 1; - jsMath.Message.Set('Processing Math: 0%',1); - setTimeout('jsMath.Translate.ProcessElements(0)',jsMath.Browser.delay); - }, - - /* - * Do synchronous processing of mathematics - */ - Synchronous: function (obj,i) { - if (i == null) { - if (!jsMath.initialized) {jsMath.Init()} - this.element = this.GetMathElements(obj); - i = 0; - } - this.asynchronous = 0; - while (i < this.element.length) { - this.ProcessElement(this.element[i]); - if (this.restart) { - jsMath.Synchronize('jsMath.Translate.Synchronous(null,'+i+')'); - jsMath.Script.Process(); - return; - } - i++; - } - this.ProcessComplete(1); - }, - - /* - * Synchronously process the contents of a single element - */ - ProcessOne: function (obj) { - if (!jsMath.initialized) {jsMath.Init()} - this.element = [obj]; - this.Synchronous(null,0); - }, - - /* - * Look up all the math elements on the page and - * put them in a list sorted from top to bottom of the page - */ - GetMathElements: function (obj) { - var element = []; var k; - if (!obj) {obj = jsMath.document} - if (typeof(obj) == 'string') {obj = jsMath.document.getElementById(obj)} - if (!obj.getElementsByTagName) return null; - var math = obj.getElementsByTagName('div'); - for (k = 0; k < math.length; k++) { - if (math[k].className && math[k].className.match(/(^| )math( |$)/)) { - if (jsMath.Browser.renameOK && obj.getElementsByName) - {math[k].setAttribute('name','_jsMath_')} - else {element[element.length] = math[k]} - } - } - math = obj.getElementsByTagName('span'); - for (k = 0; k < math.length; k++) { - if (math[k].className && math[k].className.match(/(^| )math( |$)/)) { - if (jsMath.Browser.renameOK && obj.getElementsByName) - {math[k].setAttribute('name','_jsMath_')} - else {element[element.length] = math[k]} - } - } - // this gets the SPAN and DIV elements interleaved in order - if (jsMath.Browser.renameOK && obj.getElementsByName) { - element = obj.getElementsByName('_jsMath_'); - } else if (jsMath.hidden.sourceIndex) { - element.sort(function (a,b) {return a.sourceIndex - b.sourceIndex}); - } - return element; - }, - - /* - * Remove the window message about processing math - * and clean up any marked or
tags - */ - ProcessComplete: function (noMessage) { - if (jsMath.Browser.renameOK) { - var element = jsMath.document.getElementsByName('_jsMath_'); - for (var i = element.length-1; i >= 0; i--) { - element[i].removeAttribute('name'); - } - } - jsMath.hidden = jsMath.hiddenTop; - this.element = []; this.restart = null; - if (!noMessage) { - jsMath.Message.Set('Processing Math: Done'); - jsMath.Message.Clear(); - } - jsMath.Message.UnBlank(); - if (jsMath.Browser.safariImgBug && - (jsMath.Controls.cookie.font == 'symbol' || - jsMath.Controls.cookie.font == 'image')) { - // - // For Safari, the images don't always finish - // updating, so nudge the window to cause a - // redraw. (Hack!) - // - if (this.timeout) {clearTimeout(this.timeout)} - this.timeout = setTimeout("jsMath.window.resizeBy(-1,0); " - + "jsMath.window.resizeBy(1,0); " - + "jsMath.Translate.timeout = null",2000); - } - }, - - /* - * Cancel procesing elements - */ - Cancel: function () { - jsMath.Translate.cancel = 1; - if (jsMath.Script.cancelTimer) {jsMath.Script.cancelLoad()} - } - -}; - -jsMath.Add(jsMath,{ - // - // Synchronize these with the loading of the tex2math plugin. - // - ConvertTeX: function (element) {jsMath.Script.Push(jsMath.tex2math,'ConvertTeX',element)}, - ConvertTeX2: function (element) {jsMath.Script.Push(jsMath.tex2math,'ConvertTeX2',element)}, - ConvertLaTeX: function (element) {jsMath.Script.Push(jsMath.tex2math,'ConvertLaTeX',element)}, - ConvertCustom: function (element) {jsMath.Script.Push(jsMath.tex2math,'ConvertCustom',element)}, - CustomSearch: function (om,cm,od,cd) {jsMath.Script.Push(null,function () {jsMath.tex2math.CustomSearch(om,cm,od,cd)})}, - tex2math: { - ConvertTeX: function () {}, - ConvertTeX2: function () {}, - ConvertLaTeX: function () {}, - ConvertCustom: function () {}, - CustomSearch: function () {} - } -}); -jsMath.Synchronize = jsMath.Script.Synchronize; - -/***************************************************************************/ - - -/* - * Initialize things - */ -try { - if (window.parent != window && window.jsMathAutoload) { - window.parent.jsMath = jsMath; - jsMath.document = window.parent.document; - jsMath.window = window.parent; - } -} catch (err) {} - - -jsMath.Global.Register(); -jsMath.Loaded(); -jsMath.Controls.GetCookie(); -jsMath.Setup.Source(); -jsMath.Global.Init(); -jsMath.Script.Init(); -jsMath.Setup.Fonts(); -if (jsMath.document.body) {jsMath.Setup.Body()} -jsMath.Setup.User("onload"); - -}} diff --git a/literature/templates/literature/base.html b/literature/templates/literature/base.html deleted file mode 100644 index 4edd3423e..000000000 --- a/literature/templates/literature/base.html +++ /dev/null @@ -1,5 +0,0 @@ -{% extends "base/base.html" %} - -{% block main-content-body %} - -{% endblock %} \ No newline at end of file diff --git a/literature/templates/literature/list_references.html b/literature/templates/literature/list_references.html deleted file mode 100644 index 21533b09d..000000000 --- a/literature/templates/literature/list_references.html +++ /dev/null @@ -1,76 +0,0 @@ -{% extends "literature/base.html" %} - -{% block main-content-body %} -{% load static %} -

- Literature -

-{% if error %} -
- {{error}} -
-{% endif %} -
- This is an overview of references and literature that are available on this - platform. If you are logged in you can add new references to the database - using a BibTeX file or manually. Every entry has a unique id that can be - referenced in the OEDB, in order to make your dataset more transparent - in case of many references. The id number is displayed in gray starting with - a hash and the id number (e.g #1).
-
- Learn more about the BibTeX on - Wikipedia - or BibTeX.
-
- Use the green add button to add your references as file or fill your - information manually. By clicking on an entry you can edit it. -
- - - -
- {% for ref in refs %} - {{ref.title}} - {% endfor %} -
- - - - -
- Warning: jsMath - requires JavaScript to process the mathematics on this page.
- If your browser supports JavaScript, be sure it is enabled.
-
- - -{% endblock %} \ No newline at end of file diff --git a/literature/templates/literature/reference.html b/literature/templates/literature/reference.html deleted file mode 100644 index cad74910e..000000000 --- a/literature/templates/literature/reference.html +++ /dev/null @@ -1,55 +0,0 @@ - -{% extends "literature/base.html" %} - -{% block main-content-body %} -

{{entry.title}} (#{{entry.entries_id}})

Edit - -{% include 'literature/reference_item.html' with key='abstract' value=entry.abstract %} -{% include 'literature/reference_item.html' with key='address' value=entry.address %} -{% include 'literature/reference_item.html' with key='annote' value=entry.annote %} -{% include 'literature/reference_item.html' with key='author' value=entry.author %} -{% include 'literature/reference_item.html' with key='booktitle' value=entry.booktitle %} -{% include 'literature/reference_item.html' with key='chapter' value=entry.chapter %} -{% include 'literature/reference_item.html' with key='cite_key' value=entry.cite_key %} -{% include 'literature/reference_item.html' with key='comment' value=entry.comment %} -{% include 'literature/reference_item.html' with key='crossref' value=entry.crossref %} -{% include 'literature/reference_item.html' with key='database_id' value=entry.database_id %} -{% include 'literature/reference_item.html' with key='doi' value=entry.doi %} -{% include 'literature/reference_item.html' with key='edition' value=entry.edition %} -{% include 'literature/reference_item.html' with key='editor' value=entry.editor %} -{% include 'literature/reference_item.html' with key='eid' value=entry.eid %} - -{% include 'literature/reference_item.html' with key='entry_types_id' value=entry.entry_types_id %} -{% include 'literature/reference_item.html' with key='file' value=entry.file %} -{% include 'literature/reference_item.html' with key='howpublished' value=entry.howpublished %} -{% include 'literature/reference_item.html' with key='institution' value=entry.institution %} -{% include 'literature/reference_item.html' with key='jabref_eid' value=entry.jabref_eid %} -{% include 'literature/reference_item.html' with key='journal' value=entry.journal %} -{% include 'literature/reference_item.html' with key='key_' value=entry.key_ %} -{% include 'literature/reference_item.html' with key='keywords' value=entry.keywords %} -{% include 'literature/reference_item.html' with key='language' value=entry.language %} -{% include 'literature/reference_item.html' with key='location' value=entry.location %} -{% include 'literature/reference_item.html' with key='month' value=entry.month %} -{% include 'literature/reference_item.html' with key='note' value=entry.note %} -{% include 'literature/reference_item.html' with key='number' value=entry.number %} -{% include 'literature/reference_item.html' with key='organization' value=entry.organization %} -{% include 'literature/reference_item.html' with key='pages' value=entry.pages %} -{% include 'literature/reference_item.html' with key='pdf' value=entry.pdf %} -{% include 'literature/reference_item.html' with key='pmid' value=entry.pmid %} -{% include 'literature/reference_item.html' with key='priority' value=entry.priority %} -{% include 'literature/reference_item.html' with key='ps' value=entry.ps %} -{% include 'literature/reference_item.html' with key='publisher' value=entry.publisher %} -{% include 'literature/reference_item.html' with key='qualityassured' value=entry.qualityassured %} -{% include 'literature/reference_item.html' with key='ranking' value=entry.ranking %} -{% include 'literature/reference_item.html' with key='relevance' value=entry.relevance %} -{% include 'literature/reference_item.html' with key='school' value=entry.school %} -{% include 'literature/reference_item.html' with key='search' value=entry.search %} -{% include 'literature/reference_item.html' with key='series' value=entry.series %} - -{% include 'literature/reference_item.html' with key='type' value=entry.type %} -{% include 'literature/reference_item.html' with key='url' value=entry.url %} -{% include 'literature/reference_item.html' with key='volume' value=entry.volume %} -{% include 'literature/reference_item.html' with key='year' value=entry.year %} -
- -{% endblock %} \ No newline at end of file diff --git a/literature/templates/literature/reference_field.html b/literature/templates/literature/reference_field.html deleted file mode 100644 index 435313aac..000000000 --- a/literature/templates/literature/reference_field.html +++ /dev/null @@ -1,31 +0,0 @@ -
-{% if not nolabel %} {% endif %} -{% if type == 'month' %} {# input type=date y u no supported? #} - -{% elif type == 'year'%} - -{% elif type == 'textarea'%} - -{% else %} - -{%endif%} -
diff --git a/literature/templates/literature/reference_form.html b/literature/templates/literature/reference_form.html deleted file mode 100644 index 7720f2e0b..000000000 --- a/literature/templates/literature/reference_form.html +++ /dev/null @@ -1,292 +0,0 @@ -{% extends "literature/base.html" %} - -{% block main-content-body %} - - -
- {% if not id or btype == "article" %} -
-
{% csrf_token %} - - {% if id %}{% endif %} - {% include 'literature/reference_field.html' with key='author' value=entry.author optional=False%} - {% include 'literature/reference_field.html' with key='title' value=entry.title optional=False%} - {% include 'literature/reference_field.html' with key='journal' value=entry.journal optional=False%} - {% include 'literature/reference_field.html' with key='year' value=entry.year optional=False%} - {% include 'literature/reference_field.html' with key='volume' value=entry.volume optional=True%} - {% include 'literature/reference_field.html' with key='number' value=entry.number optional=True%} - {% include 'literature/reference_field.html' with key='pages' value=entry.pages optional=True%} - {% include 'literature/reference_field.html' with key='month' value=entry.month optional=True%} - {% include 'literature/reference_field.html' with key='note' value=entry.note optional=True%} - -
-
- {%endif%} - {% if not id or btype == "book" %} -
-
{% csrf_token %} - - {% if id %}{% endif %} - {% include 'literature/reference_field.html' with key='title' value=entry.title optional=False%} - {% include 'literature/reference_field.html' with key='publisher' value=entry.publisher optional=False%} - {% include 'literature/reference_field.html' with key='year' value=entry.year optional=False%} - {% include 'literature/reference_field.html' with key='volume' value=entry.volume optional=True%} - {% include 'literature/reference_field.html' with key='number' value=entry.number optional=True%} - {% include 'literature/reference_field.html' with key='author' value=entry.author optional=True%} - {% include 'literature/reference_field.html' with key='editor' value=entry.editor optional=True%} - {% include 'literature/reference_field.html' with key='series' value=entry.series optional=True%} - {% include 'literature/reference_field.html' with key='address' value=entry.address optional=True%} - {% include 'literature/reference_field.html' with key='edition' value=entry.edition optional=True%} - {% include 'literature/reference_field.html' with key='month' value=entry.month optional=True%} - {% include 'literature/reference_field.html' with key='note' value=entry.note optional=True%} - {% include 'literature/reference_field.html' with key='isbn' value=entry.isbn optional=True%} - -
-
- {%endif%} - {% if not id or btype == "booklet" %} -
-
{% csrf_token %} - - {% if id %}{% endif %} - {% include 'literature/reference_field.html' with key='title' value=entry.title optional=False%} - {% include 'literature/reference_field.html' with key='author' value=entry.author optional=True%} - {% include 'literature/reference_field.html' with key='howpublished' value=entry.howpublished optional=True%} - {% include 'literature/reference_field.html' with key='address' value=entry.address optional=True%} - {% include 'literature/reference_field.html' with key='month' value=entry.month optional=True%} - {% include 'literature/reference_field.html' with key='year' value=entry.year optional=True%} - {% include 'literature/reference_field.html' with key='note' value=entry.note optional=True%} - -
-
- {%endif%} - {% if not id or btype == "conference" %} -
-
{% csrf_token %} - - {% if id %}{% endif %} - {% include 'literature/reference_field.html' with key='author' value=entry.author optional=False%} - {% include 'literature/reference_field.html' with key='title' value=entry.title optional=False%} - {% include 'literature/reference_field.html' with key='booktitle' value=entry.booktitle optional=False%} - {% include 'literature/reference_field.html' with key='year' value=entry.year optional=False%} - {% include 'literature/reference_field.html' with key='volume' value=entry.volume optional=True%} - {% include 'literature/reference_field.html' with key='number' value=entry.number optional=True%} - {% include 'literature/reference_field.html' with key='editor' value=entry.editor optional=True%} - {% include 'literature/reference_field.html' with key='series' value=entry.series optional=True%} - {% include 'literature/reference_field.html' with key='pages' value=entry.pages optional=True%} - {% include 'literature/reference_field.html' with key='address' value=entry.address optional=True%} - {% include 'literature/reference_field.html' with key='month' value=entry.month optional=True%} - {% include 'literature/reference_field.html' with key='organization' value=entry.organization optional=True%} - {% include 'literature/reference_field.html' with key='publisher' value=entry.publisher optional=True%} - {% include 'literature/reference_field.html' with key='note' value=entry.note optional=True%} - -
-
- {%endif%} - {% if not id or btype == "inbook" %} -
-
{% csrf_token %} - - {% if id %}{% endif %} - {% include 'literature/reference_field.html' with key='title' value=entry.title optional=False%} - {% include 'literature/reference_field.html' with key='chapter' value=entry.chapter optional=True%} - {% include 'literature/reference_field.html' with key='pages' value=entry.pages optional=True%} - {% include 'literature/reference_field.html' with key='publisher' value=entry.publisher optional=False%} - {% include 'literature/reference_field.html' with key='year' value=entry.year optional=False%} - {% include 'literature/reference_field.html' with key='volume' value=entry.volume optional=True%} - {% include 'literature/reference_field.html' with key='number' value=entry.number optional=True%} - {% include 'literature/reference_field.html' with key='author' value=entry.author optional=True%} - {% include 'literature/reference_field.html' with key='editor' value=entry.editor optional=True%} - {% include 'literature/reference_field.html' with key='series' value=entry.series optional=True%} - {% include 'literature/reference_field.html' with key='type' value=entry.type optional=True%} - {% include 'literature/reference_field.html' with key='address' value=entry.address optional=True%} - {% include 'literature/reference_field.html' with key='edition' value=entry.edition optional=True%} - {% include 'literature/reference_field.html' with key='month' value=entry.month optional=True%} - {% include 'literature/reference_field.html' with key='note' value=entry.note optional=True%} - -
-
- {%endif%} - {% if not id or btype == "incollection" %} -
-
{% csrf_token %} - - {% if id %}{% endif %} - {% include 'literature/reference_field.html' with key='author' value=entry.author optional=False%} - {% include 'literature/reference_field.html' with key='title' value=entry.title optional=False%} - {% include 'literature/reference_field.html' with key='booktitle' value=entry.booktitle optional=False%} - {% include 'literature/reference_field.html' with key='publisher' value=entry.publisher optional=False%} - {% include 'literature/reference_field.html' with key='year' value=entry.year optional=False%} - {% include 'literature/reference_field.html' with key='volume' value=entry.volume optional=True%} - {% include 'literature/reference_field.html' with key='number' value=entry.number optional=True%} - {% include 'literature/reference_field.html' with key='editor' value=entry.editor optional=True%} - {% include 'literature/reference_field.html' with key='series' value=entry.series optional=True%} - {% include 'literature/reference_field.html' with key='type' value=entry.type optional=True%} - {% include 'literature/reference_field.html' with key='chapter' value=entry.chapter optional=True%} - {% include 'literature/reference_field.html' with key='pages' value=entry.pages optional=True%} - {% include 'literature/reference_field.html' with key='address' value=entry.address optional=True%} - {% include 'literature/reference_field.html' with key='edition' value=entry.edition optional=True%} - {% include 'literature/reference_field.html' with key='month' value=entry.month optional=True%} - {% include 'literature/reference_field.html' with key='note' value=entry.note optional=True%} - -
-
- {%endif%} - {% if not id or btype == "inproceedings" %} -
-
{% csrf_token %} - - {% include 'literature/reference_field.html' with key='author' value=entry.author optional=False%} - {% include 'literature/reference_field.html' with key='title' value=entry.title optional=False%} - {% include 'literature/reference_field.html' with key='booktitle' value=entry.booktitle optional=False%} - {% include 'literature/reference_field.html' with key='year' value=entry.year optional=False%} - {% include 'literature/reference_field.html' with key='volume' value=entry.volume optional=True%} - {% include 'literature/reference_field.html' with key='number' value=entry.number optional=True%} - {% include 'literature/reference_field.html' with key='editor' value=entry.editor optional=True%} - {% include 'literature/reference_field.html' with key='series' value=entry.series optional=True%} - {% include 'literature/reference_field.html' with key='pages' value=entry.pages optional=True%} - {% include 'literature/reference_field.html' with key='address' value=entry.address optional=True%} - {% include 'literature/reference_field.html' with key='month' value=entry.month optional=True%} - {% include 'literature/reference_field.html' with key='organization' value=entry.organization optional=True%} - {% include 'literature/reference_field.html' with key='publisher' value=entry.publisher optional=True%} - {% include 'literature/reference_field.html' with key='note' value=entry.note optional=True%} - -
-
- {%endif%} - {% if not id or btype == "manual" %} -
-
{% csrf_token %} - - {% if id %}{% endif %} - {% include 'literature/reference_field.html' with key='address' value=entry.address optional=False%} - {% include 'literature/reference_field.html' with key='title' value=entry.title optional=False%} - {% include 'literature/reference_field.html' with key='year' value=entry.year optional=False%} - {% include 'literature/reference_field.html' with key='author' value=entry.author optional=True%} - {% include 'literature/reference_field.html' with key='organization' value=entry.organization optional=True%} - {% include 'literature/reference_field.html' with key='edition' value=entry.edition optional=True%} - {% include 'literature/reference_field.html' with key='month' value=entry.month optional=True%} - {% include 'literature/reference_field.html' with key='note' value=entry.note optional=True%} - -
-
- {%endif%} - {% if not id or btype == "mastersthesis" %} -
-
{% csrf_token %} - - {% if id %}{% endif %} - {% include 'literature/reference_field.html' with key='author' value=entry.author optional=False%} - {% include 'literature/reference_field.html' with key='title' value=entry.title optional=False%} - {% include 'literature/reference_field.html' with key='school' value=entry.school optional=False%} - {% include 'literature/reference_field.html' with key='year' value=entry.year optional=False%} - {% include 'literature/reference_field.html' with key='type' value=entry.type optional=True%} - {% include 'literature/reference_field.html' with key='address' value=entry.address optional=True%} - {% include 'literature/reference_field.html' with key='month' value=entry.month optional=True%} - {% include 'literature/reference_field.html' with key='note' value=entry.note optional=True%} - -
-
- {%endif%} - {% if not id or btype == "misc" %} -
-
{% csrf_token %} - - {% if id %}{% endif %} - {% include 'literature/reference_field.html' with key='author' value=entry.author optional=True%} - {% include 'literature/reference_field.html' with key='title' value=entry.title optional=True%} - {% include 'literature/reference_field.html' with key='howpublished' value=entry.howpublished optional=True%} - {% include 'literature/reference_field.html' with key='month' value=entry.month optional=True%} - {% include 'literature/reference_field.html' with key='year' value=entry.year optional=True%} - {% include 'literature/reference_field.html' with key='note' value=entry.note optional=True%} - -
-
- {%endif%} - {% if not id or btype == "phdthesis" %} -
-
{% csrf_token %} - - {% if id %}{% endif %} - {% include 'literature/reference_field.html' with key='author' value=entry.author optional=False%} - {% include 'literature/reference_field.html' with key='title' value=entry.title optional=False%} - {% include 'literature/reference_field.html' with key='school' value=entry.school optional=False%} - {% include 'literature/reference_field.html' with key='year' value=entry.year optional=False%} - {% include 'literature/reference_field.html' with key='type' value=entry.type optional=True%} - {% include 'literature/reference_field.html' with key='address' value=entry.address optional=True%} - {% include 'literature/reference_field.html' with key='month' value=entry.month optional=True%} - {% include 'literature/reference_field.html' with key='note' value=entry.note optional=True%} - -
-
- {%endif%} - {% if not id or btype == "proceedings" %} -
-
{% csrf_token %} - - {% if id %}{% endif %} - {% include 'literature/reference_field.html' with key='title' value=entry.title optional=False%} - {% include 'literature/reference_field.html' with key='year' value=entry.year optional=False%} - {% include 'literature/reference_field.html' with key='volume' value=entry.volume optional=True%} - {% include 'literature/reference_field.html' with key='number' value=entry.number optional=True%} - {% include 'literature/reference_field.html' with key='editor' value=entry.editor optional=True%} - {% include 'literature/reference_field.html' with key='series' value=entry.series optional=True%} - {% include 'literature/reference_field.html' with key='address' value=entry.address optional=True%} - {% include 'literature/reference_field.html' with key='month' value=entry.month optional=True%} - {% include 'literature/reference_field.html' with key='organization' value=entry.organization optional=True%} - {% include 'literature/reference_field.html' with key='publisher' value=entry.publisher optional=True%} - {% include 'literature/reference_field.html' with key='note' value=entry.note optional=True%} - -
-
- {%endif%} - {% if not id or btype == "techreport" %} -
-
{% csrf_token %} - - {% if id %}{% endif %} - {% include 'literature/reference_field.html' with key='author' value=entry.author optional=False%} - {% include 'literature/reference_field.html' with key='title' value=entry.title optional=False%} - {% include 'literature/reference_field.html' with key='institution' value=entry.institution optional=False%} - {% include 'literature/reference_field.html' with key='year' value=entry.year optional=False%} - {% include 'literature/reference_field.html' with key='type' value=entry.type optional=True%} - {% include 'literature/reference_field.html' with key='note' value=entry.note optional=True%} - {% include 'literature/reference_field.html' with key='number' value=entry.number optional=True%} - {% include 'literature/reference_field.html' with key='address' value=entry.address optional=True%} - {% include 'literature/reference_field.html' with key='month' value=entry.month optional=True%} - -
-
- {%endif%} - {% if not id or btype == "unpublished" %} -
-
{% csrf_token %} - - {% if id %}{% endif %} - {% include 'literature/reference_field.html' with key='author' value=entry.author optional=False%} - {% include 'literature/reference_field.html' with key='title' value=entry.title optional=False%} - {% include 'literature/reference_field.html' with key='note' value=entry.note optional=False%} - {% include 'literature/reference_field.html' with key='month' value=entry.month optional=True%} - {% include 'literature/reference_field.html' with key='year' value=entry.year optional=True%} - - -
-
- {%endif%} -
-{% endblock %} \ No newline at end of file diff --git a/literature/templates/literature/reference_item.html b/literature/templates/literature/reference_item.html deleted file mode 100644 index 71a07ce29..000000000 --- a/literature/templates/literature/reference_item.html +++ /dev/null @@ -1,6 +0,0 @@ -{% if value %} - - {{key}} - {{value}} - -{% endif %} \ No newline at end of file diff --git a/literature/tests.py b/literature/tests.py deleted file mode 100644 index 7ce503c2d..000000000 --- a/literature/tests.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.test import TestCase - -# Create your tests here. diff --git a/literature/urls.py b/literature/urls.py deleted file mode 100644 index c37b4d3fb..000000000 --- a/literature/urls.py +++ /dev/null @@ -1,13 +0,0 @@ -from django.conf.urls import url - -from literature import views - -pgsql_qualifier = r"[\w\d_]+" - -urlpatterns = [ - url(r"^$", views.list_references), - url(r"^entry/upload/$", views.upload), - url(r"^entry/(?P\d+)/$", views.show_entry), - url(r"^entry/add$", views.LiteratureView.as_view()), - url(r"^entry/(?P\d+)/edit/$", views.LiteratureView.as_view()), -] diff --git a/literature/views.py b/literature/views.py deleted file mode 100644 index 3099b5296..000000000 --- a/literature/views.py +++ /dev/null @@ -1,142 +0,0 @@ -import datetime -import io - -import bibtexparser as btp -from django.contrib.auth.decorators import login_required -from django.contrib.auth.mixins import LoginRequiredMixin -from django.shortcuts import redirect, render -from django.views.generic import View -from egoio.db_tables import reference as ref -from sqlalchemy import MetaData, create_engine -from sqlalchemy.orm import Session, relationship - -from api.actions import _get_engine -from literature import forms - -# Create your views here. - - -def list_references(request, error=None): - engine = _get_engine() - sess = Session(bind=engine) - refs = sorted((r for r in sess.query(ref.Entry)), key=lambda r: r.title) - return render( - request, "literature/list_references.html", {"refs": refs, "error": error} - ) - - -def show_entry(request, entries_id): - engine = _get_engine() - sess = Session(bind=engine) - entry = sess.query(ref.Entry).filter(ref.Entry.entries_id == entries_id).first() - return render(request, "literature/reference.html", {"entry": entry}) - - -FORM_MAP = { - "article": forms.ArticleForm, - "book": forms.BookForm, - "booklet": forms.BookletForm, - "conference": forms.ConferenceForm, - "inbook": forms.InbookForm, - "incollection": forms.IncollectionForm, - "inproceedings": forms.InproceedingsForm, - "manual": forms.ManualForm, - "mastersthesis": forms.MastersthesisForm, - "misc": forms.MiscForm, - "phdthesis": forms.PhdthesisForm, - "proceedings": forms.ProceedingsForm, - "techreport": forms.TechreportForm, - "unpublished": forms.UnpublishedForm, -} - - -class LiteratureView(LoginRequiredMixin, View): - def get(self, request, entries_id=None): - if entries_id: - engine = _get_engine() - sess = Session(bind=engine) - entry = ( - sess.query(ref.Entry).filter(ref.Entry.entries_id == entries_id).first() - ) - btype = entry.entry_types.label if entry.entry_types else "article" - else: - entry = ref.Entry() - btype = None - return render( - request, - "literature/reference_form.html", - { - "entry": entry, - "years": range(datetime.datetime.now().year, 1899, -1), - "id": entries_id, - "btype": btype, - }, - ) - - def post(self, request, entries_id=None): - - # I do not know why this is necessary, but it is :/ - data = {k: v for k, v in request.POST.items()} - del data["csrfmiddlewaretoken"] - - engine = _get_engine() - metadata = MetaData() - metadata.create_all(bind=engine) - sess = Session(bind=engine) - bibtype = data.pop("bibtype") - entry_type = get_bibtype_id(bibtype) - - if "edit" in data: - entries_id = data["edit"] - del data["edit"] - - # TODO: Remove if clause after rigorous testing - data["entry_types_id"] = entry_type.entry_types_id if entry_type else 1 - form = FORM_MAP[bibtype](**data) - - if entries_id: - form.edit(sess, entries_id) - else: - form.save(sess) - - sess.commit() - return redirect("/literature") - - -@login_required(login_url="/login/") -def upload(request): - file = request.FILES["bibtex"] - try: - return read_bibtexfile(io.TextIOWrapper(file.file)) - except: - return list_references(request, "Not a valid bibtex file!") - - -def get_bibtype_id(bibtype): - engine = _get_engine() - sess = Session(bind=engine) - et = sess.query(ref.EntryType).filter(ref.EntryType.label == bibtype).first() - sess.close() - return et - - -def read_bibtexfile(bibtex_file): - engine = _get_engine() - metadata = MetaData() - metadata.create_all(bind=engine) - sess = Session(bind=engine) - - bibtex_database = btp.load(bibtex_file) - for ent in bibtex_database.entries: - props = { - k.name: ent[k.name.replace("entries.", "")] - for k in ref.Entry.__table__.c - if k.name.replace("entries.", "") in ent - } - props["entry_types_id"] = get_bibtype_id(ent["ENTRYTYPE"]) - - en = ref.Entry(**props) - sess.add(en) - sess.commit() - sess.close() - return redirect("/literature") diff --git a/oeplatform/settings.py b/oeplatform/settings.py index 75d53d9f6..4900f2ab6 100644 --- a/oeplatform/settings.py +++ b/oeplatform/settings.py @@ -45,8 +45,7 @@ "base.templatetags.base_tags", "widget_tweaks", "dataedit", - "colorfield", - "literature", + "colorfield", "api", "ontology", "axes", diff --git a/oeplatform/urls.py b/oeplatform/urls.py index 91c3473cf..187a53f87 100644 --- a/oeplatform/urls.py +++ b/oeplatform/urls.py @@ -28,8 +28,7 @@ url(r"^", include("base.urls")), url(r"^user/", include("login.urls")), url(r"^factsheets/", include("modelview.urls")), - url(r"^dataedit/", include("dataedit.urls")), - url(r"^literature/", include("literature.urls")), + url(r"^dataedit/", include("dataedit.urls")), url(r"^ontology/", include("ontology.urls")), url(r"^tutorials/", include("tutorials.urls")), url(r"^viewer/oeo/", include("oeo_viewer.urls")), From b12bae66495322c0341026072700d55008b03194 Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Tue, 7 Jun 2022 17:32:08 +0100 Subject: [PATCH 07/79] remove tags from django (tags are now in oedb) --- dataedit/forms.py | 6 +---- .../migrations/0018_auto_20220607_1829.py | 24 +++++++++++++++++++ dataedit/models.py | 12 +--------- 3 files changed, 26 insertions(+), 16 deletions(-) create mode 100644 dataedit/migrations/0018_auto_20220607_1829.py diff --git a/dataedit/forms.py b/dataedit/forms.py index 3fe9b8f9a..49d1a9632 100644 --- a/dataedit/forms.py +++ b/dataedit/forms.py @@ -2,7 +2,7 @@ from django.db import models from django.forms import ModelForm from django.forms import Form -from dataedit.models import Tag, View +from dataedit.models import View # This structure maps postgresql data types to django forms @@ -185,7 +185,3 @@ def is_valid(self): return super(GeomViewForm, self).is_valid() and self.options['geom'] in self.columns -class TagForm(ModelForm): - class Meta: - model = Tag - fields = ["label"] diff --git a/dataedit/migrations/0018_auto_20220607_1829.py b/dataedit/migrations/0018_auto_20220607_1829.py new file mode 100644 index 000000000..974142387 --- /dev/null +++ b/dataedit/migrations/0018_auto_20220607_1829.py @@ -0,0 +1,24 @@ +# Generated by Django 3.2.13 on 2022-06-07 16:29 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('dataedit', '0017_alter_tablerevision_date'), + ] + + operations = [ + migrations.RemoveField( + model_name='schema', + name='tags', + ), + migrations.RemoveField( + model_name='table', + name='tags', + ), + migrations.DeleteModel( + name='Tag', + ), + ] diff --git a/dataedit/models.py b/dataedit/models.py index b8a185329..fd3bc1412 100644 --- a/dataedit/models.py +++ b/dataedit/models.py @@ -26,19 +26,9 @@ class TableRevision(models.Model): size = IntegerField(null=False) last_accessed = DateTimeField(null=False, default=timezone.now) - -class Tag(models.Model): - label = CharField(max_length=50, null=False, unique=True) - color = ColorField(default="#FF0000") - - #def get_absolute_url(self): - # return reverse("tag", kwargs={"pk": self.pk}) - - class Tagable(models.Model): name = CharField(max_length=1000, null=False) - tags = models.ManyToManyField(Tag) - + class Meta: abstract = True From cf737fbc8a5fb6aadcde791acbba71b5855e7aa4 Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Tue, 7 Jun 2022 17:37:13 +0100 Subject: [PATCH 08/79] formatting & remove unused forms --- dataedit/forms.py | 144 +++++++++++++-------------------------------- dataedit/models.py | 16 ++--- 2 files changed, 50 insertions(+), 110 deletions(-) diff --git a/dataedit/forms.py b/dataedit/forms.py index 49d1a9632..6b0e3ff47 100644 --- a/dataedit/forms.py +++ b/dataedit/forms.py @@ -1,9 +1,8 @@ from django import forms from django.db import models from django.forms import ModelForm -from django.forms import Form -from dataedit.models import View +from dataedit.models import View # This structure maps postgresql data types to django forms typemap = [ @@ -25,111 +24,32 @@ (["uuid"], models.UUIDField), (["xml"], forms.CharField), ] -# TODO: add missing types: Textsearch, Enumeration, \ -# Composite types, Object Identifier Types, Pseudo-Types - - -def type2field(typename: str): - additionals = {} - resField = None - typename = typename.lower() - for (keyList, field) in typemap: - if any(typename.startswith(key) for key in keyList): - resField = field - if "[" in typename: - return resField - if not resField: - raise Exception( - "type '{0}' does not \ -translate to a django field".format( - typename - ) - ) - - for _ in range(typename.count("[") - 1): - resField = ArrayField(resField()) - if "[" in typename: - resField = lambda **x: ArrayField(resField(), **x) - - return resField - - -class InputForm(forms.Form): - def __init__(self, *args, **kwargs): - fields = kwargs.pop("fields", []) - values = kwargs.pop("values", []) - super(forms.Form, self).__init__(*args, **kwargs) - for (name, typename) in fields: - self.fields[name] = type2field(typename)(label=name) - if name in values: - self.fields[name].initial = values[name] - - -class UploadFileForm(forms.Form): - title = forms.CharField(max_length=50) - file = forms.FileField() - - -class UploadMapForm(forms.Form): - """calculates the largest common subsequence of two strings""" - - def _lcs(self, s1, s2): - m = [[0] * (1 + len(s2)) for i in range(1 + len(s1))] - longest, x_longest = 0, 0 - for x in range(1, 1 + len(s1)): - for y in range(1, 1 + len(s2)): - if s1[x - 1] == s2[y - 1]: - m[x][y] = m[x - 1][y - 1] + 1 - if m[x][y] > longest: - longest = m[x][y] - x_longest = x - else: - m[x][y] = 0 - return longest - - def __init__(self, *args, **kwargs): - fields = kwargs.pop("fields") - headers = kwargs.pop("headers") - super(forms.Form, self).__init__(*args, **kwargs) - for (name, typename) in fields: - self.fields[name] = forms.ChoiceField( - label=name, choices=((x, x) for x in ["---"] + headers) - ) - if any(self._lcs(name, x) / min(len(name), len(x)) > 0.7 for x in headers): - self.fields[name].initial = max( - headers, key=lambda x: self._lcs(name, x) - ) - else: - self.fields[name].initial = "---" class GraphViewForm(ModelForm): - class Meta: model = View - fields = '__all__' - exclude = ('table', 'schema', 'VIEW_TYPES', 'options', 'type') + fields = "__all__" + exclude = ("table", "schema", "VIEW_TYPES", "options", "type") def __init__(self, *args, **kwargs): - columns = kwargs.pop('columns', None) + columns = kwargs.pop("columns", None) super(GraphViewForm, self).__init__(*args, **kwargs) if columns is not None: - self.fields['column_x'] = forms.ChoiceField(choices=columns) - self.fields['column_y'] = forms.ChoiceField(choices=columns) + self.fields["column_x"] = forms.ChoiceField(choices=columns) + self.fields["column_y"] = forms.ChoiceField(choices=columns) class MapViewForm(ModelForm): - def __init__(self, *args, **kwargs): - self.columns = [c for (c, _) in kwargs.pop('columns', {})] + self.columns = [c for (c, _) in kwargs.pop("columns", {})] super(MapViewForm, self).__init__(*args, **kwargs) - class Meta: model = View - fields = '__all__' - exclude = ('table', 'schema', 'VIEW_TYPES', 'options', 'type') + fields = "__all__" + exclude = ("table", "schema", "VIEW_TYPES", "options", "type") def save(self, commit=True): view = View.objects.create( @@ -138,7 +58,7 @@ def save(self, commit=True): schema=self.schema, type="map", options=self.options, - is_default= self.data.get("is_default", "off") == "on" + is_default=self.data.get("is_default", "off") == "on", ) if commit: view.save() @@ -148,40 +68,58 @@ def save(self, commit=True): class LatLonViewForm(MapViewForm): - expected_lat_colum_names = ['lat', 'latitude'] - expected_lon_colum_names = ['lon', 'longitude'] + expected_lat_colum_names = ["lat", "latitude"] + expected_lon_colum_names = ["lon", "longitude"] def __init__(self, *args, **kwargs): super(LatLonViewForm, self).__init__(*args, **kwargs) if self.columns is not None: - self.fields['lat'] = forms.ChoiceField(choices=[(c, c) for c in self.columns]) + self.fields["lat"] = forms.ChoiceField( + choices=[(c, c) for c in self.columns] + ) for lat in self.expected_lat_colum_names: if lat in self.columns: - self.fields['lat'].initial = lat + self.fields["lat"].initial = lat - self.fields['lon'] = forms.ChoiceField(choices=[(c, c) for c in self.columns]) + self.fields["lon"] = forms.ChoiceField( + choices=[(c, c) for c in self.columns] + ) for lon in self.expected_lon_colum_names: if lon in self.columns: - self.fields['lon'].initial = lon + self.fields["lon"].initial = lon def is_valid(self): - return super(LatLonViewForm, self).is_valid() and (self.options['lat'] in self.columns) and (self.options['lon'] in self.columns) + return ( + super(LatLonViewForm, self).is_valid() + and (self.options["lat"] in self.columns) + and (self.options["lon"] in self.columns) + ) class GeomViewForm(MapViewForm): - expected_geom_colum_names = ['geom', 'geometry', 'point', 'polygon', 'line', 'multipolygon'] + expected_geom_colum_names = [ + "geom", + "geometry", + "point", + "polygon", + "line", + "multipolygon", + ] def __init__(self, *args, **kwargs): super(GeomViewForm, self).__init__(*args, **kwargs) if self.columns is not None: print(self.columns) - self.fields['geom'] = forms.ChoiceField(choices=[(c, c) for c in self.columns]) + self.fields["geom"] = forms.ChoiceField( + choices=[(c, c) for c in self.columns] + ) for g in self.expected_geom_colum_names: if g in self.columns: - self.fields['geom'].initial = g + self.fields["geom"].initial = g def is_valid(self): - return super(GeomViewForm, self).is_valid() and self.options['geom'] in self.columns - - + return ( + super(GeomViewForm, self).is_valid() + and self.options["geom"] in self.columns + ) diff --git a/dataedit/models.py b/dataedit/models.py index fd3bc1412..b5962d4d7 100644 --- a/dataedit/models.py +++ b/dataedit/models.py @@ -1,18 +1,16 @@ -from datetime import datetime +from django.contrib.postgres.search import SearchVectorField +from django.db import models -from colorfield.fields import ColorField # django.contrib.postgres.fields.JSONField is deprecated. -from django.db.models import JSONField -from django.db import models from django.db.models import ( BooleanField, CharField, DateTimeField, ForeignKey, IntegerField, + JSONField, ) from django.utils import timezone -from django.contrib.postgres.search import SearchVector, SearchVectorField # Create your models here. @@ -26,9 +24,10 @@ class TableRevision(models.Model): size = IntegerField(null=False) last_accessed = DateTimeField(null=False, default=timezone.now) + class Tagable(models.Model): name = CharField(max_length=1000, null=False) - + class Meta: abstract = True @@ -41,6 +40,7 @@ class Meta: class Table(Tagable): schema = models.ForeignKey(Schema, on_delete=models.CASCADE) search = SearchVectorField(default="") + @classmethod def load(cls, schema, table): table_obj, _ = Table.objects.get_or_create( @@ -63,7 +63,9 @@ class View(models.Model): is_default = BooleanField(default=False) def __str__(self): - return '{}/{}--"{}"({})'.format(self.schema, self.table, self.name, self.type.upper()) + return '{}/{}--"{}"({})'.format( + self.schema, self.table, self.name, self.type.upper() + ) class Filter(models.Model): From 886b87bc73f58cd80cd8ba16639a33f4bc2187ea Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Tue, 7 Jun 2022 17:53:30 +0100 Subject: [PATCH 09/79] remove invalid (404) css reference --- dataedit/templates/dataedit/dataview.html | 1 - dataedit/templates/dataedit/view_editor.html | 1 - 2 files changed, 2 deletions(-) diff --git a/dataedit/templates/dataedit/dataview.html b/dataedit/templates/dataedit/dataview.html index 41b0678f5..4ef13208b 100644 --- a/dataedit/templates/dataedit/dataview.html +++ b/dataedit/templates/dataedit/dataview.html @@ -172,7 +172,6 @@

Permissions

{% block after-head %} - - From d3af4b4fcb595a077d26db5b1355d230dc797518 Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Wed, 8 Jun 2022 17:03:26 +0100 Subject: [PATCH 10/79] removed _load_value function that convert numerical strings into number --- api/actions.py | 9 +------ .../test_regression/test_issue_814_unique.py | 25 +++++++++++++++++++ api/views.py | 4 +-- 3 files changed, 28 insertions(+), 10 deletions(-) create mode 100644 api/tests/test_regression/test_issue_814_unique.py diff --git a/api/actions.py b/api/actions.py index 922148457..cfbbe351c 100644 --- a/api/actions.py +++ b/api/actions.py @@ -1184,7 +1184,7 @@ def data_insert_check(schema, table, values, context): { "operands": [ {"type": "column", "column": c}, - {"type": "value", "value": _load_value(row[c])} + {"type": "value", "value": row[c]} if c in row else {"type": "value"}, ], @@ -1233,13 +1233,6 @@ def data_insert_check(schema, table, values, context): ) -def _load_value(v): - if isinstance(v, str): - if v.isdigit(): - return int(v) - return v - - def data_insert(request, context=None): cursor = load_cursor_from_context(context) # If the insert request is not for a meta table, change the request to do so diff --git a/api/tests/test_regression/test_issue_814_unique.py b/api/tests/test_regression/test_issue_814_unique.py new file mode 100644 index 000000000..2fb244623 --- /dev/null +++ b/api/tests/test_regression/test_issue_814_unique.py @@ -0,0 +1,25 @@ +""" +inserting the string "1000" in a varchar column +that has unique constraint leads to an error. +""" +from api.tests import APITestCase + + +class Test_issue_814_unique(APITestCase): + def test_issue_814_unique(self): + self.create_table( + structure={ + "columns": [ + {"name": "id", "data_type": "bigseriaL", "is_nullable": True}, + { + "name": "textfield", + "data_type": "varchar(128)", + "is_nullable": False, + }, + ], + "constraints": [ + {"constraint_type": "UNIQUE", "columns": ["textfield"]} + ], + }, + data=[{"textfield": "1000"}], + ) diff --git a/api/views.py b/api/views.py index 6c3afdd20..03596b76b 100644 --- a/api/views.py +++ b/api/views.py @@ -766,7 +766,7 @@ def __delete_rows(self, request, schema, table, row_id=None): clause = { "operator": "=", "operands": [ - actions._load_value(row_id), + row_id, {"type": "column", "column": "id"}, ], "type": "operator", @@ -847,7 +847,7 @@ def __update_rows(self, request, schema, table, row, row_id=None): clause = { "operator": "=", "operands": [ - actions._load_value(row_id), + row_id, {"type": "column", "column": "id"}, ], "type": "operator", From de370be419fd8fe2d547d654557a9d19842a6582 Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Sat, 11 Jun 2022 10:34:38 +0100 Subject: [PATCH 11/79] added incomplete test case and helper function --- api/connection.py | 23 +++++++++++++++++ .../test_issue_807_table_artefacts.py | 25 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 api/tests/test_regression/test_issue_807_table_artefacts.py diff --git a/api/connection.py b/api/connection.py index 941137d38..498618992 100644 --- a/api/connection.py +++ b/api/connection.py @@ -1,4 +1,7 @@ +"""Contains functions to interact with the postgres oedb""" + import sqlalchemy as sqla +from api import DEFAULT_SCHEMA try: import oeplatform.securitysettings as sec @@ -19,3 +22,23 @@ def get_connection_string(): def _get_engine(): return __ENGINE + + +def table_exists_in_oedb(table, schema=None): + """check if table exists in oedb + + Args: + table (str): table name + schema (str, optional): table schema name + + Returns: + bool + """ + engine = _get_engine() + schema = schema or DEFAULT_SCHEMA + conn = engine.connect() + try: + result = engine.dialect.has_table(conn, table, schema=schema) + finally: + conn.close() + return result \ No newline at end of file diff --git a/api/tests/test_regression/test_issue_807_table_artefacts.py b/api/tests/test_regression/test_issue_807_table_artefacts.py new file mode 100644 index 000000000..f0729584b --- /dev/null +++ b/api/tests/test_regression/test_issue_807_table_artefacts.py @@ -0,0 +1,25 @@ +"""Some api actions run `assert_permission`, which calls +DBTable.load(schema, table), which used get_or_create(). + +This caused the creation of an artefact entry in django tables. + +""" +from api.tests import APITestCase +from api.connection import table_exists_in_oedb +from api.actions import assert_permission + +class Test_issue_807_table_artefacts(APITestCase): + schema = "test" # created in APITestCase + table = "nonexisting_table" + + def test_issue_807_table_artefacts(self): + try: + assert_permission( + user=self.user, # created in APITestCase + schema=self.schema, + table=self.table, + permission=0 # any value will do + ) + except Exception: + pass + self.assertTrue(table_exists_in_oedb(self.table, self.schema)) \ No newline at end of file From 7f1ff9080b5095f028eadd478a0cd38d6c645ad4 Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Sat, 11 Jun 2022 10:48:48 +0100 Subject: [PATCH 12/79] completed setting up (failing) test case --- .../test_issue_807_table_artefacts.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/api/tests/test_regression/test_issue_807_table_artefacts.py b/api/tests/test_regression/test_issue_807_table_artefacts.py index f0729584b..fb64c5c42 100644 --- a/api/tests/test_regression/test_issue_807_table_artefacts.py +++ b/api/tests/test_regression/test_issue_807_table_artefacts.py @@ -7,6 +7,13 @@ from api.tests import APITestCase from api.connection import table_exists_in_oedb from api.actions import assert_permission +from dataedit.models import Table, Schema + +def table_exists_in_django(table, schema): + schema_obj = Schema.objects.get_or_create(name=schema)[0] + table_objs = Table.objects.get(name=table, schema=schema_obj) + return bool(table_objs) + class Test_issue_807_table_artefacts(APITestCase): schema = "test" # created in APITestCase @@ -22,4 +29,8 @@ def test_issue_807_table_artefacts(self): ) except Exception: pass - self.assertTrue(table_exists_in_oedb(self.table, self.schema)) \ No newline at end of file + + self.assertFalse(table_exists_in_oedb(self.table, self.schema)) + # this failed before the bugfix + self.assertFalse(table_exists_in_django(self.table, self.schema)) + From d023ed290a2b6b6ee7b5d6226143e339cbbfa0d4 Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Sat, 11 Jun 2022 11:01:36 +0100 Subject: [PATCH 13/79] formatting --- api/connection.py | 29 +++++++++++++++++-- .../test_issue_807_table_artefacts.py | 21 +++++--------- 2 files changed, 33 insertions(+), 17 deletions(-) diff --git a/api/connection.py b/api/connection.py index 498618992..89baa4d99 100644 --- a/api/connection.py +++ b/api/connection.py @@ -1,14 +1,18 @@ """Contains functions to interact with the postgres oedb""" import sqlalchemy as sqla + from api import DEFAULT_SCHEMA +from dataedit.models import Schema, Table try: import oeplatform.securitysettings as sec -except: +except Exception: import logging + logging.error("No securitysettings found. Triggerd in api/connection.py") + def get_connection_string(): return "postgresql://{0}:{1}@{2}:{3}/{4}".format( sec.dbuser, sec.dbpasswd, sec.dbhost, sec.dbport, sec.dbname @@ -34,11 +38,30 @@ def table_exists_in_oedb(table, schema=None): Returns: bool """ - engine = _get_engine() schema = schema or DEFAULT_SCHEMA + engine = _get_engine() conn = engine.connect() try: result = engine.dialect.has_table(conn, table, schema=schema) finally: conn.close() - return result \ No newline at end of file + return result + + +def table_exists_in_django(table, schema=None): + """check if table exists in django + + Args: + table (str): table name + schema (str, optional): table schema name + + Returns: + bool + """ + schema = schema or DEFAULT_SCHEMA + schema_obj = Schema.objects.get_or_create(name=schema)[0] + try: + Table.objects.get(name=table, schema=schema_obj) + return True + except Table.DoesNotExist: + return False diff --git a/api/tests/test_regression/test_issue_807_table_artefacts.py b/api/tests/test_regression/test_issue_807_table_artefacts.py index fb64c5c42..4fa192122 100644 --- a/api/tests/test_regression/test_issue_807_table_artefacts.py +++ b/api/tests/test_regression/test_issue_807_table_artefacts.py @@ -1,36 +1,29 @@ -"""Some api actions run `assert_permission`, which calls +"""Some api actions run `assert_permission`, which calls DBTable.load(schema, table), which used get_or_create(). This caused the creation of an artefact entry in django tables. """ -from api.tests import APITestCase -from api.connection import table_exists_in_oedb from api.actions import assert_permission -from dataedit.models import Table, Schema +from api.connection import table_exists_in_django, table_exists_in_oedb +from api.tests import APITestCase -def table_exists_in_django(table, schema): - schema_obj = Schema.objects.get_or_create(name=schema)[0] - table_objs = Table.objects.get(name=table, schema=schema_obj) - return bool(table_objs) - class Test_issue_807_table_artefacts(APITestCase): - schema = "test" # created in APITestCase + schema = "test" # created in APITestCase table = "nonexisting_table" def test_issue_807_table_artefacts(self): try: assert_permission( - user=self.user, # created in APITestCase + user=self.user, # created in APITestCase schema=self.schema, table=self.table, - permission=0 # any value will do + permission=0, # any value will do ) except Exception: pass - + self.assertFalse(table_exists_in_oedb(self.table, self.schema)) # this failed before the bugfix self.assertFalse(table_exists_in_django(self.table, self.schema)) - From dee14008374bf1695e38cb8782e435b8c11e4834 Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Sat, 11 Jun 2022 11:02:00 +0100 Subject: [PATCH 14/79] replace (some) get_or_create() with get() --- api/actions.py | 2 +- api/views.py | 4 ++-- dataedit/models.py | 2 +- login/models.py | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/api/actions.py b/api/actions.py index 922148457..87f6c9250 100644 --- a/api/actions.py +++ b/api/actions.py @@ -2139,7 +2139,7 @@ def apply_deletion(session, table, rows, rids): def update_meta_search(table, schema): schema_obj, _ = DBSchema.objects.get_or_create(name=schema if schema is not None else DEFAULT_SCHEMA) - t, _ = DBTable.objects.get_or_create(name=table, schema=schema_obj) + t = DBTable.objects.get(name=table, schema=schema_obj) comment = str(dataedit.metadata.load_metadata_from_db(schema, table)) session = sessionmaker()(bind=_get_engine()) tags = session.query(OEDBTag.name).filter(OEDBTableTags.schema_name==schema, OEDBTableTags.table_name==table, OEDBTableTags.tag==OEDBTag.id) diff --git a/api/views.py b/api/views.py index 6c3afdd20..5610375ae 100644 --- a/api/views.py +++ b/api/views.py @@ -421,7 +421,7 @@ def __create_table( schema, table, column_definitions, constraint_definitions, cursor, table_metadata=metadata ) schema_object, _ = DBSchema.objects.get_or_create(name=schema) - table_object, _ = DBTable.objects.get_or_create(name=table, schema=schema_object) + table_object = DBTable.objects.create(name=table, schema=schema_object) table_object.save() @api_exception @@ -455,7 +455,7 @@ def delete(self, request, schema, table): actions._get_engine().execute( "DROP TABLE \"{schema}\".\"{table}\" CASCADE;".format(schema=schema, table=table) ) - table_object, _ = DBTable.objects.get_or_create(name=table, schema__name=schema) + table_object = DBTable.objects.get(name=table, schema__name=schema) table_object.delete() return JsonResponse({}, status=status.HTTP_200_OK) diff --git a/dataedit/models.py b/dataedit/models.py index b8a185329..9bdc7cd91 100644 --- a/dataedit/models.py +++ b/dataedit/models.py @@ -53,7 +53,7 @@ class Table(Tagable): search = SearchVectorField(default="") @classmethod def load(cls, schema, table): - table_obj, _ = Table.objects.get_or_create( + table_obj = Table.objects.get( name=table, schema=Schema.objects.get_or_create(name=schema)[0] ) diff --git a/login/models.py b/login/models.py index 7d4fc3cb0..1e3ce11ee 100644 --- a/login/models.py +++ b/login/models.py @@ -272,7 +272,7 @@ def authenticate(self, username=None, password=None): login_req = requests.post(url, data, cookies=token_req.cookies) if login_req.json()["login"]["result"] == "Success": - return myuser.objects.get_or_create(name=username)[0] + return myuser.objects.get(name=username) else: return None From 8a447b48f8c1d0ee743947c8a020964c77a80b21 Mon Sep 17 00:00:00 2001 From: Ludee Date: Mon, 13 Jun 2022 20:37:21 +0200 Subject: [PATCH 15/79] Close hyperlink on image #997 --- base/templates/base/about.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base/templates/base/about.html b/base/templates/base/about.html index 1b0ecf760..ad4fd29d4 100644 --- a/base/templates/base/about.html +++ b/base/templates/base/about.html @@ -8,7 +8,7 @@

Open Energy Family and Open Energy Platform


Open Energy Family + alt="Open Energy Family" />

General Introduction

From d321ffeb299eca1c04721255c3be2a9a7d1b4e2a Mon Sep 17 00:00:00 2001 From: Ludee Date: Mon, 13 Jun 2022 20:56:03 +0200 Subject: [PATCH 16/79] Add OEPlatypus to 404 page #385 --- .../static/img/OpenEnergyFamily_OEPlatypus.png | Bin 0 -> 239418 bytes base/templates/base/404.html | 17 ++++++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) create mode 100644 base/static/img/OpenEnergyFamily_OEPlatypus.png diff --git a/base/static/img/OpenEnergyFamily_OEPlatypus.png b/base/static/img/OpenEnergyFamily_OEPlatypus.png new file mode 100644 index 0000000000000000000000000000000000000000..e006d34d15b0d2599eaf5f237d25cc11b5071880 GIT binary patch literal 239418 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
  • KP9pCJK;PrJx3Bb$+ltgp|VD#YVf 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%0A5chnb9h`})KF8Fv?jKB1GYzj3Y!S$dlFO~5xK}W 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 @qOPaW2BZTTdxpDJH`G% zJKcjn4cpuF%Xetru!D=p{q(r!^1f^!A1#Ut>(<2@%Y^F(bWjBu+zH_VJPrusNjGxZ zf$)XEnS&N$(U{dY<_lt}AIj+fz|Qb{12PR|bRwYsNu{f3>6WZ$bS%+66;kbw+$)PwGB7Mxj^rZkgdT%+XLjq)@- zTc^m%oTOw>PWW$oNPTrTUXOJAeIjwuXo)!zZ?{;#iT46_<0FtHmLHH z1>}wtwQ-sqINI=OlT0@fQx+}w^$JJ;0M!nF{6N9DT|>`a%Oa7>;`!m%$ed^BUT`)i zjlieCY~W~LcME^e)U^_Nyqann0<}Ok`|kM_t`7932amV`kMTX6=a5Gr{#%myD0b6eT_l+J-#P(VDptV2;338{eGgF~8I{kjys{vsZOq zj|#MdSS(?-&f84Ig?mve>fn~4L_l+VZ2ShMIt6AH&BMy!sinCC5ideU**vf>*hl7z zB!jBON-8PR?4fI)SCBu_)>4~VA%em}+jjs~DhOvmv{D63UOe_;K$8Am8xtT9$F1z^Rs;xWglaW;mk!-!>VNqJVgG$k^JS+QN(LZzSY1eaoW^zYEw`ZUfWp_8t&D z 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 VyK{C~#Dl(vJa2LCF#!dhL literal 0 HcmV?d00001 diff --git a/base/templates/base/404.html b/base/templates/base/404.html index f74cf921b..ddc6d6403 100644 --- a/base/templates/base/404.html +++ b/base/templates/base/404.html @@ -2,11 +2,18 @@ {% load bootstrap4 %} {% block main-content-body %} {% load static %} -

    Page not found!


    -Sorry, we can't find that page! It might be an old link or maybe it moved. - -Please use the navigation bar above to navigate to your page of interest.
    {% endblock %} \ No newline at end of file From 6e2ace77bc1c679149d1f8b9a4f3482dd8962b9c Mon Sep 17 00:00:00 2001 From: jh-RLI Date: Thu, 16 Jun 2022 16:34:48 +0200 Subject: [PATCH 17/79] add tag color indicator to bootstrap select dropdown --- dataedit/templates/dataedit/filter.html | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/dataedit/templates/dataedit/filter.html b/dataedit/templates/dataedit/filter.html index 3705b82da..4f1397ace 100644 --- a/dataedit/templates/dataedit/filter.html +++ b/dataedit/templates/dataedit/filter.html @@ -11,7 +11,7 @@

    Create Table


    Filters

    -
    @@ -26,10 +26,10 @@
    Tags
    @@ -54,12 +54,12 @@
    Tags
    -
    - +

    This page could not be found!


    + +It might be an old link or maybe the data moved.
    +Please use the navigation bar above to continue.
    + +In return, you have the increasingly rare opportunity to marvel at the endangered OEPlatypus: + +
    + OEPlatypus + +
  • @@ -116,7 +116,7 @@

    If you find bugs or if you have ideas to improve the Open Energy Platform, you are welcome to add your comments to the existing issues on GitHub.
    + href="https://github.com/openego/oeplatform" target="_blank">GitHub.
    You can also fork the project and get involved.

    From 2512d5e9ce0100df9f1a42b16b9661a8e34da9fa Mon Sep 17 00:00:00 2001 From: jh-RLI Date: Mon, 27 Jun 2022 17:52:57 +0200 Subject: [PATCH 28/79] Extend the Search and filter popover text - instruct the user how to see all available schemas and tables agaib (using reset filters) after the filter was applyed #678 --- dataedit/templates/dataedit/filter.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dataedit/templates/dataedit/filter.html b/dataedit/templates/dataedit/filter.html index b8c17ee92..c06c58672 100644 --- a/dataedit/templates/dataedit/filter.html +++ b/dataedit/templates/dataedit/filter.html @@ -17,7 +17,7 @@

    Search & filter

    data-trigger="focus" title="How to use search and filter" {% if not tables%} - data-content="Use the Filters on Tags or try searching for text that may occur in table names or in metadata. If you filter for multiple Tags, only schemas containing tables with all filtered Tags will be displayed." + data-content="Use the Filters on Tags or try searching for text that may occur in table names or in metadata. If you filter for multiple Tags, only schemas containing tables with all filtered Tags will be displayed. To see all schemas and tables again use the reset filter button." {% else %} data-content="Use the Filters on Tags or try searching for text that may occur in table names or in metadata." {% endif %} From 7809cc49b30a70d7d45f79caa3a17a78978f56b3 Mon Sep 17 00:00:00 2001 From: Ludee Date: Wed, 29 Jun 2022 11:38:19 +0200 Subject: [PATCH 29/79] Add feature to CHANGELOG #385 --- versions/changelogs/current.md | 1 + 1 file changed, 1 insertion(+) diff --git a/versions/changelogs/current.md b/versions/changelogs/current.md index e38ff8af7..b0db81801 100644 --- a/versions/changelogs/current.md +++ b/versions/changelogs/current.md @@ -1,4 +1,5 @@ ### Changes +- Add the OEPlatypus to 404 page (PR #999) ### Features From 00e68906e9b7ea86634cbe9a5a66ca328ba9c846 Mon Sep 17 00:00:00 2001 From: jh-RLI <38939526+jh-RLI@users.noreply.github.com> Date: Wed, 29 Jun 2022 17:30:05 +0200 Subject: [PATCH 30/79] Update Readme - Improve Installation section - Add hint on how to create a venv using python only --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6d98740aa..ea5f40743 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ This repository is licensed under [GNU Affero General Public License v3.0 (AGPL- ## Installation -In the meantime, we also offer the possibility to use [docker](https://www.docker.com/) in addition to the manual installation. For this purpose, 2 [docker container images](https://docs.docker.com/get-started/#what-is-a-container-image) (OEP-website and OEP-database) are published with each release, which can be pulled from [GitHub packages](https://github.com/OpenEnergyPlatform/oeplatform/pkgs/container/oeplatform). +Below we describe the complete manual installation of the OEP website and database. We also offer the possibility to use [docker](https://www.docker.com/), if you are a developer you could manually install the OEP alongside the dockercontainer to run the database or run everything in docker. For this purpose, 2 [docker container images](https://docs.docker.com/get-started/#what-is-a-container-image) (OEP-website and OEP-database) are published with each release, which can be pulled from [GitHub packages](https://github.com/OpenEnergyPlatform/oeplatform/pkgs/container/oeplatform). [Here you can find instructions on how to install the docker images.](https://github.com/OpenEnergyPlatform/oeplatform/blob/develop/docker/USAGE.md) @@ -44,6 +44,10 @@ If you are a windows user, we recommand you use conda because of the dependency 4) conda install shapely 5) pip install –r requirements.txt +You can also use Python to create the environment + + python -m venv env + If you don't want to use conda, [here](https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/) you can find instructions for setting up virtual environment From ea270f485a6db28ae5913164bb0ca3720ee24f7c Mon Sep 17 00:00:00 2001 From: jh-RLI Date: Mon, 4 Jul 2022 13:39:51 +0200 Subject: [PATCH 31/79] Open table detail page in new tab - change onclick function and add target=_blank --- dataedit/templates/dataedit/dataedit_tablelist.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dataedit/templates/dataedit/dataedit_tablelist.html b/dataedit/templates/dataedit/dataedit_tablelist.html index a5e7fe5f7..4ceb4c4ad 100644 --- a/dataedit/templates/dataedit/dataedit_tablelist.html +++ b/dataedit/templates/dataedit/dataedit_tablelist.html @@ -18,7 +18,7 @@ {% for table, label, tags in tables %} - + {% if label %} {{ label }} {% else %} From dbad2cbc688d1ae0cf53e903d2429e65fd82f375 Mon Sep 17 00:00:00 2001 From: jh-RLI Date: Mon, 4 Jul 2022 13:46:23 +0200 Subject: [PATCH 32/79] open metadata specification reference in new tab --- dataedit/templates/dataedit/dataview.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dataedit/templates/dataedit/dataview.html b/dataedit/templates/dataedit/dataview.html index 4ef13208b..9fdbed8de 100644 --- a/dataedit/templates/dataedit/dataview.html +++ b/dataedit/templates/dataedit/dataview.html @@ -104,7 +104,7 @@


    Meta Information

    - + {% if user.is_authenticated %} {# This should stay here - later the above if becomes obsolete #} - + {% else %} - {% fa5_icon 'log-in' 'fas' %} Login + {% fa5_icon 'log-in' 'fas' %} Login {% endif %}
    -{% endblock header %} + {% endblock header %} -
    - {% block site-header %} - {% endblock site-header %} - {% block main %} +
    + {% block site-header %} + {% endblock site-header %} + {% block main %}
    {% block main-content %} -
    - {% block main-content-body %}{% endblock %} -
    +
    + {% block main-content-body %}{% endblock %} +
    {% endblock main-content %}
    - {% endblock main %} - {% block footer %} + {% endblock main %} + {% block footer %}
    - {% endblock footer %} -
    + {% endblock footer %} +
    -{% block body-bottom-js %} + {% block body-bottom-js %} {% block before-body-bottom-js %}{% endblock before-body-bottom-js %} {% bootstrap_javascript jquery=1 %} - + {% block after-body-bottom-js %}{% endblock after-body-bottom-js %} -{% endblock body-bottom-js %} + {% endblock body-bottom-js %} - + \ No newline at end of file diff --git a/base/templates/base/base.html b/base/templates/base/base.html index cc785bb40..5a2b03502 100644 --- a/base/templates/base/base.html +++ b/base/templates/base/base.html @@ -4,6 +4,7 @@ + {% block before-head %}{% endblock before-head %} @@ -14,7 +15,7 @@ OEP{% block title %}{% endblock %} - + {% fontawesome_5_static %} @@ -24,14 +25,15 @@ -{% block header %} + {% block header %}
    -{% endblock header %} -
    - {% block site-header %} - {% endblock site-header %} - {% block main %} + {% endblock header %} +
    + {% block site-header %} + {% endblock site-header %} + {% block main %}
    {% block main-left-sidebar %}{% endblock main-left-sidebar %} {% block main-content %} -
    - {% block main-content-body %}{% endblock %} -
    +
    + {% block main-content-body %}{% endblock %} +
    {% endblock main-content %} {% block main-right-sidebar %} -
    - {% block main-right-sidebar-disclaimer %} -
    -

    - If you find bugs or if you have ideas to improve the Open Energy Platform, you are - welcome to add your comments to the existing issues on GitHub.
    - You can also fork the project and get involved. -

    -

    - Please note that the platform is still under construction and therefore the - design of this page is still highly volatile! -

    -
    - {% endblock main-right-sidebar-disclaimer %} -
    - {% block main-right-sidebar-content %} - {% endblock main-right-sidebar-content %} -
    +
    + {% block main-right-sidebar-disclaimer %} +
    +

    + If you find bugs or if you have ideas to improve the Open Energy Platform, you are + welcome to add your comments to the existing issues on GitHub.
    + You can also fork the project and get involved. +

    +

    + Please note that the platform is still under construction and therefore the + design of this page is still highly volatile! +

    + {% endblock main-right-sidebar-disclaimer %} +
    + {% block main-right-sidebar-content %} + {% endblock main-right-sidebar-content %} +
    +
    {% endblock main-right-sidebar %}
    - {% endblock main %} - {% block footer %} + {% endblock main %} + {% block footer %}
    - {% endblock footer %} -
    + {% endblock footer %} +
    -
    +
    -{% block body-bottom-js %} + {% block body-bottom-js %} {% block before-body-bottom-js %}{% endblock before-body-bottom-js %} {% bootstrap_javascript jquery=1 %} - + {% block after-body-bottom-js %}{% endblock after-body-bottom-js %} -{% endblock body-bottom-js %} + {% endblock body-bottom-js %} - + \ No newline at end of file From bdf5f98308fa5144cd343501c920be175fabafbe Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Sat, 30 Jul 2022 11:49:53 +0100 Subject: [PATCH 37/79] fixed framework pages (move scripts after jquery is initialized) --- .../templates/modelview/editframework.html | 52 ++--- modelview/templates/modelview/editmodel.html | 40 ++-- .../templates/modelview/editscenario.html | 130 +++++++------ modelview/templates/modelview/editstudie.html | 98 +++++----- .../templates/modelview/newscenario.html | 179 +++++++++--------- 5 files changed, 260 insertions(+), 239 deletions(-) diff --git a/modelview/templates/modelview/editframework.html b/modelview/templates/modelview/editframework.html index 07cd7d51a..2d882781f 100644 --- a/modelview/templates/modelview/editframework.html +++ b/modelview/templates/modelview/editframework.html @@ -17,31 +17,7 @@ -

    Framework

    * required field @@ -613,3 +589,31 @@

    Framework

    {% endblock %} + +{% block after-body-bottom-js %} + +{% endblock %} \ No newline at end of file diff --git a/modelview/templates/modelview/editmodel.html b/modelview/templates/modelview/editmodel.html index 6c55f54c1..82d835fd3 100644 --- a/modelview/templates/modelview/editmodel.html +++ b/modelview/templates/modelview/editmodel.html @@ -15,25 +15,7 @@ } -

    Model

    * required field @@ -475,3 +457,25 @@

    Model

    {% endblock %} + +{% block after-body-bottom-js %} + +{% endblock %} \ No newline at end of file diff --git a/modelview/templates/modelview/editscenario.html b/modelview/templates/modelview/editscenario.html index cd7588c6b..1749ccfe5 100644 --- a/modelview/templates/modelview/editscenario.html +++ b/modelview/templates/modelview/editscenario.html @@ -4,70 +4,7 @@ {% load bootstrap4 %} {% load static %} -

    Scenario

    {% if method == "update"%} @@ -253,3 +190,70 @@

    Scenario

    {% endblock %} + +{% block after-body-bottom-js %} + +{% endblock %} \ No newline at end of file diff --git a/modelview/templates/modelview/editstudie.html b/modelview/templates/modelview/editstudie.html index 97e3daf78..64f689a16 100644 --- a/modelview/templates/modelview/editstudie.html +++ b/modelview/templates/modelview/editstudie.html @@ -4,54 +4,7 @@ {% load bootstrap4 %} {% load static %} -

    Study

    {% if method == "update"%} @@ -211,4 +164,55 @@

    Study

    +{% endblock %} + +{% block after-body-bottom-js %} + {% endblock %} \ No newline at end of file diff --git a/modelview/templates/modelview/newscenario.html b/modelview/templates/modelview/newscenario.html index 13b08a8be..4745c1b2e 100644 --- a/modelview/templates/modelview/newscenario.html +++ b/modelview/templates/modelview/newscenario.html @@ -4,94 +4,7 @@ {% load bootstrap4 %} {% load static %} -

    Scenario

    {% if method == "update"%} @@ -437,3 +350,95 @@

    Scenario

    {% endblock %} + + +{% block after-body-bottom-js %} + +{% endblock %} \ No newline at end of file From f67d89375fddeb24b9952617dc651db343636df3 Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Sat, 30 Jul 2022 12:06:01 +0100 Subject: [PATCH 38/79] fixing javascript errors --- .../templates/modelview/editscenario.html | 4 +- .../modelview/editscenario_snippet_year.html | 6 +- modelview/templates/modelview/editstudie.html | 3 +- .../templates/modelview/newscenario.html | 103 +++++++++--------- 4 files changed, 53 insertions(+), 63 deletions(-) diff --git a/modelview/templates/modelview/editscenario.html b/modelview/templates/modelview/editscenario.html index 1749ccfe5..b568c9553 100644 --- a/modelview/templates/modelview/editscenario.html +++ b/modelview/templates/modelview/editscenario.html @@ -193,7 +193,7 @@

    Scenario

    {% block after-body-bottom-js %} {% endblock %} \ No newline at end of file diff --git a/modelview/templates/modelview/editscenario_snippet_year.html b/modelview/templates/modelview/editscenario_snippet_year.html index 297b81882..edec27d86 100644 --- a/modelview/templates/modelview/editscenario_snippet_year.html +++ b/modelview/templates/modelview/editscenario_snippet_year.html @@ -2,8 +2,4 @@ {{ kind }} {{ year }} - + diff --git a/modelview/templates/modelview/editstudie.html b/modelview/templates/modelview/editstudie.html index 64f689a16..b8648bd1f 100644 --- a/modelview/templates/modelview/editstudie.html +++ b/modelview/templates/modelview/editstudie.html @@ -168,7 +168,7 @@

    Study

    {% block after-body-bottom-js %} {% endblock %} \ No newline at end of file diff --git a/modelview/templates/modelview/newscenario.html b/modelview/templates/modelview/newscenario.html index 4745c1b2e..231dfb7d9 100644 --- a/modelview/templates/modelview/newscenario.html +++ b/modelview/templates/modelview/newscenario.html @@ -353,73 +353,67 @@

    Scenario

    {% block after-body-bottom-js %} - + {% endblock %} \ No newline at end of file From 5ebe52618a16fbde3918a1723f293023cdea6c44 Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Sat, 30 Jul 2022 12:26:23 +0100 Subject: [PATCH 39/79] fix gitignore --- .gitignore | 6 +- base/static/js/jsi18n.js | 123 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 126 insertions(+), 3 deletions(-) create mode 100644 base/static/js/jsi18n.js diff --git a/.gitignore b/.gitignore index b7e9a65e2..775cb7681 100644 --- a/.gitignore +++ b/.gitignore @@ -6,9 +6,9 @@ __pycache__/ *$py.class *~ -media/ -local/ -static/ +media +local +/static # only on root dir # C extensions *.so diff --git a/base/static/js/jsi18n.js b/base/static/js/jsi18n.js new file mode 100644 index 000000000..a8b6ff076 --- /dev/null +++ b/base/static/js/jsi18n.js @@ -0,0 +1,123 @@ + +(function(globals) { + + var django = globals.django || (globals.django = {}); + + + django.pluralidx = function(count) { return (count == 1) ? 0 : 1; }; + + + /* gettext library */ + + django.catalog = django.catalog || {}; + + + if (!django.jsi18n_initialized) { + django.gettext = function(msgid) { + var value = django.catalog[msgid]; + if (typeof(value) == 'undefined') { + return msgid; + } else { + return (typeof(value) == 'string') ? value : value[0]; + } + }; + + django.ngettext = function(singular, plural, count) { + var value = django.catalog[singular]; + if (typeof(value) == 'undefined') { + return (count == 1) ? singular : plural; + } else { + return value[django.pluralidx(count)]; + } + }; + + django.gettext_noop = function(msgid) { return msgid; }; + + django.pgettext = function(context, msgid) { + var value = django.gettext(context + '\x04' + msgid); + if (value.indexOf('\x04') != -1) { + value = msgid; + } + return value; + }; + + django.npgettext = function(context, singular, plural, count) { + var value = django.ngettext(context + '\x04' + singular, context + '\x04' + plural, count); + if (value.indexOf('\x04') != -1) { + value = django.ngettext(singular, plural, count); + } + return value; + }; + + django.interpolate = function(fmt, obj, named) { + if (named) { + return fmt.replace(/%\(\w+\)s/g, function(match){return String(obj[match.slice(2,-2)])}); + } else { + return fmt.replace(/%s/g, function(match){return String(obj.shift())}); + } + }; + + + /* formatting library */ + + django.formats = { + "DATETIME_FORMAT": "N j, Y, P", + "DATETIME_INPUT_FORMATS": [ + "%Y-%m-%d %H:%M:%S", + "%Y-%m-%d %H:%M:%S.%f", + "%Y-%m-%d %H:%M", + "%Y-%m-%d", + "%m/%d/%Y %H:%M:%S", + "%m/%d/%Y %H:%M:%S.%f", + "%m/%d/%Y %H:%M", + "%m/%d/%Y", + "%m/%d/%y %H:%M:%S", + "%m/%d/%y %H:%M:%S.%f", + "%m/%d/%y %H:%M", + "%m/%d/%y" + ], + "DATE_FORMAT": "N j, Y", + "DATE_INPUT_FORMATS": [ + "%Y-%m-%d", + "%m/%d/%Y", + "%m/%d/%y" + ], + "DECIMAL_SEPARATOR": ".", + "FIRST_DAY_OF_WEEK": "0", + "MONTH_DAY_FORMAT": "F j", + "NUMBER_GROUPING": "3", + "SHORT_DATETIME_FORMAT": "m/d/Y P", + "SHORT_DATE_FORMAT": "m/d/Y", + "THOUSAND_SEPARATOR": ",", + "TIME_FORMAT": "P", + "TIME_INPUT_FORMATS": [ + "%H:%M:%S", + "%H:%M:%S.%f", + "%H:%M" + ], + "YEAR_MONTH_FORMAT": "F Y" + }; + + django.get_format = function(format_type) { + var value = django.formats[format_type]; + if (typeof(value) == 'undefined') { + return format_type; + } else { + return value; + } + }; + + /* add to global namespace */ + globals.pluralidx = django.pluralidx; + globals.gettext = django.gettext; + globals.ngettext = django.ngettext; + globals.gettext_noop = django.gettext_noop; + globals.pgettext = django.pgettext; + globals.npgettext = django.npgettext; + globals.interpolate = django.interpolate; + globals.get_format = django.get_format; + + django.jsi18n_initialized = true; + } + +}(this)); From d400fbbb2d05caa5cc91bee8db3f793c82ff78c0 Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Sat, 30 Jul 2022 12:29:12 +0100 Subject: [PATCH 40/79] undo changes in formatting --- base/templates/base/base-wide.html | 61 +++++++++-------- base/templates/base/base.html | 101 ++++++++++++++--------------- 2 files changed, 78 insertions(+), 84 deletions(-) diff --git a/base/templates/base/base-wide.html b/base/templates/base/base-wide.html index cdb534fdf..cf1a1878f 100644 --- a/base/templates/base/base-wide.html +++ b/base/templates/base/base-wide.html @@ -4,7 +4,6 @@ - @@ -13,7 +12,7 @@ OEP{% block title %}{% endblock %} - + {% fontawesome_5_static %} @@ -23,15 +22,14 @@ - {% block header %} +{% block header %} - {% endblock header %} +{% endblock header %} -
    - {% block site-header %} - {% endblock site-header %} - {% block main %} +
    + {% block site-header %} + {% endblock site-header %} + {% block main %}
    {% block main-content %} -
    - {% block main-content-body %}{% endblock %} -
    +
    + {% block main-content-body %}{% endblock %} +
    {% endblock main-content %}
    - {% endblock main %} - {% block footer %} + {% endblock main %} + {% block footer %}
    - {% endblock footer %} -
    + {% endblock footer %} +
    - {% block body-bottom-js %} +{% block body-bottom-js %} {% block before-body-bottom-js %}{% endblock before-body-bottom-js %} {% bootstrap_javascript jquery=1 %} {% block after-body-bottom-js %}{% endblock after-body-bottom-js %} - {% endblock body-bottom-js %} +{% endblock body-bottom-js %} - \ No newline at end of file + diff --git a/base/templates/base/base.html b/base/templates/base/base.html index 5a2b03502..f1a231f25 100644 --- a/base/templates/base/base.html +++ b/base/templates/base/base.html @@ -4,7 +4,6 @@ - {% block before-head %}{% endblock before-head %} @@ -15,7 +14,7 @@ OEP{% block title %}{% endblock %} - + {% fontawesome_5_static %} @@ -25,15 +24,14 @@ - {% block header %} +{% block header %} - {% endblock header %} -
    - {% block site-header %} - {% endblock site-header %} - {% block main %} +{% endblock header %} +
    + {% block site-header %} + {% endblock site-header %} + {% block main %}
    {% block main-left-sidebar %}{% endblock main-left-sidebar %} {% block main-content %} -
    - {% block main-content-body %}{% endblock %} -
    +
    + {% block main-content-body %}{% endblock %} +
    {% endblock main-content %} {% block main-right-sidebar %} -
    - {% block main-right-sidebar-disclaimer %} -
    -

    - If you find bugs or if you have ideas to improve the Open Energy Platform, you are - welcome to add your comments to the existing issues on GitHub.
    - You can also fork the project and get involved. -

    -

    - Please note that the platform is still under construction and therefore the - design of this page is still highly volatile! -

    -
    - {% endblock main-right-sidebar-disclaimer %} -
    - {% block main-right-sidebar-content %} - {% endblock main-right-sidebar-content %} +
    + {% block main-right-sidebar-disclaimer %} +
    +

    + If you find bugs or if you have ideas to improve the Open Energy Platform, you are + welcome to add your comments to the existing issues on GitHub.
    + You can also fork the project and get involved. +

    +

    + Please note that the platform is still under construction and therefore the + design of this page is still highly volatile! +

    +
    + {% endblock main-right-sidebar-disclaimer %} +
    + {% block main-right-sidebar-content %} + {% endblock main-right-sidebar-content %} +
    -
    {% endblock main-right-sidebar %}
    - {% endblock main %} - {% block footer %} + {% endblock main %} + {% block footer %}
    - {% endblock footer %} -
    + {% endblock footer %} +
    -
    +
    - {% block body-bottom-js %} +{% block body-bottom-js %} {% block before-body-bottom-js %}{% endblock before-body-bottom-js %} {% bootstrap_javascript jquery=1 %} {% block after-body-bottom-js %}{% endblock after-body-bottom-js %} - {% endblock body-bottom-js %} +{% endblock body-bottom-js %} - \ No newline at end of file + From 06f1adbecfdddc264f278e9f03a0dc54cd1ed73a Mon Sep 17 00:00:00 2001 From: jh-RLI Date: Wed, 3 Aug 2022 15:38:50 +0200 Subject: [PATCH 41/79] Update metaEdit views: - new context variable that indicates wether the metaEditor should be used as standaone tool or prepropulated with data --- dataedit/views.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/dataedit/views.py b/dataedit/views.py index 1ca8adffd..4760c6cca 100644 --- a/dataedit/views.py +++ b/dataedit/views.py @@ -1748,6 +1748,7 @@ def get(self, request, schema, table): "url_table_id": url_table_id, "url_api_meta": reverse('api_table_meta', kwargs={"schema": schema, "table": table}), "url_view_table": reverse('view', kwargs={"schema": schema, "table": table}), + "standalone": False }), "can_add": can_add } @@ -1763,11 +1764,8 @@ class StandaloneMetaEditView(LoginRequiredMixin, View): def get(self, request): context_dict = { "config": json.dumps({ - "schema": "schema", - "table": "table", - "columns": "columns" - }), - "can_add": "can_add" + "standalone": True + }) } return render( request, From 808b58f911071356ec233cf0fe697592acb859b2 Mon Sep 17 00:00:00 2001 From: jh-RLI Date: Wed, 3 Aug 2022 15:40:23 +0200 Subject: [PATCH 42/79] Update metaedit JavaScript to handle standalone or table-specific metaEdit instances --- dataedit/static/metaedit/metaedit.js | 157 ++++++++++++++++++--------- 1 file changed, 103 insertions(+), 54 deletions(-) diff --git a/dataedit/static/metaedit/metaedit.js b/dataedit/static/metaedit/metaedit.js index 378c9ba91..1136489fa 100644 --- a/dataedit/static/metaedit/metaedit.js +++ b/dataedit/static/metaedit/metaedit.js @@ -250,68 +250,117 @@ var MetaEdit = function (config) { $('#metaedit-loading').removeClass('d-none'); config.form = $('#metaedit-form'); + + // check if the editor should be initialized with metadata from table or as standalone withou any initial data + if (config.standalone == false) { + $.when( + $.getJSON(config.url_api_meta), + $.getJSON('/static/metaedit/schema.json'), + ).done(function (data, schema) { + config.schema = fixSchema(schema[0]); + config.initialData = fixData(data[0]); + + + /* https://github.com/json-editor/json-editor */ + options = { + startval: config.initialData, + schema: config.schema, + theme: 'bootstrap4', + iconlib: 'fontawesome5', + mode: 'form', + compact: true, + remove_button_labels: true, + disable_collapse: true, + prompt_before_delete: false, + object_layout: "normal", + disable_properties: false, + disable_edit_json: true, + disable_array_delete_last_row: true, + disable_array_delete_all_rows: true, + disable_array_reorder: true, + array_controls_top: true, + no_additional_properties: true, + required_by_default: false, + remove_empty_properties: true, // don't remove, otherwise the metadata will not pass the validation on the server + } - $.when( - $.getJSON(config.url_api_meta), - $.getJSON('/static/metaedit/schema.json'), - //$.getJSON('https://raw.githubusercontent.com/OpenEnergyPlatform/oemetadata/develop/metadata/v140/schema.json') - - ).done(function (data, schema) { - config.schema = fixSchema(schema[0]); - config.initialData = fixData(data[0]); - - - /* https://github.com/json-editor/json-editor */ - options = { - startval: config.initialData, - schema: config.schema, - theme: 'bootstrap4', - iconlib: 'fontawesome5', - mode: 'form', - compact: true, - remove_button_labels: true, - disable_collapse: true, - prompt_before_delete: false, - object_layout: "normal", - disable_properties: false, - disable_edit_json: true, - disable_array_delete_last_row: true, - disable_array_delete_all_rows: true, - disable_array_reorder: true, - array_controls_top: true, - no_additional_properties: true, - required_by_default: false, - remove_empty_properties: true, // don't remove, otherwise the metadata will not pass the validation on the server - } - - //console.log(options) - - config.editor = new JSONEditor(config.form[0], options); + config.editor = new JSONEditor(config.form[0], options); + + /* patch labels */ + var mainEditBox = config.form.find('.je-object__controls').first(); + mainEditBox.find('.json-editor-btntype-save').text('Apply'); + mainEditBox.find('.json-editor-btntype-copy').text('Copy to Clipboard'); + mainEditBox.find('.json-editor-btntype-cancel').text('Close'); + mainEditBox.find('.json-editor-btntype-editjson').text('Edit raw JSON'); + + bindButtons(); + + convertDescriptionIntoPopover(); + // check for new items in dom + (new MutationObserver(function (_mutationsList, _observer) { + convertDescriptionIntoPopover() + })).observe(config.form[0], { attributes: false, childList: true, subtree: true }); + + // all done + $('#metaedit-loading').addClass('d-none'); + $('#metaedit-icon').removeClass('d-none'); + $('#metaedit-controls').removeClass('d-none'); + + // TODO catch init error + }); - /* patch labels */ - var mainEditBox = config.form.find('.je-object__controls').first(); - mainEditBox.find('.json-editor-btntype-save').text('Apply'); - mainEditBox.find('.json-editor-btntype-copy').text('Copy to Clipboard'); - mainEditBox.find('.json-editor-btntype-cancel').text('Close'); - mainEditBox.find('.json-editor-btntype-editjson').text('Edit raw JSON'); + } else { + $.when( + $.getJSON('/static/metaedit/schema.json'), + ).done(function (schema) { + config.schema = fixSchema(schema); + + standalone_options = { + schema: config.schema, + theme: 'bootstrap4', + iconlib: 'fontawesome5', + mode: 'form', + compact: true, + remove_button_labels: true, + disable_collapse: true, + prompt_before_delete: false, + object_layout: "normal", + disable_properties: false, + disable_edit_json: true, + disable_array_delete_last_row: true, + disable_array_delete_all_rows: true, + disable_array_reorder: true, + array_controls_top: true, + no_additional_properties: true, + required_by_default: false, + remove_empty_properties: true, // don't remove, otherwise the metadata will not pass the validation on the server + } + config.editor = new JSONEditor(config.form[0], standalone_options); - bindButtons(); + /* patch labels */ + var mainEditBox = config.form.find('.je-object__controls').first(); + mainEditBox.find('.json-editor-btntype-save').text('Apply'); + mainEditBox.find('.json-editor-btntype-copy').text('Copy to Clipboard'); + mainEditBox.find('.json-editor-btntype-cancel').text('Close'); + mainEditBox.find('.json-editor-btntype-editjson').text('Edit raw JSON'); - convertDescriptionIntoPopover(); - // check for new items in dom - (new MutationObserver(function (_mutationsList, _observer) { - convertDescriptionIntoPopover() - })).observe(config.form[0], { attributes: false, childList: true, subtree: true }); + bindButtons(); - // all done - $('#metaedit-loading').addClass('d-none'); - $('#metaedit-icon').removeClass('d-none'); - $('#metaedit-controls').removeClass('d-none'); + convertDescriptionIntoPopover(); + // check for new items in dom + (new MutationObserver(function (_mutationsList, _observer) { + convertDescriptionIntoPopover() + })).observe(config.form[0], { attributes: false, childList: true, subtree: true }); - // TODO catch init error + // all done + $('#metaedit-loading').addClass('d-none'); + $('#metaedit-icon').removeClass('d-none'); + $('#metaedit-controls').removeClass('d-none'); - }); + // TODO catch init error + }); + } })(); return config; From c691cb6fc2e9f75e699c43c7b54c2d27977298d3 Mon Sep 17 00:00:00 2001 From: jh-RLI Date: Tue, 9 Aug 2022 00:38:27 +0200 Subject: [PATCH 43/79] add link to oemetadata spec --- dataedit/templates/dataedit/filter.html | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/dataedit/templates/dataedit/filter.html b/dataedit/templates/dataedit/filter.html index e905f083a..a49a842a2 100644 --- a/dataedit/templates/dataedit/filter.html +++ b/dataedit/templates/dataedit/filter.html @@ -9,9 +9,10 @@

    Create Table

    Create new table in the model_draft schema.
    -

    Create Metadata

    - - Create new metadata in version 1.5.1 +

    Create oemetadata

    +
    Create new oemetadata in version 1.5.1 + +
    From 802e1e835729a6f5e93626c583ce9c0f681ef4ac Mon Sep 17 00:00:00 2001 From: jh-RLI Date: Tue, 9 Aug 2022 01:23:53 +0200 Subject: [PATCH 44/79] Udate MetaEditor options: - add cancle_url to metaEdit context options - update the Standalone EMetaEdit cancle_url option and fix cancle button --- dataedit/views.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/dataedit/views.py b/dataedit/views.py index 4760c6cca..a3484fc69 100644 --- a/dataedit/views.py +++ b/dataedit/views.py @@ -1748,6 +1748,7 @@ def get(self, request, schema, table): "url_table_id": url_table_id, "url_api_meta": reverse('api_table_meta', kwargs={"schema": schema, "table": table}), "url_view_table": reverse('view', kwargs={"schema": schema, "table": table}), + "cancle_url": redirect('input', schema), "standalone": False }), "can_add": can_add @@ -1762,8 +1763,12 @@ def get(self, request, schema, table): class StandaloneMetaEditView(LoginRequiredMixin, View): def get(self, request): + def get_cancle_state(request): + return request.META.get('HTTP_REFERER') + context_dict = { "config": json.dumps({ + "cancle_url": get_cancle_state(self.request), "standalone": True }) } From 6372c90afa81f36344037d0c0556600c5baae7a8 Mon Sep 17 00:00:00 2001 From: jh-RLI Date: Tue, 9 Aug 2022 01:24:34 +0200 Subject: [PATCH 45/79] change cancle url to support standalone metaEdit instance --- dataedit/static/metaedit/metaedit.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dataedit/static/metaedit/metaedit.js b/dataedit/static/metaedit/metaedit.js index 1136489fa..5d38d5076 100644 --- a/dataedit/static/metaedit/metaedit.js +++ b/dataedit/static/metaedit/metaedit.js @@ -241,7 +241,7 @@ var MetaEdit = function (config) { // Cancel $('#metaedit-cancel').bind('click', function cancel() { - window.location = config.url_view_table; + window.location = config.cancle_url; }) } From 2c17bda2745584ed40971c0734c5e622b7aa3e92 Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Tue, 9 Aug 2022 13:19:45 +0100 Subject: [PATCH 46/79] added tutoral category overview that is sticky --- .../0010_alter_tutorial_category.py | 18 ++++++++ tutorials/models.py | 41 +++++++++++-------- tutorials/templates/list.html | 13 ++++++ tutorials/views.py | 7 +++- 4 files changed, 61 insertions(+), 18 deletions(-) create mode 100644 tutorials/migrations/0010_alter_tutorial_category.py diff --git a/tutorials/migrations/0010_alter_tutorial_category.py b/tutorials/migrations/0010_alter_tutorial_category.py new file mode 100644 index 000000000..ec14c3192 --- /dev/null +++ b/tutorials/migrations/0010_alter_tutorial_category.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.14 on 2022-08-09 12:16 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('tutorials', '0009_alter_tutorial_github_contact'), + ] + + operations = [ + migrations.AlterField( + model_name='tutorial', + name='category', + field=models.CharField(blank=True, choices=[('general', 'General'), ('publication', 'Publication/Licensing'), ('io', 'Upload/Download'), ('data_structure', 'Data Structure'), ('ontology', 'Ontology'), ('other', 'Other Topics'), ('overview', 'Overview')], max_length=15), + ), + ] diff --git a/tutorials/models.py b/tutorials/models.py index 63d52fce0..b6cddeebf 100644 --- a/tutorials/models.py +++ b/tutorials/models.py @@ -2,17 +2,20 @@ from django.urls import reverse # add options if needed -CATEGORY_OPTIONS = [('general', 'General'), - ('publication', 'Publication/Licensing'), - ('io', 'Upload/Download'), - ('data_structure', 'Data Structure'), - ('ontology', 'Ontology'), - ('other', 'Other Topics')] +CATEGORY_OPTIONS = [ + ("general", "General"), + ("publication", "Publication/Licensing"), + ("io", "Upload/Download"), + ("data_structure", "Data Structure"), + ("ontology", "Ontology"), + ("other", "Other Topics"), + ("overview", "Overview"), # TODO: limit access / number +] -LEVEL_OPTIONS = [(1, 'Beginner'), (2, 'Intermediate'), (3, 'Expert')] -LANGUAGE = [('de', 'german'), ('en', 'english'), ('fr', 'french')] -LICENSE = [('none', 'No'), ('cc0', 'CC0'), ('agpl', 'AGPL')] -MEDIUM = [('video', 'video'), ('text', 'text'), ('jupyter', 'jupyter notebook')] +LEVEL_OPTIONS = [(1, "Beginner"), (2, "Intermediate"), (3, "Expert")] +LANGUAGE = [("de", "german"), ("en", "english"), ("fr", "french")] +LICENSE = [("none", "No"), ("cc0", "CC0"), ("agpl", "AGPL")] +MEDIUM = [("video", "video"), ("text", "text"), ("jupyter", "jupyter notebook")] # Create your models here. @@ -22,15 +25,21 @@ class Tutorial(models.Model): category = models.CharField(max_length=15, choices=CATEGORY_OPTIONS, blank=True) title = models.CharField(max_length=255) html = models.TextField() - media_src = models.URLField(verbose_name='youtube video url', null=True, blank=True) + media_src = models.URLField(verbose_name="youtube video url", null=True, blank=True) markdown = models.TextField() level = models.IntegerField(choices=LEVEL_OPTIONS, null=True) language = models.CharField(choices=LANGUAGE, null=True, max_length=20) medium = models.CharField(choices=MEDIUM, null=True, max_length=20) license = models.CharField(choices=LICENSE, null=True, max_length=30) - creator = models.CharField(verbose_name='creator/copyright', null=True, max_length=254) - email_contact = models.EmailField(verbose_name='email contact', max_length=255, null=True) - github_contact = models.CharField(verbose_name='github username/handle', max_length=50, blank=True) + creator = models.CharField( + verbose_name="creator/copyright", null=True, max_length=254 + ) + email_contact = models.EmailField( + verbose_name="email contact", max_length=255, null=True + ) + github_contact = models.CharField( + verbose_name="github username/handle", max_length=50, blank=True + ) - def get_absolute_url (self): - return reverse('detail_tutorial', args=[self.id]) + def get_absolute_url(self): + return reverse("detail_tutorial", args=[self.id]) diff --git a/tutorials/templates/list.html b/tutorials/templates/list.html index 74590edaa..64601aaa6 100644 --- a/tutorials/templates/list.html +++ b/tutorials/templates/list.html @@ -21,6 +21,19 @@

    Actions

    {% block main-content-body %} + + +

    Overview

    + +
    +{% for tutorial in tutorials_overview %} +
    + {{ tutorial.html | safe }} +
    +{% endfor %} +
    + +

    Tutorials by category

    diff --git a/tutorials/views.py b/tutorials/views.py index ee9e5bd54..d27164005 100644 --- a/tutorials/views.py +++ b/tutorials/views.py @@ -333,9 +333,12 @@ def get(self, request): # Gathering all tutorials - tutorials = _gatherTutorials() + tutorials = _gatherTutorials() - return render(request, "list.html", {"tutorials": tutorials}) + # + tutorials_overview = [t for t in tutorials if t["category"] == 'overview'] + + return render(request, "list.html", {"tutorials": tutorials, "tutorials_overview": tutorials_overview}) class TutorialDetail(View): From 3427fc189cb6c882ff144e8da4dc165a24d944ae Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Tue, 9 Aug 2022 13:36:57 +0100 Subject: [PATCH 47/79] formatting --- .../0010_alter_tutorial_category.py | 20 +++++++++++++++---- tutorials/templates/list.html | 2 -- tutorials/views.py | 14 ++++++++----- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/tutorials/migrations/0010_alter_tutorial_category.py b/tutorials/migrations/0010_alter_tutorial_category.py index ec14c3192..ac5d88948 100644 --- a/tutorials/migrations/0010_alter_tutorial_category.py +++ b/tutorials/migrations/0010_alter_tutorial_category.py @@ -6,13 +6,25 @@ class Migration(migrations.Migration): dependencies = [ - ('tutorials', '0009_alter_tutorial_github_contact'), + ("tutorials", "0009_alter_tutorial_github_contact"), ] operations = [ migrations.AlterField( - model_name='tutorial', - name='category', - field=models.CharField(blank=True, choices=[('general', 'General'), ('publication', 'Publication/Licensing'), ('io', 'Upload/Download'), ('data_structure', 'Data Structure'), ('ontology', 'Ontology'), ('other', 'Other Topics'), ('overview', 'Overview')], max_length=15), + model_name="tutorial", + name="category", + field=models.CharField( + blank=True, + choices=[ + ("general", "General"), + ("publication", "Publication/Licensing"), + ("io", "Upload/Download"), + ("data_structure", "Data Structure"), + ("ontology", "Ontology"), + ("other", "Other Topics"), + ("overview", "Overview"), + ], + max_length=15, + ), ), ] diff --git a/tutorials/templates/list.html b/tutorials/templates/list.html index 64601aaa6..43a005c47 100644 --- a/tutorials/templates/list.html +++ b/tutorials/templates/list.html @@ -89,5 +89,3 @@

    Tutorials by category

    {% endblock main-content-body %} - - diff --git a/tutorials/views.py b/tutorials/views.py index d27164005..ce645b13a 100644 --- a/tutorials/views.py +++ b/tutorials/views.py @@ -333,12 +333,16 @@ def get(self, request): # Gathering all tutorials - tutorials = _gatherTutorials() + tutorials = _gatherTutorials() - # - tutorials_overview = [t for t in tutorials if t["category"] == 'overview'] - - return render(request, "list.html", {"tutorials": tutorials, "tutorials_overview": tutorials_overview}) + # + tutorials_overview = [t for t in tutorials if t["category"] == "overview"] + + return render( + request, + "list.html", + {"tutorials": tutorials, "tutorials_overview": tutorials_overview}, + ) class TutorialDetail(View): From 688535aa9f31d576729f6e5d8d4d04be7f4fb8dd Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Tue, 9 Aug 2022 13:38:30 +0100 Subject: [PATCH 48/79] comment --- tutorials/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutorials/views.py b/tutorials/views.py index ce645b13a..701d8449b 100644 --- a/tutorials/views.py +++ b/tutorials/views.py @@ -335,7 +335,7 @@ def get(self, request): tutorials = _gatherTutorials() - # + # special overview tutorials that are sticky tutorials_overview = [t for t in tutorials if t["category"] == "overview"] return render( From 521b378f4ca95cb2b4334b2c150fad74ea29db08 Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Wed, 10 Aug 2022 08:06:55 +0100 Subject: [PATCH 49/79] sort overview tutorials --- tutorials/views.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tutorials/views.py b/tutorials/views.py index 701d8449b..56eb77373 100644 --- a/tutorials/views.py +++ b/tutorials/views.py @@ -337,6 +337,8 @@ def get(self, request): # special overview tutorials that are sticky tutorials_overview = [t for t in tutorials if t["category"] == "overview"] + # sort them by title + tutorials_overview = sorted(tutorials_overview, key=lambda t: t["title"]) return render( request, From 1505d34265a4507c22ed056754df19cb7de100b2 Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Wed, 10 Aug 2022 08:17:43 +0100 Subject: [PATCH 50/79] show overview titles --- tutorials/templates/list.html | 1 + 1 file changed, 1 insertion(+) diff --git a/tutorials/templates/list.html b/tutorials/templates/list.html index 43a005c47..86216893a 100644 --- a/tutorials/templates/list.html +++ b/tutorials/templates/list.html @@ -27,6 +27,7 @@

    Overview

    {% for tutorial in tutorials_overview %} +

    {{ tutorial.title }}

    {{ tutorial.html | safe }}
    From d12fb9f400aeab31adb785bb0af4988de9b8a48d Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Wed, 10 Aug 2022 08:32:47 +0100 Subject: [PATCH 51/79] fixed static (comments in wrong place) --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 775cb7681..0b31d5acd 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,8 @@ __pycache__/ media local -/static # only on root dir +# only on root dir +/static # C extensions *.so From 1f3dd0cfb81e5b21226dfa9bb4ebcd0dbab9d243 Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Thu, 11 Aug 2022 04:14:00 +0100 Subject: [PATCH 52/79] synchronize tagsand metadata keywords on update --- api/connection.py | 10 + api/tests/__init__.py | 6 +- api/tests/test_meta.py | 14 +- .../test_sync_tags_keywords_969.py | 128 ++++++++++ api/views.py | 12 + dataedit/structures.py | 2 + dataedit/views.py | 233 ++++++++++-------- 7 files changed, 292 insertions(+), 113 deletions(-) create mode 100644 api/tests/test_regression/test_sync_tags_keywords_969.py diff --git a/api/connection.py b/api/connection.py index 89baa4d99..7da1ebfdb 100644 --- a/api/connection.py +++ b/api/connection.py @@ -1,6 +1,7 @@ """Contains functions to interact with the postgres oedb""" import sqlalchemy as sqla +from sqlalchemy.orm import sessionmaker from api import DEFAULT_SCHEMA from dataedit.models import Schema, Table @@ -65,3 +66,12 @@ def table_exists_in_django(table, schema=None): return True except Table.DoesNotExist: return False + + + +def create_oedb_session(): + """Return a sqlalchemy session to the oedb + + Should only be created once per user request. + """ + return sessionmaker(bind=_get_engine())() \ No newline at end of file diff --git a/api/tests/__init__.py b/api/tests/__init__.py index 42e483855..5d567a190 100644 --- a/api/tests/__init__.py +++ b/api/tests/__init__.py @@ -36,18 +36,19 @@ def setUpClass(cls): super(APITestCase, cls).setUpClass() cls.user, _ = myuser.objects.get_or_create( - name="MrTest", email="mrtest@test.com" + name="MrTest", email="mrtest@test.com", did_agree=True, is_mail_verified=True ) cls.user.save() cls.token = Token.objects.get(user=cls.user) cls.other_user, _ = myuser.objects.get_or_create( - name="NotMrTest", email="notmrtest@test.com" + name="NotMrTest", email="notmrtest@test.com", did_agree=True, is_mail_verified=True ) cls.other_user.save() cls.other_token = Token.objects.get(user=cls.other_user) cls.client = Client() + def assertDictEqualKeywise(self, d1, d2, excluded=None): if not excluded: @@ -168,3 +169,4 @@ def drop_table(self, schema=None, table=None): self.assertEqual( resp.status_code, 200, resp.json().get("reason", "No reason returned") ) + diff --git a/api/tests/test_meta.py b/api/tests/test_meta.py index 2f76424cd..3774629be 100644 --- a/api/tests/test_meta.py +++ b/api/tests/test_meta.py @@ -75,7 +75,7 @@ def tearDown(self): ) ) - def metadata_roundtrip(self, meta): + def metadata_roundtrip(self, meta): response = self.__class__.client.post( "/api/v0/schema/{schema}/tables/{table}/meta/".format( schema=self.test_schema, table=self.test_table @@ -101,8 +101,16 @@ def metadata_roundtrip(self, meta): d_14 = OEP_V_1_4_Dialect() # not tested anymore as OEM version is currently v1.5.1 d_15 = OEP_V_1_5_Dialect() omi_meta = json.loads(json.dumps((d_15.compile(d_15.parse(json.dumps(meta)))))) - - self.assertDictEqualKeywise(response.json(), omi_meta) + + omi_meta_return = response.json() + + # ignore difference in keywords (by setting resulting keywords == input keywords) + # REASON: the test re-uses the same test table, but does not delete the table tags in between + # if we want to synchronize tagsand keywords, the roundtrip would otherwise fail + omi_meta["keywords"] = omi_meta.get("keywords", []) + omi_meta_return["keywords"] = omi_meta["keywords"] + + self.assertDictEqualKeywise(omi_meta_return, omi_meta) def test_nonexistent_key(self): meta = {"id":"id", "nonexistent_key": ""} diff --git a/api/tests/test_regression/test_sync_tags_keywords_969.py b/api/tests/test_regression/test_sync_tags_keywords_969.py new file mode 100644 index 000000000..c7669f605 --- /dev/null +++ b/api/tests/test_regression/test_sync_tags_keywords_969.py @@ -0,0 +1,128 @@ +""" +changing tags in the UI and changing keywords in metadata should be synchronized +""" +import json +from api.tests import APITestCase, Client +from api.connection import create_oedb_session +from dataedit.structures import Tag, TableTags + + +class Test_sync_tags_keywords_969(APITestCase): + def test_sync_tags_keywords_969(self): + table = "test_keyword_tags" + structure = {"columns": [{"name": "id", "data_type": "bigserial"}]} + table_url = "/api/v0/schema/{schema}/tables/{table}/".format(schema=self.test_schema, table=table) + meta_url = table_url + 'meta/' + post_tag_url = '/dataedit/tags/add/' + meta_template = { + "id": "id" # must have id + } + + client = Client() + client.token = self.token + client.force_login(self.user) + + other_client = Client() + other_client.token = self.other_token + other_client.force_login(self.other_user) + + # create table + self.assertEqual(client.put( + table_url, + data=json.dumps({"query": structure}), + HTTP_AUTHORIZATION="Token %s" % client.token, + content_type="application/json" + ).status_code, 201) + + # get existing keywords (none) + def get_keywords(): + meta = client.get(meta_url).json() + keywords = meta.get("keywords", []) + names = [Tag.create_name_normalized(k) for k in keywords] + return sorted(names) + + def set_keywords(keywords, client=client): + meta_template["keywords"] = keywords + return client.post( + meta_url, + data=json.dumps(meta_template), + HTTP_AUTHORIZATION="Token %s" % client.token, + content_type="application/json" + ) + + + def load_tag_names_from_db(): + ses = create_oedb_session() + tags = ses.query(Tag).filter(Tag.id.in_( + [tt.tag for tt in ses.query(TableTags).filter(TableTags.table_name==table, TableTags.schema_name==self.test_schema)] + )).all() + names = [t.name_normalized for t in tags] + return sorted(names) + + def set_tag_names_in_db(names): + ses = create_oedb_session() + ses.query(TableTags).filter(TableTags.table_name==table, TableTags.schema_name==self.test_schema).delete() + ses.flush() + added_ids = set() + for n in names: + n2 = Tag.create_name_normalized(n) + tag = ses.query(Tag).filter(Tag.name_normalized == n2).first() + if tag is None: + tag = Tag(name=n) + ses.add(tag) + ses.flush() + if tag.id not in added_ids: + added_ids.add(tag.id) + ses.add(TableTags(table_name=table, schema_name=self.test_schema, tag=tag.id)) + ses.commit() + + def set_tag_names_in_post(names, client=client): + ses = create_oedb_session() + added_ids = set() + for n in names: + n2 = Tag.create_name_normalized(n) + tag = ses.query(Tag).filter(Tag.name_normalized == n2).first() + if tag is None: + tag = Tag(name=n) + ses.add(tag) + ses.flush() + if tag.id not in added_ids: + added_ids.add(tag.id) + ses.commit() + data = { + "table": table, + "schema": self.test_schema, + } + for i in added_ids: + data["tag_%d" % i] = "on" + + return client.post( + post_tag_url, + data=data, + HTTP_REFERER="/" + ) + + # set empty twice in case test database has not been cleared properly + # because test tables are being reused + set_tag_names_in_db([]) + self.assertEqual(set_keywords([]).status_code, 200) + self.assertListEqual(get_keywords(), []) + + self.assertEqual(set_keywords(["Keyword One"]).status_code, 200) + self.assertListEqual(get_keywords(), ["keyword_one"]) + self.assertListEqual(load_tag_names_from_db(), ["keyword_one"]) + + # change tags in db so they are no longer synchronized with metadata + set_tag_names_in_db(["Keyword One", "key2", " Key2"]) + self.assertListEqual(load_tag_names_from_db(), ["key2", "keyword_one"]) + + # update tags from UI -> updates metadata + self.assertEqual(set_tag_names_in_post(["keyword_one", "new Tag"]).status_code, 302) #redirect + self.assertListEqual(get_keywords(), ["keyword_one", "new_tag"]) # key2 will be removed + self.assertListEqual(load_tag_names_from_db(), ["keyword_one", "new_tag"]) + + # check write permission of metadata for other user (should fail) + self.assertEqual(set_keywords(["nope"], client=other_client).status_code, 403) + + # check write permission of tags for other user (should fail) + self.assertEqual(set_tag_names_in_post(["nope"], client=other_client).status_code, 403) diff --git a/api/views.py b/api/views.py index 8884f39a6..e2a56ce75 100644 --- a/api/views.py +++ b/api/views.py @@ -34,6 +34,7 @@ from api.models import UploadedImages from dataedit.models import Table as DBTable, Schema as DBSchema from dataedit.views import schema_whitelist +from dataedit.views import get_tag_keywords_synchronized_metadata from oeplatform.securitysettings import PLAYGROUNDS, UNVERSIONED_SCHEMAS import json @@ -260,6 +261,17 @@ def post(self, request, schema, table): if metadata is not None: cursor = actions.load_cursor_from_context(request.data) + + # update/sync keywords with tags before saving metadata + keywords = metadata.keywords or [] + + # get_tag_keywords_synchronized_metadata returns the OLD metadata + # but with the now harmonized keywords (harmonized with tags) + # so we only copy the resulting keywords before storing the metadata + _metadata = get_tag_keywords_synchronized_metadata(table=table, schema=schema, keywords_new=keywords) + metadata.keywords = _metadata["keywords"] + + actions.set_table_metadata(table=table, schema=schema, metadata=metadata, cursor=cursor) return JsonResponse(raw_input) else: diff --git a/dataedit/structures.py b/dataedit/structures.py index 719ea877b..848a93ba8 100644 --- a/dataedit/structures.py +++ b/dataedit/structures.py @@ -29,11 +29,13 @@ class Tag(Base): usage_count = Column(BigInteger, server_default="0") usage_tracked_since = Column(DateTime(), server_default=func.now()) name_normalized = Column(String(40), nullable=False, unique=True) + default_color = int("2E3638", 16) def __init__(self, **kwargs): # sanitize name, auto fill name_normalized kwargs["name"] = self.create_name_clean(kwargs["name"]) kwargs["name_normalized"] = self.create_name_normalized(kwargs["name"]) + kwargs["color"] = kwargs.get("color", self.default_color) super().__init__(**kwargs) @staticmethod diff --git a/dataedit/views.py b/dataedit/views.py index 0d182da84..e731656f6 100644 --- a/dataedit/views.py +++ b/dataedit/views.py @@ -56,6 +56,8 @@ import requests as req from django.contrib import messages +from dataedit.metadata import load_metadata_from_db +from api.connection import create_oedb_session, _get_engine session = None @@ -1282,14 +1284,14 @@ def check_is_tag(session, tag_id): return session.query(t.exists()).scalar() -def get_tag_id_by_tag_name_normalized(session, tag_name): +def get_tag_id_by_tag_name_normalized(session, name_normalized): """ - Query the Tag tabley in schmea public to get the Tag ID. + Query the Tag table in schema public to get the Tag ID. Tags are queried by unique field tag_name_normalized. Args: session ([type]): [description] - tag_name ([type]): [description] + name_normalized ([type]): [description] Returns: int: Tag ID @@ -1297,8 +1299,7 @@ def get_tag_id_by_tag_name_normalized(session, tag_name): """ - tag = session.query(Tag).filter(Tag.name_normalized==tag_name).first() - session.commit() + tag = session.query(Tag).filter(Tag.name_normalized==name_normalized).first() if tag is not None: return tag.id else: @@ -1307,11 +1308,11 @@ def get_tag_id_by_tag_name_normalized(session, tag_name): def get_tag_name_normalized_by_id(session, tag_id): """ - Query the Tag table in schmea public to get the tag_name_normalized. + Query the Tag table in schema public to get the tag_name_normalized. Tags are queried by tag id. Args: - session (sqilachemy): sqlalachemy session + session (sqlachemy): sqlalachemy session tag_id (int): The Tag ID Returns: @@ -1328,11 +1329,11 @@ def get_tag_name_normalized_by_id(session, tag_id): def get_tag_name_by_id(session, tag_id): """ - Query the Tag table in schmea public to get the tags.name. + Query the Tag table in schema public to get the tags.name. Tags are queried by tag id. Args: - session (sqilachemy): sqlalachemy session + session (sqlachemy): sqlalachemy session tag_id (int): The Tag ID Returns: @@ -1353,7 +1354,7 @@ def add_existing_keyword_tag_to_table_tags(session, schema, table, keyword_tag_i Add a tag from the oem-keywords to the table_tags for the current table. Args: - session (sqilachemy): sqlalachemy session + session (sqlachemy): sqlalachemy session schema (str): Name of the schema table (str): Name of the table keyword_tag_id (int): The tag id that machtes to keyword tag name (by tag_name_normalized) @@ -1376,84 +1377,112 @@ def add_existing_keyword_tag_to_table_tags(session, schema, table, keyword_tag_i session.close() #Close the connection -def process_oem_keywords(session, schema, table, tag_ids, removed_table_tag_ids, default_color_new_tag="#2E3638"): - """_summary_ + +def get_tag_keywords_synchronized_metadata(table, schema, keywords_new=None, tag_ids_new=None): + """synchronize tags and keywords, either by new metadata OR by set of tag ids (from UI) Args: - session (_type_): _description_ - schema (_type_): _description_ table (_type_): _description_ - tag_ids (_type_): _description_ - - Returns: - _type_: _description_ + schema (_type_): _description_ + metadata_new (_type_, optional): _description_. Defaults to None. + tag_ids_new (_type_, optional): _description_. Defaults to None. """ - # Empty or bad tag names - invalid_tags=["", " ", "_", "-", "*"] - - # Get metadata json. Add Tages to "keywords" field in oemetadata and update (comment on table) - # Returns oem v1.4.0 if metadata is empty from ./metadata/__init__.py/__LATEST - table_oemetadata = load_metadata_from_db(schema, table) - - # if table_oemetadata is {}: - # from metadata.v151.template import OEMETADATA_V151_TEMPLATE - # table_oemetadata = OEMETADATA_V151_TEMPLATE - # md, error = actions.try_parse_metadata(table_oemetadata) - # print(md, error) - - # Keep, this are the tags that where added by the user via OEP website - updated_oep_tags = [] - # this are OEM keywords that are new to the OEP tags - kw_only = [] - # Keywords that are present as OEP tag but have to be assinged as table tag - kw_is_oep_tag_but_not_oep_table_tag = [] - # sync. table tags and keywords - updated_keywords = [] - - for id in tag_ids: - kw = get_tag_name_by_id(session, id) - if kw is not None: - updated_oep_tags.append(kw) - - - for k in table_oemetadata["keywords"]: - normalized_kw = Tag.create_name_normalized(k) - keyword_tag_id = get_tag_id_by_tag_name_normalized(session, normalized_kw) - if keyword_tag_id is None and k not in kw_only and k not in invalid_tags: - kw_only.append(k) - elif keyword_tag_id is not None and check_is_table_tag(session, schema, table, keyword_tag_id) is False \ - and k not in kw_is_oep_tag_but_not_oep_table_tag: - - kw_is_oep_tag_but_not_oep_table_tag.append(k) - - - updated_keywords = updated_oep_tags + kw_only - for k in kw_is_oep_tag_but_not_oep_table_tag: - normalized_kw = Tag.create_name_normalized(k) - tag_id = get_tag_id_by_tag_name_normalized(session, normalized_kw) - if k is not None and k not in updated_oep_tags and [True for kw in table_oemetadata["keywords"] if k in kw] \ - and tag_id not in removed_table_tag_ids: - add_existing_keyword_tag_to_table_tags(session, schema, table, tag_id) - updated_keywords.append(k) - - - for k in kw_only: - default_color = default_color_new_tag - add_tag(k, default_color) - tag_id = get_tag_id_by_tag_name_normalized(session, k) - if tag_id is not None: - add_existing_keyword_tag_to_table_tags(session, schema, table, tag_id) - + session = create_oedb_session() + metadata = load_metadata_from_db(schema=schema, table=table) + keywords_old = set(k for k in metadata.get("keywords", []) if Tag.create_name_normalized(k)) # remove empy - table_oemetadata["keywords"] = updated_keywords - return table_oemetadata + tag_ids_old = set(tt.tag for tt in session.query(TableTags).filter(TableTags.table_name == table, TableTags.schema_name == schema)) + tags_old = session.query(Tag).filter(Tag.id.in_(tag_ids_old)).all() + tags_by_name_normalized = {} + tags_by_id = dict() + + for tag in tags_old: + tags_by_name_normalized[tag.name_normalized] = tag + tags_by_id[tag.id] = tag + + + def get_or_create_tag_by_name(name): + name_normalized = Tag.create_name_normalized(name) + if not name_normalized: + return None + if name_normalized not in tags_by_name_normalized: + tag = session.query(Tag).filter(Tag.name_normalized == name_normalized).first() + if tag is None: + tag = Tag(name=name) + session.add(tag) + session.flush() + assert tag.id + tags_by_name_normalized[name_normalized] = tag + tags_by_id[tag.id] = tag + return tags_by_name_normalized[name_normalized] + + def get_tag_by_id(tag_id): + if tag_id not in tags_by_id: + tag = session.query(Tag).filter(Tag.id == tag_id).first() + tags_by_name_normalized[tag.name_normalized] = tag + tags_by_id[tag.id] = tag + return tags_by_id[tag_id] + + + # map old keywords to tag ids (create tags if needed) + keyword_tag_ids_old = set(get_or_create_tag_by_name(n).id for n in keywords_old) + + + if keywords_new is not None: # user updated metadata keywords + + # map new keywords to tag ids (create tags if needed) + keywords_new = [k for k in keywords_new if Tag.create_name_normalized(k)] # remove empy + keyword_new_tag_ids = set(get_or_create_tag_by_name(n).id for n in keywords_new) + + # determine which tag ids the user wants to remove + remove_table_tag_ids = (keyword_tag_ids_old - keyword_new_tag_ids) + keyword_add_tag_ids = tag_ids_old - remove_table_tag_ids - keyword_new_tag_ids + tag_ids_new = set() + + elif tag_ids_new is not None: # user updated tags in UI + + # determine which tag ids the user wants to remove + remove_table_tag_ids = (tag_ids_old - tag_ids_new) + keywords_new = [k for k in keywords_old if get_or_create_tag_by_name(k).id not in remove_table_tag_ids] + keyword_new_tag_ids = set() + keyword_add_tag_ids = tag_ids_new - keyword_tag_ids_old - remove_table_tag_ids + + else: + raise NotImplementedError("must provide either metadata or tag_ids") + + # determine which tag ids have to be removed + delete_table_tag_ids = remove_table_tag_ids & tag_ids_old + for tid in delete_table_tag_ids: + if tid is None: + continue + session.query(TableTags).filter(TableTags.table_name == table, TableTags.schema_name == schema, TableTags.tag == tid).delete() + + # determine which tag ids must be added + add_table_tag_ids = (keyword_tag_ids_old | keyword_new_tag_ids| tag_ids_new) - (tag_ids_old | remove_table_tag_ids) + for tid in add_table_tag_ids: + if tid is None: + continue + session.add(TableTags(table_name=table, schema_name=schema, tag=tid)) + + # determine wich keywords need to be added + for tid in keyword_add_tag_ids: + if tid is None: + continue + keywords_new.append(get_tag_by_id(tid).name) + + session.commit() + session.close() + + metadata["keywords"] = keywords_new + + return metadata + -# FIXME: should use api.views.require_write_permission, but circular imports! @login_required -def add_table_tags(request): +def update_table_tags(request): """ Updates the tags on a table according to the tag values in request. The update will delete all tags that are not present in request and add all tags that are. @@ -1463,40 +1492,24 @@ def add_table_tags(request): * table: The name of a table * Any number of values that start with 'tag_' followed by the id of a tag. :return: Redirects to the previous page - """ + """ + # check if valid table / schema + schema, table = actions.get_table_name(schema=request.POST["schema"], table=request.POST["table"]) + + # check write permission + actions.assert_permission(request.user, table, login_models.WRITE_PERM, schema=schema) + ids = { int(field[len("tag_") :]) for field in request.POST if field.startswith("tag_") - } - schema = request.POST["schema"] - table = request.POST.get("table", None) - + } - engine = actions._get_engine() - metadata = sqla.MetaData(bind=engine) - Session = sessionmaker() - session = Session(bind=engine) + # update tags in db and harmonize metadata + metadata = get_tag_keywords_synchronized_metadata(table=table, schema=schema, tag_ids_new=ids) - # Identify the table tag ids that the user removed from the table. - # Usefull to distinguish between keywords that are tags and have to be assinged as table tags - # and keywords that exist as tags but where removed by the use, and therefore should not be reassinged to the table - removed_table_tag_ids = [tt.tag for tt in session.query(TableTags).filter(TableTags.table_name == table and TableTags.schema_name == schema) if tt.tag not in ids] - - session.query(TableTags).filter( - TableTags.table_name == table and TableTags.schema_name == schema - ).delete() - for id in ids: - t = TableTags(**{"schema_name": schema, "table_name": table, "tag": id}) - session.add(t) - session.commit() - - # Add keywords from oemetadata to table tags and table tags to keywords - updated_oem_json = process_oem_keywords(session, schema, table, ids, removed_table_tag_ids) + with _get_engine().connect() as con: + with con.begin(): + actions.set_table_metadata(table=table, schema=schema, metadata=metadata, cursor=con) - # TODO: reuse session from above? - with engine.begin() as con: - actions.set_table_metadata(table=table, schema=schema, metadata=updated_oem_json, cursor=con) - - messasge = messages.success(request, 'Please note that OEMetadata keywords and table tags are synchronized. When submitting new tags, you may notice automatic changes to the table tags on the OEP and/or the "Keywords" field in the metadata.') @@ -1504,7 +1517,8 @@ def add_table_tags(request): def redirect_after_table_tags_updated(request): - add_table_tags(request) + + update_table_tags(request) return redirect(request.META["HTTP_REFERER"]) @@ -1529,6 +1543,7 @@ def get_all_tags(schema=None, table=None): { "id": r.id, "name": r.name, + "name_normalized": r.name_normalized, "color": "#" + format(r.color, "06X"), "usage_count": r.usage_count, "usage_tracked_since": r.usage_tracked_since, @@ -1544,6 +1559,7 @@ def get_all_tags(schema=None, table=None): result = session.execute( session.query( Tag.name.label("name"), + Tag.name_normalized.label("name_normalized"), Tag.id.label("id"), Tag.color.label("color"), Tag.usage_count.label("usage_count"), @@ -1562,6 +1578,7 @@ def get_all_tags(schema=None, table=None): { "id": r.id, "name": r.name, + "name_normalized": r.name_normalized, "color": "#" + format(r.color, "06X"), "usage_count": r.usage_count, "usage_tracked_since": r.usage_tracked_since, From 41777f276edefcd44727377e84a434ece9edd370 Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Thu, 11 Aug 2022 04:38:02 +0100 Subject: [PATCH 53/79] static files instead of external resources --- .../static/dataedit/bootstrap-select.min.css | 6 + .../static/dataedit/bootstrap-select.min.js | 9 + .../static/dataedit/jquery.dataTables.min.css | 1 + .../static/dataedit/jquery.dataTables.min.js | 180 +++++ dataedit/static/dataedit/json5.min.js | 1 + dataedit/static/dataedit/leaflet.css | 636 ++++++++++++++++++ dataedit/static/dataedit/leaflet.js | 5 + dataedit/static/dataedit/plotly-latest.min.js | 61 ++ dataedit/static/dataedit/proj4.js | 1 + dataedit/static/images/sort_asc.png | Bin 0 -> 160 bytes dataedit/static/images/sort_asc_disabled.png | Bin 0 -> 148 bytes dataedit/static/images/sort_both.png | Bin 0 -> 201 bytes dataedit/static/images/sort_desc.png | Bin 0 -> 158 bytes dataedit/static/images/sort_desc_disabled.png | Bin 0 -> 146 bytes dataedit/templates/dataedit/dataview.html | 24 +- dataedit/templates/dataedit/filter.html | 6 +- modelview/templates/modelview/modellist.html | 4 +- 17 files changed, 915 insertions(+), 19 deletions(-) create mode 100644 dataedit/static/dataedit/bootstrap-select.min.css create mode 100644 dataedit/static/dataedit/bootstrap-select.min.js create mode 100644 dataedit/static/dataedit/jquery.dataTables.min.css create mode 100644 dataedit/static/dataedit/jquery.dataTables.min.js create mode 100644 dataedit/static/dataedit/json5.min.js create mode 100644 dataedit/static/dataedit/leaflet.css create mode 100644 dataedit/static/dataedit/leaflet.js create mode 100644 dataedit/static/dataedit/plotly-latest.min.js create mode 100644 dataedit/static/dataedit/proj4.js create mode 100644 dataedit/static/images/sort_asc.png create mode 100644 dataedit/static/images/sort_asc_disabled.png create mode 100644 dataedit/static/images/sort_both.png create mode 100644 dataedit/static/images/sort_desc.png create mode 100644 dataedit/static/images/sort_desc_disabled.png diff --git a/dataedit/static/dataedit/bootstrap-select.min.css b/dataedit/static/dataedit/bootstrap-select.min.css new file mode 100644 index 000000000..43a26c697 --- /dev/null +++ b/dataedit/static/dataedit/bootstrap-select.min.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap-select v1.13.0 (https://developer.snapappointments.com/bootstrap-select) + * + * Copyright 2012-2018 SnapAppointments, LLC + * Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE) + */.bootstrap-select>select.bs-select-hidden,select.bs-select-hidden,select.selectpicker{display:none!important}.bootstrap-select{width:220px\9}.bootstrap-select>.dropdown-toggle{position:relative;width:100%;z-index:1;text-align:right;white-space:nowrap}.bootstrap-select>.dropdown-toggle.bs-placeholder,.bootstrap-select>.dropdown-toggle.bs-placeholder:active,.bootstrap-select>.dropdown-toggle.bs-placeholder:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder:hover{color:#999}.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:hover{color:rgba(255,255,255,.5)}.bootstrap-select>select{position:absolute!important;bottom:0;left:50%;display:block!important;width:.5px!important;height:100%!important;padding:0!important;opacity:0!important;border:none}.bootstrap-select>select.mobile-device{top:0;left:0;display:block!important;width:100%!important;z-index:2}.bootstrap-select.is-invalid .dropdown-toggle,.error .bootstrap-select .dropdown-toggle,.has-error .bootstrap-select .dropdown-toggle,.was-validated .bootstrap-select .selectpicker:invalid+.dropdown-toggle{border-color:#b94a48}.bootstrap-select.is-valid .dropdown-toggle,.was-validated .bootstrap-select .selectpicker:valid+.dropdown-toggle{border-color:#28a745}.bootstrap-select.fit-width{width:auto!important}.bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn){width:220px}.bootstrap-select .dropdown-toggle:focus{outline:thin dotted #333!important;outline:5px auto -webkit-focus-ring-color!important;outline-offset:-2px}.bootstrap-select.form-control{margin-bottom:0;padding:0;border:none}:not(.input-group)>.bootstrap-select.form-control:not([class*=col-]){width:100%}.bootstrap-select.form-control.input-group-btn{z-index:auto}.bootstrap-select.form-control.input-group-btn:not(:first-child):not(:last-child)>.btn{border-radius:0}.bootstrap-select:not(.input-group-btn),.bootstrap-select[class*=col-]{float:none;display:inline-block;margin-left:0}.bootstrap-select.dropdown-menu-right,.bootstrap-select[class*=col-].dropdown-menu-right,.row .bootstrap-select[class*=col-].dropdown-menu-right{float:right}.form-group .bootstrap-select,.form-horizontal .bootstrap-select,.form-inline .bootstrap-select{margin-bottom:0}.form-group-lg .bootstrap-select.form-control,.form-group-sm .bootstrap-select.form-control{padding:0}.form-group-lg .bootstrap-select.form-control .dropdown-toggle,.form-group-sm .bootstrap-select.form-control .dropdown-toggle{height:100%;font-size:inherit;line-height:inherit;border-radius:inherit}.bootstrap-select.form-control-lg .dropdown-toggle,.bootstrap-select.form-control-sm .dropdown-toggle{font-size:inherit;line-height:inherit;border-radius:inherit}.bootstrap-select.form-control-sm .dropdown-toggle{padding:.25rem .5rem}.bootstrap-select.form-control-lg .dropdown-toggle{padding:.5rem 1rem}.form-inline .bootstrap-select .form-control{width:100%}.bootstrap-select.disabled,.bootstrap-select>.disabled{cursor:not-allowed}.bootstrap-select.disabled:focus,.bootstrap-select>.disabled:focus{outline:0!important}.bootstrap-select.bs-container{position:absolute;top:0;left:0;height:0!important;padding:0!important}.bootstrap-select.bs-container .dropdown-menu{z-index:1060}.bootstrap-select .dropdown-toggle:before{content:'';display:inline-block}.bootstrap-select .dropdown-toggle .filter-option{position:absolute;top:0;left:0;padding-top:inherit;padding-right:inherit;padding-bottom:inherit;padding-left:inherit;height:100%;width:100%;text-align:left}.bootstrap-select .dropdown-toggle .filter-option-inner{padding-right:inherit}.bootstrap-select .dropdown-toggle .filter-option-inner-inner{overflow:hidden}.bootstrap-select .dropdown-toggle .caret{position:absolute;top:50%;right:12px;margin-top:-2px;vertical-align:middle}.input-group .bootstrap-select.form-control .dropdown-toggle{border-radius:inherit}.bootstrap-select[class*=col-] .dropdown-toggle{width:100%}.bootstrap-select .dropdown-menu{min-width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select .dropdown-menu>.inner:focus{outline:0!important}.bootstrap-select .dropdown-menu.inner{position:static;float:none;border:0;padding:0;margin:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.bootstrap-select .dropdown-menu li{position:relative}.bootstrap-select .dropdown-menu li.active small{color:#fff}.bootstrap-select .dropdown-menu li.disabled a{cursor:not-allowed}.bootstrap-select .dropdown-menu li a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bootstrap-select .dropdown-menu li a.opt{position:relative;padding-left:2.25em}.bootstrap-select .dropdown-menu li a span.check-mark{display:none}.bootstrap-select .dropdown-menu li a span.text{display:inline-block}.bootstrap-select .dropdown-menu li small{padding-left:.5em}.bootstrap-select .dropdown-menu .notify{position:absolute;bottom:5px;width:96%;margin:0 2%;min-height:26px;padding:3px 5px;background:#f5f5f5;border:1px solid #e3e3e3;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05);pointer-events:none;opacity:.9;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select .no-results{padding:3px;background:#f5f5f5;margin:0 5px;white-space:nowrap}.bootstrap-select.fit-width .dropdown-toggle .filter-option{position:static;display:inline;padding:0}.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner,.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner-inner{display:inline}.bootstrap-select.fit-width .dropdown-toggle .caret{position:static;top:auto;margin-top:-1px}.bootstrap-select.show-tick .dropdown-menu .selected span.check-mark{position:absolute;display:inline-block;right:15px;top:5px}.bootstrap-select.show-tick .dropdown-menu li a span.text{margin-right:34px}.bootstrap-select .bs-ok-default:after{content:'';display:block;width:.5em;height:1em;border-style:solid;border-width:0 .26em .26em 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle{z-index:1061}.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:before{content:'';border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(204,204,204,.2);position:absolute;bottom:-4px;left:9px;display:none}.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:after{content:'';border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;bottom:-4px;left:10px;display:none}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:before{bottom:auto;top:-4px;border-top:7px solid rgba(204,204,204,.2);border-bottom:0}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:after{bottom:auto;top:-4px;border-top:6px solid #fff;border-bottom:0}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:before{right:12px;left:auto}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:after{right:13px;left:auto}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle .filter-option:after,.bootstrap-select.show-menu-arrow.open>.dropdown-toggle .filter-option:before,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle .filter-option:after,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle .filter-option:before{display:block}.bs-actionsbox,.bs-donebutton,.bs-searchbox{padding:4px 8px}.bs-actionsbox{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-actionsbox .btn-group button{width:50%}.bs-donebutton{float:left;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-donebutton .btn-group button{width:100%}.bs-searchbox+.bs-actionsbox{padding:0 8px 4px}.bs-searchbox .form-control{margin-bottom:0;width:100%;float:none} \ No newline at end of file diff --git a/dataedit/static/dataedit/bootstrap-select.min.js b/dataedit/static/dataedit/bootstrap-select.min.js new file mode 100644 index 000000000..d2b306379 --- /dev/null +++ b/dataedit/static/dataedit/bootstrap-select.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.13.0 (https://developer.snapappointments.com/bootstrap-select) + * + * Copyright 2012-2018 SnapAppointments, LLC + * Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE) + */ +!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){"use strict";function b(a,b){return a.length===b.length&&a.every(function(a,c){return a===b[c]})}function c(a){var b,c=[],d=a&&a.options;if(a.multiple)for(var e=0,f=d.length;e]+>/g,"")),d&&(j=f(j)),j=j.toUpperCase(),g="contains"===c?j.indexOf(b)>=0:j.startsWith(b)))break}return g}function e(a){return parseInt(a,10)||0}function f(b){var c=[{re:/[\xC0-\xC6]/g,ch:"A"},{re:/[\xE0-\xE6]/g,ch:"a"},{re:/[\xC8-\xCB]/g,ch:"E"},{re:/[\xE8-\xEB]/g,ch:"e"},{re:/[\xCC-\xCF]/g,ch:"I"},{re:/[\xEC-\xEF]/g,ch:"i"},{re:/[\xD2-\xD6]/g,ch:"O"},{re:/[\xF2-\xF6]/g,ch:"o"},{re:/[\xD9-\xDC]/g,ch:"U"},{re:/[\xF9-\xFC]/g,ch:"u"},{re:/[\xC7-\xE7]/g,ch:"c"},{re:/[\xD1]/g,ch:"N"},{re:/[\xF1]/g,ch:"n"}];return a.each(c,function(){b=b?b.replace(this.re,this.ch):""}),b}function g(b){var c=arguments,d=b;[].shift.apply(c);var e,f=this.each(function(){var b=a(this);if(b.is("select")){var f=b.data("selectpicker"),g="object"==typeof d&&d;if(f){if(g)for(var h in g)g.hasOwnProperty(h)&&(f.options[h]=g[h])}else{var i=a.extend({},x.DEFAULTS,a.fn.selectpicker.defaults||{},b.data(),g);i.template=a.extend({},x.DEFAULTS.template,a.fn.selectpicker.defaults?a.fn.selectpicker.defaults.template:{},b.data().template,g.template),b.data("selectpicker",f=new x(this,i))}"string"==typeof d&&(e=f[d]instanceof Function?f[d].apply(f,c):f.options[d])}});return void 0!==e?e:f}var h=document.createElement("_");if(h.classList.toggle("c3",!1),h.classList.contains("c3")){var i=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(a,b){return 1 in arguments&&!this.contains(a)==!b?b:i.call(this,a)}}String.prototype.startsWith||function(){var a=function(){try{var a={},b=Object.defineProperty,c=b(a,a,a)&&b}catch(a){}return c}(),b={}.toString,c=function(a){if(null==this)throw new TypeError;var c=String(this);if(a&&"[object RegExp]"==b.call(a))throw new TypeError;var d=c.length,e=String(a),f=e.length,g=arguments.length>1?arguments[1]:void 0,h=g?Number(g):0;h!=h&&(h=0);var i=Math.min(Math.max(h,0),d);if(f+i>d)return!1;for(var j=-1;++j":">",'"':""","'":"'","`":"`"},n={"&":"&","<":"<",">":">",""":'"',"'":"'","`":"`"},o=function(a){var b=function(b){return a[b]},c="(?:"+Object.keys(a).join("|")+")",d=RegExp(c),e=RegExp(c,"g");return function(a){return a=null==a?"":""+a,d.test(a)?a.replace(e,b):a}},p=o(m),q=o(n),r={32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",65:"A",66:"B",67:"C",68:"D",69:"E",70:"F",71:"G",72:"H",73:"I",74:"J",75:"K",76:"L",77:"M",78:"N",79:"O",80:"P",81:"Q",82:"R",83:"S",84:"T",85:"U",86:"V",87:"W",88:"X",89:"Y",90:"Z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9"},s={ESCAPE:27,ENTER:13,SPACE:32,TAB:9,ARROW_UP:38,ARROW_DOWN:40},t={};t.full=(a.fn.dropdown.Constructor.VERSION||"").split(" ")[0].split("."),t.major=t.full[0];var u={DISABLED:"disabled",DIVIDER:"4"===t.major?"dropdown-divider":"divider",SHOW:"4"===t.major?"show":"open",DROPUP:"dropup",MENURIGHT:"dropdown-menu-right",MENULEFT:"dropdown-menu-left",BUTTONCLASS:"4"===t.major?"btn-light":"btn-default",POPOVERHEADER:"4"===t.major?"popover-header":"popover-title"},v=new RegExp(s.ARROW_UP+"|"+s.ARROW_DOWN),w=new RegExp("^"+s.TAB+"$|"+s.ESCAPE),x=(new RegExp(s.ENTER+"|"+s.SPACE),function(b,c){var d=this;j.useDefault||(a.valHooks.select.set=j._set,j.useDefault=!0),this.$element=a(b),this.$newElement=null,this.$button=null,this.$menu=null,this.options=c,this.selectpicker={main:{map:{newIndex:{},originalIndex:{}}},current:{map:{}},search:{map:{}},view:{},keydown:{keyHistory:"",resetKeyHistory:{start:function(){return setTimeout(function(){d.selectpicker.keydown.keyHistory=""},800)}}}},null===this.options.title&&(this.options.title=this.$element.attr("title"));var e=this.options.windowPadding;"number"==typeof e&&(this.options.windowPadding=[e,e,e,e]),this.val=x.prototype.val,this.render=x.prototype.render,this.refresh=x.prototype.refresh,this.setStyle=x.prototype.setStyle,this.selectAll=x.prototype.selectAll,this.deselectAll=x.prototype.deselectAll,this.destroy=x.prototype.destroy,this.remove=x.prototype.remove,this.show=x.prototype.show,this.hide=x.prototype.hide,this.init()});x.VERSION="1.13.0",x.DEFAULTS={noneSelectedText:"Nothing selected",noneResultsText:"No results matched {0}",countSelectedText:function(a,b){return 1==a?"{0} item selected":"{0} items selected"},maxOptionsText:function(a,b){return[1==a?"Limit reached ({n} item max)":"Limit reached ({n} items max)",1==b?"Group limit reached ({n} item max)":"Group limit reached ({n} items max)"]},selectAllText:"Select All",deselectAllText:"Deselect All",doneButton:!1,doneButtonText:"Close",multipleSeparator:", ",styleBase:"btn",style:"btn-default",size:"auto",title:null,selectedTextFormat:"values",width:!1,container:!1,hideDisabled:!1,showSubtext:!1,showIcon:!0,showContent:!0,dropupAuto:!0,header:!1,liveSearch:!1,liveSearchPlaceholder:null,liveSearchNormalize:!1,liveSearchStyle:"contains",actionsBox:!1,iconBase:"glyphicon",tickIcon:"glyphicon-ok",showTick:!1,template:{caret:''},maxOptions:!1,mobile:!1,selectOnTab:!1,dropdownAlignRight:!1,windowPadding:0,virtualScroll:600},"4"===t.major&&(x.DEFAULTS.style="btn-light",x.DEFAULTS.iconBase="",x.DEFAULTS.tickIcon="bs-ok-default"),x.prototype={constructor:x,init:function(){var a=this,b=this.$element.attr("id");this.$element.addClass("bs-select-hidden"),this.multiple=this.$element.prop("multiple"),this.autofocus=this.$element.prop("autofocus"),this.$newElement=this.createDropdown(),this.createLi(),this.$element.after(this.$newElement).prependTo(this.$newElement),this.$button=this.$newElement.children("button"),this.$menu=this.$newElement.children(".dropdown-menu"),this.$menuInner=this.$menu.children(".inner"),this.$searchbox=this.$menu.find("input"),this.$element.removeClass("bs-select-hidden"),!0===this.options.dropdownAlignRight&&this.$menu.addClass(u.MENURIGHT),void 0!==b&&this.$button.attr("data-id",b),this.checkDisabled(),this.clickListener(),this.options.liveSearch&&this.liveSearchListener(),this.render(),this.setStyle(),this.setWidth(),this.options.container?this.selectPosition():this.$element.on("hide.bs.select",function(){if(a.isVirtual()){var b=a.$menuInner[0],c=b.firstChild.cloneNode(!1);b.replaceChild(c,b.firstChild),b.scrollTop=0}}),this.$menu.data("this",this),this.$newElement.data("this",this),this.options.mobile&&this.mobile(),this.$newElement.on({"hide.bs.dropdown":function(b){a.$menuInner.attr("aria-expanded",!1),a.$element.trigger("hide.bs.select",b)},"hidden.bs.dropdown":function(b){a.$element.trigger("hidden.bs.select",b)},"show.bs.dropdown":function(b){a.$menuInner.attr("aria-expanded",!0),a.$element.trigger("show.bs.select",b)},"shown.bs.dropdown":function(b){a.$element.trigger("shown.bs.select",b)}}),a.$element[0].hasAttribute("required")&&this.$element.on("invalid",function(){a.$button.addClass("bs-invalid"),a.$element.on({"shown.bs.select":function(){a.$element.val(a.$element.val()).off("shown.bs.select")},"rendered.bs.select":function(){this.validity.valid&&a.$button.removeClass("bs-invalid"),a.$element.off("rendered.bs.select")}}),a.$button.on("blur.bs.select",function(){a.$element.focus().blur(),a.$button.off("blur.bs.select")})}),setTimeout(function(){a.$element.trigger("loaded.bs.select")})},createDropdown:function(){var b=this.multiple||this.options.showTick?" show-tick":"",c=this.autofocus?" autofocus":"",d=this.options.header?'
    '+this.options.header+"
    ":"",e=this.options.liveSearch?'':"",f=this.multiple&&this.options.actionsBox?'
    ":"",g=this.multiple&&this.options.doneButton?'
    ":"",h='";return a(h)},setPositionData:function(){this.selectpicker.view.canHighlight=[];for(var a=0;a=this.options.virtualScroll||!0===this.options.virtualScroll},createView:function(c,d){function e(a,d){var e,j,k,l,m,n,o,p=f.selectpicker.current.elements.length,q=[],r=void 0,s=!0,t=f.isVirtual();f.selectpicker.view.scrollTop=a,!0===t&&f.sizeInfo.hasScrollBar&&f.$menu[0].offsetWidth>f.sizeInfo.totalMenuWidth&&(f.sizeInfo.menuWidth=f.$menu[0].offsetWidth,f.sizeInfo.totalMenuWidth=f.sizeInfo.menuWidth+f.sizeInfo.scrollBarWidth,f.$menu.css("min-width",f.sizeInfo.menuWidth)),e=Math.ceil(f.sizeInfo.menuInnerHeight/f.sizeInfo.liHeight*1.5),j=Math.round(p/e)||1;for(var u=0;up-1?0:f.selectpicker.current.data[p-1].position-f.selectpicker.current.data[f.selectpicker.view.position1-1].position,y.firstChild.style.marginTop=w+"px",y.firstChild.style.marginBottom=x+"px"),y.firstChild.appendChild(z)}if(f.prevActiveIndex=f.activeIndex,f.options.liveSearch){if(c&&d){var D,E=0;f.selectpicker.view.canHighlight[E]||(E=1+f.selectpicker.view.canHighlight.slice(1).indexOf(!0)),D=f.selectpicker.view.visibleElements[E],f.selectpicker.view.currentActive&&(f.selectpicker.view.currentActive.classList.remove("active"),f.selectpicker.view.currentActive.firstChild&&f.selectpicker.view.currentActive.firstChild.classList.remove("active")),D&&(D.classList.add("active"),D.firstChild&&D.firstChild.classList.add("active")),f.activeIndex=f.selectpicker.current.map.originalIndex[E]}}else f.$menuInner.focus()}d=d||0;var f=this;this.selectpicker.current=c?this.selectpicker.search:this.selectpicker.main;var g,h,i=[];this.setPositionData(),e(d,!0),this.$menuInner.off("scroll.createView").on("scroll.createView",function(a,b){f.noScroll||e(this.scrollTop,b),f.noScroll=!1}),a(window).off("resize.createView").on("resize.createView",function(){e(f.$menuInner[0].scrollTop)})},createLi:function(){var b,c=this,d=[],e=0,f=0,g=[],h=0,i=0,j=-1;this.selectpicker.view.titleOption||(this.selectpicker.view.titleOption=document.createElement("option"));var k={span:document.createElement("span"),subtext:document.createElement("small"),a:document.createElement("a"),li:document.createElement("li"),whitespace:document.createTextNode(" ")},l=k.span.cloneNode(!1),m=document.createDocumentFragment();l.className=c.options.iconBase+" "+c.options.tickIcon+" check-mark",k.a.appendChild(l),k.a.setAttribute("role","option"),k.subtext.className="text-muted",k.text=k.span.cloneNode(!1),k.text.className="text";var n=function(a,b,c,d){var e=k.li.cloneNode(!1);return a&&(1===a.nodeType||11===a.nodeType?e.appendChild(a):e.innerHTML=a),void 0!==c&&""!==c&&(e.className=c),void 0!==d&&null!==d&&e.classList.add("optgroup-"+d),e},o=function(a,b,c){var d=k.a.cloneNode(!0);return a&&(11===a.nodeType?d.appendChild(a):d.insertAdjacentHTML("beforeend",a)),void 0!==b&""!==b&&(d.className=b),"4"===t.major&&d.classList.add("dropdown-item"),c&&d.setAttribute("style",c),d},q=function(a){var b,d,e=k.text.cloneNode(!1);if(a.optionContent)e.innerHTML=a.optionContent;else{if(e.textContent=a.text,a.optionIcon){var f=k.whitespace.cloneNode(!1);d=k.span.cloneNode(!1),d.className=c.options.iconBase+" "+a.optionIcon,m.appendChild(d),m.appendChild(f)}a.optionSubtext&&(b=k.subtext.cloneNode(!1),b.textContent=a.optionSubtext,e.appendChild(b))}return m.appendChild(e),m},r=function(a){var b,d,e=k.text.cloneNode(!1);if(e.textContent=a.labelEscaped,a.labelIcon){var f=k.whitespace.cloneNode(!1);d=k.span.cloneNode(!1),d.className=c.options.iconBase+" "+a.labelIcon,m.appendChild(d),m.appendChild(f)}return a.labelSubtext&&(b=k.subtext.cloneNode(!1),b.textContent=a.labelSubtext,e.appendChild(b)),m.appendChild(e),m};if(this.options.title&&!this.multiple){j--;var s=this.$element[0],v=!1,w=!this.selectpicker.view.titleOption.parentNode;if(w){this.selectpicker.view.titleOption.className="bs-title-option",this.selectpicker.view.titleOption.value="";v=void 0===a(s.options[s.selectedIndex]).attr("selected")&&void 0===this.$element.data("selected")}(w||0!==this.selectpicker.view.titleOption.index)&&s.insertBefore(this.selectpicker.view.titleOption,s.firstChild),v&&(s.selectedIndex=0)}var x=this.$element.find("option");x.each(function(k){var l=a(this);if(j++,!l.hasClass("bs-title-option")){var m,s,t=l.data(),v=this.className||"",w=p(this.style.cssText),y=t.content,z=this.textContent,A=t.tokens,B=t.subtext,C=t.icon,D=l.parent(),E=D[0],F="OPTGROUP"===E.tagName,G=F&&E.disabled,H=this.disabled||G,I=this.previousElementSibling&&"OPTGROUP"===this.previousElementSibling.tagName,J=D.data();if(!0===t.hidden||c.options.hideDisabled&&(H&&!F||G)){if(m=t.prevHiddenIndex,l.next().data("prevHiddenIndex",void 0!==m?m:k),j--,!I&&void 0!==m){var K=x[m].previousElementSibling;K&&"OPTGROUP"===K.tagName&&!K.disabled&&(I=!0)}return void(I&&"divider"!==g[g.length-1].type&&(j++,d.push(n(!1,0,u.DIVIDER,h+"div")),g.push({type:"divider",optID:h,originalIndex:k})))}if(F&&!0!==t.divider){if(c.options.hideDisabled&&H){if(void 0===J.allOptionsDisabled){var L=D.children();D.data("allOptionsDisabled",L.filter(":disabled").length===L.length)}if(D.data("allOptionsDisabled"))return void j--}var M=" "+E.className||"";if(!this.previousElementSibling){h+=1;var N=E.label,O=p(N),P=J.subtext,Q=J.icon;0!==k&&d.length>0&&(j++,d.push(n(!1,0,u.DIVIDER,h+"div")),g.push({type:"divider",optID:h,originalIndex:k})),j++;var R=r({labelEscaped:O,labelSubtext:P,labelIcon:Q});d.push(n(R,0,"dropdown-header"+M,h)),g.push({content:O,subtext:P,type:"optgroup-label",optID:h,originalIndex:k}),i=j-1}if(c.options.hideDisabled&&H||!0===t.hidden)return void j--;s=q({text:z,optionContent:y,optionSubtext:B,optionIcon:C}),d.push(n(o(s,"opt "+v+M,w),0,"",h)),g.push({content:y||z,subtext:B,tokens:A,type:"option",optID:h,headerIndex:i,lastIndex:i+E.childElementCount,originalIndex:k,data:t}),e++}else if(!0===t.divider)d.push(n(!1,0,"divider")),g.push({type:"divider",originalIndex:k});else{if(!I&&c.options.hideDisabled&&void 0!==(m=t.prevHiddenIndex)){var K=x[m].previousElementSibling;K&&"OPTGROUP"===K.tagName&&!K.disabled&&(I=!0)}I&&"divider"!==g[g.length-1].type&&(j++,d.push(n(!1,0,u.DIVIDER,h+"div")),g.push({type:"divider",optID:h,originalIndex:k})),s=q({text:z,optionContent:y,optionSubtext:B,optionIcon:C}),d.push(n(o(s,v,w))),g.push({content:y||z,subtext:B,tokens:A,type:"option",originalIndex:k,data:t}),e++}c.selectpicker.main.map.newIndex[k]=j,c.selectpicker.main.map.originalIndex[j]=k;var S=g[g.length-1];S.disabled=H;var T=0;S.content&&(T+=S.content.length),S.subtext&&(T+=S.subtext.length),C&&(T+=1),T>f&&(f=T,b=d[d.length-1])}}),this.selectpicker.main.elements=d,this.selectpicker.main.data=g,this.selectpicker.current=this.selectpicker.main,this.selectpicker.view.widestOption=b,this.selectpicker.view.availableOptionsCount=e},findLis:function(){return this.$menuInner.find(".inner > li")},render:function(){var a=this,b=this.$element.find("option"),c=[],d=[];this.togglePlaceholder(),this.tabIndex();for(var e=0,f=this.selectpicker.main.elements.length;e
    ':"";i=a.options.showSubtext&&k.subtext&&!a.multiple?' '+k.subtext+"":"",j=h.title?h.title:k.content&&a.options.showContent?k.content.toString():l+h.innerHTML.trim()+i,d.push(j)}}var m=this.multiple?d.join(this.options.multipleSeparator):d[0];if(c.length>50&&(m+="..."),this.multiple&&-1!==this.options.selectedTextFormat.indexOf("count")){var n=this.options.selectedTextFormat.split(">");if(n.length>1&&c.length>n[1]||1===n.length&&c.length>=2){var o=this.selectpicker.view.availableOptionsCount;m=("function"==typeof this.options.countSelectedText?this.options.countSelectedText(c.length,o):this.options.countSelectedText).replace("{0}",c.length.toString()).replace("{1}",o.toString())}}void 0==this.options.title&&(this.options.title=this.$element[0].title),"static"==this.options.selectedTextFormat&&(m=this.options.title),m||(m=void 0!==this.options.title?this.options.title:this.options.noneSelectedText),this.$button[0].title=q(m.replace(/<[^>]*>?/g,"").trim()),this.$button.find(".filter-option-inner-inner")[0].innerHTML=m,this.$element.trigger("rendered.bs.select")},setStyle:function(a,b){this.$element.attr("class")&&this.$newElement.addClass(this.$element.attr("class").replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi,""));var c=a||this.options.style;"add"==b?this.$button.addClass(c):"remove"==b?this.$button.removeClass(c):(this.$button.removeClass(this.options.style),this.$button.addClass(c))},liHeight:function(b){if(b||!1!==this.options.size&&!this.sizeInfo){this.sizeInfo||(this.sizeInfo={});var c=document.createElement("div"),d=document.createElement("div"),f=document.createElement("div"),g=document.createElement("ul"),h=document.createElement("li"),i=document.createElement("li"),j=document.createElement("li"),k=document.createElement("a"),l=document.createElement("span"),m=this.options.header&&this.$menu.find("."+u.POPOVERHEADER).length>0?this.$menu.find("."+u.POPOVERHEADER)[0].cloneNode(!0):null,n=this.options.liveSearch?document.createElement("div"):null,o=this.options.actionsBox&&this.multiple&&this.$menu.find(".bs-actionsbox").length>0?this.$menu.find(".bs-actionsbox")[0].cloneNode(!0):null,p=this.options.doneButton&&this.multiple&&this.$menu.find(".bs-donebutton").length>0?this.$menu.find(".bs-donebutton")[0].cloneNode(!0):null;if(this.sizeInfo.selectWidth=this.$newElement[0].offsetWidth,l.className="text",k.className="dropdown-item",c.className=this.$menu[0].parentNode.className+" "+u.SHOW,c.style.width=this.sizeInfo.selectWidth+"px",d.className="dropdown-menu "+u.SHOW,f.className="inner "+u.SHOW,g.className="dropdown-menu inner "+("4"===t.major?u.SHOW:""),h.className=u.DIVIDER,i.className="dropdown-header",l.appendChild(document.createTextNode("Inner text")),k.appendChild(l),j.appendChild(k),i.appendChild(l.cloneNode(!0)),this.selectpicker.view.widestOption&&g.appendChild(this.selectpicker.view.widestOption.cloneNode(!0)),g.appendChild(j),g.appendChild(h),g.appendChild(i),m&&d.appendChild(m),n){var q=document.createElement("input");n.className="bs-searchbox",q.className="form-control",n.appendChild(q),d.appendChild(n)}o&&d.appendChild(o),f.appendChild(g),d.appendChild(f),p&&d.appendChild(p),c.appendChild(d),document.body.appendChild(c);var r,s=k.offsetHeight,v=i?i.offsetHeight:0,w=m?m.offsetHeight:0,x=n?n.offsetHeight:0,y=o?o.offsetHeight:0,z=p?p.offsetHeight:0,A=a(h).outerHeight(!0),B=!!window.getComputedStyle&&window.getComputedStyle(d),C=d.offsetWidth,D=B?null:a(d),E={vert:e(B?B.paddingTop:D.css("paddingTop"))+e(B?B.paddingBottom:D.css("paddingBottom"))+e(B?B.borderTopWidth:D.css("borderTopWidth"))+e(B?B.borderBottomWidth:D.css("borderBottomWidth")),horiz:e(B?B.paddingLeft:D.css("paddingLeft"))+e(B?B.paddingRight:D.css("paddingRight"))+e(B?B.borderLeftWidth:D.css("borderLeftWidth"))+e(B?B.borderRightWidth:D.css("borderRightWidth"))},F={vert:E.vert+e(B?B.marginTop:D.css("marginTop"))+e(B?B.marginBottom:D.css("marginBottom"))+2,horiz:E.horiz+e(B?B.marginLeft:D.css("marginLeft"))+e(B?B.marginRight:D.css("marginRight"))+2};f.style.overflowY="scroll",r=d.offsetWidth-C,document.body.removeChild(c),this.sizeInfo.liHeight=s,this.sizeInfo.dropdownHeaderHeight=v,this.sizeInfo.headerHeight=w,this.sizeInfo.searchHeight=x,this.sizeInfo.actionsHeight=y,this.sizeInfo.doneButtonHeight=z,this.sizeInfo.dividerHeight=A,this.sizeInfo.menuPadding=E,this.sizeInfo.menuExtras=F,this.sizeInfo.menuWidth=C,this.sizeInfo.totalMenuWidth=this.sizeInfo.menuWidth,this.sizeInfo.scrollBarWidth=r,this.sizeInfo.selectHeight=this.$newElement[0].offsetHeight,this.setPositionData()}},getSelectPosition:function(){var b,c=this,d=a(window),e=c.$newElement.offset(),f=a(c.options.container);c.options.container&&!f.is("body")?(b=f.offset(),b.top+=parseInt(f.css("borderTopWidth")),b.left+=parseInt(f.css("borderLeftWidth"))):b={top:0,left:0};var g=c.options.windowPadding;this.sizeInfo.selectOffsetTop=e.top-b.top-d.scrollTop(),this.sizeInfo.selectOffsetBot=d.height()-this.sizeInfo.selectOffsetTop-this.sizeInfo.selectHeight-b.top-g[2],this.sizeInfo.selectOffsetLeft=e.left-b.left-d.scrollLeft(),this.sizeInfo.selectOffsetRight=d.width()-this.sizeInfo.selectOffsetLeft-this.sizeInfo.selectWidth-b.left-g[1],this.sizeInfo.selectOffsetTop-=g[0],this.sizeInfo.selectOffsetLeft-=g[3]},setMenuSize:function(a){this.getSelectPosition();var b,c,d,e,f,g,h,i=this.sizeInfo.selectWidth,j=this.sizeInfo.liHeight,k=this.sizeInfo.headerHeight,l=this.sizeInfo.searchHeight,m=this.sizeInfo.actionsHeight,n=this.sizeInfo.doneButtonHeight,o=this.sizeInfo.dividerHeight,p=this.sizeInfo.menuPadding,q=0;if(this.options.dropupAuto&&(h=j*this.selectpicker.current.elements.length+p.vert,this.$newElement.toggleClass(u.DROPUP,this.sizeInfo.selectOffsetTop-this.sizeInfo.selectOffsetBot>this.sizeInfo.menuExtras.vert&&h+this.sizeInfo.menuExtras.vert+50>this.sizeInfo.selectOffsetBot)),"auto"===this.options.size)e=this.selectpicker.current.elements.length>3?3*this.sizeInfo.liHeight+this.sizeInfo.menuExtras.vert-2:0,c=this.sizeInfo.selectOffsetBot-this.sizeInfo.menuExtras.vert,d=e+k+l+m+n,g=Math.max(e-p.vert,0),this.$newElement.hasClass(u.DROPUP)&&(c=this.sizeInfo.selectOffsetTop-this.sizeInfo.menuExtras.vert),f=c,b=c-k-l-m-n-p.vert;else if(this.options.size&&"auto"!=this.options.size&&this.selectpicker.current.elements.length>this.options.size){for(var r=0;rthis.sizeInfo.selectOffsetRight&&this.sizeInfo.selectOffsetRightthis.sizeInfo.menuInnerHeight&&(this.sizeInfo.hasScrollBar=!0,this.sizeInfo.totalMenuWidth=this.sizeInfo.menuWidth+this.sizeInfo.scrollBarWidth,this.$menu.css("min-width",this.sizeInfo.totalMenuWidth)),this.dropdown&&this.dropdown._popper&&this.dropdown._popper.update()},setSize:function(b){if(this.liHeight(b),this.options.header&&this.$menu.css("padding-top",0),!1!==this.options.size){var c,d=this,e=a(window),f=0;this.setMenuSize(),"auto"===this.options.size?(this.$searchbox.off("input.setMenuSize propertychange.setMenuSize").on("input.setMenuSize propertychange.setMenuSize",function(){return d.setMenuSize()}),e.off("resize.setMenuSize scroll.setMenuSize").on("resize.setMenuSize scroll.setMenuSize",function(){return d.setMenuSize()})):this.options.size&&"auto"!=this.options.size&&this.selectpicker.current.elements.length>this.options.size&&(this.$searchbox.off("input.setMenuSize propertychange.setMenuSize"),e.off("resize.setMenuSize scroll.setMenuSize")),b?f=this.$menuInner[0].scrollTop:d.multiple||"number"==typeof(c=d.selectpicker.main.map.newIndex[d.$element[0].selectedIndex])&&!1!==d.options.size&&(f=d.sizeInfo.liHeight*c,f=f-d.sizeInfo.menuInnerHeight/2+d.sizeInfo.liHeight/2),d.createView(!1,f)}},setWidth:function(){var a=this;"auto"===this.options.width?requestAnimationFrame(function(){a.$menu.css("min-width","0"),a.liHeight(),a.setMenuSize();var b=a.$newElement.clone().appendTo("body"),c=b.css("width","auto").children("button").outerWidth();b.remove(),a.sizeInfo.selectWidth=Math.max(a.sizeInfo.totalMenuWidth,c),a.$newElement.css("width",a.sizeInfo.selectWidth+"px")}):"fit"===this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width","").addClass("fit-width")):this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width",this.options.width)):(this.$menu.css("min-width",""),this.$newElement.css("width","")),this.$newElement.hasClass("fit-width")&&"fit"!==this.options.width&&this.$newElement.removeClass("fit-width")},selectPosition:function(){this.$bsContainer=a('
    ');var b,c,d,e=this,f=a(this.options.container),g=function(a){var g={};e.$bsContainer.addClass(a.attr("class").replace(/form-control|fit-width/gi,"")).toggleClass(u.DROPUP,a.hasClass(u.DROPUP)),b=a.offset(),f.is("body")?c={top:0,left:0}:(c=f.offset(),c.top+=parseInt(f.css("borderTopWidth"))-f.scrollTop(),c.left+=parseInt(f.css("borderLeftWidth"))-f.scrollLeft()),d=a.hasClass(u.DROPUP)?0:a[0].offsetHeight,t.major<4&&(g.top=b.top-c.top+d,g.left=b.left-c.left),g.width=a[0].offsetWidth,e.$bsContainer.css(g)};this.$button.on("click.bs.dropdown.data-api",function(){e.isDisabled()||(g(e.$newElement),e.$bsContainer.appendTo(e.options.container).toggleClass(u.SHOW,!e.$button.hasClass(u.SHOW)).append(e.$menu))}),a(window).on("resize scroll",function(){g(e.$newElement)}),this.$element.on("hide.bs.select",function(){e.$menu.data("height",e.$menu.height()),e.$bsContainer.detach()})},setOptionStatus:function(){var a=this,b=this.$element.find("option");if(a.noScroll=!1,a.selectpicker.view.visibleElements&&a.selectpicker.view.visibleElements.length)for(var c=0;c3&&!b.dropdown&&(b.dropdown=b.$button.data("bs.dropdown"),b.dropdown._menu=b.$menu[0])}),this.$button.on("click.bs.dropdown.data-api",function(){b.$newElement.hasClass(u.SHOW)||b.setSize()}),this.$element.on("shown.bs.select",function(){b.$menuInner[0].scrollTop!==b.selectpicker.view.scrollTop&&(b.$menuInner[0].scrollTop=b.selectpicker.view.scrollTop),b.options.liveSearch?b.$searchbox.focus():b.$menuInner.focus()}),this.$menuInner.on("click","li a",function(d,e){var f=a(this),g=b.isVirtual()?b.selectpicker.view.position0:0,h=b.selectpicker.current.map.originalIndex[f.parent().index()+g],i=c(b.$element[0]),j=b.$element.prop("selectedIndex"),l=!0;if(b.multiple&&1!==b.options.maxOptions&&d.stopPropagation(),d.preventDefault(),!b.isDisabled()&&!f.parent().hasClass(u.DISABLED)){var m=b.$element.find("option"),n=m.eq(h),o=n.prop("selected"),p=n.parent("optgroup"),q=b.options.maxOptions,r=p.data("maxOptions")||!1;if(h===b.activeIndex&&(e=!0),e||(b.prevActiveIndex=b.activeIndex,b.activeIndex=void 0),b.multiple){if(n.prop("selected",!o),b.setSelected(h,!o),f.blur(),!1!==q||!1!==r){var s=q
    ');x[2]&&(y=y.replace("{var}",x[2][q>1?0:1]),z=z.replace("{var}",x[2][r>1?0:1])),n.prop("selected",!1),b.$menu.append(A),q&&s&&(A.append(a("
    "+y+"
    ")),l=!1,b.$element.trigger("maxReached.bs.select")),r&&t&&(A.append(a("
    "+z+"
    ")),l=!1,b.$element.trigger("maxReachedGrp.bs.select")),setTimeout(function(){b.setSelected(h,!1)},10),A.delay(750).fadeOut(300,function(){a(this).remove()})}}}else m.prop("selected",!1),n.prop("selected",!0),b.setSelected(h,!0);!b.multiple||b.multiple&&1===b.options.maxOptions?b.$button.focus():b.options.liveSearch&&b.$searchbox.focus(),l&&(i!=c(b.$element[0])&&b.multiple||j!=b.$element.prop("selectedIndex")&&!b.multiple)&&(k=[h,n.prop("selected"),i],b.$element.triggerNative("change"))}}),this.$menu.on("click","li."+u.DISABLED+" a, ."+u.POPOVERHEADER+", ."+u.POPOVERHEADER+" :not(.close)",function(c){c.currentTarget==this&&(c.preventDefault(),c.stopPropagation(),b.options.liveSearch&&!a(c.target).hasClass("close")?b.$searchbox.focus():b.$button.focus())}),this.$menuInner.on("click",".divider, .dropdown-header",function(a){a.preventDefault(),a.stopPropagation(),b.options.liveSearch?b.$searchbox.focus():b.$button.focus()}),this.$menu.on("click","."+u.POPOVERHEADER+" .close",function(){b.$button.click()}),this.$searchbox.on("click",function(a){a.stopPropagation()}),this.$menu.on("click",".actions-btn",function(c){b.options.liveSearch?b.$searchbox.focus():b.$button.focus(),c.preventDefault(),c.stopPropagation(),a(this).hasClass("bs-select-all")?b.selectAll():b.deselectAll()}),this.$element.on({change:function(){b.render(),b.$element.trigger("changed.bs.select",k),k=null},focus:function(){b.$button.focus()}})},liveSearchListener:function(){var a=this,b=document.createElement("li");this.$button.on("click.bs.dropdown.data-api",function(){a.$searchbox.val()&&a.$searchbox.val("")}),this.$searchbox.on("click.bs.dropdown.data-api focus.bs.dropdown.data-api touchend.bs.dropdown.data-api",function(a){a.stopPropagation()}),this.$searchbox.on("input propertychange",function(){var c=a.$searchbox.val();if(a.selectpicker.search.map.newIndex={},a.selectpicker.search.map.originalIndex={},a.selectpicker.search.elements=[],a.selectpicker.search.data=[],c){var e,f=[],g=c.toUpperCase(),h={},i=[],j=a._searchStyle(),k=a.options.liveSearchNormalize;a._$lisSelected=a.$menuInner.find(".selected");for(var e=0;e0&&(h[l.headerIndex-1]=!0,i.push(l.headerIndex-1)),h[l.headerIndex]=!0,i.push(l.headerIndex),h[l.lastIndex+1]=!0),h[e]&&"optgroup-label"!==l.type&&i.push(e)}for(var e=0,m=i.length;e=48&&b.which<=57||b.which>=96&&b.which<=105||b.which>=65&&b.which<=90)&&k.$button.trigger("click.bs.dropdown.data-api"),b.which===s.ESCAPE&&e&&(b.preventDefault(),k.$button.trigger("click.bs.dropdown.data-api").focus()),o){if(!l.length)return;c=!0===q?l.index(l.filter(".active")):k.selectpicker.current.map.newIndex[k.activeIndex],void 0===c&&(c=-1),-1!==c&&(f=k.selectpicker.current.elements[c+t],f.classList.remove("active"),f.firstChild&&f.firstChild.classList.remove("active")),b.which===s.ARROW_UP?(-1!==c&&c--,c+t<0&&(c+=l.length),k.selectpicker.view.canHighlight[c+t]||-1===(c=k.selectpicker.view.canHighlight.slice(0,c+t).lastIndexOf(!0)-t)&&(c=l.length-1)):(b.which===s.ARROW_DOWN||n)&&(c++,c+t>=k.selectpicker.view.canHighlight.length&&(c=0),k.selectpicker.view.canHighlight[c+t]||(c=c+1+k.selectpicker.view.canHighlight.slice(c+t+1).indexOf(!0))),b.preventDefault();var x=t+c;b.which===s.ARROW_UP?0===t&&c===l.length-1?(k.$menuInner[0].scrollTop=k.$menuInner[0].scrollHeight,x=k.selectpicker.current.elements.length-1):(g=k.selectpicker.current.data[x],h=g.position-g.height,m=hp)),f=k.selectpicker.current.elements[x],f.classList.add("active"),f.firstChild&&f.firstChild.classList.add("active"),k.activeIndex=k.selectpicker.current.map.originalIndex[x],k.selectpicker.view.currentActive=f,m&&(k.$menuInner[0].scrollTop=h),k.options.liveSearch?k.$searchbox.focus():i.focus()}else if(!i.is("input")&&!w.test(b.which)||b.which===s.SPACE&&k.selectpicker.keydown.keyHistory){var y,z,A=[];b.preventDefault(),k.selectpicker.keydown.keyHistory+=r[b.which],k.selectpicker.keydown.resetKeyHistory.cancel&&clearTimeout(k.selectpicker.keydown.resetKeyHistory.cancel),k.selectpicker.keydown.resetKeyHistory.cancel=k.selectpicker.keydown.resetKeyHistory.start(),z=k.selectpicker.keydown.keyHistory,/^(.)\1+$/.test(z)&&(z=z.charAt(0));for(var B=0;B0?(h=g.position-g.height,m=!0):(h=g.position-k.sizeInfo.menuInnerHeight,m=g.position>p+k.sizeInfo.menuInnerHeight),f=k.selectpicker.current.elements[y],f.classList.add("active"),f.firstChild&&f.firstChild.classList.add("active"),k.activeIndex=A[E],f.firstChild.focus(),m&&(k.$menuInner[0].scrollTop=h),i.focus()}}e&&(b.which===s.SPACE&&!k.selectpicker.keydown.keyHistory||b.which===s.ENTER||b.which===s.TAB&&k.options.selectOnTab)&&(b.which!==s.SPACE&&b.preventDefault(),k.options.liveSearch&&b.which===s.SPACE||(k.$menuInner.find(".active a").trigger("click",!0),i.focus(),k.options.liveSearch||(b.preventDefault(),a(document).data("spaceSelect",!0))))},mobile:function(){this.$element.addClass("mobile-device")},refresh:function(){var b=a.extend({},this.options,this.$element.data());this.options=b,this.selectpicker.main.map.newIndex={},this.selectpicker.main.map.originalIndex={},this.createLi(),this.checkDisabled(),this.render(),this.setStyle(),this.setWidth(),this.setSize(!0),this.$element.trigger("refreshed.bs.select")},hide:function(){this.$newElement.hide()},show:function(){this.$newElement.show()},remove:function(){this.$newElement.remove(),this.$element.remove()},destroy:function(){this.$newElement.before(this.$element).remove(),this.$bsContainer?this.$bsContainer.remove():this.$menu.remove(),this.$element.off(".bs.select").removeData("selectpicker").removeClass("bs-select-hidden selectpicker")}};var y=a.fn.selectpicker;a.fn.selectpicker=g,a.fn.selectpicker.Constructor=x,a.fn.selectpicker.noConflict=function(){return a.fn.selectpicker=y,this},a(document).off("keydown.bs.dropdown.data-api").on("keydown.bs.select",'.bootstrap-select [data-toggle="dropdown"], .bootstrap-select [role="listbox"], .bs-searchbox input',x.prototype.keydown).on("focusin.modal",'.bootstrap-select [data-toggle="dropdown"], .bootstrap-select [role="listbox"], .bs-searchbox input',function(a){a.stopPropagation()}),a(window).on("load.bs.select.data-api",function(){a(".selectpicker").each(function(){var b=a(this);g.call(b,b.data())})})}(a)}); +//# sourceMappingURL=bootstrap-select.js.map \ No newline at end of file diff --git a/dataedit/static/dataedit/jquery.dataTables.min.css b/dataedit/static/dataedit/jquery.dataTables.min.css new file mode 100644 index 000000000..6565b406d --- /dev/null +++ b/dataedit/static/dataedit/jquery.dataTables.min.css @@ -0,0 +1 @@ +table.dataTable{width:100%;margin:0 auto;clear:both;border-collapse:separate;border-spacing:0}table.dataTable thead th,table.dataTable tfoot th{font-weight:bold}table.dataTable thead th,table.dataTable thead td{padding:10px 18px;border-bottom:1px solid #111}table.dataTable thead th:active,table.dataTable thead td:active{outline:none}table.dataTable tfoot th,table.dataTable tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{cursor:pointer;*cursor:hand;background-repeat:no-repeat;background-position:center right}table.dataTable thead .sorting{background-image:url("../images/sort_both.png")}table.dataTable thead .sorting_asc{background-image:url("../images/sort_asc.png")}table.dataTable thead .sorting_desc{background-image:url("../images/sort_desc.png")}table.dataTable thead .sorting_asc_disabled{background-image:url("../images/sort_asc_disabled.png")}table.dataTable thead .sorting_desc_disabled{background-image:url("../images/sort_desc_disabled.png")}table.dataTable tbody tr{background-color:#ffffff}table.dataTable tbody tr.selected{background-color:#B0BED9}table.dataTable tbody th,table.dataTable tbody td{padding:8px 10px}table.dataTable.row-border tbody th,table.dataTable.row-border tbody td,table.dataTable.display tbody th,table.dataTable.display tbody td{border-top:1px solid #ddd}table.dataTable.row-border tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.display tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th,table.dataTable.cell-border tbody td{border-top:1px solid #ddd;border-right:1px solid #ddd}table.dataTable.cell-border tbody tr th:first-child,table.dataTable.cell-border tbody tr td:first-child{border-left:1px solid #ddd}table.dataTable.cell-border tbody tr:first-child th,table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.stripe tbody tr.odd,table.dataTable.display tbody tr.odd{background-color:#f9f9f9}table.dataTable.stripe tbody tr.odd.selected,table.dataTable.display tbody tr.odd.selected{background-color:#acbad4}table.dataTable.hover tbody tr:hover,table.dataTable.display tbody tr:hover{background-color:#f6f6f6}table.dataTable.hover tbody tr:hover.selected,table.dataTable.display tbody tr:hover.selected{background-color:#aab7d1}table.dataTable.order-column tbody tr>.sorting_1,table.dataTable.order-column tbody tr>.sorting_2,table.dataTable.order-column tbody tr>.sorting_3,table.dataTable.display tbody tr>.sorting_1,table.dataTable.display tbody tr>.sorting_2,table.dataTable.display tbody tr>.sorting_3{background-color:#fafafa}table.dataTable.order-column tbody tr.selected>.sorting_1,table.dataTable.order-column tbody tr.selected>.sorting_2,table.dataTable.order-column tbody tr.selected>.sorting_3,table.dataTable.display tbody tr.selected>.sorting_1,table.dataTable.display tbody tr.selected>.sorting_2,table.dataTable.display tbody tr.selected>.sorting_3{background-color:#acbad5}table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.display tbody tr.odd>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.display tbody tr.odd>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:whitesmoke}table.dataTable.display tbody tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1{background-color:#a6b4cd}table.dataTable.display tbody tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a8b5cf}table.dataTable.display tbody tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b7d1}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#fafafa}table.dataTable.display tbody tr.even>.sorting_2,table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fcfcfc}table.dataTable.display tbody tr.even>.sorting_3,table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fefefe}table.dataTable.display tbody tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#acbad5}table.dataTable.display tbody tr.even.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#aebcd6}table.dataTable.display tbody tr.even.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:#eaeaea}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:#ececec}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:#efefef}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{background-color:#a2aec7}table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{background-color:#a3b0c9}table.dataTable.display tbody tr:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{background-color:#a5b2cb}table.dataTable.no-footer{border-bottom:1px solid #111}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable.compact thead th,table.dataTable.compact thead td{padding:4px 17px 4px 4px}table.dataTable.compact tfoot th,table.dataTable.compact tfoot td{padding:4px}table.dataTable.compact tbody th,table.dataTable.compact tbody td{padding:4px}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable,table.dataTable th,table.dataTable td{box-sizing:content-box}.dataTables_wrapper{position:relative;clear:both;*zoom:1;zoom:1}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{margin-left:0.5em}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:0.755em}.dataTables_wrapper .dataTables_paginate{float:right;text-align:right;padding-top:0.25em}.dataTables_wrapper .dataTables_paginate .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:0.5em 1em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;*cursor:hand;color:#333 !important;border:1px solid transparent;border-radius:2px}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{color:#333 !important;border:1px solid #979797;background-color:white;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff), color-stop(100%, #dcdcdc));background:-webkit-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-moz-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-ms-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-o-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:linear-gradient(to bottom, #fff 0%, #dcdcdc 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{cursor:default;color:#666 !important;border:1px solid transparent;background:transparent;box-shadow:none}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{color:white !important;border:1px solid #111;background-color:#585858;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));background:-webkit-linear-gradient(top, #585858 0%, #111 100%);background:-moz-linear-gradient(top, #585858 0%, #111 100%);background:-ms-linear-gradient(top, #585858 0%, #111 100%);background:-o-linear-gradient(top, #585858 0%, #111 100%);background:linear-gradient(to bottom, #585858 0%, #111 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button:active{outline:none;background-color:#2b2b2b;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));background:-webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%);box-shadow:inset 0 0 3px #111}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:white;background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), color-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0)));background:-webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%)}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_processing,.dataTables_wrapper .dataTables_paginate{color:#333}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{*margin-top:-1px;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td{vertical-align:middle}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td>div.dataTables_sizing{height:0;overflow:hidden;margin:0 !important;padding:0 !important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid #111}.dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable,.dataTables_wrapper.no-footer div.dataTables_scrollBody>table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width: 767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.dataTables_wrapper .dataTables_paginate{margin-top:0.5em}}@media screen and (max-width: 640px){.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:0.5em}} diff --git a/dataedit/static/dataedit/jquery.dataTables.min.js b/dataedit/static/dataedit/jquery.dataTables.min.js new file mode 100644 index 000000000..d297f256c --- /dev/null +++ b/dataedit/static/dataedit/jquery.dataTables.min.js @@ -0,0 +1,180 @@ +/*! + Copyright 2008-2019 SpryMedia Ltd. + + This source file is free software, available under the following license: + MIT license - http://datatables.net/license + + This source file is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. + + For details please refer to: http://www.datatables.net + DataTables 1.10.20 + ©2008-2019 SpryMedia Ltd - datatables.net/license +*/ +var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(f,z,y){f instanceof String&&(f=String(f));for(var p=f.length,H=0;H").css({position:"fixed",top:0,left:-1*f(z).scrollLeft(),height:1,width:1, +overflow:"hidden"}).append(f("
    ").css({position:"absolute",top:1,left:1,width:100,overflow:"scroll"}).append(f("
    ").css({width:"100%",height:10}))).appendTo("body"),d=c.children(),e=d.children();b.barWidth=d[0].offsetWidth-d[0].clientWidth;b.bScrollOversize=100===e[0].offsetWidth&&100!==d[0].clientWidth;b.bScrollbarLeft=1!==Math.round(e.offset().left);b.bBounding=c[0].getBoundingClientRect().width?!0:!1;c.remove()}f.extend(a.oBrowser,q.__browser);a.oScroll.iBarWidth=q.__browser.barWidth} +function mb(a,b,c,d,e,h){var g=!1;if(c!==p){var k=c;g=!0}for(;d!==e;)a.hasOwnProperty(d)&&(k=g?b(k,a[d],d,a):a[d],g=!0,d+=h);return k}function Ia(a,b){var c=q.defaults.column,d=a.aoColumns.length;c=f.extend({},q.models.oColumn,c,{nTh:b?b:y.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.mData:d,idx:d});a.aoColumns.push(c);c=a.aoPreSearchCols;c[d]=f.extend({},q.models.oSearch,c[d]);ma(a,d,f(b).data())}function ma(a,b,c){b=a.aoColumns[b]; +var d=a.oClasses,e=f(b.nTh);if(!b.sWidthOrig){b.sWidthOrig=e.attr("width")||null;var h=(e.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/);h&&(b.sWidthOrig=h[1])}c!==p&&null!==c&&(kb(c),L(q.defaults.column,c,!0),c.mDataProp===p||c.mData||(c.mData=c.mDataProp),c.sType&&(b._sManualType=c.sType),c.className&&!c.sClass&&(c.sClass=c.className),c.sClass&&e.addClass(c.sClass),f.extend(b,c),M(b,c,"sWidth","sWidthOrig"),c.iDataSort!==p&&(b.aDataSort=[c.iDataSort]),M(b,c,"aDataSort"));var g=b.mData,k=U(g), +l=b.mRender?U(b.mRender):null;c=function(a){return"string"===typeof a&&-1!==a.indexOf("@")};b._bAttrSrc=f.isPlainObject(g)&&(c(g.sort)||c(g.type)||c(g.filter));b._setter=null;b.fnGetData=function(a,b,c){var d=k(a,b,p,c);return l&&b?l(d,b,a,c):d};b.fnSetData=function(a,b,c){return Q(g)(a,b,c)};"number"!==typeof g&&(a._rowReadObject=!0);a.oFeatures.bSort||(b.bSortable=!1,e.addClass(d.sSortableNone));a=-1!==f.inArray("asc",b.asSorting);c=-1!==f.inArray("desc",b.asSorting);b.bSortable&&(a||c)?a&&!c?(b.sSortingClass= +d.sSortableAsc,b.sSortingClassJUI=d.sSortJUIAscAllowed):!a&&c?(b.sSortingClass=d.sSortableDesc,b.sSortingClassJUI=d.sSortJUIDescAllowed):(b.sSortingClass=d.sSortable,b.sSortingClassJUI=d.sSortJUI):(b.sSortingClass=d.sSortableNone,b.sSortingClassJUI="")}function aa(a){if(!1!==a.oFeatures.bAutoWidth){var b=a.aoColumns;Ja(a);for(var c=0,d=b.length;cn[m])d(k.length+ +n[m],l);else if("string"===typeof n[m]){var w=0;for(g=k.length;wb&&a[e]--; -1!=d&&c===p&&a.splice(d,1)}function ea(a,b,c,d){var e=a.aoData[b],h,g=function(c,d){for(;c.childNodes.length;)c.removeChild(c.firstChild);c.innerHTML=I(a,b,d,"display")};if("dom"!==c&&(c&&"auto"!==c||"dom"!==e.src)){var k=e.anCells;if(k)if(d!==p)g(k[d],d);else for(c=0,h=k.length;c").appendTo(d));var l=0;for(b=k.length;ltr").attr("role","row");f(d).find(">tr>th, >tr>td").addClass(g.sHeaderTH);f(e).find(">tr>th, >tr>td").addClass(g.sFooterTH);if(null!==e)for(a=a.aoFooter[0],l=0,b=a.length;l=a.fnRecordsDisplay()?0:g,a.iInitDisplayStart=-1);g=a._iDisplayStart;var n=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,K(a,!1);else if(!k)a.iDraw++;else if(!a.bDestroying&&!qb(a))return;if(0!==l.length)for(h=k?a.aoData.length:n,k=k?0:g;k",{"class":e?d[0]:""}).append(f("",{valign:"top",colSpan:W(a),"class":a.oClasses.sRowEmpty}).html(c))[0];A(a,"aoHeaderCallback","header",[f(a.nTHead).children("tr")[0], +Oa(a),g,n,l]);A(a,"aoFooterCallback","footer",[f(a.nTFoot).children("tr")[0],Oa(a),g,n,l]);d=f(a.nTBody);d.children().detach();d.append(f(b));A(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1}}function V(a,b){var c=a.oFeatures,d=c.bFilter;c.bSort&&rb(a);d?ia(a,a.oPreviousSearch):a.aiDisplay=a.aiDisplayMaster.slice();!0!==b&&(a._iDisplayStart=0);a._drawHold=b;S(a);a._drawHold=!1}function sb(a){var b=a.oClasses,c=f(a.nTable);c=f("
    ").insertBefore(c);var d=a.oFeatures,e= +f("
    ",{id:a.sTableId+"_wrapper","class":b.sWrapper+(a.nTFoot?"":" "+b.sNoFooter)});a.nHolding=c[0];a.nTableWrapper=e[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var h=a.sDom.split(""),g,k,l,n,m,p,u=0;u")[0];n=h[u+1];if("'"==n||'"'==n){m="";for(p=2;h[u+p]!=n;)m+=h[u+p],p++;"H"==m?m=b.sJUIHeader:"F"==m&&(m=b.sJUIFooter);-1!=m.indexOf(".")?(n=m.split("."),l.id=n[0].substr(1,n[0].length-1),l.className=n[1]):"#"==m.charAt(0)?l.id=m.substr(1, +m.length-1):l.className=m;u+=p}e.append(l);e=f(l)}else if(">"==k)e=e.parent();else if("l"==k&&d.bPaginate&&d.bLengthChange)g=tb(a);else if("f"==k&&d.bFilter)g=ub(a);else if("r"==k&&d.bProcessing)g=vb(a);else if("t"==k)g=wb(a);else if("i"==k&&d.bInfo)g=xb(a);else if("p"==k&&d.bPaginate)g=yb(a);else if(0!==q.ext.feature.length)for(l=q.ext.feature,p=0,n=l.length;p',k=d.sSearch;k=k.match(/_INPUT_/)?k.replace("_INPUT_",g):k+g;b=f("
    ",{id:h.f?null:c+"_filter","class":b.sFilter}).append(f("
    ").addClass(b.sLength);a.aanFeatures.l||(l[0].id=c+"_length");l.children().append(a.oLanguage.sLengthMenu.replace("_MENU_", +e[0].outerHTML));f("select",l).val(a._iDisplayLength).on("change.DT",function(b){Va(a,f(this).val());S(a)});f(a.nTable).on("length.dt.DT",function(b,c,d){a===c&&f("select",l).val(d)});return l[0]}function yb(a){var b=a.sPaginationType,c=q.ext.pager[b],d="function"===typeof c,e=function(a){S(a)};b=f("
    ").addClass(a.oClasses.sPaging+b)[0];var h=a.aanFeatures;d||c.fnInit(a,b,e);h.p||(b.id=a.sTableId+"_paginate",a.aoDrawCallback.push({fn:function(a){if(d){var b=a._iDisplayStart,g=a._iDisplayLength, +f=a.fnRecordsDisplay(),m=-1===g;b=m?0:Math.ceil(b/g);g=m?1:Math.ceil(f/g);f=c(b,g);var p;m=0;for(p=h.p.length;mh&&(d=0)):"first"==b?d=0:"previous"==b?(d=0<=e?d-e:0,0>d&&(d=0)):"next"==b?d+e",{id:a.aanFeatures.r?null:a.sTableId+"_processing","class":a.oClasses.sProcessing}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]}function K(a,b){a.oFeatures.bProcessing&&f(a.aanFeatures.r).css("display",b?"block":"none");A(a,null,"processing",[a,b])}function wb(a){var b=f(a.nTable);b.attr("role","grid");var c=a.oScroll;if(""===c.sX&&""===c.sY)return a.nTable;var d=c.sX,e=c.sY, +h=a.oClasses,g=b.children("caption"),k=g.length?g[0]._captionSide:null,l=f(b[0].cloneNode(!1)),n=f(b[0].cloneNode(!1)),m=b.children("tfoot");m.length||(m=null);l=f("
    ",{"class":h.sScrollWrapper}).append(f("
    ",{"class":h.sScrollHead}).css({overflow:"hidden",position:"relative",border:0,width:d?d?B(d):null:"100%"}).append(f("
    ",{"class":h.sScrollHeadInner}).css({"box-sizing":"content-box",width:c.sXInner||"100%"}).append(l.removeAttr("id").css("margin-left",0).append("top"===k?g:null).append(b.children("thead"))))).append(f("
    ", +{"class":h.sScrollBody}).css({position:"relative",overflow:"auto",width:d?B(d):null}).append(b));m&&l.append(f("
    ",{"class":h.sScrollFoot}).css({overflow:"hidden",border:0,width:d?d?B(d):null:"100%"}).append(f("
    ",{"class":h.sScrollFootInner}).append(n.removeAttr("id").css("margin-left",0).append("bottom"===k?g:null).append(b.children("tfoot")))));b=l.children();var p=b[0];h=b[1];var u=m?b[2]:null;if(d)f(h).on("scroll.DT",function(a){a=this.scrollLeft;p.scrollLeft=a;m&&(u.scrollLeft=a)}); +f(h).css(e&&c.bCollapse?"max-height":"height",e);a.nScrollHead=p;a.nScrollBody=h;a.nScrollFoot=u;a.aoDrawCallback.push({fn:na,sName:"scrolling"});return l[0]}function na(a){var b=a.oScroll,c=b.sX,d=b.sXInner,e=b.sY;b=b.iBarWidth;var h=f(a.nScrollHead),g=h[0].style,k=h.children("div"),l=k[0].style,n=k.children("table");k=a.nScrollBody;var m=f(k),w=k.style,u=f(a.nScrollFoot).children("div"),q=u.children("table"),t=f(a.nTHead),r=f(a.nTable),v=r[0],za=v.style,T=a.nTFoot?f(a.nTFoot):null,A=a.oBrowser, +x=A.bScrollOversize,ac=J(a.aoColumns,"nTh"),Ya=[],y=[],z=[],C=[],G,H=function(a){a=a.style;a.paddingTop="0";a.paddingBottom="0";a.borderTopWidth="0";a.borderBottomWidth="0";a.height=0};var D=k.scrollHeight>k.clientHeight;if(a.scrollBarVis!==D&&a.scrollBarVis!==p)a.scrollBarVis=D,aa(a);else{a.scrollBarVis=D;r.children("thead, tfoot").remove();if(T){var E=T.clone().prependTo(r);var F=T.find("tr");E=E.find("tr")}var I=t.clone().prependTo(r);t=t.find("tr");D=I.find("tr");I.find("th, td").removeAttr("tabindex"); +c||(w.width="100%",h[0].style.width="100%");f.each(ua(a,I),function(b,c){G=ba(a,b);c.style.width=a.aoColumns[G].sWidth});T&&N(function(a){a.style.width=""},E);h=r.outerWidth();""===c?(za.width="100%",x&&(r.find("tbody").height()>k.offsetHeight||"scroll"==m.css("overflow-y"))&&(za.width=B(r.outerWidth()-b)),h=r.outerWidth()):""!==d&&(za.width=B(d),h=r.outerWidth());N(H,D);N(function(a){z.push(a.innerHTML);Ya.push(B(f(a).css("width")))},D);N(function(a,b){-1!==f.inArray(a,ac)&&(a.style.width=Ya[b])}, +t);f(D).height(0);T&&(N(H,E),N(function(a){C.push(a.innerHTML);y.push(B(f(a).css("width")))},E),N(function(a,b){a.style.width=y[b]},F),f(E).height(0));N(function(a,b){a.innerHTML='
    '+z[b]+"
    ";a.childNodes[0].style.height="0";a.childNodes[0].style.overflow="hidden";a.style.width=Ya[b]},D);T&&N(function(a,b){a.innerHTML='
    '+C[b]+"
    ";a.childNodes[0].style.height="0";a.childNodes[0].style.overflow="hidden";a.style.width=y[b]},E);r.outerWidth()< +h?(F=k.scrollHeight>k.offsetHeight||"scroll"==m.css("overflow-y")?h+b:h,x&&(k.scrollHeight>k.offsetHeight||"scroll"==m.css("overflow-y"))&&(za.width=B(F-b)),""!==c&&""===d||O(a,1,"Possible column misalignment",6)):F="100%";w.width=B(F);g.width=B(F);T&&(a.nScrollFoot.style.width=B(F));!e&&x&&(w.height=B(v.offsetHeight+b));c=r.outerWidth();n[0].style.width=B(c);l.width=B(c);d=r.height()>k.clientHeight||"scroll"==m.css("overflow-y");e="padding"+(A.bScrollbarLeft?"Left":"Right");l[e]=d?b+"px":"0px";T&& +(q[0].style.width=B(c),u[0].style.width=B(c),u[0].style[e]=d?b+"px":"0px");r.children("colgroup").insertBefore(r.children("thead"));m.trigger("scroll");!a.bSorted&&!a.bFiltered||a._drawHold||(k.scrollTop=0)}}function N(a,b,c){for(var d=0,e=0,h=b.length,g,k;e").appendTo(k.find("tbody"));k.find("thead, tfoot").remove(); +k.append(f(a.nTHead).clone()).append(f(a.nTFoot).clone());k.find("tfoot th, tfoot td").css("width","");n=ua(a,k.find("thead")[0]);for(q=0;q").css({width:r.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(a.aoData.length)for(q=0;q").css(h|| +e?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(k).appendTo(p);h&&g?k.width(g):h?(k.css("width","auto"),k.removeAttr("width"),k.width()").css("width",B(a)).appendTo(b||y.body);b=a[0].offsetWidth;a.remove();return b}function Kb(a,b){var c=Lb(a,b);if(0>c)return null;var d=a.aoData[c];return d.nTr?d.anCells[b]:f("").html(I(a,c,b,"display"))[0]}function Lb(a,b){for(var c,d=-1,e=-1,h=0,g=a.aoData.length;hd&&(d=c.length,e=h);return e} +function B(a){return null===a?"0px":"number"==typeof a?0>a?"0px":a+"px":a.match(/\d$/)?a+"px":a}function Y(a){var b=[],c=a.aoColumns;var d=a.aaSortingFixed;var e=f.isPlainObject(d);var h=[];var g=function(a){a.length&&!f.isArray(a[0])?h.push(a):f.merge(h,a)};f.isArray(d)&&g(d);e&&d.pre&&g(d.pre);g(a.aaSorting);e&&d.post&&g(d.post);for(a=0;an?1:0; +if(0!==m)return"asc"===l.dir?m:-m}m=c[a];n=c[b];return mn?1:0}):g.sort(function(a,b){var h,g=k.length,f=e[a]._aSortData,l=e[b]._aSortData;for(h=0;hp?1:0})}a.bSorted=!0}function Nb(a){var b=a.aoColumns,c=Y(a);a=a.oLanguage.oAria;for(var d=0,e=b.length;d/g,"");var f=h.nTh;f.removeAttribute("aria-sort"); +h.bSortable&&(0e?e+1:3))}e=0;for(h=d.length;ee?e+1:3))}a.aLastSort=d}function Mb(a,b){var c=a.aoColumns[b],d=q.ext.order[c.sSortDataType],e;d&&(e=d.call(a.oInstance,a,b,ca(a,b)));for(var h,g=q.ext.type.order[c.sType+"-pre"],k=0,f=a.aoData.length;k=h.length?[0,c[1]]:c)}));b.search!==p&&f.extend(a.oPreviousSearch, +Gb(b.search));if(b.columns)for(d=0,e=b.columns.length;d=c&&(b=c-d);b-=b%d;if(-1===d||0>b)b=0;a._iDisplayStart=b}function Ra(a,b){a=a.renderer;var c=q.ext.renderer[b];return f.isPlainObject(a)&&a[b]?c[a[b]]||c._:"string"===typeof a?c[a]||c._:c._}function D(a){return a.oFeatures.bServerSide?"ssp":a.ajax||a.sAjaxSource?"ajax":"dom"}function ka(a,b){var c=Pb.numbers_length,d=Math.floor(c/2);b<=c?a=Z(0,b):a<=d?(a=Z(0,c-2),a.push("ellipsis"),a.push(b-1)):(a>=b-1-d?a=Z(b-(c-2),b):(a=Z(a-d+2,a+d-1),a.push("ellipsis"), +a.push(b-1)),a.splice(0,0,"ellipsis"),a.splice(0,0,0));a.DT_el="span";return a}function Ha(a){f.each({num:function(b){return Da(b,a)},"num-fmt":function(b){return Da(b,a,bb)},"html-num":function(b){return Da(b,a,Ea)},"html-num-fmt":function(b){return Da(b,a,Ea,bb)}},function(b,c){C.type.order[b+a+"-pre"]=c;b.match(/^html\-/)&&(C.type.search[b+a]=C.type.search.html)})}function Qb(a){return function(){var b=[Ca(this[q.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return q.ext.internal[a].apply(this, +b)}}var q=function(a){this.$=function(a,b){return this.api(!0).$(a,b)};this._=function(a,b){return this.api(!0).rows(a,b).data()};this.api=function(a){return a?new v(Ca(this[C.iApiIndex])):new v(this)};this.fnAddData=function(a,b){var c=this.api(!0);a=f.isArray(a)&&(f.isArray(a[0])||f.isPlainObject(a[0]))?c.rows.add(a):c.row.add(a);(b===p||b)&&c.draw();return a.flatten().toArray()};this.fnAdjustColumnSizing=function(a){var b=this.api(!0).columns.adjust(),c=b.settings()[0],d=c.oScroll;a===p||a?b.draw(!1): +(""!==d.sX||""!==d.sY)&&na(c)};this.fnClearTable=function(a){var b=this.api(!0).clear();(a===p||a)&&b.draw()};this.fnClose=function(a){this.api(!0).row(a).child.hide()};this.fnDeleteRow=function(a,b,c){var d=this.api(!0);a=d.rows(a);var e=a.settings()[0],h=e.aoData[a[0][0]];a.remove();b&&b.call(this,e,h);(c===p||c)&&d.draw();return h};this.fnDestroy=function(a){this.api(!0).destroy(a)};this.fnDraw=function(a){this.api(!0).draw(a)};this.fnFilter=function(a,b,c,d,e,f){e=this.api(!0);null===b||b===p? +e.search(a,c,d,f):e.column(b).search(a,c,d,f);e.draw()};this.fnGetData=function(a,b){var c=this.api(!0);if(a!==p){var d=a.nodeName?a.nodeName.toLowerCase():"";return b!==p||"td"==d||"th"==d?c.cell(a,b).data():c.row(a).data()||null}return c.data().toArray()};this.fnGetNodes=function(a){var b=this.api(!0);return a!==p?b.row(a).node():b.rows().nodes().flatten().toArray()};this.fnGetPosition=function(a){var b=this.api(!0),c=a.nodeName.toUpperCase();return"TR"==c?b.row(a).index():"TD"==c||"TH"==c?(a=b.cell(a).index(), +[a.row,a.columnVisible,a.column]):null};this.fnIsOpen=function(a){return this.api(!0).row(a).child.isShown()};this.fnOpen=function(a,b,c){return this.api(!0).row(a).child(b,c).show().child()[0]};this.fnPageChange=function(a,b){a=this.api(!0).page(a);(b===p||b)&&a.draw(!1)};this.fnSetColumnVis=function(a,b,c){a=this.api(!0).column(a).visible(b);(c===p||c)&&a.columns.adjust().draw()};this.fnSettings=function(){return Ca(this[C.iApiIndex])};this.fnSort=function(a){this.api(!0).order(a).draw()};this.fnSortListener= +function(a,b,c){this.api(!0).order.listener(a,b,c)};this.fnUpdate=function(a,b,c,d,e){var h=this.api(!0);c===p||null===c?h.row(b).data(a):h.cell(b,c).data(a);(e===p||e)&&h.columns.adjust();(d===p||d)&&h.draw();return 0};this.fnVersionCheck=C.fnVersionCheck;var b=this,c=a===p,d=this.length;c&&(a={});this.oApi=this.internal=C.internal;for(var e in q.ext.internal)e&&(this[e]=Qb(e));this.each(function(){var e={},g=1").appendTo(w));r.nTHead=b[0];b=w.children("tbody");0===b.length&&(b=f("").appendTo(w));r.nTBody=b[0];b=w.children("tfoot");0===b.length&&0").appendTo(w));0===b.length||0===b.children().length?w.addClass(x.sNoFooter):0/g,cc=/^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/,dc=/(\/|\.|\*|\+|\?|\||\(|\)|\[|\]|\{|\}|\\|\$|\^|\-)/g,bb=/[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfkɃΞ]/gi,P=function(a){return a&&!0!==a&&"-"!==a?!1: +!0},Sb=function(a){var b=parseInt(a,10);return!isNaN(b)&&isFinite(a)?b:null},Tb=function(a,b){cb[b]||(cb[b]=new RegExp(Ua(b),"g"));return"string"===typeof a&&"."!==b?a.replace(/\./g,"").replace(cb[b],"."):a},db=function(a,b,c){var d="string"===typeof a;if(P(a))return!0;b&&d&&(a=Tb(a,b));c&&d&&(a=a.replace(bb,""));return!isNaN(parseFloat(a))&&isFinite(a)},Ub=function(a,b,c){return P(a)?!0:P(a)||"string"===typeof a?db(a.replace(Ea,""),b,c)?!0:null:null},J=function(a,b,c){var d=[],e=0,h=a.length;if(c!== +p)for(;ea.length)){var b=a.slice().sort();for(var c=b[0],d=1, +e=b.length;d")[0],$b=ya.textContent!==p,bc=/<.*?>/g,Sa=q.util.throttle,Wb=[],G=Array.prototype,ec=function(a){var b,c=q.settings,d=f.map(c,function(a,b){return a.nTable});if(a){if(a.nTable&&a.oApi)return[a];if(a.nodeName&&"table"===a.nodeName.toLowerCase()){var e=f.inArray(a,d);return-1!==e?[c[e]]:null}if(a&&"function"===typeof a.settings)return a.settings().toArray();"string"===typeof a?b=f(a):a instanceof f&&(b=a)}else return[];if(b)return b.map(function(a){e=f.inArray(this, +d);return-1!==e?c[e]:null}).toArray()};var v=function(a,b){if(!(this instanceof v))return new v(a,b);var c=[],d=function(a){(a=ec(a))&&c.push.apply(c,a)};if(f.isArray(a))for(var e=0,h=a.length;ea?new v(b[a],this[a]):null},filter:function(a){var b=[];if(G.filter)b=G.filter.call(this,a,this);else for(var c=0,d=this.length;c").addClass(c),f("td",d).addClass(c).html(b)[0].colSpan=W(a),e.push(d[0]))};h(c,d);b._details&&b._details.detach();b._details=f(e);b._detailsShow&&b._details.insertAfter(b.nTr)},hb=function(a,b){var c=a.context;c.length&&(a=c[0].aoData[b!==p?b:a[0]])&&a._details&&(a._details.remove(),a._detailsShow=p,a._details=p)},Yb=function(a,b){var c=a.context;c.length&&a.length&&(a=c[0].aoData[a[0]],a._details&&((a._detailsShow=b)?a._details.insertAfter(a.nTr): +a._details.detach(),ic(c[0])))},ic=function(a){var b=new v(a),c=a.aoData;b.off("draw.dt.DT_details column-visibility.dt.DT_details destroy.dt.DT_details");0g){var m=f.map(d,function(a,b){return a.bVisible?b:null});return[m[m.length+g]]}return[ba(a,g)];case "name":return f.map(e,function(a,b){return a===n[1]?b:null});default:return[]}if(b.nodeName&&b._DT_CellIndex)return[b._DT_CellIndex.column];g=f(h).filter(b).map(function(){return f.inArray(this, +h)}).toArray();if(g.length||!b.nodeName)return g;g=f(b).closest("*[data-dt-column]");return g.length?[g.data("dt-column")]:[]},a,c)};t("columns()",function(a,b){a===p?a="":f.isPlainObject(a)&&(b=a,a="");b=fb(b);var c=this.iterator("table",function(c){return kc(c,a,b)},1);c.selector.cols=a;c.selector.opts=b;return c});x("columns().header()","column().header()",function(a,b){return this.iterator("column",function(a,b){return a.aoColumns[b].nTh},1)});x("columns().footer()","column().footer()",function(a, +b){return this.iterator("column",function(a,b){return a.aoColumns[b].nTf},1)});x("columns().data()","column().data()",function(){return this.iterator("column-rows",Zb,1)});x("columns().dataSrc()","column().dataSrc()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].mData},1)});x("columns().cache()","column().cache()",function(a){return this.iterator("column-rows",function(b,c,d,e,f){return la(b.aoData,f,"search"===a?"_aFilterData":"_aSortData",c)},1)});x("columns().nodes()", +"column().nodes()",function(){return this.iterator("column-rows",function(a,b,c,d,e){return la(a.aoData,e,"anCells",b)},1)});x("columns().visible()","column().visible()",function(a,b){var c=this,d=this.iterator("column",function(b,c){if(a===p)return b.aoColumns[c].bVisible;var d=b.aoColumns,e=d[c],h=b.aoData,n;if(a!==p&&e.bVisible!==a){if(a){var m=f.inArray(!0,J(d,"bVisible"),c+1);d=0;for(n=h.length;dd;return!0};q.isDataTable=q.fnIsDataTable=function(a){var b=f(a).get(0),c=!1;if(a instanceof +q.Api)return!0;f.each(q.settings,function(a,e){a=e.nScrollHead?f("table",e.nScrollHead)[0]:null;var d=e.nScrollFoot?f("table",e.nScrollFoot)[0]:null;if(e.nTable===b||a===b||d===b)c=!0});return c};q.tables=q.fnTables=function(a){var b=!1;f.isPlainObject(a)&&(b=a.api,a=a.visible);var c=f.map(q.settings,function(b){if(!a||a&&f(b.nTable).is(":visible"))return b.nTable});return b?new v(c):c};q.camelToHungarian=L;t("$()",function(a,b){b=this.rows(b).nodes();b=f(b);return f([].concat(b.filter(a).toArray(), +b.find(a).toArray()))});f.each(["on","one","off"],function(a,b){t(b+"()",function(){var a=Array.prototype.slice.call(arguments);a[0]=f.map(a[0].split(/\s/),function(a){return a.match(/\.dt\b/)?a:a+".dt"}).join(" ");var d=f(this.tables().nodes());d[b].apply(d,a);return this})});t("clear()",function(){return this.iterator("table",function(a){qa(a)})});t("settings()",function(){return new v(this.context,this.context)});t("init()",function(){var a=this.context;return a.length?a[0].oInit:null});t("data()", +function(){return this.iterator("table",function(a){return J(a.aoData,"_aData")}).flatten()});t("destroy()",function(a){a=a||!1;return this.iterator("table",function(b){var c=b.nTableWrapper.parentNode,d=b.oClasses,e=b.nTable,h=b.nTBody,g=b.nTHead,k=b.nTFoot,l=f(e);h=f(h);var n=f(b.nTableWrapper),m=f.map(b.aoData,function(a){return a.nTr}),p;b.bDestroying=!0;A(b,"aoDestroyCallback","destroy",[b]);a||(new v(b)).columns().visible(!0);n.off(".DT").find(":not(tbody *)").off(".DT");f(z).off(".DT-"+b.sInstance); +e!=g.parentNode&&(l.children("thead").detach(),l.append(g));k&&e!=k.parentNode&&(l.children("tfoot").detach(),l.append(k));b.aaSorting=[];b.aaSortingFixed=[];Aa(b);f(m).removeClass(b.asStripeClasses.join(" "));f("th, td",g).removeClass(d.sSortable+" "+d.sSortableAsc+" "+d.sSortableDesc+" "+d.sSortableNone);h.children().detach();h.append(m);g=a?"remove":"detach";l[g]();n[g]();!a&&c&&(c.insertBefore(e,b.nTableReinsertBefore),l.css("width",b.sDestroyWidth).removeClass(d.sTable),(p=b.asDestroyStripes.length)&& +h.children().each(function(a){f(this).addClass(b.asDestroyStripes[a%p])}));c=f.inArray(b,q.settings);-1!==c&&q.settings.splice(c,1)})});f.each(["column","row","cell"],function(a,b){t(b+"s().every()",function(a){var c=this.selector.opts,e=this;return this.iterator(b,function(d,f,k,l,n){a.call(e[b](f,"cell"===b?k:c,"cell"===b?c:p),f,k,l,n)})})});t("i18n()",function(a,b,c){var d=this.context[0];a=U(a)(d.oLanguage);a===p&&(a=b);c!==p&&f.isPlainObject(a)&&(a=a[c]!==p?a[c]:a._);return a.replace("%d",c)}); +q.version="1.10.20";q.settings=[];q.models={};q.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0};q.models.oRow={nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:"",src:null,idx:-1};q.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,sClass:null,sContentPadding:null, +sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null};q.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,bSort:!0,bSortMulti:!0,bSortCellsTop:!1, +bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(a){return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g,this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(a){try{return JSON.parse((-1===a.iStateDuration?sessionStorage:localStorage).getItem("DataTables_"+a.sInstance+"_"+location.pathname))}catch(b){}}, +fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(a,b){try{(-1===a.iStateDuration?sessionStorage:localStorage).setItem("DataTables_"+a.sInstance+"_"+location.pathname,JSON.stringify(b))}catch(c){}},fnStateSaveParams:null,iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},oPaginate:{sFirst:"First",sLast:"Last", +sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sDecimal:"",sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"},oSearch:f.extend({},q.models.oSearch),sAjaxDataProp:"data", +sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET",renderer:null,rowId:"DT_RowId"};H(q.defaults);q.defaults.column={aDataSort:null,iDataSort:-1,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};H(q.defaults.column);q.models.oSettings= +{oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],aoFooter:[],oPreviousSearch:{}, +aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:"two_button",iStateDuration:0, +aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,json:p,oAjaxData:p,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return"ssp"==D(this)?1*this._iRecordsTotal: +this.aiDisplayMaster.length},fnRecordsDisplay:function(){return"ssp"==D(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var a=this._iDisplayLength,b=this._iDisplayStart,c=b+a,d=this.aiDisplay.length,e=this.oFeatures,f=e.bPaginate;return e.bServerSide?!1===f||-1===a?b+d:Math.min(b+a,this._iRecordsDisplay):!f||c>d||-1===a?d:c},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null};q.ext=C={buttons:{}, +classes:{},builder:"-source-",errMode:"alert",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:q.fnVersionCheck,iApiIndex:0,oJUIClasses:{},sVersion:q.version};f.extend(C,{afnFiltering:C.search,aTypes:C.type.detect,ofnSearch:C.type.search,oSort:C.type.order,afnSortData:C.order,aoFeatures:C.feature,oApi:C.internal,oStdClasses:C.classes,oPagination:C.pager}); +f.extend(q.ext.classes,{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled", +sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"", +sJUIHeader:"",sJUIFooter:""});var Pb=q.ext.pager;f.extend(Pb,{simple:function(a,b){return["previous","next"]},full:function(a,b){return["first","previous","next","last"]},numbers:function(a,b){return[ka(a,b)]},simple_numbers:function(a,b){return["previous",ka(a,b),"next"]},full_numbers:function(a,b){return["first","previous",ka(a,b),"next","last"]},first_last_numbers:function(a,b){return["first",ka(a,b),"last"]},_numbers:ka,numbers_length:7});f.extend(!0,q.ext.renderer,{pageButton:{_:function(a,b, +c,d,e,h){var g=a.oClasses,k=a.oLanguage.oPaginate,l=a.oLanguage.oAria.paginate||{},n,m,q=0,t=function(b,d){var p,r=g.sPageButtonDisabled,u=function(b){Xa(a,b.data.action,!0)};var w=0;for(p=d.length;w").appendTo(b);t(x,v)}else{n=null;m=v;x=a.iTabIndex;switch(v){case "ellipsis":b.append('');break;case "first":n=k.sFirst;0===e&&(x=-1,m+=" "+r);break;case "previous":n=k.sPrevious;0===e&&(x=-1,m+= +" "+r);break;case "next":n=k.sNext;e===h-1&&(x=-1,m+=" "+r);break;case "last":n=k.sLast;e===h-1&&(x=-1,m+=" "+r);break;default:n=v+1,m=e===v?g.sPageButtonActive:""}null!==n&&(x=f("",{"class":g.sPageButton+" "+m,"aria-controls":a.sTableId,"aria-label":l[v],"data-dt-idx":q,tabindex:x,id:0===c&&"string"===typeof v?a.sTableId+"_"+v:null}).html(n).appendTo(b),$a(x,{action:v},u),q++)}}};try{var v=f(b).find(y.activeElement).data("dt-idx")}catch(mc){}t(f(b).empty(),d);v!==p&&f(b).find("[data-dt-idx="+ +v+"]").focus()}}});f.extend(q.ext.type.detect,[function(a,b){b=b.oLanguage.sDecimal;return db(a,b)?"num"+b:null},function(a,b){if(a&&!(a instanceof Date)&&!cc.test(a))return null;b=Date.parse(a);return null!==b&&!isNaN(b)||P(a)?"date":null},function(a,b){b=b.oLanguage.sDecimal;return db(a,b,!0)?"num-fmt"+b:null},function(a,b){b=b.oLanguage.sDecimal;return Ub(a,b)?"html-num"+b:null},function(a,b){b=b.oLanguage.sDecimal;return Ub(a,b,!0)?"html-num-fmt"+b:null},function(a,b){return P(a)||"string"=== +typeof a&&-1!==a.indexOf("<")?"html":null}]);f.extend(q.ext.type.search,{html:function(a){return P(a)?a:"string"===typeof a?a.replace(Rb," ").replace(Ea,""):""},string:function(a){return P(a)?a:"string"===typeof a?a.replace(Rb," "):a}});var Da=function(a,b,c,d){if(0!==a&&(!a||"-"===a))return-Infinity;b&&(a=Tb(a,b));a.replace&&(c&&(a=a.replace(c,"")),d&&(a=a.replace(d,"")));return 1*a};f.extend(C.type.order,{"date-pre":function(a){a=Date.parse(a);return isNaN(a)?-Infinity:a},"html-pre":function(a){return P(a)? +"":a.replace?a.replace(/<.*?>/g,"").toLowerCase():a+""},"string-pre":function(a){return P(a)?"":"string"===typeof a?a.toLowerCase():a.toString?a.toString():""},"string-asc":function(a,b){return ab?1:0},"string-desc":function(a,b){return ab?-1:0}});Ha("");f.extend(!0,q.ext.renderer,{header:{_:function(a,b,c,d){f(a.nTable).on("order.dt.DT",function(e,f,g,k){a===f&&(e=c.idx,b.removeClass(c.sSortingClass+" "+d.sSortAsc+" "+d.sSortDesc).addClass("asc"==k[e]?d.sSortAsc:"desc"==k[e]?d.sSortDesc: +c.sSortingClass))})},jqueryui:function(a,b,c,d){f("
    ").addClass(d.sSortJUIWrapper).append(b.contents()).append(f("").addClass(d.sSortIcon+" "+c.sSortingClassJUI)).appendTo(b);f(a.nTable).on("order.dt.DT",function(e,f,g,k){a===f&&(e=c.idx,b.removeClass(d.sSortAsc+" "+d.sSortDesc).addClass("asc"==k[e]?d.sSortAsc:"desc"==k[e]?d.sSortDesc:c.sSortingClass),b.find("span."+d.sSortIcon).removeClass(d.sSortJUIAsc+" "+d.sSortJUIDesc+" "+d.sSortJUI+" "+d.sSortJUIAscAllowed+" "+d.sSortJUIDescAllowed).addClass("asc"== +k[e]?d.sSortJUIAsc:"desc"==k[e]?d.sSortJUIDesc:c.sSortingClassJUI))})}}});var ib=function(a){return"string"===typeof a?a.replace(//g,">").replace(/"/g,"""):a};q.render={number:function(a,b,c,d,e){return{display:function(f){if("number"!==typeof f&&"string"!==typeof f)return f;var g=0>f?"-":"",h=parseFloat(f);if(isNaN(h))return ib(f);h=h.toFixed(c);f=Math.abs(h);h=parseInt(f,10);f=c?b+(f-h).toFixed(c).substring(2):"";return g+(d||"")+h.toString().replace(/\B(?=(\d{3})+(?!\d))/g, +a)+f+(e||"")}}},text:function(){return{display:ib,filter:ib}}};f.extend(q.ext.internal,{_fnExternApiFunc:Qb,_fnBuildAjax:va,_fnAjaxUpdate:qb,_fnAjaxParameters:zb,_fnAjaxUpdateDraw:Ab,_fnAjaxDataSrc:wa,_fnAddColumn:Ia,_fnColumnOptions:ma,_fnAdjustColumnSizing:aa,_fnVisibleToColumnIndex:ba,_fnColumnIndexToVisible:ca,_fnVisbleColumns:W,_fnGetColumns:oa,_fnColumnTypes:Ka,_fnApplyColumnDefs:nb,_fnHungarianMap:H,_fnCamelToHungarian:L,_fnLanguageCompat:Ga,_fnBrowserDetect:lb,_fnAddData:R,_fnAddTr:pa,_fnNodeToDataIndex:function(a, +b){return b._DT_RowIndex!==p?b._DT_RowIndex:null},_fnNodeToColumnIndex:function(a,b,c){return f.inArray(c,a.aoData[b].anCells)},_fnGetCellData:I,_fnSetCellData:ob,_fnSplitObjNotation:Na,_fnGetObjectDataFn:U,_fnSetObjectDataFn:Q,_fnGetDataMaster:Oa,_fnClearTable:qa,_fnDeleteIndex:ra,_fnInvalidate:ea,_fnGetRowElements:Ma,_fnCreateTr:La,_fnBuildHead:pb,_fnDrawHead:ha,_fnDraw:S,_fnReDraw:V,_fnAddOptionsHtml:sb,_fnDetectHeader:fa,_fnGetUniqueThs:ua,_fnFeatureHtmlFilter:ub,_fnFilterComplete:ia,_fnFilterCustom:Db, +_fnFilterColumn:Cb,_fnFilter:Bb,_fnFilterCreateSearch:Ta,_fnEscapeRegex:Ua,_fnFilterData:Eb,_fnFeatureHtmlInfo:xb,_fnUpdateInfo:Hb,_fnInfoMacros:Ib,_fnInitialise:ja,_fnInitComplete:xa,_fnLengthChange:Va,_fnFeatureHtmlLength:tb,_fnFeatureHtmlPaginate:yb,_fnPageChange:Xa,_fnFeatureHtmlProcessing:vb,_fnProcessingDisplay:K,_fnFeatureHtmlTable:wb,_fnScrollDraw:na,_fnApplyToChildren:N,_fnCalculateColumnWidths:Ja,_fnThrottle:Sa,_fnConvertToWidth:Jb,_fnGetWidestNode:Kb,_fnGetMaxLenString:Lb,_fnStringToCss:B, +_fnSortFlatten:Y,_fnSort:rb,_fnSortAria:Nb,_fnSortListener:Za,_fnSortAttachListener:Qa,_fnSortingClasses:Aa,_fnSortData:Mb,_fnSaveState:Ba,_fnLoadState:Ob,_fnSettingsFromNode:Ca,_fnLog:O,_fnMap:M,_fnBindAction:$a,_fnCallbackReg:E,_fnCallbackFire:A,_fnLengthOverflow:Wa,_fnRenderer:Ra,_fnDataSource:D,_fnRowAttributes:Pa,_fnExtend:ab,_fnCalculateEnd:function(){}});f.fn.dataTable=q;q.$=f;f.fn.dataTableSettings=q.settings;f.fn.dataTableExt=q.ext;f.fn.DataTable=function(a){return f(this).dataTable(a).api()}; +f.each(q,function(a,b){f.fn.DataTable[a]=b});return f.fn.dataTable}); diff --git a/dataedit/static/dataedit/json5.min.js b/dataedit/static/dataedit/json5.min.js new file mode 100644 index 000000000..da63a9da3 --- /dev/null +++ b/dataedit/static/dataedit/json5.min.js @@ -0,0 +1 @@ +!function(u,D){"object"==typeof exports&&"undefined"!=typeof module?module.exports=D():"function"==typeof define&&define.amd?define(D):u.JSON5=D()}(this,function(){"use strict";function u(u,D){return u(D={exports:{}},D.exports),D.exports}var D=u(function(u){var D=u.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=D)}),e=u(function(u){var D=u.exports={version:"2.6.5"};"number"==typeof __e&&(__e=D)}),t=(e.version,function(u){return"object"==typeof u?null!==u:"function"==typeof u}),r=function(u){if(!t(u))throw TypeError(u+" is not an object!");return u},F=function(u){try{return!!u()}catch(u){return!0}},n=!F(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}),C=D.document,A=t(C)&&t(C.createElement),i=!n&&!F(function(){return 7!=Object.defineProperty((u="div",A?C.createElement(u):{}),"a",{get:function(){return 7}}).a;var u}),E=Object.defineProperty,o={f:n?Object.defineProperty:function(u,D,e){if(r(u),D=function(u,D){if(!t(u))return u;var e,r;if(D&&"function"==typeof(e=u.toString)&&!t(r=e.call(u)))return r;if("function"==typeof(e=u.valueOf)&&!t(r=e.call(u)))return r;if(!D&&"function"==typeof(e=u.toString)&&!t(r=e.call(u)))return r;throw TypeError("Can't convert object to primitive value")}(D,!0),r(e),i)try{return E(u,D,e)}catch(u){}if("get"in e||"set"in e)throw TypeError("Accessors not supported!");return"value"in e&&(u[D]=e.value),u}},a=n?function(u,D,e){return o.f(u,D,function(u,D){return{enumerable:!(1&u),configurable:!(2&u),writable:!(4&u),value:D}}(1,e))}:function(u,D,e){return u[D]=e,u},c={}.hasOwnProperty,B=function(u,D){return c.call(u,D)},s=0,f=Math.random(),l=u(function(u){var t=D["__core-js_shared__"]||(D["__core-js_shared__"]={});(u.exports=function(u,D){return t[u]||(t[u]=void 0!==D?D:{})})("versions",[]).push({version:e.version,mode:"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})})("native-function-to-string",Function.toString),d=u(function(u){var t,r="Symbol(".concat(void 0===(t="src")?"":t,")_",(++s+f).toString(36)),F=(""+l).split("toString");e.inspectSource=function(u){return l.call(u)},(u.exports=function(u,e,t,n){var C="function"==typeof t;C&&(B(t,"name")||a(t,"name",e)),u[e]!==t&&(C&&(B(t,r)||a(t,r,u[e]?""+u[e]:F.join(String(e)))),u===D?u[e]=t:n?u[e]?u[e]=t:a(u,e,t):(delete u[e],a(u,e,t)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[r]||l.call(this)})}),v=function(u,D,e){if(function(u){if("function"!=typeof u)throw TypeError(u+" is not a function!")}(u),void 0===D)return u;switch(e){case 1:return function(e){return u.call(D,e)};case 2:return function(e,t){return u.call(D,e,t)};case 3:return function(e,t,r){return u.call(D,e,t,r)}}return function(){return u.apply(D,arguments)}},p=function(u,t,r){var F,n,C,A,i=u&p.F,E=u&p.G,o=u&p.S,c=u&p.P,B=u&p.B,s=E?D:o?D[t]||(D[t]={}):(D[t]||{}).prototype,f=E?e:e[t]||(e[t]={}),l=f.prototype||(f.prototype={});for(F in E&&(r=t),r)C=((n=!i&&s&&void 0!==s[F])?s:r)[F],A=B&&n?v(C,D):c&&"function"==typeof C?v(Function.call,C):C,s&&d(s,F,C,u&p.U),f[F]!=C&&a(f,F,A),c&&l[F]!=C&&(l[F]=C)};D.core=e,p.F=1,p.G=2,p.S=4,p.P=8,p.B=16,p.W=32,p.U=64,p.R=128;var h,m=p,g=Math.ceil,y=Math.floor,w=function(u){return isNaN(u=+u)?0:(u>0?y:g)(u)},S=(h=!1,function(u,D){var e,t,r=String(function(u){if(null==u)throw TypeError("Can't call method on "+u);return u}(u)),F=w(D),n=r.length;return F<0||F>=n?h?"":void 0:(e=r.charCodeAt(F))<55296||e>56319||F+1===n||(t=r.charCodeAt(F+1))<56320||t>57343?h?r.charAt(F):e:h?r.slice(F,F+2):t-56320+(e-55296<<10)+65536});m(m.P,"String",{codePointAt:function(u){return S(this,u)}});e.String.codePointAt;var b=Math.max,x=Math.min,N=String.fromCharCode,P=String.fromCodePoint;m(m.S+m.F*(!!P&&1!=P.length),"String",{fromCodePoint:function(u){for(var D,e,t,r=arguments,F=[],n=arguments.length,C=0;n>C;){if(D=+r[C++],t=1114111,((e=w(e=D))<0?b(e+t,0):x(e,t))!==D)throw RangeError(D+" is not a valid code point");F.push(D<65536?N(D):N(55296+((D-=65536)>>10),D%1024+56320))}return F.join("")}});e.String.fromCodePoint;var _,I,O,j,V,J,M,k,L,T,z,H,$,R,G={Space_Separator:/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,ID_Start:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,ID_Continue:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/},U={isSpaceSeparator:function(u){return"string"==typeof u&&G.Space_Separator.test(u)},isIdStartChar:function(u){return"string"==typeof u&&(u>="a"&&u<="z"||u>="A"&&u<="Z"||"$"===u||"_"===u||G.ID_Start.test(u))},isIdContinueChar:function(u){return"string"==typeof u&&(u>="a"&&u<="z"||u>="A"&&u<="Z"||u>="0"&&u<="9"||"$"===u||"_"===u||"‌"===u||"‍"===u||G.ID_Continue.test(u))},isDigit:function(u){return"string"==typeof u&&/[0-9]/.test(u)},isHexDigit:function(u){return"string"==typeof u&&/[0-9A-Fa-f]/.test(u)}};function Z(){for(T="default",z="",H=!1,$=1;;){R=q();var u=X[T]();if(u)return u}}function q(){if(_[j])return String.fromCodePoint(_.codePointAt(j))}function W(){var u=q();return"\n"===u?(V++,J=0):u?J+=u.length:J++,u&&(j+=u.length),u}var X={default:function(){switch(R){case"\t":case"\v":case"\f":case" ":case" ":case"\ufeff":case"\n":case"\r":case"\u2028":case"\u2029":return void W();case"/":return W(),void(T="comment");case void 0:return W(),K("eof")}if(!U.isSpaceSeparator(R))return X[I]();W()},comment:function(){switch(R){case"*":return W(),void(T="multiLineComment");case"/":return W(),void(T="singleLineComment")}throw tu(W())},multiLineComment:function(){switch(R){case"*":return W(),void(T="multiLineCommentAsterisk");case void 0:throw tu(W())}W()},multiLineCommentAsterisk:function(){switch(R){case"*":return void W();case"/":return W(),void(T="default");case void 0:throw tu(W())}W(),T="multiLineComment"},singleLineComment:function(){switch(R){case"\n":case"\r":case"\u2028":case"\u2029":return W(),void(T="default");case void 0:return W(),K("eof")}W()},value:function(){switch(R){case"{":case"[":return K("punctuator",W());case"n":return W(),Q("ull"),K("null",null);case"t":return W(),Q("rue"),K("boolean",!0);case"f":return W(),Q("alse"),K("boolean",!1);case"-":case"+":return"-"===W()&&($=-1),void(T="sign");case".":return z=W(),void(T="decimalPointLeading");case"0":return z=W(),void(T="zero");case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return z=W(),void(T="decimalInteger");case"I":return W(),Q("nfinity"),K("numeric",1/0);case"N":return W(),Q("aN"),K("numeric",NaN);case'"':case"'":return H='"'===W(),z="",void(T="string")}throw tu(W())},identifierNameStartEscape:function(){if("u"!==R)throw tu(W());W();var u=Y();switch(u){case"$":case"_":break;default:if(!U.isIdStartChar(u))throw Fu()}z+=u,T="identifierName"},identifierName:function(){switch(R){case"$":case"_":case"‌":case"‍":return void(z+=W());case"\\":return W(),void(T="identifierNameEscape")}if(!U.isIdContinueChar(R))return K("identifier",z);z+=W()},identifierNameEscape:function(){if("u"!==R)throw tu(W());W();var u=Y();switch(u){case"$":case"_":case"‌":case"‍":break;default:if(!U.isIdContinueChar(u))throw Fu()}z+=u,T="identifierName"},sign:function(){switch(R){case".":return z=W(),void(T="decimalPointLeading");case"0":return z=W(),void(T="zero");case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return z=W(),void(T="decimalInteger");case"I":return W(),Q("nfinity"),K("numeric",$*(1/0));case"N":return W(),Q("aN"),K("numeric",NaN)}throw tu(W())},zero:function(){switch(R){case".":return z+=W(),void(T="decimalPoint");case"e":case"E":return z+=W(),void(T="decimalExponent");case"x":case"X":return z+=W(),void(T="hexadecimal")}return K("numeric",0*$)},decimalInteger:function(){switch(R){case".":return z+=W(),void(T="decimalPoint");case"e":case"E":return z+=W(),void(T="decimalExponent")}if(!U.isDigit(R))return K("numeric",$*Number(z));z+=W()},decimalPointLeading:function(){if(U.isDigit(R))return z+=W(),void(T="decimalFraction");throw tu(W())},decimalPoint:function(){switch(R){case"e":case"E":return z+=W(),void(T="decimalExponent")}return U.isDigit(R)?(z+=W(),void(T="decimalFraction")):K("numeric",$*Number(z))},decimalFraction:function(){switch(R){case"e":case"E":return z+=W(),void(T="decimalExponent")}if(!U.isDigit(R))return K("numeric",$*Number(z));z+=W()},decimalExponent:function(){switch(R){case"+":case"-":return z+=W(),void(T="decimalExponentSign")}if(U.isDigit(R))return z+=W(),void(T="decimalExponentInteger");throw tu(W())},decimalExponentSign:function(){if(U.isDigit(R))return z+=W(),void(T="decimalExponentInteger");throw tu(W())},decimalExponentInteger:function(){if(!U.isDigit(R))return K("numeric",$*Number(z));z+=W()},hexadecimal:function(){if(U.isHexDigit(R))return z+=W(),void(T="hexadecimalInteger");throw tu(W())},hexadecimalInteger:function(){if(!U.isHexDigit(R))return K("numeric",$*Number(z));z+=W()},string:function(){switch(R){case"\\":return W(),void(z+=function(){switch(q()){case"b":return W(),"\b";case"f":return W(),"\f";case"n":return W(),"\n";case"r":return W(),"\r";case"t":return W(),"\t";case"v":return W(),"\v";case"0":if(W(),U.isDigit(q()))throw tu(W());return"\0";case"x":return W(),function(){var u="",D=q();if(!U.isHexDigit(D))throw tu(W());if(u+=W(),D=q(),!U.isHexDigit(D))throw tu(W());return u+=W(),String.fromCodePoint(parseInt(u,16))}();case"u":return W(),Y();case"\n":case"\u2028":case"\u2029":return W(),"";case"\r":return W(),"\n"===q()&&W(),"";case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case void 0:throw tu(W())}return W()}());case'"':return H?(W(),K("string",z)):void(z+=W());case"'":return H?void(z+=W()):(W(),K("string",z));case"\n":case"\r":throw tu(W());case"\u2028":case"\u2029":!function(u){console.warn("JSON5: '"+nu(u)+"' in strings is not valid ECMAScript; consider escaping")}(R);break;case void 0:throw tu(W())}z+=W()},start:function(){switch(R){case"{":case"[":return K("punctuator",W())}T="value"},beforePropertyName:function(){switch(R){case"$":case"_":return z=W(),void(T="identifierName");case"\\":return W(),void(T="identifierNameStartEscape");case"}":return K("punctuator",W());case'"':case"'":return H='"'===W(),void(T="string")}if(U.isIdStartChar(R))return z+=W(),void(T="identifierName");throw tu(W())},afterPropertyName:function(){if(":"===R)return K("punctuator",W());throw tu(W())},beforePropertyValue:function(){T="value"},afterPropertyValue:function(){switch(R){case",":case"}":return K("punctuator",W())}throw tu(W())},beforeArrayValue:function(){if("]"===R)return K("punctuator",W());T="value"},afterArrayValue:function(){switch(R){case",":case"]":return K("punctuator",W())}throw tu(W())},end:function(){throw tu(W())}};function K(u,D){return{type:u,value:D,line:V,column:J}}function Q(u){for(var D=0,e=u;D0;){var e=q();if(!U.isHexDigit(e))throw tu(W());u+=W()}return String.fromCodePoint(parseInt(u,16))}var uu={start:function(){if("eof"===M.type)throw ru();Du()},beforePropertyName:function(){switch(M.type){case"identifier":case"string":return k=M.value,void(I="afterPropertyName");case"punctuator":return void eu();case"eof":throw ru()}},afterPropertyName:function(){if("eof"===M.type)throw ru();I="beforePropertyValue"},beforePropertyValue:function(){if("eof"===M.type)throw ru();Du()},beforeArrayValue:function(){if("eof"===M.type)throw ru();"punctuator"!==M.type||"]"!==M.value?Du():eu()},afterPropertyValue:function(){if("eof"===M.type)throw ru();switch(M.value){case",":return void(I="beforePropertyName");case"}":eu()}},afterArrayValue:function(){if("eof"===M.type)throw ru();switch(M.value){case",":return void(I="beforeArrayValue");case"]":eu()}},end:function(){}};function Du(){var u;switch(M.type){case"punctuator":switch(M.value){case"{":u={};break;case"[":u=[]}break;case"null":case"boolean":case"numeric":case"string":u=M.value}if(void 0===L)L=u;else{var D=O[O.length-1];Array.isArray(D)?D.push(u):D[k]=u}if(null!==u&&"object"==typeof u)O.push(u),I=Array.isArray(u)?"beforeArrayValue":"beforePropertyName";else{var e=O[O.length-1];I=null==e?"end":Array.isArray(e)?"afterArrayValue":"afterPropertyValue"}}function eu(){O.pop();var u=O[O.length-1];I=null==u?"end":Array.isArray(u)?"afterArrayValue":"afterPropertyValue"}function tu(u){return Cu(void 0===u?"JSON5: invalid end of input at "+V+":"+J:"JSON5: invalid character '"+nu(u)+"' at "+V+":"+J)}function ru(){return Cu("JSON5: invalid end of input at "+V+":"+J)}function Fu(){return Cu("JSON5: invalid identifier character at "+V+":"+(J-=5))}function nu(u){var D={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(D[u])return D[u];if(u<" "){var e=u.charCodeAt(0).toString(16);return"\\x"+("00"+e).substring(e.length)}return u}function Cu(u){var D=new SyntaxError(u);return D.lineNumber=V,D.columnNumber=J,D}return{parse:function(u,D){_=String(u),I="start",O=[],j=0,V=1,J=0,M=void 0,k=void 0,L=void 0;do{M=Z(),uu[I]()}while("eof"!==M.type);return"function"==typeof D?function u(D,e,t){var r=D[e];if(null!=r&&"object"==typeof r)for(var F in r){var n=u(r,F,t);void 0===n?delete r[F]:r[F]=n}return t.call(D,e,r)}({"":L},"",D):L},stringify:function(u,D,e){var t,r,F,n=[],C="",A="";if(null==D||"object"!=typeof D||Array.isArray(D)||(e=D.space,F=D.quote,D=D.replacer),"function"==typeof D)r=D;else if(Array.isArray(D)){t=[];for(var i=0,E=D;i0&&(e=Math.min(10,Math.floor(e)),A=" ".substr(0,e)):"string"==typeof e&&(A=e.substr(0,10)),c("",{"":u});function c(u,D){var e=D[u];switch(null!=e&&("function"==typeof e.toJSON5?e=e.toJSON5(u):"function"==typeof e.toJSON&&(e=e.toJSON(u))),r&&(e=r.call(D,u,e)),e instanceof Number?e=Number(e):e instanceof String?e=String(e):e instanceof Boolean&&(e=e.valueOf()),e){case null:return"null";case!0:return"true";case!1:return"false"}return"string"==typeof e?B(e):"number"==typeof e?String(e):"object"==typeof e?Array.isArray(e)?function(u){if(n.indexOf(u)>=0)throw TypeError("Converting circular structure to JSON5");n.push(u);var D=C;C+=A;for(var e,t=[],r=0;r=0)throw TypeError("Converting circular structure to JSON5");n.push(u);var D=C;C+=A;for(var e,r,F=t||Object.keys(u),i=[],E=0,o=F;E svg, +.leaflet-pane > canvas, +.leaflet-zoom-box, +.leaflet-image-layer, +.leaflet-layer { + position: absolute; + left: 0; + top: 0; + } +.leaflet-container { + overflow: hidden; + } +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + -webkit-user-drag: none; + } +/* Safari renders non-retina tile on retina better with this, but Chrome is worse */ +.leaflet-safari .leaflet-tile { + image-rendering: -webkit-optimize-contrast; + } +/* hack that prevents hw layers "stretching" when loading new tiles */ +.leaflet-safari .leaflet-tile-container { + width: 1600px; + height: 1600px; + -webkit-transform-origin: 0 0; + } +.leaflet-marker-icon, +.leaflet-marker-shadow { + display: block; + } +/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */ +/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */ +.leaflet-container .leaflet-overlay-pane svg, +.leaflet-container .leaflet-marker-pane img, +.leaflet-container .leaflet-shadow-pane img, +.leaflet-container .leaflet-tile-pane img, +.leaflet-container img.leaflet-image-layer { + max-width: none !important; + max-height: none !important; + } + +.leaflet-container.leaflet-touch-zoom { + -ms-touch-action: pan-x pan-y; + touch-action: pan-x pan-y; + } +.leaflet-container.leaflet-touch-drag { + -ms-touch-action: pinch-zoom; + /* Fallback for FF which doesn't support pinch-zoom */ + touch-action: none; + touch-action: pinch-zoom; +} +.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom { + -ms-touch-action: none; + touch-action: none; +} +.leaflet-container { + -webkit-tap-highlight-color: transparent; +} +.leaflet-container a { + -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4); +} +.leaflet-tile { + filter: inherit; + visibility: hidden; + } +.leaflet-tile-loaded { + visibility: inherit; + } +.leaflet-zoom-box { + width: 0; + height: 0; + -moz-box-sizing: border-box; + box-sizing: border-box; + z-index: 800; + } +/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ +.leaflet-overlay-pane svg { + -moz-user-select: none; + } + +.leaflet-pane { z-index: 400; } + +.leaflet-tile-pane { z-index: 200; } +.leaflet-overlay-pane { z-index: 400; } +.leaflet-shadow-pane { z-index: 500; } +.leaflet-marker-pane { z-index: 600; } +.leaflet-tooltip-pane { z-index: 650; } +.leaflet-popup-pane { z-index: 700; } + +.leaflet-map-pane canvas { z-index: 100; } +.leaflet-map-pane svg { z-index: 200; } + +.leaflet-vml-shape { + width: 1px; + height: 1px; + } +.lvml { + behavior: url(#default#VML); + display: inline-block; + position: absolute; + } + + +/* control positioning */ + +.leaflet-control { + position: relative; + z-index: 800; + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; + } +.leaflet-top, +.leaflet-bottom { + position: absolute; + z-index: 1000; + pointer-events: none; + } +.leaflet-top { + top: 0; + } +.leaflet-right { + right: 0; + } +.leaflet-bottom { + bottom: 0; + } +.leaflet-left { + left: 0; + } +.leaflet-control { + float: left; + clear: both; + } +.leaflet-right .leaflet-control { + float: right; + } +.leaflet-top .leaflet-control { + margin-top: 10px; + } +.leaflet-bottom .leaflet-control { + margin-bottom: 10px; + } +.leaflet-left .leaflet-control { + margin-left: 10px; + } +.leaflet-right .leaflet-control { + margin-right: 10px; + } + + +/* zoom and fade animations */ + +.leaflet-fade-anim .leaflet-tile { + will-change: opacity; + } +.leaflet-fade-anim .leaflet-popup { + opacity: 0; + -webkit-transition: opacity 0.2s linear; + -moz-transition: opacity 0.2s linear; + -o-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; + } +.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { + opacity: 1; + } +.leaflet-zoom-animated { + -webkit-transform-origin: 0 0; + -ms-transform-origin: 0 0; + transform-origin: 0 0; + } +.leaflet-zoom-anim .leaflet-zoom-animated { + will-change: transform; + } +.leaflet-zoom-anim .leaflet-zoom-animated { + -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1); + -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1); + -o-transition: -o-transform 0.25s cubic-bezier(0,0,0.25,1); + transition: transform 0.25s cubic-bezier(0,0,0.25,1); + } +.leaflet-zoom-anim .leaflet-tile, +.leaflet-pan-anim .leaflet-tile { + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; + } + +.leaflet-zoom-anim .leaflet-zoom-hide { + visibility: hidden; + } + + +/* cursors */ + +.leaflet-interactive { + cursor: pointer; + } +.leaflet-grab { + cursor: -webkit-grab; + cursor: -moz-grab; + } +.leaflet-crosshair, +.leaflet-crosshair .leaflet-interactive { + cursor: crosshair; + } +.leaflet-popup-pane, +.leaflet-control { + cursor: auto; + } +.leaflet-dragging .leaflet-grab, +.leaflet-dragging .leaflet-grab .leaflet-interactive, +.leaflet-dragging .leaflet-marker-draggable { + cursor: move; + cursor: -webkit-grabbing; + cursor: -moz-grabbing; + } + +/* marker & overlays interactivity */ +.leaflet-marker-icon, +.leaflet-marker-shadow, +.leaflet-image-layer, +.leaflet-pane > svg path, +.leaflet-tile-container { + pointer-events: none; + } + +.leaflet-marker-icon.leaflet-interactive, +.leaflet-image-layer.leaflet-interactive, +.leaflet-pane > svg path.leaflet-interactive { + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; + } + +/* visual tweaks */ + +.leaflet-container { + background: #ddd; + outline: 0; + } +.leaflet-container a { + color: #0078A8; + } +.leaflet-container a.leaflet-active { + outline: 2px solid orange; + } +.leaflet-zoom-box { + border: 2px dotted #38f; + background: rgba(255,255,255,0.5); + } + + +/* general typography */ +.leaflet-container { + font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; + } + + +/* general toolbar styles */ + +.leaflet-bar { + box-shadow: 0 1px 5px rgba(0,0,0,0.65); + border-radius: 4px; + } +.leaflet-bar a, +.leaflet-bar a:hover { + background-color: #fff; + border-bottom: 1px solid #ccc; + width: 26px; + height: 26px; + line-height: 26px; + display: block; + text-align: center; + text-decoration: none; + color: black; + } +.leaflet-bar a, +.leaflet-control-layers-toggle { + background-position: 50% 50%; + background-repeat: no-repeat; + display: block; + } +.leaflet-bar a:hover { + background-color: #f4f4f4; + } +.leaflet-bar a:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; + } +.leaflet-bar a:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + border-bottom: none; + } +.leaflet-bar a.leaflet-disabled { + cursor: default; + background-color: #f4f4f4; + color: #bbb; + } + +.leaflet-touch .leaflet-bar a { + width: 30px; + height: 30px; + line-height: 30px; + } +.leaflet-touch .leaflet-bar a:first-child { + border-top-left-radius: 2px; + border-top-right-radius: 2px; + } +.leaflet-touch .leaflet-bar a:last-child { + border-bottom-left-radius: 2px; + border-bottom-right-radius: 2px; + } + +/* zoom control */ + +.leaflet-control-zoom-in, +.leaflet-control-zoom-out { + font: bold 18px 'Lucida Console', Monaco, monospace; + text-indent: 1px; + } + +.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out { + font-size: 22px; + } + + +/* layers control */ + +.leaflet-control-layers { + box-shadow: 0 1px 5px rgba(0,0,0,0.4); + background: #fff; + border-radius: 5px; + } +.leaflet-control-layers-toggle { + background-image: url(images/layers.png); + width: 36px; + height: 36px; + } +.leaflet-retina .leaflet-control-layers-toggle { + background-image: url(images/layers-2x.png); + background-size: 26px 26px; + } +.leaflet-touch .leaflet-control-layers-toggle { + width: 44px; + height: 44px; + } +.leaflet-control-layers .leaflet-control-layers-list, +.leaflet-control-layers-expanded .leaflet-control-layers-toggle { + display: none; + } +.leaflet-control-layers-expanded .leaflet-control-layers-list { + display: block; + position: relative; + } +.leaflet-control-layers-expanded { + padding: 6px 10px 6px 6px; + color: #333; + background: #fff; + } +.leaflet-control-layers-scrollbar { + overflow-y: scroll; + overflow-x: hidden; + padding-right: 5px; + } +.leaflet-control-layers-selector { + margin-top: 2px; + position: relative; + top: 1px; + } +.leaflet-control-layers label { + display: block; + } +.leaflet-control-layers-separator { + height: 0; + border-top: 1px solid #ddd; + margin: 5px -10px 5px -6px; + } + +/* Default icon URLs */ +.leaflet-default-icon-path { + background-image: url(images/marker-icon.png); + } + + +/* attribution and scale controls */ + +.leaflet-container .leaflet-control-attribution { + background: #fff; + background: rgba(255, 255, 255, 0.7); + margin: 0; + } +.leaflet-control-attribution, +.leaflet-control-scale-line { + padding: 0 5px; + color: #333; + } +.leaflet-control-attribution a { + text-decoration: none; + } +.leaflet-control-attribution a:hover { + text-decoration: underline; + } +.leaflet-container .leaflet-control-attribution, +.leaflet-container .leaflet-control-scale { + font-size: 11px; + } +.leaflet-left .leaflet-control-scale { + margin-left: 5px; + } +.leaflet-bottom .leaflet-control-scale { + margin-bottom: 5px; + } +.leaflet-control-scale-line { + border: 2px solid #777; + border-top: none; + line-height: 1.1; + padding: 2px 5px 1px; + font-size: 11px; + white-space: nowrap; + overflow: hidden; + -moz-box-sizing: border-box; + box-sizing: border-box; + + background: #fff; + background: rgba(255, 255, 255, 0.5); + } +.leaflet-control-scale-line:not(:first-child) { + border-top: 2px solid #777; + border-bottom: none; + margin-top: -2px; + } +.leaflet-control-scale-line:not(:first-child):not(:last-child) { + border-bottom: 2px solid #777; + } + +.leaflet-touch .leaflet-control-attribution, +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + box-shadow: none; + } +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + border: 2px solid rgba(0,0,0,0.2); + background-clip: padding-box; + } + + +/* popup */ + +.leaflet-popup { + position: absolute; + text-align: center; + margin-bottom: 20px; + } +.leaflet-popup-content-wrapper { + padding: 1px; + text-align: left; + border-radius: 12px; + } +.leaflet-popup-content { + margin: 13px 19px; + line-height: 1.4; + } +.leaflet-popup-content p { + margin: 18px 0; + } +.leaflet-popup-tip-container { + width: 40px; + height: 20px; + position: absolute; + left: 50%; + margin-left: -20px; + overflow: hidden; + pointer-events: none; + } +.leaflet-popup-tip { + width: 17px; + height: 17px; + padding: 1px; + + margin: -10px auto 0; + + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); + } +.leaflet-popup-content-wrapper, +.leaflet-popup-tip { + background: white; + color: #333; + box-shadow: 0 3px 14px rgba(0,0,0,0.4); + } +.leaflet-container a.leaflet-popup-close-button { + position: absolute; + top: 0; + right: 0; + padding: 4px 4px 0 0; + border: none; + text-align: center; + width: 18px; + height: 14px; + font: 16px/14px Tahoma, Verdana, sans-serif; + color: #c3c3c3; + text-decoration: none; + font-weight: bold; + background: transparent; + } +.leaflet-container a.leaflet-popup-close-button:hover { + color: #999; + } +.leaflet-popup-scrolled { + overflow: auto; + border-bottom: 1px solid #ddd; + border-top: 1px solid #ddd; + } + +.leaflet-oldie .leaflet-popup-content-wrapper { + zoom: 1; + } +.leaflet-oldie .leaflet-popup-tip { + width: 24px; + margin: 0 auto; + + -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; + filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); + } +.leaflet-oldie .leaflet-popup-tip-container { + margin-top: -1px; + } + +.leaflet-oldie .leaflet-control-zoom, +.leaflet-oldie .leaflet-control-layers, +.leaflet-oldie .leaflet-popup-content-wrapper, +.leaflet-oldie .leaflet-popup-tip { + border: 1px solid #999; + } + + +/* div icon */ + +.leaflet-div-icon { + background: #fff; + border: 1px solid #666; + } + + +/* Tooltip */ +/* Base styles for the element that has a tooltip */ +.leaflet-tooltip { + position: absolute; + padding: 6px; + background-color: #fff; + border: 1px solid #fff; + border-radius: 3px; + color: #222; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + pointer-events: none; + box-shadow: 0 1px 3px rgba(0,0,0,0.4); + } +.leaflet-tooltip.leaflet-clickable { + cursor: pointer; + pointer-events: auto; + } +.leaflet-tooltip-top:before, +.leaflet-tooltip-bottom:before, +.leaflet-tooltip-left:before, +.leaflet-tooltip-right:before { + position: absolute; + pointer-events: none; + border: 6px solid transparent; + background: transparent; + content: ""; + } + +/* Directions */ + +.leaflet-tooltip-bottom { + margin-top: 6px; +} +.leaflet-tooltip-top { + margin-top: -6px; +} +.leaflet-tooltip-bottom:before, +.leaflet-tooltip-top:before { + left: 50%; + margin-left: -6px; + } +.leaflet-tooltip-top:before { + bottom: 0; + margin-bottom: -12px; + border-top-color: #fff; + } +.leaflet-tooltip-bottom:before { + top: 0; + margin-top: -12px; + margin-left: -6px; + border-bottom-color: #fff; + } +.leaflet-tooltip-left { + margin-left: -6px; +} +.leaflet-tooltip-right { + margin-left: 6px; +} +.leaflet-tooltip-left:before, +.leaflet-tooltip-right:before { + top: 50%; + margin-top: -6px; + } +.leaflet-tooltip-left:before { + right: 0; + margin-right: -12px; + border-left-color: #fff; + } +.leaflet-tooltip-right:before { + left: 0; + margin-left: -12px; + border-right-color: #fff; + } diff --git a/dataedit/static/dataedit/leaflet.js b/dataedit/static/dataedit/leaflet.js new file mode 100644 index 000000000..b5052f93b --- /dev/null +++ b/dataedit/static/dataedit/leaflet.js @@ -0,0 +1,5 @@ +/* @preserve + * Leaflet 1.3.1, a JS library for interactive maps. http://leafletjs.com + * (c) 2010-2017 Vladimir Agafonkin, (c) 2010-2011 CloudMade + */ +!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i(t.L={})}(this,function(t){"use strict";function i(t){var i,e,n,o;for(e=1,n=arguments.length;e=0}function A(t,i,e,n){return"touchstart"===i?O(t,e,n):"touchmove"===i?W(t,e,n):"touchend"===i&&H(t,e,n),this}function B(t,i,e){var n=t["_leaflet_"+i+e];return"touchstart"===i?t.removeEventListener(Qi,n,!1):"touchmove"===i?t.removeEventListener(te,n,!1):"touchend"===i&&(t.removeEventListener(ie,n,!1),t.removeEventListener(ee,n,!1)),this}function O(t,i,n){var o=e(function(t){if("mouse"!==t.pointerType&&t.MSPOINTER_TYPE_MOUSE&&t.pointerType!==t.MSPOINTER_TYPE_MOUSE){if(!(ne.indexOf(t.target.tagName)<0))return;$(t)}j(t,i)});t["_leaflet_touchstart"+n]=o,t.addEventListener(Qi,o,!1),se||(document.documentElement.addEventListener(Qi,R,!0),document.documentElement.addEventListener(te,D,!0),document.documentElement.addEventListener(ie,N,!0),document.documentElement.addEventListener(ee,N,!0),se=!0)}function R(t){oe[t.pointerId]=t,re++}function D(t){oe[t.pointerId]&&(oe[t.pointerId]=t)}function N(t){delete oe[t.pointerId],re--}function j(t,i){t.touches=[];for(var e in oe)t.touches.push(oe[e]);t.changedTouches=[t],i(t)}function W(t,i,e){var n=function(t){(t.pointerType!==t.MSPOINTER_TYPE_MOUSE&&"mouse"!==t.pointerType||0!==t.buttons)&&j(t,i)};t["_leaflet_touchmove"+e]=n,t.addEventListener(te,n,!1)}function H(t,i,e){var n=function(t){j(t,i)};t["_leaflet_touchend"+e]=n,t.addEventListener(ie,n,!1),t.addEventListener(ee,n,!1)}function F(t,i,e){function n(t){var i;if(Ui){if(!Pi||"mouse"===t.pointerType)return;i=re}else i=t.touches.length;if(!(i>1)){var e=Date.now(),n=e-(s||e);r=t.touches?t.touches[0]:t,a=n>0&&n<=h,s=e}}function o(t){if(a&&!r.cancelBubble){if(Ui){if(!Pi||"mouse"===t.pointerType)return;var e,n,o={};for(n in r)e=r[n],o[n]=e&&e.bind?e.bind(r):e;r=o}r.type="dblclick",i(r),s=null}}var s,r,a=!1,h=250;return t[ue+ae+e]=n,t[ue+he+e]=o,t[ue+"dblclick"+e]=i,t.addEventListener(ae,n,!1),t.addEventListener(he,o,!1),t.addEventListener("dblclick",i,!1),this}function U(t,i){var e=t[ue+ae+i],n=t[ue+he+i],o=t[ue+"dblclick"+i];return t.removeEventListener(ae,e,!1),t.removeEventListener(he,n,!1),Pi||t.removeEventListener("dblclick",o,!1),this}function V(t,i,e,n){if("object"==typeof i)for(var o in i)G(t,o,i[o],e);else for(var s=0,r=(i=u(i)).length;s100&&n<500||t.target._simulatedClick&&!t._simulated?Q(t):(pi=e,i(t))}function rt(t){return"string"==typeof t?document.getElementById(t):t}function at(t,i){var e=t.style[i]||t.currentStyle&&t.currentStyle[i];if((!e||"auto"===e)&&document.defaultView){var n=document.defaultView.getComputedStyle(t,null);e=n?n[i]:null}return"auto"===e?null:e}function ht(t,i,e){var n=document.createElement(t);return n.className=i||"",e&&e.appendChild(n),n}function ut(t){var i=t.parentNode;i&&i.removeChild(t)}function lt(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function ct(t){var i=t.parentNode;i.lastChild!==t&&i.appendChild(t)}function _t(t){var i=t.parentNode;i.firstChild!==t&&i.insertBefore(t,i.firstChild)}function dt(t,i){if(void 0!==t.classList)return t.classList.contains(i);var e=gt(t);return e.length>0&&new RegExp("(^|\\s)"+i+"(\\s|$)").test(e)}function pt(t,i){if(void 0!==t.classList)for(var e=u(i),n=0,o=e.length;nh&&(s=r,h=a);h>e&&(i[s]=1,Et(t,i,e,n,s),Et(t,i,e,s,o))}function kt(t,i){for(var e=[t[0]],n=1,o=0,s=t.length;ni&&(e.push(t[n]),o=n);return oi.max.x&&(e|=2),t.yi.max.y&&(e|=8),e}function Ot(t,i){var e=i.x-t.x,n=i.y-t.y;return e*e+n*n}function Rt(t,i,e,n){var o,s=i.x,r=i.y,a=e.x-s,h=e.y-r,u=a*a+h*h;return u>0&&((o=((t.x-s)*a+(t.y-r)*h)/u)>1?(s=e.x,r=e.y):o>0&&(s+=a*o,r+=h*o)),a=t.x-s,h=t.y-r,n?a*a+h*h:new x(s,r)}function Dt(t){return!ei(t[0])||"object"!=typeof t[0][0]&&void 0!==t[0][0]}function Nt(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),Dt(t)}function jt(t,i,e){var n,o,s,r,a,h,u,l,c,_=[1,4,2,8];for(o=0,u=t.length;o0?Math.floor(t):Math.ceil(t)};x.prototype={clone:function(){return new x(this.x,this.y)},add:function(t){return this.clone()._add(w(t))},_add:function(t){return this.x+=t.x,this.y+=t.y,this},subtract:function(t){return this.clone()._subtract(w(t))},_subtract:function(t){return this.x-=t.x,this.y-=t.y,this},divideBy:function(t){return this.clone()._divideBy(t)},_divideBy:function(t){return this.x/=t,this.y/=t,this},multiplyBy:function(t){return this.clone()._multiplyBy(t)},_multiplyBy:function(t){return this.x*=t,this.y*=t,this},scaleBy:function(t){return new x(this.x*t.x,this.y*t.y)},unscaleBy:function(t){return new x(this.x/t.x,this.y/t.y)},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.clone()._ceil()},_ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},trunc:function(){return this.clone()._trunc()},_trunc:function(){return this.x=li(this.x),this.y=li(this.y),this},distanceTo:function(t){var i=(t=w(t)).x-this.x,e=t.y-this.y;return Math.sqrt(i*i+e*e)},equals:function(t){return(t=w(t)).x===this.x&&t.y===this.y},contains:function(t){return t=w(t),Math.abs(t.x)<=Math.abs(this.x)&&Math.abs(t.y)<=Math.abs(this.y)},toString:function(){return"Point("+a(this.x)+", "+a(this.y)+")"}},P.prototype={extend:function(t){return t=w(t),this.min||this.max?(this.min.x=Math.min(t.x,this.min.x),this.max.x=Math.max(t.x,this.max.x),this.min.y=Math.min(t.y,this.min.y),this.max.y=Math.max(t.y,this.max.y)):(this.min=t.clone(),this.max=t.clone()),this},getCenter:function(t){return new x((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,t)},getBottomLeft:function(){return new x(this.min.x,this.max.y)},getTopRight:function(){return new x(this.max.x,this.min.y)},getTopLeft:function(){return this.min},getBottomRight:function(){return this.max},getSize:function(){return this.max.subtract(this.min)},contains:function(t){var i,e;return(t="number"==typeof t[0]||t instanceof x?w(t):b(t))instanceof P?(i=t.min,e=t.max):i=e=t,i.x>=this.min.x&&e.x<=this.max.x&&i.y>=this.min.y&&e.y<=this.max.y},intersects:function(t){t=b(t);var i=this.min,e=this.max,n=t.min,o=t.max,s=o.x>=i.x&&n.x<=e.x,r=o.y>=i.y&&n.y<=e.y;return s&&r},overlaps:function(t){t=b(t);var i=this.min,e=this.max,n=t.min,o=t.max,s=o.x>i.x&&n.xi.y&&n.y=n.lat&&e.lat<=o.lat&&i.lng>=n.lng&&e.lng<=o.lng},intersects:function(t){t=z(t);var i=this._southWest,e=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=i.lat&&n.lat<=e.lat,r=o.lng>=i.lng&&n.lng<=e.lng;return s&&r},overlaps:function(t){t=z(t);var i=this._southWest,e=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>i.lat&&n.lati.lng&&n.lng1,Yi=!!document.createElement("canvas").getContext,Xi=!(!document.createElementNS||!E("svg").createSVGRect),Ji=!Xi&&function(){try{var t=document.createElement("div");t.innerHTML='';var i=t.firstChild;return i.style.behavior="url(#default#VML)",i&&"object"==typeof i.adj}catch(t){return!1}}(),$i=(Object.freeze||Object)({ie:wi,ielt9:Li,edge:Pi,webkit:bi,android:Ti,android23:zi,androidStock:Ci,opera:Zi,chrome:Si,gecko:Ei,safari:ki,phantom:Ii,opera12:Ai,win:Bi,ie3d:Oi,webkit3d:Ri,gecko3d:Di,any3d:Ni,mobile:ji,mobileWebkit:Wi,mobileWebkit3d:Hi,msPointer:Fi,pointer:Ui,touch:Vi,mobileOpera:qi,mobileGecko:Gi,retina:Ki,canvas:Yi,svg:Xi,vml:Ji}),Qi=Fi?"MSPointerDown":"pointerdown",te=Fi?"MSPointerMove":"pointermove",ie=Fi?"MSPointerUp":"pointerup",ee=Fi?"MSPointerCancel":"pointercancel",ne=["INPUT","SELECT","OPTION"],oe={},se=!1,re=0,ae=Fi?"MSPointerDown":Ui?"pointerdown":"touchstart",he=Fi?"MSPointerUp":Ui?"pointerup":"touchend",ue="_leaflet_",le="_leaflet_events",ce=Bi&&Si?2*window.devicePixelRatio:Ei?window.devicePixelRatio:1,_e={},de=(Object.freeze||Object)({on:V,off:q,stopPropagation:Y,disableScrollPropagation:X,disableClickPropagation:J,preventDefault:$,stop:Q,getMousePosition:tt,getWheelDelta:it,fakeStop:et,skipped:nt,isExternalTarget:ot,addListener:V,removeListener:q}),pe=xt(["transform","WebkitTransform","OTransform","MozTransform","msTransform"]),me=xt(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),fe="webkitTransition"===me||"OTransition"===me?me+"End":"transitionend";if("onselectstart"in document)mi=function(){V(window,"selectstart",$)},fi=function(){q(window,"selectstart",$)};else{var ge=xt(["userSelect","WebkitUserSelect","OUserSelect","MozUserSelect","msUserSelect"]);mi=function(){if(ge){var t=document.documentElement.style;gi=t[ge],t[ge]="none"}},fi=function(){ge&&(document.documentElement.style[ge]=gi,gi=void 0)}}var ve,ye,xe=(Object.freeze||Object)({TRANSFORM:pe,TRANSITION:me,TRANSITION_END:fe,get:rt,getStyle:at,create:ht,remove:ut,empty:lt,toFront:ct,toBack:_t,hasClass:dt,addClass:pt,removeClass:mt,setClass:ft,getClass:gt,setOpacity:vt,testProp:xt,setTransform:wt,setPosition:Lt,getPosition:Pt,disableTextSelection:mi,enableTextSelection:fi,disableImageDrag:bt,enableImageDrag:Tt,preventOutline:zt,restoreOutline:Mt}),we=ui.extend({run:function(t,i,e,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=e||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=Pt(t),this._offset=i.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=f(this._animate,this),this._step()},_step:function(t){var i=+new Date-this._startTime,e=1e3*this._duration;ithis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,i){this._enforcingBounds=!0;var e=this.getCenter(),n=this._limitCenter(e,this._zoom,z(t));return e.equals(n)||this.panTo(n,i),this._enforcingBounds=!1,this},invalidateSize:function(t){if(!this._loaded)return this;t=i({animate:!1,pan:!0},!0===t?{animate:!0}:t);var n=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var o=this.getSize(),s=n.divideBy(2).round(),r=o.divideBy(2).round(),a=s.subtract(r);return a.x||a.y?(t.animate&&t.pan?this.panBy(a):(t.pan&&this._rawPanBy(a),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(e(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:n,newSize:o})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=i({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var n=e(this._handleGeolocationResponse,this),o=e(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(n,o,t):navigator.geolocation.getCurrentPosition(n,o,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var i=t.code,e=t.message||(1===i?"permission denied":2===i?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:i,message:"Geolocation error: "+e+"."})},_handleGeolocationResponse:function(t){var i=new M(t.coords.latitude,t.coords.longitude),e=i.toBounds(t.coords.accuracy),n=this._locateOptions;if(n.setView){var o=this.getBoundsZoom(e);this.setView(i,n.maxZoom?Math.min(o,n.maxZoom):o)}var s={latlng:i,bounds:e,timestamp:t.timestamp};for(var r in t.coords)"number"==typeof t.coords[r]&&(s[r]=t.coords[r]);this.fire("locationfound",s)},addHandler:function(t,i){if(!i)return this;var e=this[t]=new i(this);return this._handlers.push(e),this.options[t]&&e.enable(),this},remove:function(){if(this._initEvents(!0),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),ut(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._clearHandlers(),this._loaded&&this.fire("unload");var t;for(t in this._layers)this._layers[t].remove();for(t in this._panes)ut(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,i){var e=ht("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),i||this._mapPane);return t&&(this._panes[t]=e),e},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new T(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,i,e){t=z(t),e=w(e||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),a=t.getSouthEast(),h=this.getSize().subtract(e),u=b(this.project(a,n),this.project(r,n)).getSize(),l=Ni?this.options.zoomSnap:1,c=h.x/u.x,_=h.y/u.y,d=i?Math.max(c,_):Math.min(c,_);return n=this.getScaleZoom(d,n),l&&(n=Math.round(n/(l/100))*(l/100),n=i?Math.ceil(n/l)*l:Math.floor(n/l)*l),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new x(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,i){var e=this._getTopLeftPoint(t,i);return new P(e,e.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,i){var e=this.options.crs;return i=void 0===i?this._zoom:i,e.scale(t)/e.scale(i)},getScaleZoom:function(t,i){var e=this.options.crs;i=void 0===i?this._zoom:i;var n=e.zoom(t*e.scale(i));return isNaN(n)?1/0:n},project:function(t,i){return i=void 0===i?this._zoom:i,this.options.crs.latLngToPoint(C(t),i)},unproject:function(t,i){return i=void 0===i?this._zoom:i,this.options.crs.pointToLatLng(w(t),i)},layerPointToLatLng:function(t){var i=w(t).add(this.getPixelOrigin());return this.unproject(i)},latLngToLayerPoint:function(t){return this.project(C(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(C(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(z(t))},distance:function(t,i){return this.options.crs.distance(C(t),C(i))},containerPointToLayerPoint:function(t){return w(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return w(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var i=this.containerPointToLayerPoint(w(t));return this.layerPointToLatLng(i)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(C(t)))},mouseEventToContainerPoint:function(t){return tt(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var i=this._container=rt(t);if(!i)throw new Error("Map container not found.");if(i._leaflet_id)throw new Error("Map container is already initialized.");V(i,"scroll",this._onScroll,this),this._containerId=n(i)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&Ni,pt(t,"leaflet-container"+(Vi?" leaflet-touch":"")+(Ki?" leaflet-retina":"")+(Li?" leaflet-oldie":"")+(ki?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var i=at(t,"position");"absolute"!==i&&"relative"!==i&&"fixed"!==i&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),Lt(this._mapPane,new x(0,0)),this.createPane("tilePane"),this.createPane("shadowPane"),this.createPane("overlayPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(pt(t.markerPane,"leaflet-zoom-hide"),pt(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,i){Lt(this._mapPane,new x(0,0));var e=!this._loaded;this._loaded=!0,i=this._limitZoom(i),this.fire("viewprereset");var n=this._zoom!==i;this._moveStart(n,!1)._move(t,i)._moveEnd(n),this.fire("viewreset"),e&&this.fire("load")},_moveStart:function(t,i){return t&&this.fire("zoomstart"),i||this.fire("movestart"),this},_move:function(t,i,e){void 0===i&&(i=this._zoom);var n=this._zoom!==i;return this._zoom=i,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),(n||e&&e.pinch)&&this.fire("zoom",e),this.fire("move",e)},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return g(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){Lt(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={},this._targets[n(this._container)]=this;var i=t?q:V;i(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress",this._handleDOMEvent,this),this.options.trackResize&&i(window,"resize",this._onResize,this),Ni&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){g(this._resizeRequest),this._resizeRequest=f(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,i){for(var e,o=[],s="mouseout"===i||"mouseover"===i,r=t.target||t.srcElement,a=!1;r;){if((e=this._targets[n(r)])&&("click"===i||"preclick"===i)&&!t._simulated&&this._draggableMoved(e)){a=!0;break}if(e&&e.listens(i,!0)){if(s&&!ot(r,t))break;if(o.push(e),s)break}if(r===this._container)break;r=r.parentNode}return o.length||a||s||!ot(r,t)||(o=[this]),o},_handleDOMEvent:function(t){if(this._loaded&&!nt(t)){var i=t.type;"mousedown"!==i&&"keypress"!==i||zt(t.target||t.srcElement),this._fireDOMEvent(t,i)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,e,n){if("click"===t.type){var o=i({},t);o.type="preclick",this._fireDOMEvent(o,o.type,n)}if(!t._stopped&&(n=(n||[]).concat(this._findEventTargets(t,e))).length){var s=n[0];"contextmenu"===e&&s.listens(e,!0)&&$(t);var r={originalEvent:t};if("keypress"!==t.type){var a=s.getLatLng&&(!s._radius||s._radius<=10);r.containerPoint=a?this.latLngToContainerPoint(s.getLatLng()):this.mouseEventToContainerPoint(t),r.layerPoint=this.containerPointToLayerPoint(r.containerPoint),r.latlng=a?s.getLatLng():this.layerPointToLatLng(r.layerPoint)}for(var h=0;h0?Math.round(t-i)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(i))},_limitZoom:function(t){var i=this.getMinZoom(),e=this.getMaxZoom(),n=Ni?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(i,Math.min(e,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){mt(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,i){var e=this._getCenterOffset(t)._trunc();return!(!0!==(i&&i.animate)&&!this.getSize().contains(e))&&(this.panBy(e,i),!0)},_createAnimProxy:function(){var t=this._proxy=ht("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",function(t){var i=pe,e=this._proxy.style[i];wt(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),e===this._proxy.style[i]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on("load moveend",function(){var t=this.getCenter(),i=this.getZoom();wt(this._proxy,this.project(t,i),this.getZoomScale(i,1))},this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){ut(this._proxy),delete this._proxy},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,i,e){if(this._animatingZoom)return!0;if(e=e||{},!this._zoomAnimated||!1===e.animate||this._nothingToAnimate()||Math.abs(i-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(i),o=this._getCenterOffset(t)._divideBy(1-1/n);return!(!0!==e.animate&&!this.getSize().contains(o))&&(f(function(){this._moveStart(!0,!1)._animateZoom(t,i,!0)},this),!0)},_animateZoom:function(t,i,n,o){this._mapPane&&(n&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=i,pt(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:i,noUpdate:o}),setTimeout(e(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&mt(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom),f(function(){this._moveEnd(!0)},this))}}),Pe=v.extend({options:{position:"topright"},initialize:function(t){l(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var i=this._map;return i&&i.removeControl(this),this.options.position=t,i&&i.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var i=this._container=this.onAdd(t),e=this.getPosition(),n=t._controlCorners[e];return pt(i,"leaflet-control"),-1!==e.indexOf("bottom")?n.insertBefore(i,n.firstChild):n.appendChild(i),this},remove:function(){return this._map?(ut(this._container),this.onRemove&&this.onRemove(this._map),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),be=function(t){return new Pe(t)};Le.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){function t(t,o){var s=e+t+" "+e+o;i[t+o]=ht("div",s,n)}var i=this._controlCorners={},e="leaflet-",n=this._controlContainer=ht("div",e+"control-container",this._container);t("top","left"),t("top","right"),t("bottom","left"),t("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)ut(this._controlCorners[t]);ut(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var Te=Pe.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,i,e,n){return e1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=i&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var i=this._getLayer(n(t.target)),e=i.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;e&&this._map.fire(e,i)},_createRadioElement:function(t,i){var e='",n=document.createElement("div");return n.innerHTML=e,n.firstChild},_addItem:function(t){var i,e=document.createElement("label"),o=this._map.hasLayer(t.layer);t.overlay?((i=document.createElement("input")).type="checkbox",i.className="leaflet-control-layers-selector",i.defaultChecked=o):i=this._createRadioElement("leaflet-base-layers",o),this._layerControlInputs.push(i),i.layerId=n(t.layer),V(i,"click",this._onInputClick,this);var s=document.createElement("span");s.innerHTML=" "+t.name;var r=document.createElement("div");return e.appendChild(r),r.appendChild(i),r.appendChild(s),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(e),this._checkDisabledLayers(),e},_onInputClick:function(){var t,i,e=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=e.length-1;s>=0;s--)t=e[s],i=this._getLayer(t.layerId).layer,t.checked?n.push(i):t.checked||o.push(i);for(s=0;s=0;o--)t=e[o],i=this._getLayer(t.layerId).layer,t.disabled=void 0!==i.options.minZoom&&ni.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expand:function(){return this.expand()},_collapse:function(){return this.collapse()}}),ze=Pe.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"−",zoomOutTitle:"Zoom out"},onAdd:function(t){var i="leaflet-control-zoom",e=ht("div",i+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,i+"-in",e,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,i+"-out",e,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),e},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,i,e,n,o){var s=ht("a",e,n);return s.innerHTML=t,s.href="#",s.title=i,s.setAttribute("role","button"),s.setAttribute("aria-label",i),J(s),V(s,"click",Q),V(s,"click",o,this),V(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,i="leaflet-disabled";mt(this._zoomInButton,i),mt(this._zoomOutButton,i),(this._disabled||t._zoom===t.getMinZoom())&&pt(this._zoomOutButton,i),(this._disabled||t._zoom===t.getMaxZoom())&&pt(this._zoomInButton,i)}});Le.mergeOptions({zoomControl:!0}),Le.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new ze,this.addControl(this.zoomControl))});var Me=Pe.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var i=ht("div","leaflet-control-scale"),e=this.options;return this._addScales(e,"leaflet-control-scale-line",i),t.on(e.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,i,e){t.metric&&(this._mScale=ht("div",i,e)),t.imperial&&(this._iScale=ht("div",i,e))},_update:function(){var t=this._map,i=t.getSize().y/2,e=t.distance(t.containerPointToLatLng([0,i]),t.containerPointToLatLng([this.options.maxWidth,i]));this._updateScales(e)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var i=this._getRoundNum(t),e=i<1e3?i+" m":i/1e3+" km";this._updateScale(this._mScale,e,i/t)},_updateImperial:function(t){var i,e,n,o=3.2808399*t;o>5280?(i=o/5280,e=this._getRoundNum(i),this._updateScale(this._iScale,e+" mi",e/i)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+" ft",n/o))},_updateScale:function(t,i,e){t.style.width=Math.round(this.options.maxWidth*e)+"px",t.innerHTML=i},_getRoundNum:function(t){var i=Math.pow(10,(Math.floor(t)+"").length-1),e=t/i;return e=e>=10?10:e>=5?5:e>=3?3:e>=2?2:1,i*e}}),Ce=Pe.extend({options:{position:"bottomright",prefix:'Leaflet'},initialize:function(t){l(this,t),this._attributions={}},onAdd:function(t){t.attributionControl=this,this._container=ht("div","leaflet-control-attribution"),J(this._container);for(var i in t._layers)t._layers[i].getAttribution&&this.addAttribution(t._layers[i].getAttribution());return this._update(),this._container},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var i in this._attributions)this._attributions[i]&&t.push(i);var e=[];this.options.prefix&&e.push(this.options.prefix),t.length&&e.push(t.join(", ")),this._container.innerHTML=e.join(" | ")}}});Le.mergeOptions({attributionControl:!0}),Le.addInitHook(function(){this.options.attributionControl&&(new Ce).addTo(this)});Pe.Layers=Te,Pe.Zoom=ze,Pe.Scale=Me,Pe.Attribution=Ce,be.layers=function(t,i,e){return new Te(t,i,e)},be.zoom=function(t){return new ze(t)},be.scale=function(t){return new Me(t)},be.attribution=function(t){return new Ce(t)};var Ze=v.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled?this:(this._enabled=!0,this.addHooks(),this)},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});Ze.addTo=function(t,i){return t.addHandler(i,this),this};var Se,Ee={Events:hi},ke=Vi?"touchstart mousedown":"mousedown",Ie={mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},Ae={mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"},Be=ui.extend({options:{clickTolerance:3},initialize:function(t,i,e,n){l(this,n),this._element=t,this._dragStartTarget=i||t,this._preventOutline=e},enable:function(){this._enabled||(V(this._dragStartTarget,ke,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(Be._dragging===this&&this.finishDrag(),q(this._dragStartTarget,ke,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(!t._simulated&&this._enabled&&(this._moved=!1,!dt(this._element,"leaflet-zoom-anim")&&!(Be._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||(Be._dragging=this,this._preventOutline&&zt(this._element),bt(),mi(),this._moving)))){this.fire("down");var i=t.touches?t.touches[0]:t;this._startPoint=new x(i.clientX,i.clientY),V(document,Ae[t.type],this._onMove,this),V(document,Ie[t.type],this._onUp,this)}},_onMove:function(t){if(!t._simulated&&this._enabled)if(t.touches&&t.touches.length>1)this._moved=!0;else{var i=t.touches&&1===t.touches.length?t.touches[0]:t,e=new x(i.clientX,i.clientY).subtract(this._startPoint);(e.x||e.y)&&(Math.abs(e.x)+Math.abs(e.y)1e-7;h++)i=s*Math.sin(a),i=Math.pow((1-i)/(1+i),s/2),a+=u=Math.PI/2-2*Math.atan(r*i)-a;return new M(a*e,t.x*e/n)}},je=(Object.freeze||Object)({LonLat:De,Mercator:Ne,SphericalMercator:di}),We=i({},_i,{code:"EPSG:3395",projection:Ne,transformation:function(){var t=.5/(Math.PI*Ne.R);return S(t,.5,-t,.5)}()}),He=i({},_i,{code:"EPSG:4326",projection:De,transformation:S(1/180,1,-1/180,.5)}),Fe=i({},ci,{projection:De,transformation:S(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,i){var e=i.lng-t.lng,n=i.lat-t.lat;return Math.sqrt(e*e+n*n)},infinite:!0});ci.Earth=_i,ci.EPSG3395=We,ci.EPSG3857=vi,ci.EPSG900913=yi,ci.EPSG4326=He,ci.Simple=Fe;var Ue=ui.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[n(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[n(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var i=t.target;if(i.hasLayer(this)){if(this._map=i,this._zoomAnimated=i._zoomAnimated,this.getEvents){var e=this.getEvents();i.on(e,this),this.once("remove",function(){i.off(e,this)},this)}this.onAdd(i),this.getAttribution&&i.attributionControl&&i.attributionControl.addAttribution(this.getAttribution()),this.fire("add"),i.fire("layeradd",{layer:this})}}});Le.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var i=n(t);return this._layers[i]?this:(this._layers[i]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t),this)},removeLayer:function(t){var i=n(t);return this._layers[i]?(this._loaded&&t.onRemove(this),t.getAttribution&&this.attributionControl&&this.attributionControl.removeAttribution(t.getAttribution()),delete this._layers[i],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return!!t&&n(t)in this._layers},eachLayer:function(t,i){for(var e in this._layers)t.call(i,this._layers[e]);return this},_addLayers:function(t){for(var i=0,e=(t=t?ei(t)?t:[t]:[]).length;ithis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()i)return r=(n-i)/e,this._map.layerPointToLatLng([s.x-r*(s.x-o.x),s.y-r*(s.y-o.y)])},getBounds:function(){return this._bounds},addLatLng:function(t,i){return i=i||this._defaultShape(),t=C(t),i.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new T,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return Dt(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var i=[],e=Dt(t),n=0,o=t.length;n=2&&i[0]instanceof M&&i[0].equals(i[e-1])&&i.pop(),i},_setLatLngs:function(t){tn.prototype._setLatLngs.call(this,t),Dt(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return Dt(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,i=this.options.weight,e=new x(i,i);if(t=new P(t.min.subtract(e),t.max.add(e)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var n,o=0,s=this._rings.length;ot.y!=n.y>t.y&&t.x<(n.x-e.x)*(t.y-e.y)/(n.y-e.y)+e.x&&(u=!u);return u||tn.prototype._containsPoint.call(this,t,!0)}}),nn=qe.extend({initialize:function(t,i){l(this,i),this._layers={},t&&this.addData(t)},addData:function(t){var i,e,n,o=ei(t)?t:t.features;if(o){for(i=0,e=o.length;i0?o:[i.src]}else{ei(this._url)||(this._url=[this._url]),i.autoplay=!!this.options.autoplay,i.loop=!!this.options.loop;for(var a=0;ao?(i.height=o+"px",pt(t,"leaflet-popup-scrolled")):mt(t,"leaflet-popup-scrolled"),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),e=this._getAnchor();Lt(this._container,i.add(e))},_adjustPan:function(){if(!(!this.options.autoPan||this._map._panAnim&&this._map._panAnim._inProgress)){var t=this._map,i=parseInt(at(this._container,"marginBottom"),10)||0,e=this._container.offsetHeight+i,n=this._containerWidth,o=new x(this._containerLeft,-e-this._containerBottom);o._add(Pt(this._container));var s=t.layerPointToContainerPoint(o),r=w(this.options.autoPanPadding),a=w(this.options.autoPanPaddingTopLeft||r),h=w(this.options.autoPanPaddingBottomRight||r),u=t.getSize(),l=0,c=0;s.x+n+h.x>u.x&&(l=s.x+n-u.x+h.x),s.x-l-a.x<0&&(l=s.x-a.x),s.y+e+h.y>u.y&&(c=s.y+e-u.y+h.y),s.y-c-a.y<0&&(c=s.y-a.y),(l||c)&&t.fire("autopanstart").panBy([l,c])}},_onCloseButtonClick:function(t){this._close(),Q(t)},_getAnchor:function(){return w(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});Le.mergeOptions({closePopupOnClick:!0}),Le.include({openPopup:function(t,i,e){return t instanceof un||(t=new un(e).setContent(t)),i&&t.setLatLng(i),this.hasLayer(t)?this:(this._popup&&this._popup.options.autoClose&&this.closePopup(),this._popup=t,this.addLayer(t))},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&this.removeLayer(t),this}}),Ue.include({bindPopup:function(t,i){return t instanceof un?(l(t,i),this._popup=t,t._source=this):(this._popup&&!i||(this._popup=new un(i,this)),this._popup.setContent(t)),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t,i){if(t instanceof Ue||(i=t,t=this),t instanceof qe)for(var e in this._layers){t=this._layers[e];break}return i||(i=t.getCenter?t.getCenter():t.getLatLng()),this._popup&&this._map&&(this._popup._source=t,this._popup.update(),this._map.openPopup(this._popup,i)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(t){return this._popup&&(this._popup._map?this.closePopup():this.openPopup(t)),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var i=t.layer||t.target;this._popup&&this._map&&(Q(t),i instanceof Je?this.openPopup(t.layer||t.target,t.latlng):this._map.hasLayer(this._popup)&&this._popup._source===i?this.closePopup():this.openPopup(i,t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var ln=hn.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,interactive:!1,opacity:.9},onAdd:function(t){hn.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&this._source.fire("tooltipopen",{tooltip:this},!0)},onRemove:function(t){hn.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&this._source.fire("tooltipclose",{tooltip:this},!0)},getEvents:function(){var t=hn.prototype.getEvents.call(this);return Vi&&!this.options.permanent&&(t.preclick=this._close),t},_close:function(){this._map&&this._map.closeTooltip(this)},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=ht("div",t)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var i=this._map,e=this._container,n=i.latLngToContainerPoint(i.getCenter()),o=i.layerPointToContainerPoint(t),s=this.options.direction,r=e.offsetWidth,a=e.offsetHeight,h=w(this.options.offset),u=this._getAnchor();"top"===s?t=t.add(w(-r/2+h.x,-a+h.y+u.y,!0)):"bottom"===s?t=t.subtract(w(r/2-h.x,-h.y,!0)):"center"===s?t=t.subtract(w(r/2+h.x,a/2-u.y+h.y,!0)):"right"===s||"auto"===s&&o.xthis.options.maxZoom||en&&this._retainParent(o,s,r,n))},_retainChildren:function(t,i,e,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*i;s<2*i+2;s++){var r=new x(o,s);r.z=e+1;var a=this._tileCoordsToKey(r),h=this._tiles[a];h&&h.active?h.retain=!0:(h&&h.loaded&&(h.retain=!0),e+1this.options.maxZoom||void 0!==this.options.minZoom&&o1)this._setView(t,e);else{for(var c=o.min.y;c<=o.max.y;c++)for(var _=o.min.x;_<=o.max.x;_++){var d=new x(_,c);if(d.z=this._tileZoom,this._isValidTile(d)){var p=this._tiles[this._tileCoordsToKey(d)];p?p.current=!0:r.push(d)}}if(r.sort(function(t,i){return t.distanceTo(s)-i.distanceTo(s)}),0!==r.length){this._loading||(this._loading=!0,this.fire("loading"));var m=document.createDocumentFragment();for(_=0;_e.max.x)||!i.wrapLat&&(t.ye.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return z(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var i=this._map,e=this.getTileSize(),n=t.scaleBy(e),o=n.add(e);return[i.unproject(n,t.z),i.unproject(o,t.z)]},_tileCoordsToBounds:function(t){var i=this._tileCoordsToNwSe(t),e=new T(i[0],i[1]);return this.options.noWrap||(e=this._map.wrapLatLngBounds(e)),e},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var i=t.split(":"),e=new x(+i[0],+i[1]);return e.z=+i[2],e},_removeTile:function(t){var i=this._tiles[t];i&&(Ci||i.el.setAttribute("src",ni),ut(i.el),delete this._tiles[t],this.fire("tileunload",{tile:i.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){pt(t,"leaflet-tile");var i=this.getTileSize();t.style.width=i.x+"px",t.style.height=i.y+"px",t.onselectstart=r,t.onmousemove=r,Li&&this.options.opacity<1&&vt(t,this.options.opacity),Ti&&!zi&&(t.style.WebkitBackfaceVisibility="hidden")},_addTile:function(t,i){var n=this._getTilePos(t),o=this._tileCoordsToKey(t),s=this.createTile(this._wrapCoords(t),e(this._tileReady,this,t));this._initTile(s),this.createTile.length<2&&f(e(this._tileReady,this,t,null,s)),Lt(s,n),this._tiles[o]={el:s,coords:t,current:!0},i.appendChild(s),this.fire("tileloadstart",{tile:s,coords:t})},_tileReady:function(t,i,n){if(this._map){i&&this.fire("tileerror",{error:i,tile:n,coords:t});var o=this._tileCoordsToKey(t);(n=this._tiles[o])&&(n.loaded=+new Date,this._map._fadeAnimated?(vt(n.el,0),g(this._fadeFrame),this._fadeFrame=f(this._updateOpacity,this)):(n.active=!0,this._pruneTiles()),i||(pt(n.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:n.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),Li||!this._map._fadeAnimated?f(this._pruneTiles,this):setTimeout(e(this._pruneTiles,this),250)))}},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var i=new x(this._wrapX?s(t.x,this._wrapX):t.x,this._wrapY?s(t.y,this._wrapY):t.y);return i.z=t.z,i},_pxBoundsToTileRange:function(t){var i=this.getTileSize();return new P(t.min.unscaleBy(i).floor(),t.max.unscaleBy(i).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}}),dn=_n.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1},initialize:function(t,i){this._url=t,(i=l(this,i)).detectRetina&&Ki&&i.maxZoom>0&&(i.tileSize=Math.floor(i.tileSize/2),i.zoomReverse?(i.zoomOffset--,i.minZoom++):(i.zoomOffset++,i.maxZoom--),i.minZoom=Math.max(0,i.minZoom)),"string"==typeof i.subdomains&&(i.subdomains=i.subdomains.split("")),Ti||this.on("tileunload",this._onTileRemove)},setUrl:function(t,i){return this._url=t,i||this.redraw(),this},createTile:function(t,i){var n=document.createElement("img");return V(n,"load",e(this._tileOnLoad,this,i,n)),V(n,"error",e(this._tileOnError,this,i,n)),this.options.crossOrigin&&(n.crossOrigin=""),n.alt="",n.setAttribute("role","presentation"),n.src=this.getTileUrl(t),n},getTileUrl:function(t){var e={r:Ki?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var n=this._globalTileRange.max.y-t.y;this.options.tms&&(e.y=n),e["-y"]=n}return _(this._url,i(e,this.options))},_tileOnLoad:function(t,i){Li?setTimeout(e(t,this,null,i),0):t(null,i)},_tileOnError:function(t,i,e){var n=this.options.errorTileUrl;n&&i.getAttribute("src")!==n&&(i.src=n),t(e,i)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,i=this.options.maxZoom,e=this.options.zoomReverse,n=this.options.zoomOffset;return e&&(t=i-t),t+n},_getSubdomain:function(t){var i=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[i]},_abortLoading:function(){var t,i;for(t in this._tiles)this._tiles[t].coords.z!==this._tileZoom&&((i=this._tiles[t].el).onload=r,i.onerror=r,i.complete||(i.src=ni,ut(i),delete this._tiles[t]))}}),pn=dn.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,e){this._url=t;var n=i({},this.defaultWmsParams);for(var o in e)o in this.options||(n[o]=e[o]);var s=(e=l(this,e)).detectRetina&&Ki?2:1,r=this.getTileSize();n.width=r.x*s,n.height=r.y*s,this.wmsParams=n},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var i=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[i]=this._crs.code,dn.prototype.onAdd.call(this,t)},getTileUrl:function(t){var i=this._tileCoordsToNwSe(t),e=this._crs,n=b(e.project(i[0]),e.project(i[1])),o=n.min,s=n.max,r=(this._wmsVersion>=1.3&&this._crs===He?[o.y,o.x,s.y,s.x]:[o.x,o.y,s.x,s.y]).join(","),a=L.TileLayer.prototype.getTileUrl.call(this,t);return a+c(this.wmsParams,a,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+r},setParams:function(t,e){return i(this.wmsParams,t),e||this.redraw(),this}});dn.WMS=pn,Yt.wms=function(t,i){return new pn(t,i)};var mn=Ue.extend({options:{padding:.1,tolerance:0},initialize:function(t){l(this,t),n(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&pt(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,i){var e=this._map.getZoomScale(i,this._zoom),n=Pt(this._container),o=this._map.getSize().multiplyBy(.5+this.options.padding),s=this._map.project(this._center,i),r=this._map.project(t,i).subtract(s),a=o.multiplyBy(-e).add(n).add(o).subtract(r);Ni?wt(this._container,a,e):Lt(this._container,a)},_reset:function(){this._update(),this._updateTransform(this._center,this._zoom);for(var t in this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,i=this._map.getSize(),e=this._map.containerPointToLayerPoint(i.multiplyBy(-t)).round();this._bounds=new P(e,e.add(i.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),fn=mn.extend({getEvents:function(){var t=mn.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){mn.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");V(t,"mousemove",o(this._onMouseMove,32,this),this),V(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),V(t,"mouseout",this._handleMouseOut,this),this._ctx=t.getContext("2d")},_destroyContainer:function(){delete this._ctx,ut(this._container),q(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){this._redrawBounds=null;for(var t in this._layers)this._layers[t]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){this._drawnLayers={},mn.prototype._update.call(this);var t=this._bounds,i=this._container,e=t.getSize(),n=Ki?2:1;Lt(i,t.min),i.width=n*e.x,i.height=n*e.y,i.style.width=e.x+"px",i.style.height=e.y+"px",Ki&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){mn.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[n(t)]=t;var i=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=i),this._drawLast=i,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var i=t._order,e=i.next,n=i.prev;e?e.prev=n:this._drawLast=n,n?n.next=e:this._drawFirst=e,delete t._order,delete this._layers[L.stamp(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if(t.options.dashArray){var i,e=t.options.dashArray.split(","),n=[];for(i=0;i')}}catch(t){return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),vn={_initContainer:function(){this._container=ht("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(mn.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var i=t._container=gn("shape");pt(i,"leaflet-vml-shape "+(this.options.className||"")),i.coordsize="1 1",t._path=gn("path"),i.appendChild(t._path),this._updateStyle(t),this._layers[n(t)]=t},_addPath:function(t){var i=t._container;this._container.appendChild(i),t.options.interactive&&t.addInteractiveTarget(i)},_removePath:function(t){var i=t._container;ut(i),t.removeInteractiveTarget(i),delete this._layers[n(t)]},_updateStyle:function(t){var i=t._stroke,e=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(i||(i=t._stroke=gn("stroke")),o.appendChild(i),i.weight=n.weight+"px",i.color=n.color,i.opacity=n.opacity,n.dashArray?i.dashStyle=ei(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):i.dashStyle="",i.endcap=n.lineCap.replace("butt","flat"),i.joinstyle=n.lineJoin):i&&(o.removeChild(i),t._stroke=null),n.fill?(e||(e=t._fill=gn("fill")),o.appendChild(e),e.color=n.fillColor||n.color,e.opacity=n.fillOpacity):e&&(o.removeChild(e),t._fill=null)},_updateCircle:function(t){var i=t._point.round(),e=Math.round(t._radius),n=Math.round(t._radiusY||e);this._setPath(t,t._empty()?"M0 0":"AL "+i.x+","+i.y+" "+e+","+n+" 0,23592600")},_setPath:function(t,i){t._path.v=i},_bringToFront:function(t){ct(t._container)},_bringToBack:function(t){_t(t._container)}},yn=Ji?gn:E,xn=mn.extend({getEvents:function(){var t=mn.prototype.getEvents.call(this);return t.zoomstart=this._onZoomStart,t},_initContainer:function(){this._container=yn("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=yn("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){ut(this._container),q(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_onZoomStart:function(){this._update()},_update:function(){if(!this._map._animatingZoom||!this._bounds){mn.prototype._update.call(this);var t=this._bounds,i=t.getSize(),e=this._container;this._svgSize&&this._svgSize.equals(i)||(this._svgSize=i,e.setAttribute("width",i.x),e.setAttribute("height",i.y)),Lt(e,t.min),e.setAttribute("viewBox",[t.min.x,t.min.y,i.x,i.y].join(" ")),this.fire("update")}},_initPath:function(t){var i=t._path=yn("path");t.options.className&&pt(i,t.options.className),t.options.interactive&&pt(i,"leaflet-interactive"),this._updateStyle(t),this._layers[n(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){ut(t._path),t.removeInteractiveTarget(t._path),delete this._layers[n(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var i=t._path,e=t.options;i&&(e.stroke?(i.setAttribute("stroke",e.color),i.setAttribute("stroke-opacity",e.opacity),i.setAttribute("stroke-width",e.weight),i.setAttribute("stroke-linecap",e.lineCap),i.setAttribute("stroke-linejoin",e.lineJoin),e.dashArray?i.setAttribute("stroke-dasharray",e.dashArray):i.removeAttribute("stroke-dasharray"),e.dashOffset?i.setAttribute("stroke-dashoffset",e.dashOffset):i.removeAttribute("stroke-dashoffset")):i.setAttribute("stroke","none"),e.fill?(i.setAttribute("fill",e.fillColor||e.color),i.setAttribute("fill-opacity",e.fillOpacity),i.setAttribute("fill-rule",e.fillRule||"evenodd")):i.setAttribute("fill","none"))},_updatePoly:function(t,i){this._setPath(t,k(t._parts,i))},_updateCircle:function(t){var i=t._point,e=Math.max(Math.round(t._radius),1),n="a"+e+","+(Math.max(Math.round(t._radiusY),1)||e)+" 0 1,0 ",o=t._empty()?"M0 0":"M"+(i.x-e)+","+i.y+n+2*e+",0 "+n+2*-e+",0 ";this._setPath(t,o)},_setPath:function(t,i){t._path.setAttribute("d",i)},_bringToFront:function(t){ct(t._path)},_bringToBack:function(t){_t(t._path)}});Ji&&xn.include(vn),Le.include({getRenderer:function(t){var i=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return i||(i=this._renderer=this.options.preferCanvas&&Xt()||Jt()),this.hasLayer(i)||this.addLayer(i),i},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var i=this._paneRenderers[t];return void 0===i&&(i=xn&&Jt({pane:t})||fn&&Xt({pane:t}),this._paneRenderers[t]=i),i}});var wn=en.extend({initialize:function(t,i){en.prototype.initialize.call(this,this._boundsToLatLngs(t),i)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return t=z(t),[t.getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});xn.create=yn,xn.pointsToPath=k,nn.geometryToLayer=Wt,nn.coordsToLatLng=Ht,nn.coordsToLatLngs=Ft,nn.latLngToCoords=Ut,nn.latLngsToCoords=Vt,nn.getFeature=qt,nn.asFeature=Gt,Le.mergeOptions({boxZoom:!0});var Ln=Ze.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){V(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){q(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){ut(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),mi(),bt(),this._startPoint=this._map.mouseEventToContainerPoint(t),V(document,{contextmenu:Q,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=ht("div","leaflet-zoom-box",this._container),pt(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var i=new P(this._point,this._startPoint),e=i.getSize();Lt(this._box,i.min),this._box.style.width=e.x+"px",this._box.style.height=e.y+"px"},_finish:function(){this._moved&&(ut(this._box),mt(this._container,"leaflet-crosshair")),fi(),Tt(),q(document,{contextmenu:Q,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(e(this._resetState,this),0);var i=new T(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(i).fire("boxzoomend",{boxZoomBounds:i})}},_onKeyDown:function(t){27===t.keyCode&&this._finish()}});Le.addInitHook("addHandler","boxZoom",Ln),Le.mergeOptions({doubleClickZoom:!0});var Pn=Ze.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var i=this._map,e=i.getZoom(),n=i.options.zoomDelta,o=t.originalEvent.shiftKey?e-n:e+n;"center"===i.options.doubleClickZoom?i.setZoom(o):i.setZoomAround(t.containerPoint,o)}});Le.addInitHook("addHandler","doubleClickZoom",Pn),Le.mergeOptions({dragging:!0,inertia:!zi,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var bn=Ze.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new Be(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}pt(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){mt(this._map._container,"leaflet-grab"),mt(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var i=z(this._map.options.maxBounds);this._offsetLimit=b(this._map.latLngToContainerPoint(i.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(i.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var i=this._lastTime=+new Date,e=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(e),this._times.push(i),this._prunePositions(i)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;this._positions.length>1&&t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),i=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=i.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,i){return t-(t-i)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),i=this._offsetLimit;t.xi.max.x&&(t.x=this._viscousLimit(t.x,i.max.x)),t.y>i.max.y&&(t.y=this._viscousLimit(t.y,i.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,i=Math.round(t/2),e=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-i+e)%t+i-e,s=(n+i+e)%t-i-e,r=Math.abs(o+e)0?s:-s))-i;this._delta=0,this._startTime=null,r&&("center"===t.options.scrollWheelZoom?t.setZoom(i+r):t.setZoomAround(this._lastMousePos,i+r))}});Le.addInitHook("addHandler","scrollWheelZoom",zn),Le.mergeOptions({tap:!0,tapTolerance:15});var Mn=Ze.extend({addHooks:function(){V(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){q(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(t.touches){if($(t),this._fireClick=!0,t.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var i=t.touches[0],n=i.target;this._startPos=this._newPos=new x(i.clientX,i.clientY),n.tagName&&"a"===n.tagName.toLowerCase()&&pt(n,"leaflet-active"),this._holdTimeout=setTimeout(e(function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",i))},this),1e3),this._simulateEvent("mousedown",i),V(document,{touchmove:this._onMove,touchend:this._onUp},this)}},_onUp:function(t){if(clearTimeout(this._holdTimeout),q(document,{touchmove:this._onMove,touchend:this._onUp},this),this._fireClick&&t&&t.changedTouches){var i=t.changedTouches[0],e=i.target;e&&e.tagName&&"a"===e.tagName.toLowerCase()&&mt(e,"leaflet-active"),this._simulateEvent("mouseup",i),this._isTapValid()&&this._simulateEvent("click",i)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(t){var i=t.touches[0];this._newPos=new x(i.clientX,i.clientY),this._simulateEvent("mousemove",i)},_simulateEvent:function(t,i){var e=document.createEvent("MouseEvents");e._simulated=!0,i.target._simulatedClick=!0,e.initMouseEvent(t,!0,!0,window,1,i.screenX,i.screenY,i.clientX,i.clientY,!1,!1,!1,!1,0,null),i.target.dispatchEvent(e)}});Vi&&!Ui&&Le.addInitHook("addHandler","tap",Mn),Le.mergeOptions({touchZoom:Vi&&!zi,bounceAtZoomLimits:!0});var Cn=Ze.extend({addHooks:function(){pt(this._map._container,"leaflet-touch-zoom"),V(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){mt(this._map._container,"leaflet-touch-zoom"),q(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var i=this._map;if(t.touches&&2===t.touches.length&&!i._animatingZoom&&!this._zooming){var e=i.mouseEventToContainerPoint(t.touches[0]),n=i.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=i.getSize()._divideBy(2),this._startLatLng=i.containerPointToLatLng(this._centerPoint),"center"!==i.options.touchZoom&&(this._pinchStartLatLng=i.containerPointToLatLng(e.add(n)._divideBy(2))),this._startDist=e.distanceTo(n),this._startZoom=i.getZoom(),this._moved=!1,this._zooming=!0,i._stop(),V(document,"touchmove",this._onTouchMove,this),V(document,"touchend",this._onTouchEnd,this),$(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var i=this._map,n=i.mouseEventToContainerPoint(t.touches[0]),o=i.mouseEventToContainerPoint(t.touches[1]),s=n.distanceTo(o)/this._startDist;if(this._zoom=i.getScaleZoom(s,this._startZoom),!i.options.bounceAtZoomLimits&&(this._zoomi.getMaxZoom()&&s>1)&&(this._zoom=i._limitZoom(this._zoom)),"center"===i.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{var r=n._add(o)._divideBy(2)._subtract(this._centerPoint);if(1===s&&0===r.x&&0===r.y)return;this._center=i.unproject(i.project(this._pinchStartLatLng,this._zoom).subtract(r),this._zoom)}this._moved||(i._moveStart(!0,!1),this._moved=!0),g(this._animRequest);var a=e(i._move,i,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=f(a,this,!0),$(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,g(this._animRequest),q(document,"touchmove",this._onTouchMove),q(document,"touchend",this._onTouchEnd),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});Le.addInitHook("addHandler","touchZoom",Cn),Le.BoxZoom=Ln,Le.DoubleClickZoom=Pn,Le.Drag=bn,Le.Keyboard=Tn,Le.ScrollWheelZoom=zn,Le.Tap=Mn,Le.TouchZoom=Cn;var Zn=window.L;window.L=t,Object.freeze=$t,t.version="1.3.1",t.noConflict=function(){return window.L=Zn,this},t.Control=Pe,t.control=be,t.Browser=$i,t.Evented=ui,t.Mixin=Ee,t.Util=ai,t.Class=v,t.Handler=Ze,t.extend=i,t.bind=e,t.stamp=n,t.setOptions=l,t.DomEvent=de,t.DomUtil=xe,t.PosAnimation=we,t.Draggable=Be,t.LineUtil=Oe,t.PolyUtil=Re,t.Point=x,t.point=w,t.Bounds=P,t.bounds=b,t.Transformation=Z,t.transformation=S,t.Projection=je,t.LatLng=M,t.latLng=C,t.LatLngBounds=T,t.latLngBounds=z,t.CRS=ci,t.GeoJSON=nn,t.geoJSON=Kt,t.geoJson=sn,t.Layer=Ue,t.LayerGroup=Ve,t.layerGroup=function(t,i){return new Ve(t,i)},t.FeatureGroup=qe,t.featureGroup=function(t){return new qe(t)},t.ImageOverlay=rn,t.imageOverlay=function(t,i,e){return new rn(t,i,e)},t.VideoOverlay=an,t.videoOverlay=function(t,i,e){return new an(t,i,e)},t.DivOverlay=hn,t.Popup=un,t.popup=function(t,i){return new un(t,i)},t.Tooltip=ln,t.tooltip=function(t,i){return new ln(t,i)},t.Icon=Ge,t.icon=function(t){return new Ge(t)},t.DivIcon=cn,t.divIcon=function(t){return new cn(t)},t.Marker=Xe,t.marker=function(t,i){return new Xe(t,i)},t.TileLayer=dn,t.tileLayer=Yt,t.GridLayer=_n,t.gridLayer=function(t){return new _n(t)},t.SVG=xn,t.svg=Jt,t.Renderer=mn,t.Canvas=fn,t.canvas=Xt,t.Path=Je,t.CircleMarker=$e,t.circleMarker=function(t,i){return new $e(t,i)},t.Circle=Qe,t.circle=function(t,i,e){return new Qe(t,i,e)},t.Polyline=tn,t.polyline=function(t,i){return new tn(t,i)},t.Polygon=en,t.polygon=function(t,i){return new en(t,i)},t.Rectangle=wn,t.rectangle=function(t,i){return new wn(t,i)},t.Map=Le,t.map=function(t,i){return new Le(t,i)}}); \ No newline at end of file diff --git a/dataedit/static/dataedit/plotly-latest.min.js b/dataedit/static/dataedit/plotly-latest.min.js new file mode 100644 index 000000000..3ab41f39a --- /dev/null +++ b/dataedit/static/dataedit/plotly-latest.min.js @@ -0,0 +1,61 @@ +/** +* plotly.js v1.58.5 +* Copyright 2012-2021, Plotly, Inc. +* All rights reserved. +* Licensed under the MIT license +*/ +!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Plotly=t()}}((function(){return function t(e,r,n){function i(o,s){if(!r[o]){if(!e[o]){var l="function"==typeof require&&require;if(!s&&l)return l(o,!0);if(a)return a(o,!0);var c=new Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var u=r[o]={exports:{}};e[o][0].call(u.exports,(function(t){return i(e[o][1][t]||t)}),u,u.exports,t,e,r,n)}return r[o].exports}for(var a="function"==typeof require&&require,o=0;o:not(.watermark)":"opacity:0;-webkit-transition:opacity 0.3s ease 0s;-moz-transition:opacity 0.3s ease 0s;-ms-transition:opacity 0.3s ease 0s;-o-transition:opacity 0.3s ease 0s;transition:opacity 0.3s ease 0s;","X:hover .modebar--hover .modebar-group":"opacity:1;","X .modebar-group":"float:left;display:inline-block;box-sizing:border-box;padding-left:8px;position:relative;vertical-align:middle;white-space:nowrap;","X .modebar-btn":"position:relative;font-size:16px;padding:3px 4px;height:22px;cursor:pointer;line-height:normal;box-sizing:border-box;","X .modebar-btn svg":"position:relative;top:2px;","X .modebar.vertical":"display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-end;max-height:100%;","X .modebar.vertical svg":"top:-1px;","X .modebar.vertical .modebar-group":"display:block;float:none;padding-left:0px;padding-bottom:8px;","X .modebar.vertical .modebar-group .modebar-btn":"display:block;text-align:center;","X [data-title]:before,X [data-title]:after":"position:absolute;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);display:none;opacity:0;z-index:1001;pointer-events:none;top:110%;right:50%;","X [data-title]:hover:before,X [data-title]:hover:after":"display:block;opacity:1;","X [data-title]:before":"content:'';position:absolute;background:transparent;border:6px solid transparent;z-index:1002;margin-top:-12px;border-bottom-color:#69738a;margin-right:-6px;","X [data-title]:after":"content:attr(data-title);background:#69738a;color:white;padding:8px 10px;font-size:12px;line-height:12px;white-space:nowrap;margin-right:-18px;border-radius:2px;","X .vertical [data-title]:before,X .vertical [data-title]:after":"top:0%;right:200%;","X .vertical [data-title]:before":"border:6px solid transparent;border-left-color:#69738a;margin-top:8px;margin-right:-30px;","X .select-outline":"fill:none;stroke-width:1;shape-rendering:crispEdges;","X .select-outline-1":"stroke:white;","X .select-outline-2":"stroke:black;stroke-dasharray:2px 2px;",Y:"font-family:'Open Sans', verdana, arial, sans-serif;position:fixed;top:50px;right:20px;z-index:10000;font-size:10pt;max-width:180px;","Y p":"margin:0;","Y .notifier-note":"min-width:180px;max-width:250px;border:1px solid #fff;z-index:3000;margin:0;background-color:#8c97af;background-color:rgba(140,151,175,0.9);color:#fff;padding:10px;overflow-wrap:break-word;word-wrap:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;","Y .notifier-close":"color:#fff;opacity:0.8;float:right;padding:0 5px;background:none;border:none;font-size:20px;font-weight:bold;line-height:20px;","Y .notifier-close:hover":"color:#444;text-decoration:none;cursor:pointer;"};for(var a in i){var o=a.replace(/^,/," ,").replace(/X/g,".js-plotly-plot .plotly").replace(/Y/g,".plotly-notifier");n.addStyleRule(o,i[a])}},{"../src/lib":778}],2:[function(t,e,r){"use strict";e.exports=t("../src/transforms/aggregate")},{"../src/transforms/aggregate":1365}],3:[function(t,e,r){"use strict";e.exports=t("../src/traces/bar")},{"../src/traces/bar":929}],4:[function(t,e,r){"use strict";e.exports=t("../src/traces/barpolar")},{"../src/traces/barpolar":942}],5:[function(t,e,r){"use strict";e.exports=t("../src/traces/box")},{"../src/traces/box":952}],6:[function(t,e,r){"use strict";e.exports=t("../src/components/calendars")},{"../src/components/calendars":641}],7:[function(t,e,r){"use strict";e.exports=t("../src/traces/candlestick")},{"../src/traces/candlestick":961}],8:[function(t,e,r){"use strict";e.exports=t("../src/traces/carpet")},{"../src/traces/carpet":980}],9:[function(t,e,r){"use strict";e.exports=t("../src/traces/choropleth")},{"../src/traces/choropleth":994}],10:[function(t,e,r){"use strict";e.exports=t("../src/traces/choroplethmapbox")},{"../src/traces/choroplethmapbox":1001}],11:[function(t,e,r){"use strict";e.exports=t("../src/traces/cone")},{"../src/traces/cone":1007}],12:[function(t,e,r){"use strict";e.exports=t("../src/traces/contour")},{"../src/traces/contour":1022}],13:[function(t,e,r){"use strict";e.exports=t("../src/traces/contourcarpet")},{"../src/traces/contourcarpet":1033}],14:[function(t,e,r){"use strict";e.exports=t("../src/core")},{"../src/core":755}],15:[function(t,e,r){"use strict";e.exports=t("../src/traces/densitymapbox")},{"../src/traces/densitymapbox":1041}],16:[function(t,e,r){"use strict";e.exports=t("../src/transforms/filter")},{"../src/transforms/filter":1366}],17:[function(t,e,r){"use strict";e.exports=t("../src/traces/funnel")},{"../src/traces/funnel":1051}],18:[function(t,e,r){"use strict";e.exports=t("../src/traces/funnelarea")},{"../src/traces/funnelarea":1060}],19:[function(t,e,r){"use strict";e.exports=t("../src/transforms/groupby")},{"../src/transforms/groupby":1367}],20:[function(t,e,r){"use strict";e.exports=t("../src/traces/heatmap")},{"../src/traces/heatmap":1073}],21:[function(t,e,r){"use strict";e.exports=t("../src/traces/heatmapgl")},{"../src/traces/heatmapgl":1083}],22:[function(t,e,r){"use strict";e.exports=t("../src/traces/histogram")},{"../src/traces/histogram":1095}],23:[function(t,e,r){"use strict";e.exports=t("../src/traces/histogram2d")},{"../src/traces/histogram2d":1101}],24:[function(t,e,r){"use strict";e.exports=t("../src/traces/histogram2dcontour")},{"../src/traces/histogram2dcontour":1105}],25:[function(t,e,r){"use strict";e.exports=t("../src/traces/image")},{"../src/traces/image":1113}],26:[function(t,e,r){"use strict";var n=t("./core");n.register([t("./bar"),t("./box"),t("./heatmap"),t("./histogram"),t("./histogram2d"),t("./histogram2dcontour"),t("./contour"),t("./scatterternary"),t("./violin"),t("./funnel"),t("./waterfall"),t("./image"),t("./pie"),t("./sunburst"),t("./treemap"),t("./funnelarea"),t("./scatter3d"),t("./surface"),t("./isosurface"),t("./volume"),t("./mesh3d"),t("./cone"),t("./streamtube"),t("./scattergeo"),t("./choropleth"),t("./scattergl"),t("./splom"),t("./pointcloud"),t("./heatmapgl"),t("./parcoords"),t("./parcats"),t("./scattermapbox"),t("./choroplethmapbox"),t("./densitymapbox"),t("./sankey"),t("./indicator"),t("./table"),t("./carpet"),t("./scattercarpet"),t("./contourcarpet"),t("./ohlc"),t("./candlestick"),t("./scatterpolar"),t("./scatterpolargl"),t("./barpolar")]),n.register([t("./aggregate"),t("./filter"),t("./groupby"),t("./sort")]),n.register([t("./calendars")]),e.exports=n},{"./aggregate":2,"./bar":3,"./barpolar":4,"./box":5,"./calendars":6,"./candlestick":7,"./carpet":8,"./choropleth":9,"./choroplethmapbox":10,"./cone":11,"./contour":12,"./contourcarpet":13,"./core":14,"./densitymapbox":15,"./filter":16,"./funnel":17,"./funnelarea":18,"./groupby":19,"./heatmap":20,"./heatmapgl":21,"./histogram":22,"./histogram2d":23,"./histogram2dcontour":24,"./image":25,"./indicator":27,"./isosurface":28,"./mesh3d":29,"./ohlc":30,"./parcats":31,"./parcoords":32,"./pie":33,"./pointcloud":34,"./sankey":35,"./scatter3d":36,"./scattercarpet":37,"./scattergeo":38,"./scattergl":39,"./scattermapbox":40,"./scatterpolar":41,"./scatterpolargl":42,"./scatterternary":43,"./sort":44,"./splom":45,"./streamtube":46,"./sunburst":47,"./surface":48,"./table":49,"./treemap":50,"./violin":51,"./volume":52,"./waterfall":53}],27:[function(t,e,r){"use strict";e.exports=t("../src/traces/indicator")},{"../src/traces/indicator":1121}],28:[function(t,e,r){"use strict";e.exports=t("../src/traces/isosurface")},{"../src/traces/isosurface":1127}],29:[function(t,e,r){"use strict";e.exports=t("../src/traces/mesh3d")},{"../src/traces/mesh3d":1132}],30:[function(t,e,r){"use strict";e.exports=t("../src/traces/ohlc")},{"../src/traces/ohlc":1137}],31:[function(t,e,r){"use strict";e.exports=t("../src/traces/parcats")},{"../src/traces/parcats":1146}],32:[function(t,e,r){"use strict";e.exports=t("../src/traces/parcoords")},{"../src/traces/parcoords":1156}],33:[function(t,e,r){"use strict";e.exports=t("../src/traces/pie")},{"../src/traces/pie":1167}],34:[function(t,e,r){"use strict";e.exports=t("../src/traces/pointcloud")},{"../src/traces/pointcloud":1176}],35:[function(t,e,r){"use strict";e.exports=t("../src/traces/sankey")},{"../src/traces/sankey":1182}],36:[function(t,e,r){"use strict";e.exports=t("../src/traces/scatter3d")},{"../src/traces/scatter3d":1220}],37:[function(t,e,r){"use strict";e.exports=t("../src/traces/scattercarpet")},{"../src/traces/scattercarpet":1227}],38:[function(t,e,r){"use strict";e.exports=t("../src/traces/scattergeo")},{"../src/traces/scattergeo":1235}],39:[function(t,e,r){"use strict";e.exports=t("../src/traces/scattergl")},{"../src/traces/scattergl":1248}],40:[function(t,e,r){"use strict";e.exports=t("../src/traces/scattermapbox")},{"../src/traces/scattermapbox":1258}],41:[function(t,e,r){"use strict";e.exports=t("../src/traces/scatterpolar")},{"../src/traces/scatterpolar":1266}],42:[function(t,e,r){"use strict";e.exports=t("../src/traces/scatterpolargl")},{"../src/traces/scatterpolargl":1273}],43:[function(t,e,r){"use strict";e.exports=t("../src/traces/scatterternary")},{"../src/traces/scatterternary":1281}],44:[function(t,e,r){"use strict";e.exports=t("../src/transforms/sort")},{"../src/transforms/sort":1369}],45:[function(t,e,r){"use strict";e.exports=t("../src/traces/splom")},{"../src/traces/splom":1290}],46:[function(t,e,r){"use strict";e.exports=t("../src/traces/streamtube")},{"../src/traces/streamtube":1298}],47:[function(t,e,r){"use strict";e.exports=t("../src/traces/sunburst")},{"../src/traces/sunburst":1306}],48:[function(t,e,r){"use strict";e.exports=t("../src/traces/surface")},{"../src/traces/surface":1315}],49:[function(t,e,r){"use strict";e.exports=t("../src/traces/table")},{"../src/traces/table":1323}],50:[function(t,e,r){"use strict";e.exports=t("../src/traces/treemap")},{"../src/traces/treemap":1332}],51:[function(t,e,r){"use strict";e.exports=t("../src/traces/violin")},{"../src/traces/violin":1344}],52:[function(t,e,r){"use strict";e.exports=t("../src/traces/volume")},{"../src/traces/volume":1352}],53:[function(t,e,r){"use strict";e.exports=t("../src/traces/waterfall")},{"../src/traces/waterfall":1360}],54:[function(t,e,r){"use strict";e.exports=function(t){var e=(t=t||{}).eye||[0,0,1],r=t.center||[0,0,0],s=t.up||[0,1,0],l=t.distanceLimits||[0,1/0],c=t.mode||"turntable",u=n(),f=i(),h=a();return u.setDistanceLimits(l[0],l[1]),u.lookAt(0,e,r,s),f.setDistanceLimits(l[0],l[1]),f.lookAt(0,e,r,s),h.setDistanceLimits(l[0],l[1]),h.lookAt(0,e,r,s),new o({turntable:u,orbit:f,matrix:h},c)};var n=t("turntable-camera-controller"),i=t("orbit-camera-controller"),a=t("matrix-camera-controller");function o(t,e){this._controllerNames=Object.keys(t),this._controllerList=this._controllerNames.map((function(e){return t[e]})),this._mode=e,this._active=t[e],this._active||(this._mode="turntable",this._active=t.turntable),this.modes=this._controllerNames,this.computedMatrix=this._active.computedMatrix,this.computedEye=this._active.computedEye,this.computedUp=this._active.computedUp,this.computedCenter=this._active.computedCenter,this.computedRadius=this._active.computedRadius}var s=o.prototype;[["flush",1],["idle",1],["lookAt",4],["rotate",4],["pan",4],["translate",4],["setMatrix",2],["setDistanceLimits",2],["setDistance",2]].forEach((function(t){for(var e=t[0],r=[],n=0;n1||i>1)}function A(t,e,r){return t.sort(E),t.forEach((function(n,i){var a,o,s=0;if(H(n,r)&&M(n))n.circularPathData.verticalBuffer=s+n.width/2;else{for(var l=0;lo.source.column)){var c=t[l].circularPathData.verticalBuffer+t[l].width/2+e;s=c>s?c:s}n.circularPathData.verticalBuffer=s+n.width/2}})),t}function S(t,r,i,a){var o=e.min(t.links,(function(t){return t.source.y0}));t.links.forEach((function(t){t.circular&&(t.circularPathData={})})),A(t.links.filter((function(t){return"top"==t.circularLinkType})),r,a),A(t.links.filter((function(t){return"bottom"==t.circularLinkType})),r,a),t.links.forEach((function(e){if(e.circular){if(e.circularPathData.arcRadius=e.width+10,e.circularPathData.leftNodeBuffer=5,e.circularPathData.rightNodeBuffer=5,e.circularPathData.sourceWidth=e.source.x1-e.source.x0,e.circularPathData.sourceX=e.source.x0+e.circularPathData.sourceWidth,e.circularPathData.targetX=e.target.x0,e.circularPathData.sourceY=e.y0,e.circularPathData.targetY=e.y1,H(e,a)&&M(e))e.circularPathData.leftSmallArcRadius=10+e.width/2,e.circularPathData.leftLargeArcRadius=10+e.width/2,e.circularPathData.rightSmallArcRadius=10+e.width/2,e.circularPathData.rightLargeArcRadius=10+e.width/2,"bottom"==e.circularLinkType?(e.circularPathData.verticalFullExtent=e.source.y1+25+e.circularPathData.verticalBuffer,e.circularPathData.verticalLeftInnerExtent=e.circularPathData.verticalFullExtent-e.circularPathData.leftLargeArcRadius,e.circularPathData.verticalRightInnerExtent=e.circularPathData.verticalFullExtent-e.circularPathData.rightLargeArcRadius):(e.circularPathData.verticalFullExtent=e.source.y0-25-e.circularPathData.verticalBuffer,e.circularPathData.verticalLeftInnerExtent=e.circularPathData.verticalFullExtent+e.circularPathData.leftLargeArcRadius,e.circularPathData.verticalRightInnerExtent=e.circularPathData.verticalFullExtent+e.circularPathData.rightLargeArcRadius);else{var s=e.source.column,l=e.circularLinkType,c=t.links.filter((function(t){return t.source.column==s&&t.circularLinkType==l}));"bottom"==e.circularLinkType?c.sort(L):c.sort(C);var u=0;c.forEach((function(t,n){t.circularLinkID==e.circularLinkID&&(e.circularPathData.leftSmallArcRadius=10+e.width/2+u,e.circularPathData.leftLargeArcRadius=10+e.width/2+n*r+u),u+=t.width})),s=e.target.column,c=t.links.filter((function(t){return t.target.column==s&&t.circularLinkType==l})),"bottom"==e.circularLinkType?c.sort(P):c.sort(I),u=0,c.forEach((function(t,n){t.circularLinkID==e.circularLinkID&&(e.circularPathData.rightSmallArcRadius=10+e.width/2+u,e.circularPathData.rightLargeArcRadius=10+e.width/2+n*r+u),u+=t.width})),"bottom"==e.circularLinkType?(e.circularPathData.verticalFullExtent=Math.max(i,e.source.y1,e.target.y1)+25+e.circularPathData.verticalBuffer,e.circularPathData.verticalLeftInnerExtent=e.circularPathData.verticalFullExtent-e.circularPathData.leftLargeArcRadius,e.circularPathData.verticalRightInnerExtent=e.circularPathData.verticalFullExtent-e.circularPathData.rightLargeArcRadius):(e.circularPathData.verticalFullExtent=o-25-e.circularPathData.verticalBuffer,e.circularPathData.verticalLeftInnerExtent=e.circularPathData.verticalFullExtent+e.circularPathData.leftLargeArcRadius,e.circularPathData.verticalRightInnerExtent=e.circularPathData.verticalFullExtent+e.circularPathData.rightLargeArcRadius)}e.circularPathData.leftInnerExtent=e.circularPathData.sourceX+e.circularPathData.leftNodeBuffer,e.circularPathData.rightInnerExtent=e.circularPathData.targetX-e.circularPathData.rightNodeBuffer,e.circularPathData.leftFullExtent=e.circularPathData.sourceX+e.circularPathData.leftLargeArcRadius+e.circularPathData.leftNodeBuffer,e.circularPathData.rightFullExtent=e.circularPathData.targetX-e.circularPathData.rightLargeArcRadius-e.circularPathData.rightNodeBuffer}if(e.circular)e.path=function(t){var e="";e="top"==t.circularLinkType?"M"+t.circularPathData.sourceX+" "+t.circularPathData.sourceY+" L"+t.circularPathData.leftInnerExtent+" "+t.circularPathData.sourceY+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftSmallArcRadius+" 0 0 0 "+t.circularPathData.leftFullExtent+" "+(t.circularPathData.sourceY-t.circularPathData.leftSmallArcRadius)+" L"+t.circularPathData.leftFullExtent+" "+t.circularPathData.verticalLeftInnerExtent+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftLargeArcRadius+" 0 0 0 "+t.circularPathData.leftInnerExtent+" "+t.circularPathData.verticalFullExtent+" L"+t.circularPathData.rightInnerExtent+" "+t.circularPathData.verticalFullExtent+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightLargeArcRadius+" 0 0 0 "+t.circularPathData.rightFullExtent+" "+t.circularPathData.verticalRightInnerExtent+" L"+t.circularPathData.rightFullExtent+" "+(t.circularPathData.targetY-t.circularPathData.rightSmallArcRadius)+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightSmallArcRadius+" 0 0 0 "+t.circularPathData.rightInnerExtent+" "+t.circularPathData.targetY+" L"+t.circularPathData.targetX+" "+t.circularPathData.targetY:"M"+t.circularPathData.sourceX+" "+t.circularPathData.sourceY+" L"+t.circularPathData.leftInnerExtent+" "+t.circularPathData.sourceY+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftSmallArcRadius+" 0 0 1 "+t.circularPathData.leftFullExtent+" "+(t.circularPathData.sourceY+t.circularPathData.leftSmallArcRadius)+" L"+t.circularPathData.leftFullExtent+" "+t.circularPathData.verticalLeftInnerExtent+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftLargeArcRadius+" 0 0 1 "+t.circularPathData.leftInnerExtent+" "+t.circularPathData.verticalFullExtent+" L"+t.circularPathData.rightInnerExtent+" "+t.circularPathData.verticalFullExtent+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightLargeArcRadius+" 0 0 1 "+t.circularPathData.rightFullExtent+" "+t.circularPathData.verticalRightInnerExtent+" L"+t.circularPathData.rightFullExtent+" "+(t.circularPathData.targetY+t.circularPathData.rightSmallArcRadius)+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightSmallArcRadius+" 0 0 1 "+t.circularPathData.rightInnerExtent+" "+t.circularPathData.targetY+" L"+t.circularPathData.targetX+" "+t.circularPathData.targetY;return e}(e);else{var f=n.linkHorizontal().source((function(t){return[t.source.x0+(t.source.x1-t.source.x0),t.y0]})).target((function(t){return[t.target.x0,t.y1]}));e.path=f(e)}}))}function E(t,e){return z(t)==z(e)?"bottom"==t.circularLinkType?L(t,e):C(t,e):z(e)-z(t)}function C(t,e){return t.y0-e.y0}function L(t,e){return e.y0-t.y0}function I(t,e){return t.y1-e.y1}function P(t,e){return e.y1-t.y1}function z(t){return t.target.column-t.source.column}function O(t){return t.target.x0-t.source.x1}function D(t,e){var r=T(t),n=O(e)/Math.tan(r);return"up"==q(t)?t.y1+n:t.y1-n}function R(t,e){var r=T(t),n=O(e)/Math.tan(r);return"up"==q(t)?t.y1-n:t.y1+n}function F(t,e,r,n){t.links.forEach((function(i){if(!i.circular&&i.target.column-i.source.column>1){var a=i.source.column+1,o=i.target.column-1,s=1,l=o-a+1;for(s=1;a<=o;a++,s++)t.nodes.forEach((function(o){if(o.column==a){var c,u=s/(l+1),f=Math.pow(1-u,3),h=3*u*Math.pow(1-u,2),p=3*Math.pow(u,2)*(1-u),d=Math.pow(u,3),g=f*i.y0+h*i.y0+p*i.y1+d*i.y1,m=g-i.width/2,v=g+i.width/2;m>o.y0&&mo.y0&&vo.y1)&&(c=v-o.y0+10,o=N(o,c,e,r),t.nodes.forEach((function(t){b(t,n)!=b(o,n)&&t.column==o.column&&t.y0o.y1&&N(t,c,e,r)})))}}))}}))}function B(t,e){return t.y0>e.y0&&t.y0e.y0&&t.y1e.y1)}function N(t,e,r,n){return t.y0+e>=r&&t.y1+e<=n&&(t.y0=t.y0+e,t.y1=t.y1+e,t.targetLinks.forEach((function(t){t.y1=t.y1+e})),t.sourceLinks.forEach((function(t){t.y0=t.y0+e}))),t}function j(t,e,r,n){t.nodes.forEach((function(i){n&&i.y+(i.y1-i.y0)>e&&(i.y=i.y-(i.y+(i.y1-i.y0)-e));var a=t.links.filter((function(t){return b(t.source,r)==b(i,r)})),o=a.length;o>1&&a.sort((function(t,e){if(!t.circular&&!e.circular){if(t.target.column==e.target.column)return t.y1-e.y1;if(!V(t,e))return t.y1-e.y1;if(t.target.column>e.target.column){var r=R(e,t);return t.y1-r}if(e.target.column>t.target.column)return R(t,e)-e.y1}return t.circular&&!e.circular?"top"==t.circularLinkType?-1:1:e.circular&&!t.circular?"top"==e.circularLinkType?1:-1:t.circular&&e.circular?t.circularLinkType===e.circularLinkType&&"top"==t.circularLinkType?t.target.column===e.target.column?t.target.y1-e.target.y1:e.target.column-t.target.column:t.circularLinkType===e.circularLinkType&&"bottom"==t.circularLinkType?t.target.column===e.target.column?e.target.y1-t.target.y1:t.target.column-e.target.column:"top"==t.circularLinkType?-1:1:void 0}));var s=i.y0;a.forEach((function(t){t.y0=s+t.width/2,s+=t.width})),a.forEach((function(t,e){if("bottom"==t.circularLinkType){for(var r=e+1,n=0;r1&&n.sort((function(t,e){if(!t.circular&&!e.circular){if(t.source.column==e.source.column)return t.y0-e.y0;if(!V(t,e))return t.y0-e.y0;if(e.source.column0?"up":"down"}function H(t,e){return b(t.source,e)==b(t.target,e)}function G(t,r,n){var i=t.nodes,a=t.links,o=!1,s=!1;if(a.forEach((function(t){"top"==t.circularLinkType?o=!0:"bottom"==t.circularLinkType&&(s=!0)})),0==o||0==s){var l=e.min(i,(function(t){return t.y0})),c=(n-r)/(e.max(i,(function(t){return t.y1}))-l);i.forEach((function(t){var e=(t.y1-t.y0)*c;t.y0=(t.y0-l)*c,t.y1=t.y0+e})),a.forEach((function(t){t.y0=(t.y0-l)*c,t.y1=(t.y1-l)*c,t.width=t.width*c}))}}t.sankeyCircular=function(){var t,n,i=0,a=0,b=1,T=1,M=24,A=m,E=o,C=v,L=y,I=32,P=2,z=null;function O(){var t={nodes:C.apply(null,arguments),links:L.apply(null,arguments)};D(t),_(t,A,z),R(t),B(t),w(t,A),N(t,I,A),V(t);for(var e=4,r=0;r0?r+25+10:r,bottom:n=n>0?n+25+10:n,left:a=a>0?a+25+10:a,right:i=i>0?i+25+10:i}}(o),f=function(t,r){var n=e.max(t.nodes,(function(t){return t.column})),o=b-i,s=T-a,l=o/(o+r.right+r.left),c=s/(s+r.top+r.bottom);return i=i*l+r.left,b=0==r.right?b:b*l,a=a*c+r.top,T*=c,t.nodes.forEach((function(t){t.x0=i+t.column*((b-i-M)/n),t.x1=t.x0+M})),c}(o,u);l*=f,o.links.forEach((function(t){t.width=t.value*l})),c.forEach((function(t){var e=t.length;t.forEach((function(t,n){t.depth==c.length-1&&1==e||0==t.depth&&1==e?(t.y0=T/2-t.value*l,t.y1=t.y0+t.value*l):t.partOfCycle?0==k(t,r)?(t.y0=T/2+n,t.y1=t.y0+t.value*l):"top"==t.circularLinkType?(t.y0=a+n,t.y1=t.y0+t.value*l):(t.y0=T-t.value*l-n,t.y1=t.y0+t.value*l):0==u.top||0==u.bottom?(t.y0=(T-a)/e*n,t.y1=t.y0+t.value*l):(t.y0=(T-a)/2-e/2+n,t.y1=t.y0+t.value*l)}))}))}(l),y();for(var u=1,m=s;m>0;--m)v(u*=.99,l),y();function v(t,r){var n=c.length;c.forEach((function(i){var a=i.length,o=i[0].depth;i.forEach((function(i){var s;if(i.sourceLinks.length||i.targetLinks.length)if(i.partOfCycle&&k(i,r)>0);else if(0==o&&1==a)s=i.y1-i.y0,i.y0=T/2-s/2,i.y1=T/2+s/2;else if(o==n-1&&1==a)s=i.y1-i.y0,i.y0=T/2-s/2,i.y1=T/2+s/2;else{var l=e.mean(i.sourceLinks,g),c=e.mean(i.targetLinks,d),u=((l&&c?(l+c)/2:l||c)-p(i))*t;i.y0+=u,i.y1+=u}}))}))}function y(){c.forEach((function(e){var r,n,i,o=a,s=e.length;for(e.sort(f),i=0;i0&&(r.y0+=n,r.y1+=n),o=r.y1+t;if((n=o-t-T)>0)for(o=r.y0-=n,r.y1-=n,i=s-2;i>=0;--i)(n=(r=e[i]).y1+t-o)>0&&(r.y0-=n,r.y1-=n),o=r.y0}))}}function V(t){t.nodes.forEach((function(t){t.sourceLinks.sort(u),t.targetLinks.sort(c)})),t.nodes.forEach((function(t){var e=t.y0,r=e,n=t.y1,i=n;t.sourceLinks.forEach((function(t){t.circular?(t.y0=n-t.width/2,n-=t.width):(t.y0=e+t.width/2,e+=t.width)})),t.targetLinks.forEach((function(t){t.circular?(t.y1=i-t.width/2,i-=t.width):(t.y1=r+t.width/2,r+=t.width)}))}))}return O.nodeId=function(t){return arguments.length?(A="function"==typeof t?t:s(t),O):A},O.nodeAlign=function(t){return arguments.length?(E="function"==typeof t?t:s(t),O):E},O.nodeWidth=function(t){return arguments.length?(M=+t,O):M},O.nodePadding=function(e){return arguments.length?(t=+e,O):t},O.nodes=function(t){return arguments.length?(C="function"==typeof t?t:s(t),O):C},O.links=function(t){return arguments.length?(L="function"==typeof t?t:s(t),O):L},O.size=function(t){return arguments.length?(i=a=0,b=+t[0],T=+t[1],O):[b-i,T-a]},O.extent=function(t){return arguments.length?(i=+t[0][0],b=+t[1][0],a=+t[0][1],T=+t[1][1],O):[[i,a],[b,T]]},O.iterations=function(t){return arguments.length?(I=+t,O):I},O.circularLinkGap=function(t){return arguments.length?(P=+t,O):P},O.nodePaddingRatio=function(t){return arguments.length?(n=+t,O):n},O.sortNodes=function(t){return arguments.length?(z=t,O):z},O.update=function(t){return w(t,A),V(t),t.links.forEach((function(t){t.circular&&(t.circularLinkType=t.y0+t.y1a&&(b=a);var o=e.min(i,(function(t){return(y-n-(t.length-1)*b)/e.sum(t,u)}));i.forEach((function(t){t.forEach((function(t,e){t.y1=(t.y0=e)+t.value*o}))})),t.links.forEach((function(t){t.width=t.value*o}))}(),d();for(var a=1,o=M;o>0;--o)l(a*=.99),d(),s(a),d();function s(t){i.forEach((function(r){r.forEach((function(r){if(r.targetLinks.length){var n=(e.sum(r.targetLinks,h)/e.sum(r.targetLinks,u)-f(r))*t;r.y0+=n,r.y1+=n}}))}))}function l(t){i.slice().reverse().forEach((function(r){r.forEach((function(r){if(r.sourceLinks.length){var n=(e.sum(r.sourceLinks,p)/e.sum(r.sourceLinks,u)-f(r))*t;r.y0+=n,r.y1+=n}}))}))}function d(){i.forEach((function(t){var e,r,i,a=n,o=t.length;for(t.sort(c),i=0;i0&&(e.y0+=r,e.y1+=r),a=e.y1+b;if((r=a-b-y)>0)for(a=e.y0-=r,e.y1-=r,i=o-2;i>=0;--i)(r=(e=t[i]).y1+b-a)>0&&(e.y0-=r,e.y1-=r),a=e.y0}))}}function I(t){t.nodes.forEach((function(t){t.sourceLinks.sort(l),t.targetLinks.sort(s)})),t.nodes.forEach((function(t){var e=t.y0,r=e;t.sourceLinks.forEach((function(t){t.y0=e+t.width/2,e+=t.width})),t.targetLinks.forEach((function(t){t.y1=r+t.width/2,r+=t.width}))}))}return A.update=function(t){return I(t),t},A.nodeId=function(t){return arguments.length?(_="function"==typeof t?t:o(t),A):_},A.nodeAlign=function(t){return arguments.length?(w="function"==typeof t?t:o(t),A):w},A.nodeWidth=function(t){return arguments.length?(x=+t,A):x},A.nodePadding=function(t){return arguments.length?(b=+t,A):b},A.nodes=function(t){return arguments.length?(T="function"==typeof t?t:o(t),A):T},A.links=function(t){return arguments.length?(k="function"==typeof t?t:o(t),A):k},A.size=function(e){return arguments.length?(t=n=0,i=+e[0],y=+e[1],A):[i-t,y-n]},A.extent=function(e){return arguments.length?(t=+e[0][0],i=+e[1][0],n=+e[0][1],y=+e[1][1],A):[[t,n],[i,y]]},A.iterations=function(t){return arguments.length?(M=+t,A):M},A},t.sankeyCenter=function(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?e.min(t.sourceLinks,i)-1:0},t.sankeyLeft=function(t){return t.depth},t.sankeyRight=function(t,e){return e-1-t.height},t.sankeyJustify=a,t.sankeyLinkHorizontal=function(){return n.linkHorizontal().source(y).target(x)},Object.defineProperty(t,"__esModule",{value:!0})}))},{"d3-array":156,"d3-collection":157,"d3-shape":165}],57:[function(t,e,r){"use strict";e.exports=t("./quad")},{"./quad":58}],58:[function(t,e,r){"use strict";var n=t("binary-search-bounds"),i=t("clamp"),a=t("parse-rect"),o=t("array-bounds"),s=t("pick-by-alias"),l=t("defined"),c=t("flatten-vertex-data"),u=t("is-obj"),f=t("dtype"),h=t("math-log2");function p(t,e){for(var r=e[0],n=e[1],a=1/(e[2]-r),o=1/(e[3]-n),s=new Array(t.length),l=0,c=t.length/2;l>>1;e.dtype||(e.dtype="array"),"string"==typeof e.dtype?d=new(f(e.dtype))(m):e.dtype&&(d=e.dtype,Array.isArray(d)&&(d.length=m));for(var v=0;vr||s>1073741824){for(var h=0;he+n||w>r+n||T=M||a===o)){var s=y[i];void 0===o&&(o=s.length);for(var l=a;l=d&&u<=m&&f>=g&&f<=v&&S.push(c)}var h=x[i],p=h[4*a+0],b=h[4*a+1],A=h[4*a+2],E=h[4*a+3],I=L(h,a+1),P=.5*n,z=i+1;C(e,r,P,z,p,b||A||E||I),C(e,r+P,P,z,b,A||E||I),C(e+P,r,P,z,A,E||I),C(e+P,r+P,P,z,E,I)}}function L(t,e){for(var r=null,n=0;null===r;)if(r=t[4*e+n],++n>t.length)return null;return r}return C(0,0,1,0,0,1),S},d;function E(t,e,r,i,a){for(var o=[],s=0;s0){e+=Math.abs(a(t[0]));for(var r=1;r2){for(s=0;st[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]=0))throw new Error("precision must be a positive number");var r=Math.pow(10,e||0);return Math.round(t*r)/r},r.radiansToLength=f,r.lengthToRadians=h,r.lengthToDegrees=function(t,e){return p(h(t,e))},r.bearingToAzimuth=function(t){var e=t%360;return e<0&&(e+=360),e},r.radiansToDegrees=p,r.degreesToRadians=function(t){return t%360*Math.PI/180},r.convertLength=function(t,e,r){if(void 0===e&&(e="kilometers"),void 0===r&&(r="kilometers"),!(t>=0))throw new Error("length must be a positive number");return f(h(t,e),r)},r.convertArea=function(t,e,n){if(void 0===e&&(e="meters"),void 0===n&&(n="kilometers"),!(t>=0))throw new Error("area must be a positive number");var i=r.areaFactors[e];if(!i)throw new Error("invalid original units");var a=r.areaFactors[n];if(!a)throw new Error("invalid final units");return t/i*a},r.isNumber=d,r.isObject=function(t){return!!t&&t.constructor===Object},r.validateBBox=function(t){if(!t)throw new Error("bbox is required");if(!Array.isArray(t))throw new Error("bbox must be an Array");if(4!==t.length&&6!==t.length)throw new Error("bbox must be an Array of 4 or 6 numbers");t.forEach((function(t){if(!d(t))throw new Error("bbox must only contain numbers")}))},r.validateId=function(t){if(!t)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof t))throw new Error("id must be a number or a string")},r.radians2degrees=function(){throw new Error("method has been renamed to `radiansToDegrees`")},r.degrees2radians=function(){throw new Error("method has been renamed to `degreesToRadians`")},r.distanceToDegrees=function(){throw new Error("method has been renamed to `lengthToDegrees`")},r.distanceToRadians=function(){throw new Error("method has been renamed to `lengthToRadians`")},r.radiansToDistance=function(){throw new Error("method has been renamed to `radiansToLength`")},r.bearingToAngle=function(){throw new Error("method has been renamed to `bearingToAzimuth`")},r.convertDistance=function(){throw new Error("method has been renamed to `convertLength`")}},{}],63:[function(t,e,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=t("@turf/helpers");function i(t,e,r){if(null!==t)for(var n,a,o,s,l,c,u,f,h=0,p=0,d=t.type,g="FeatureCollection"===d,m="Feature"===d,v=g?t.features.length:1,y=0;yc||p>u||d>f)return l=i,c=r,u=p,f=d,void(o=0);var g=n.lineString([l,i],t.properties);if(!1===e(g,r,a,d,o))return!1;o++,l=i}))&&void 0}}}))}function u(t,e){if(!t)throw new Error("geojson is required");l(t,(function(t,r,i){if(null!==t.geometry){var a=t.geometry.type,o=t.geometry.coordinates;switch(a){case"LineString":if(!1===e(t,r,i,0,0))return!1;break;case"Polygon":for(var s=0;si&&(i=t[o]),t[o] + * @license MIT + */function i(t,e){if(t===e)return 0;for(var r=t.length,n=e.length,i=0,a=Math.min(r,n);i=0;c--)if(u[c]!==f[c])return!1;for(c=u.length-1;c>=0;c--)if(s=u[c],!x(t[s],e[s],r,n))return!1;return!0}(t,e,r,n))}return r?t===e:t==e}function b(t){return"[object Arguments]"==Object.prototype.toString.call(t)}function _(t,e){if(!t||!e)return!1;if("[object RegExp]"==Object.prototype.toString.call(e))return e.test(t);try{if(t instanceof e)return!0}catch(t){}return!Error.isPrototypeOf(e)&&!0===e.call({},t)}function w(t,e,r,n){var i;if("function"!=typeof e)throw new TypeError('"block" argument must be a function');"string"==typeof r&&(n=r,r=null),i=function(t){var e;try{t()}catch(t){e=t}return e}(e),n=(r&&r.name?" ("+r.name+").":".")+(n?" "+n:"."),t&&!i&&v(i,r,"Missing expected exception"+n);var a="string"==typeof n,s=!t&&i&&!r;if((!t&&o.isError(i)&&a&&_(i,r)||s)&&v(i,r,"Got unwanted exception"+n),t&&i&&r&&!_(i,r)||!t&&i)throw i}h.AssertionError=function(t){this.name="AssertionError",this.actual=t.actual,this.expected=t.expected,this.operator=t.operator,t.message?(this.message=t.message,this.generatedMessage=!1):(this.message=function(t){return g(m(t.actual),128)+" "+t.operator+" "+g(m(t.expected),128)}(this),this.generatedMessage=!0);var e=t.stackStartFunction||v;if(Error.captureStackTrace)Error.captureStackTrace(this,e);else{var r=new Error;if(r.stack){var n=r.stack,i=d(e),a=n.indexOf("\n"+i);if(a>=0){var o=n.indexOf("\n",a+1);n=n.substring(o+1)}this.stack=n}}},o.inherits(h.AssertionError,Error),h.fail=v,h.ok=y,h.equal=function(t,e,r){t!=e&&v(t,e,r,"==",h.equal)},h.notEqual=function(t,e,r){t==e&&v(t,e,r,"!=",h.notEqual)},h.deepEqual=function(t,e,r){x(t,e,!1)||v(t,e,r,"deepEqual",h.deepEqual)},h.deepStrictEqual=function(t,e,r){x(t,e,!0)||v(t,e,r,"deepStrictEqual",h.deepStrictEqual)},h.notDeepEqual=function(t,e,r){x(t,e,!1)&&v(t,e,r,"notDeepEqual",h.notDeepEqual)},h.notDeepStrictEqual=function t(e,r,n){x(e,r,!0)&&v(e,r,n,"notDeepStrictEqual",t)},h.strictEqual=function(t,e,r){t!==e&&v(t,e,r,"===",h.strictEqual)},h.notStrictEqual=function(t,e,r){t===e&&v(t,e,r,"!==",h.notStrictEqual)},h.throws=function(t,e,r){w(!0,t,e,r)},h.doesNotThrow=function(t,e,r){w(!1,t,e,r)},h.ifError=function(t){if(t)throw t},h.strict=n((function t(e,r){e||v(e,!0,r,"==",t)}),h,{equal:h.strictEqual,deepEqual:h.deepStrictEqual,notEqual:h.notStrictEqual,notDeepEqual:h.notDeepStrictEqual}),h.strict.strict=h.strict;var T=Object.keys||function(t){var e=[];for(var r in t)s.call(t,r)&&e.push(r);return e}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"object-assign":499,"util/":76}],74:[function(t,e,r){"function"==typeof Object.create?e.exports=function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}},{}],75:[function(t,e,r){e.exports=function(t){return t&&"object"==typeof t&&"function"==typeof t.copy&&"function"==typeof t.fill&&"function"==typeof t.readUInt8}},{}],76:[function(t,e,r){(function(e,n){(function(){var i=/%[sdj%]/g;r.format=function(t){if(!v(t)){for(var e=[],r=0;r=a)return t;switch(t){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(t){return"[Circular]"}default:return t}})),l=n[r];r=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),d(e)?n.showHidden=e:e&&r._extend(n,e),y(n.showHidden)&&(n.showHidden=!1),y(n.depth)&&(n.depth=2),y(n.colors)&&(n.colors=!1),y(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=l),u(n,t,n.depth)}function l(t,e){var r=s.styles[e];return r?"\x1b["+s.colors[r][0]+"m"+t+"\x1b["+s.colors[r][1]+"m":t}function c(t,e){return t}function u(t,e,n){if(t.customInspect&&e&&T(e.inspect)&&e.inspect!==r.inspect&&(!e.constructor||e.constructor.prototype!==e)){var i=e.inspect(n,t);return v(i)||(i=u(t,i,n)),i}var a=function(t,e){if(y(e))return t.stylize("undefined","undefined");if(v(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}if(m(e))return t.stylize(""+e,"number");if(d(e))return t.stylize(""+e,"boolean");if(g(e))return t.stylize("null","null")}(t,e);if(a)return a;var o=Object.keys(e),s=function(t){var e={};return t.forEach((function(t,r){e[t]=!0})),e}(o);if(t.showHidden&&(o=Object.getOwnPropertyNames(e)),w(e)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return f(e);if(0===o.length){if(T(e)){var l=e.name?": "+e.name:"";return t.stylize("[Function"+l+"]","special")}if(x(e))return t.stylize(RegExp.prototype.toString.call(e),"regexp");if(_(e))return t.stylize(Date.prototype.toString.call(e),"date");if(w(e))return f(e)}var c,b="",k=!1,M=["{","}"];(p(e)&&(k=!0,M=["[","]"]),T(e))&&(b=" [Function"+(e.name?": "+e.name:"")+"]");return x(e)&&(b=" "+RegExp.prototype.toString.call(e)),_(e)&&(b=" "+Date.prototype.toUTCString.call(e)),w(e)&&(b=" "+f(e)),0!==o.length||k&&0!=e.length?n<0?x(e)?t.stylize(RegExp.prototype.toString.call(e),"regexp"):t.stylize("[Object]","special"):(t.seen.push(e),c=k?function(t,e,r,n,i){for(var a=[],o=0,s=e.length;o=0&&0,t+e.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+r[1];return r[0]+e+" "+t.join(", ")+" "+r[1]}(c,b,M)):M[0]+b+M[1]}function f(t){return"["+Error.prototype.toString.call(t)+"]"}function h(t,e,r,n,i,a){var o,s,l;if((l=Object.getOwnPropertyDescriptor(e,i)||{value:e[i]}).get?s=l.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):l.set&&(s=t.stylize("[Setter]","special")),E(n,i)||(o="["+i+"]"),s||(t.seen.indexOf(l.value)<0?(s=g(r)?u(t,l.value,null):u(t,l.value,r-1)).indexOf("\n")>-1&&(s=a?s.split("\n").map((function(t){return" "+t})).join("\n").substr(2):"\n"+s.split("\n").map((function(t){return" "+t})).join("\n")):s=t.stylize("[Circular]","special")),y(o)){if(a&&i.match(/^\d+$/))return s;(o=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=t.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=t.stylize(o,"string"))}return o+": "+s}function p(t){return Array.isArray(t)}function d(t){return"boolean"==typeof t}function g(t){return null===t}function m(t){return"number"==typeof t}function v(t){return"string"==typeof t}function y(t){return void 0===t}function x(t){return b(t)&&"[object RegExp]"===k(t)}function b(t){return"object"==typeof t&&null!==t}function _(t){return b(t)&&"[object Date]"===k(t)}function w(t){return b(t)&&("[object Error]"===k(t)||t instanceof Error)}function T(t){return"function"==typeof t}function k(t){return Object.prototype.toString.call(t)}function M(t){return t<10?"0"+t.toString(10):t.toString(10)}r.debuglog=function(t){if(y(a)&&(a=e.env.NODE_DEBUG||""),t=t.toUpperCase(),!o[t])if(new RegExp("\\b"+t+"\\b","i").test(a)){var n=e.pid;o[t]=function(){var e=r.format.apply(r,arguments);console.error("%s %d: %s",t,n,e)}}else o[t]=function(){};return o[t]},r.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},r.isArray=p,r.isBoolean=d,r.isNull=g,r.isNullOrUndefined=function(t){return null==t},r.isNumber=m,r.isString=v,r.isSymbol=function(t){return"symbol"==typeof t},r.isUndefined=y,r.isRegExp=x,r.isObject=b,r.isDate=_,r.isError=w,r.isFunction=T,r.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||"undefined"==typeof t},r.isBuffer=t("./support/isBuffer");var A=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function S(){var t=new Date,e=[M(t.getHours()),M(t.getMinutes()),M(t.getSeconds())].join(":");return[t.getDate(),A[t.getMonth()],e].join(" ")}function E(t,e){return Object.prototype.hasOwnProperty.call(t,e)}r.log=function(){console.log("%s - %s",S(),r.format.apply(r,arguments))},r.inherits=t("inherits"),r._extend=function(t,e){if(!e||!b(e))return t;for(var r=Object.keys(e),n=r.length;n--;)t[r[n]]=e[r[n]];return t}}).call(this)}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":75,_process:526,inherits:74}],77:[function(t,e,r){e.exports=function(t){return atob(t)}},{}],78:[function(t,e,r){"use strict";e.exports=function(t,e){for(var r=e.length,a=new Array(r+1),o=0;o0?o-4:o;for(r=0;r>16&255,l[u++]=e>>8&255,l[u++]=255&e;2===s&&(e=i[t.charCodeAt(r)]<<2|i[t.charCodeAt(r+1)]>>4,l[u++]=255&e);1===s&&(e=i[t.charCodeAt(r)]<<10|i[t.charCodeAt(r+1)]<<4|i[t.charCodeAt(r+2)]>>2,l[u++]=e>>8&255,l[u++]=255&e);return l},r.fromByteArray=function(t){for(var e,r=t.length,i=r%3,a=[],o=0,s=r-i;os?s:o+16383));1===i?(e=t[r-1],a.push(n[e>>2]+n[e<<4&63]+"==")):2===i&&(e=(t[r-2]<<8)+t[r-1],a.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+"="));return a.join("")};for(var n=[],i=[],a="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,l=o.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function u(t,e,r){for(var i,a,o=[],s=e;s>18&63]+n[a>>12&63]+n[a>>6&63]+n[63&a]);return o.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},{}],80:[function(t,e,r){"use strict";var n=t("./lib/rationalize");e.exports=function(t,e){return n(t[0].mul(e[1]).add(e[0].mul(t[1])),t[1].mul(e[1]))}},{"./lib/rationalize":90}],81:[function(t,e,r){"use strict";e.exports=function(t,e){return t[0].mul(e[1]).cmp(e[0].mul(t[1]))}},{}],82:[function(t,e,r){"use strict";var n=t("./lib/rationalize");e.exports=function(t,e){return n(t[0].mul(e[1]),t[1].mul(e[0]))}},{"./lib/rationalize":90}],83:[function(t,e,r){"use strict";var n=t("./is-rat"),i=t("./lib/is-bn"),a=t("./lib/num-to-bn"),o=t("./lib/str-to-bn"),s=t("./lib/rationalize"),l=t("./div");e.exports=function t(e,r){if(n(e))return r?l(e,t(r)):[e[0].clone(),e[1].clone()];var c,u,f=0;if(i(e))c=e.clone();else if("string"==typeof e)c=o(e);else{if(0===e)return[a(0),a(1)];if(e===Math.floor(e))c=a(e);else{for(;e!==Math.floor(e);)e*=Math.pow(2,256),f-=256;c=a(e)}}if(n(r))c.mul(r[1]),u=r[0].clone();else if(i(r))u=r.clone();else if("string"==typeof r)u=o(r);else if(r)if(r===Math.floor(r))u=a(r);else{for(;r!==Math.floor(r);)r*=Math.pow(2,256),f+=256;u=a(r)}else u=a(1);f>0?c=c.ushln(f):f<0&&(u=u.ushln(-f));return s(c,u)}},{"./div":82,"./is-rat":84,"./lib/is-bn":88,"./lib/num-to-bn":89,"./lib/rationalize":90,"./lib/str-to-bn":91}],84:[function(t,e,r){"use strict";var n=t("./lib/is-bn");e.exports=function(t){return Array.isArray(t)&&2===t.length&&n(t[0])&&n(t[1])}},{"./lib/is-bn":88}],85:[function(t,e,r){"use strict";var n=t("bn.js");e.exports=function(t){return t.cmp(new n(0))}},{"bn.js":99}],86:[function(t,e,r){"use strict";var n=t("./bn-sign");e.exports=function(t){var e=t.length,r=t.words,i=0;if(1===e)i=r[0];else if(2===e)i=r[0]+67108864*r[1];else for(var a=0;a20)return 52;return r+32}},{"bit-twiddle":97,"double-bits":173}],88:[function(t,e,r){"use strict";t("bn.js");e.exports=function(t){return t&&"object"==typeof t&&Boolean(t.words)}},{"bn.js":99}],89:[function(t,e,r){"use strict";var n=t("bn.js"),i=t("double-bits");e.exports=function(t){var e=i.exponent(t);return e<52?new n(t):new n(t*Math.pow(2,52-e)).ushln(e-52)}},{"bn.js":99,"double-bits":173}],90:[function(t,e,r){"use strict";var n=t("./num-to-bn"),i=t("./bn-sign");e.exports=function(t,e){var r=i(t),a=i(e);if(0===r)return[n(0),n(1)];if(0===a)return[n(0),n(0)];a<0&&(t=t.neg(),e=e.neg());var o=t.gcd(e);if(o.cmpn(1))return[t.div(o),e.div(o)];return[t,e]}},{"./bn-sign":85,"./num-to-bn":89}],91:[function(t,e,r){"use strict";var n=t("bn.js");e.exports=function(t){return new n(t)}},{"bn.js":99}],92:[function(t,e,r){"use strict";var n=t("./lib/rationalize");e.exports=function(t,e){return n(t[0].mul(e[0]),t[1].mul(e[1]))}},{"./lib/rationalize":90}],93:[function(t,e,r){"use strict";var n=t("./lib/bn-sign");e.exports=function(t){return n(t[0])*n(t[1])}},{"./lib/bn-sign":85}],94:[function(t,e,r){"use strict";var n=t("./lib/rationalize");e.exports=function(t,e){return n(t[0].mul(e[1]).sub(t[1].mul(e[0])),t[1].mul(e[1]))}},{"./lib/rationalize":90}],95:[function(t,e,r){"use strict";var n=t("./lib/bn-to-num"),i=t("./lib/ctz");e.exports=function(t){var e=t[0],r=t[1];if(0===e.cmpn(0))return 0;var a=e.abs().divmod(r.abs()),o=a.div,s=n(o),l=a.mod,c=e.negative!==r.negative?-1:1;if(0===l.cmpn(0))return c*s;if(s){var u=i(s)+4,f=n(l.ushln(u).divRound(r));return c*(s+f*Math.pow(2,-u))}var h=r.bitLength()-l.bitLength()+53;f=n(l.ushln(h).divRound(r));return h<1023?c*f*Math.pow(2,-h):(f*=Math.pow(2,-1023),c*f*Math.pow(2,1023-h))}},{"./lib/bn-to-num":86,"./lib/ctz":87}],96:[function(t,e,r){"use strict";function n(t,e,r,n,i){var a=["function ",t,"(a,l,h,",n.join(","),"){",i?"":"var i=",r?"l-1":"h+1",";while(l<=h){var m=(l+h)>>>1,x=a[m]"];return i?e.indexOf("c")<0?a.push(";if(x===y){return m}else if(x<=y){"):a.push(";var p=c(x,y);if(p===0){return m}else if(p<=0){"):a.push(";if(",e,"){i=m;"),r?a.push("l=m+1}else{h=m-1}"):a.push("h=m-1}else{l=m+1}"),a.push("}"),i?a.push("return -1};"):a.push("return i};"),a.join("")}function i(t,e,r,i){return new Function([n("A","x"+t+"y",e,["y"],i),n("P","c(x,y)"+t+"0",e,["y","c"],i),"function dispatchBsearch",r,"(a,y,c,l,h){if(typeof(c)==='function'){return P(a,(l===void 0)?0:l|0,(h===void 0)?a.length-1:h|0,y,c)}else{return A(a,(c===void 0)?0:c|0,(l===void 0)?a.length-1:l|0,y)}}return dispatchBsearch",r].join(""))()}e.exports={ge:i(">=",!1,"GE"),gt:i(">",!1,"GT"),lt:i("<",!0,"LT"),le:i("<=",!0,"LE"),eq:i("-",!0,"EQ",!0)}},{}],97:[function(t,e,r){"use strict";function n(t){var e=32;return(t&=-t)&&e--,65535&t&&(e-=16),16711935&t&&(e-=8),252645135&t&&(e-=4),858993459&t&&(e-=2),1431655765&t&&(e-=1),e}r.INT_BITS=32,r.INT_MAX=2147483647,r.INT_MIN=-1<<31,r.sign=function(t){return(t>0)-(t<0)},r.abs=function(t){var e=t>>31;return(t^e)-e},r.min=function(t,e){return e^(t^e)&-(t65535)<<4,e|=r=((t>>>=e)>255)<<3,e|=r=((t>>>=r)>15)<<2,(e|=r=((t>>>=r)>3)<<1)|(t>>>=r)>>1},r.log10=function(t){return t>=1e9?9:t>=1e8?8:t>=1e7?7:t>=1e6?6:t>=1e5?5:t>=1e4?4:t>=1e3?3:t>=100?2:t>=10?1:0},r.popCount=function(t){return 16843009*((t=(858993459&(t-=t>>>1&1431655765))+(t>>>2&858993459))+(t>>>4)&252645135)>>>24},r.countTrailingZeros=n,r.nextPow2=function(t){return t+=0===t,--t,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)+1},r.prevPow2=function(t){return t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)-(t>>>1)},r.parity=function(t){return t^=t>>>16,t^=t>>>8,t^=t>>>4,27030>>>(t&=15)&1};var i=new Array(256);!function(t){for(var e=0;e<256;++e){var r=e,n=e,i=7;for(r>>>=1;r;r>>>=1)n<<=1,n|=1&r,--i;t[e]=n<>>8&255]<<16|i[t>>>16&255]<<8|i[t>>>24&255]},r.interleave2=function(t,e){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t&=65535)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e&=65535)|e<<8))|e<<4))|e<<2))|e<<1))<<1},r.deinterleave2=function(t,e){return(t=65535&((t=16711935&((t=252645135&((t=858993459&((t=t>>>e&1431655765)|t>>>1))|t>>>2))|t>>>4))|t>>>16))<<16>>16},r.interleave3=function(t,e,r){return t=1227133513&((t=3272356035&((t=251719695&((t=4278190335&((t&=1023)|t<<16))|t<<8))|t<<4))|t<<2),(t|=(e=1227133513&((e=3272356035&((e=251719695&((e=4278190335&((e&=1023)|e<<16))|e<<8))|e<<4))|e<<2))<<1)|(r=1227133513&((r=3272356035&((r=251719695&((r=4278190335&((r&=1023)|r<<16))|r<<8))|r<<4))|r<<2))<<2},r.deinterleave3=function(t,e){return(t=1023&((t=4278190335&((t=251719695&((t=3272356035&((t=t>>>e&1227133513)|t>>>2))|t>>>4))|t>>>8))|t>>>16))<<22>>22},r.nextCombination=function(t){var e=t|t-1;return e+1|(~e&-~e)-1>>>n(t)+1}},{}],98:[function(t,e,r){"use strict";var n=t("clamp");e.exports=function(t,e){e||(e={});var r,o,s,l,c,u,f,h,p,d,g,m=null==e.cutoff?.25:e.cutoff,v=null==e.radius?8:e.radius,y=e.channel||0;if(ArrayBuffer.isView(t)||Array.isArray(t)){if(!e.width||!e.height)throw Error("For raw data width and height should be provided by options");r=e.width,o=e.height,l=t,u=e.stride?e.stride:Math.floor(t.length/r/o)}else window.HTMLCanvasElement&&t instanceof window.HTMLCanvasElement?(f=(h=t).getContext("2d"),r=h.width,o=h.height,p=f.getImageData(0,0,r,o),l=p.data,u=4):window.CanvasRenderingContext2D&&t instanceof window.CanvasRenderingContext2D?(h=t.canvas,f=t,r=h.width,o=h.height,p=f.getImageData(0,0,r,o),l=p.data,u=4):window.ImageData&&t instanceof window.ImageData&&(p=t,r=t.width,o=t.height,l=p.data,u=4);if(s=Math.max(r,o),window.Uint8ClampedArray&&l instanceof window.Uint8ClampedArray||window.Uint8Array&&l instanceof window.Uint8Array)for(c=l,l=Array(r*o),d=0,g=c.length;d=49&&o<=54?o-49+10:o>=17&&o<=22?o-17+10:15&o}return n}function l(t,e,r,n){for(var i=0,a=Math.min(t.length,r),o=e;o=49?s-49+10:s>=17?s-17+10:s}return i}a.isBN=function(t){return t instanceof a||null!==t&&"object"==typeof t&&t.constructor.wordSize===a.wordSize&&Array.isArray(t.words)},a.max=function(t,e){return t.cmp(e)>0?t:e},a.min=function(t,e){return t.cmp(e)<0?t:e},a.prototype._init=function(t,e,r){if("number"==typeof t)return this._initNumber(t,e,r);if("object"==typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},a.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},a.prototype._initArray=function(t,e,r){if(n("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i=0;i-=3)o=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[a]|=o<>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);else if("le"===r)for(i=0,a=0;i>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);return this.strip()},a.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=s(t,r,r+6),this.words[n]|=i<>>26-a&4194303,(a+=24)>=26&&(a-=26,n++);r+6!==e&&(i=s(t,e,r+6),this.words[n]|=i<>>26-a&4194303),this.strip()},a.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var a=t.length-r,o=a%n,s=Math.min(a,a-o)+r,c=0,u=r;u1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},a.prototype.inspect=function(){return(this.red?""};var c=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],u=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function h(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],a=0|e.words[0],o=i*a,s=67108863&o,l=o/67108864|0;r.words[0]=s;for(var c=1;c>>26,f=67108863&l,h=Math.min(c,e.length-1),p=Math.max(0,c-t.length+1);p<=h;p++){var d=c-p|0;u+=(o=(i=0|t.words[d])*(a=0|e.words[p])+f)/67108864|0,f=67108863&o}r.words[c]=0|f,l=0|u}return 0!==l?r.words[c]=0|l:r.length--,r.strip()}a.prototype.toString=function(t,e){var r;if(e=0|e||1,16===(t=t||10)||"hex"===t){r="";for(var i=0,a=0,o=0;o>>24-i&16777215)||o!==this.length-1?c[6-l.length]+l+r:l+r,(i+=2)>=26&&(i-=26,o--)}for(0!==a&&(r=a.toString(16)+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var h=u[t],p=f[t];r="";var d=this.clone();for(d.negative=0;!d.isZero();){var g=d.modn(p).toString(t);r=(d=d.idivn(p)).isZero()?g+r:c[h-g.length]+g+r}for(this.isZero()&&(r="0"+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},a.prototype.toJSON=function(){return this.toString(16)},a.prototype.toBuffer=function(t,e){return n("undefined"!=typeof o),this.toArrayLike(o,t,e)},a.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},a.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),a=r||Math.max(1,i);n(i<=a,"byte array longer than desired length"),n(a>0,"Requested array length <= 0"),this.strip();var o,s,l="le"===e,c=new t(a),u=this.clone();if(l){for(s=0;!u.isZero();s++)o=u.andln(255),u.iushrn(8),c[s]=o;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},a.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},a.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},a.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},a.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},a.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},a.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},a.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},a.prototype.inotn=function(t){n("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},a.prototype.notn=function(t){return this.clone().inotn(t)},a.prototype.setn=function(t,e){n("number"==typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,a=0;a>>26;for(;0!==i&&a>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;at.length?this.clone().iadd(t):t.clone().iadd(this)},a.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var a=0,o=0;o>26,this.words[o]=67108863&e;for(;0!==a&&o>26,this.words[o]=67108863&e;if(0===a&&o>>13,p=0|o[1],d=8191&p,g=p>>>13,m=0|o[2],v=8191&m,y=m>>>13,x=0|o[3],b=8191&x,_=x>>>13,w=0|o[4],T=8191&w,k=w>>>13,M=0|o[5],A=8191&M,S=M>>>13,E=0|o[6],C=8191&E,L=E>>>13,I=0|o[7],P=8191&I,z=I>>>13,O=0|o[8],D=8191&O,R=O>>>13,F=0|o[9],B=8191&F,N=F>>>13,j=0|s[0],U=8191&j,V=j>>>13,q=0|s[1],H=8191&q,G=q>>>13,Y=0|s[2],W=8191&Y,X=Y>>>13,Z=0|s[3],J=8191&Z,K=Z>>>13,Q=0|s[4],$=8191&Q,tt=Q>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],at=8191&it,ot=it>>>13,st=0|s[7],lt=8191&st,ct=st>>>13,ut=0|s[8],ft=8191&ut,ht=ut>>>13,pt=0|s[9],dt=8191&pt,gt=pt>>>13;r.negative=t.negative^e.negative,r.length=19;var mt=(c+(n=Math.imul(f,U))|0)+((8191&(i=(i=Math.imul(f,V))+Math.imul(h,U)|0))<<13)|0;c=((a=Math.imul(h,V))+(i>>>13)|0)+(mt>>>26)|0,mt&=67108863,n=Math.imul(d,U),i=(i=Math.imul(d,V))+Math.imul(g,U)|0,a=Math.imul(g,V);var vt=(c+(n=n+Math.imul(f,H)|0)|0)+((8191&(i=(i=i+Math.imul(f,G)|0)+Math.imul(h,H)|0))<<13)|0;c=((a=a+Math.imul(h,G)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(v,U),i=(i=Math.imul(v,V))+Math.imul(y,U)|0,a=Math.imul(y,V),n=n+Math.imul(d,H)|0,i=(i=i+Math.imul(d,G)|0)+Math.imul(g,H)|0,a=a+Math.imul(g,G)|0;var yt=(c+(n=n+Math.imul(f,W)|0)|0)+((8191&(i=(i=i+Math.imul(f,X)|0)+Math.imul(h,W)|0))<<13)|0;c=((a=a+Math.imul(h,X)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(b,U),i=(i=Math.imul(b,V))+Math.imul(_,U)|0,a=Math.imul(_,V),n=n+Math.imul(v,H)|0,i=(i=i+Math.imul(v,G)|0)+Math.imul(y,H)|0,a=a+Math.imul(y,G)|0,n=n+Math.imul(d,W)|0,i=(i=i+Math.imul(d,X)|0)+Math.imul(g,W)|0,a=a+Math.imul(g,X)|0;var xt=(c+(n=n+Math.imul(f,J)|0)|0)+((8191&(i=(i=i+Math.imul(f,K)|0)+Math.imul(h,J)|0))<<13)|0;c=((a=a+Math.imul(h,K)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(T,U),i=(i=Math.imul(T,V))+Math.imul(k,U)|0,a=Math.imul(k,V),n=n+Math.imul(b,H)|0,i=(i=i+Math.imul(b,G)|0)+Math.imul(_,H)|0,a=a+Math.imul(_,G)|0,n=n+Math.imul(v,W)|0,i=(i=i+Math.imul(v,X)|0)+Math.imul(y,W)|0,a=a+Math.imul(y,X)|0,n=n+Math.imul(d,J)|0,i=(i=i+Math.imul(d,K)|0)+Math.imul(g,J)|0,a=a+Math.imul(g,K)|0;var bt=(c+(n=n+Math.imul(f,$)|0)|0)+((8191&(i=(i=i+Math.imul(f,tt)|0)+Math.imul(h,$)|0))<<13)|0;c=((a=a+Math.imul(h,tt)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(A,U),i=(i=Math.imul(A,V))+Math.imul(S,U)|0,a=Math.imul(S,V),n=n+Math.imul(T,H)|0,i=(i=i+Math.imul(T,G)|0)+Math.imul(k,H)|0,a=a+Math.imul(k,G)|0,n=n+Math.imul(b,W)|0,i=(i=i+Math.imul(b,X)|0)+Math.imul(_,W)|0,a=a+Math.imul(_,X)|0,n=n+Math.imul(v,J)|0,i=(i=i+Math.imul(v,K)|0)+Math.imul(y,J)|0,a=a+Math.imul(y,K)|0,n=n+Math.imul(d,$)|0,i=(i=i+Math.imul(d,tt)|0)+Math.imul(g,$)|0,a=a+Math.imul(g,tt)|0;var _t=(c+(n=n+Math.imul(f,rt)|0)|0)+((8191&(i=(i=i+Math.imul(f,nt)|0)+Math.imul(h,rt)|0))<<13)|0;c=((a=a+Math.imul(h,nt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(C,U),i=(i=Math.imul(C,V))+Math.imul(L,U)|0,a=Math.imul(L,V),n=n+Math.imul(A,H)|0,i=(i=i+Math.imul(A,G)|0)+Math.imul(S,H)|0,a=a+Math.imul(S,G)|0,n=n+Math.imul(T,W)|0,i=(i=i+Math.imul(T,X)|0)+Math.imul(k,W)|0,a=a+Math.imul(k,X)|0,n=n+Math.imul(b,J)|0,i=(i=i+Math.imul(b,K)|0)+Math.imul(_,J)|0,a=a+Math.imul(_,K)|0,n=n+Math.imul(v,$)|0,i=(i=i+Math.imul(v,tt)|0)+Math.imul(y,$)|0,a=a+Math.imul(y,tt)|0,n=n+Math.imul(d,rt)|0,i=(i=i+Math.imul(d,nt)|0)+Math.imul(g,rt)|0,a=a+Math.imul(g,nt)|0;var wt=(c+(n=n+Math.imul(f,at)|0)|0)+((8191&(i=(i=i+Math.imul(f,ot)|0)+Math.imul(h,at)|0))<<13)|0;c=((a=a+Math.imul(h,ot)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(P,U),i=(i=Math.imul(P,V))+Math.imul(z,U)|0,a=Math.imul(z,V),n=n+Math.imul(C,H)|0,i=(i=i+Math.imul(C,G)|0)+Math.imul(L,H)|0,a=a+Math.imul(L,G)|0,n=n+Math.imul(A,W)|0,i=(i=i+Math.imul(A,X)|0)+Math.imul(S,W)|0,a=a+Math.imul(S,X)|0,n=n+Math.imul(T,J)|0,i=(i=i+Math.imul(T,K)|0)+Math.imul(k,J)|0,a=a+Math.imul(k,K)|0,n=n+Math.imul(b,$)|0,i=(i=i+Math.imul(b,tt)|0)+Math.imul(_,$)|0,a=a+Math.imul(_,tt)|0,n=n+Math.imul(v,rt)|0,i=(i=i+Math.imul(v,nt)|0)+Math.imul(y,rt)|0,a=a+Math.imul(y,nt)|0,n=n+Math.imul(d,at)|0,i=(i=i+Math.imul(d,ot)|0)+Math.imul(g,at)|0,a=a+Math.imul(g,ot)|0;var Tt=(c+(n=n+Math.imul(f,lt)|0)|0)+((8191&(i=(i=i+Math.imul(f,ct)|0)+Math.imul(h,lt)|0))<<13)|0;c=((a=a+Math.imul(h,ct)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(D,U),i=(i=Math.imul(D,V))+Math.imul(R,U)|0,a=Math.imul(R,V),n=n+Math.imul(P,H)|0,i=(i=i+Math.imul(P,G)|0)+Math.imul(z,H)|0,a=a+Math.imul(z,G)|0,n=n+Math.imul(C,W)|0,i=(i=i+Math.imul(C,X)|0)+Math.imul(L,W)|0,a=a+Math.imul(L,X)|0,n=n+Math.imul(A,J)|0,i=(i=i+Math.imul(A,K)|0)+Math.imul(S,J)|0,a=a+Math.imul(S,K)|0,n=n+Math.imul(T,$)|0,i=(i=i+Math.imul(T,tt)|0)+Math.imul(k,$)|0,a=a+Math.imul(k,tt)|0,n=n+Math.imul(b,rt)|0,i=(i=i+Math.imul(b,nt)|0)+Math.imul(_,rt)|0,a=a+Math.imul(_,nt)|0,n=n+Math.imul(v,at)|0,i=(i=i+Math.imul(v,ot)|0)+Math.imul(y,at)|0,a=a+Math.imul(y,ot)|0,n=n+Math.imul(d,lt)|0,i=(i=i+Math.imul(d,ct)|0)+Math.imul(g,lt)|0,a=a+Math.imul(g,ct)|0;var kt=(c+(n=n+Math.imul(f,ft)|0)|0)+((8191&(i=(i=i+Math.imul(f,ht)|0)+Math.imul(h,ft)|0))<<13)|0;c=((a=a+Math.imul(h,ht)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(B,U),i=(i=Math.imul(B,V))+Math.imul(N,U)|0,a=Math.imul(N,V),n=n+Math.imul(D,H)|0,i=(i=i+Math.imul(D,G)|0)+Math.imul(R,H)|0,a=a+Math.imul(R,G)|0,n=n+Math.imul(P,W)|0,i=(i=i+Math.imul(P,X)|0)+Math.imul(z,W)|0,a=a+Math.imul(z,X)|0,n=n+Math.imul(C,J)|0,i=(i=i+Math.imul(C,K)|0)+Math.imul(L,J)|0,a=a+Math.imul(L,K)|0,n=n+Math.imul(A,$)|0,i=(i=i+Math.imul(A,tt)|0)+Math.imul(S,$)|0,a=a+Math.imul(S,tt)|0,n=n+Math.imul(T,rt)|0,i=(i=i+Math.imul(T,nt)|0)+Math.imul(k,rt)|0,a=a+Math.imul(k,nt)|0,n=n+Math.imul(b,at)|0,i=(i=i+Math.imul(b,ot)|0)+Math.imul(_,at)|0,a=a+Math.imul(_,ot)|0,n=n+Math.imul(v,lt)|0,i=(i=i+Math.imul(v,ct)|0)+Math.imul(y,lt)|0,a=a+Math.imul(y,ct)|0,n=n+Math.imul(d,ft)|0,i=(i=i+Math.imul(d,ht)|0)+Math.imul(g,ft)|0,a=a+Math.imul(g,ht)|0;var Mt=(c+(n=n+Math.imul(f,dt)|0)|0)+((8191&(i=(i=i+Math.imul(f,gt)|0)+Math.imul(h,dt)|0))<<13)|0;c=((a=a+Math.imul(h,gt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(B,H),i=(i=Math.imul(B,G))+Math.imul(N,H)|0,a=Math.imul(N,G),n=n+Math.imul(D,W)|0,i=(i=i+Math.imul(D,X)|0)+Math.imul(R,W)|0,a=a+Math.imul(R,X)|0,n=n+Math.imul(P,J)|0,i=(i=i+Math.imul(P,K)|0)+Math.imul(z,J)|0,a=a+Math.imul(z,K)|0,n=n+Math.imul(C,$)|0,i=(i=i+Math.imul(C,tt)|0)+Math.imul(L,$)|0,a=a+Math.imul(L,tt)|0,n=n+Math.imul(A,rt)|0,i=(i=i+Math.imul(A,nt)|0)+Math.imul(S,rt)|0,a=a+Math.imul(S,nt)|0,n=n+Math.imul(T,at)|0,i=(i=i+Math.imul(T,ot)|0)+Math.imul(k,at)|0,a=a+Math.imul(k,ot)|0,n=n+Math.imul(b,lt)|0,i=(i=i+Math.imul(b,ct)|0)+Math.imul(_,lt)|0,a=a+Math.imul(_,ct)|0,n=n+Math.imul(v,ft)|0,i=(i=i+Math.imul(v,ht)|0)+Math.imul(y,ft)|0,a=a+Math.imul(y,ht)|0;var At=(c+(n=n+Math.imul(d,dt)|0)|0)+((8191&(i=(i=i+Math.imul(d,gt)|0)+Math.imul(g,dt)|0))<<13)|0;c=((a=a+Math.imul(g,gt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(B,W),i=(i=Math.imul(B,X))+Math.imul(N,W)|0,a=Math.imul(N,X),n=n+Math.imul(D,J)|0,i=(i=i+Math.imul(D,K)|0)+Math.imul(R,J)|0,a=a+Math.imul(R,K)|0,n=n+Math.imul(P,$)|0,i=(i=i+Math.imul(P,tt)|0)+Math.imul(z,$)|0,a=a+Math.imul(z,tt)|0,n=n+Math.imul(C,rt)|0,i=(i=i+Math.imul(C,nt)|0)+Math.imul(L,rt)|0,a=a+Math.imul(L,nt)|0,n=n+Math.imul(A,at)|0,i=(i=i+Math.imul(A,ot)|0)+Math.imul(S,at)|0,a=a+Math.imul(S,ot)|0,n=n+Math.imul(T,lt)|0,i=(i=i+Math.imul(T,ct)|0)+Math.imul(k,lt)|0,a=a+Math.imul(k,ct)|0,n=n+Math.imul(b,ft)|0,i=(i=i+Math.imul(b,ht)|0)+Math.imul(_,ft)|0,a=a+Math.imul(_,ht)|0;var St=(c+(n=n+Math.imul(v,dt)|0)|0)+((8191&(i=(i=i+Math.imul(v,gt)|0)+Math.imul(y,dt)|0))<<13)|0;c=((a=a+Math.imul(y,gt)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(B,J),i=(i=Math.imul(B,K))+Math.imul(N,J)|0,a=Math.imul(N,K),n=n+Math.imul(D,$)|0,i=(i=i+Math.imul(D,tt)|0)+Math.imul(R,$)|0,a=a+Math.imul(R,tt)|0,n=n+Math.imul(P,rt)|0,i=(i=i+Math.imul(P,nt)|0)+Math.imul(z,rt)|0,a=a+Math.imul(z,nt)|0,n=n+Math.imul(C,at)|0,i=(i=i+Math.imul(C,ot)|0)+Math.imul(L,at)|0,a=a+Math.imul(L,ot)|0,n=n+Math.imul(A,lt)|0,i=(i=i+Math.imul(A,ct)|0)+Math.imul(S,lt)|0,a=a+Math.imul(S,ct)|0,n=n+Math.imul(T,ft)|0,i=(i=i+Math.imul(T,ht)|0)+Math.imul(k,ft)|0,a=a+Math.imul(k,ht)|0;var Et=(c+(n=n+Math.imul(b,dt)|0)|0)+((8191&(i=(i=i+Math.imul(b,gt)|0)+Math.imul(_,dt)|0))<<13)|0;c=((a=a+Math.imul(_,gt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(B,$),i=(i=Math.imul(B,tt))+Math.imul(N,$)|0,a=Math.imul(N,tt),n=n+Math.imul(D,rt)|0,i=(i=i+Math.imul(D,nt)|0)+Math.imul(R,rt)|0,a=a+Math.imul(R,nt)|0,n=n+Math.imul(P,at)|0,i=(i=i+Math.imul(P,ot)|0)+Math.imul(z,at)|0,a=a+Math.imul(z,ot)|0,n=n+Math.imul(C,lt)|0,i=(i=i+Math.imul(C,ct)|0)+Math.imul(L,lt)|0,a=a+Math.imul(L,ct)|0,n=n+Math.imul(A,ft)|0,i=(i=i+Math.imul(A,ht)|0)+Math.imul(S,ft)|0,a=a+Math.imul(S,ht)|0;var Ct=(c+(n=n+Math.imul(T,dt)|0)|0)+((8191&(i=(i=i+Math.imul(T,gt)|0)+Math.imul(k,dt)|0))<<13)|0;c=((a=a+Math.imul(k,gt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(B,rt),i=(i=Math.imul(B,nt))+Math.imul(N,rt)|0,a=Math.imul(N,nt),n=n+Math.imul(D,at)|0,i=(i=i+Math.imul(D,ot)|0)+Math.imul(R,at)|0,a=a+Math.imul(R,ot)|0,n=n+Math.imul(P,lt)|0,i=(i=i+Math.imul(P,ct)|0)+Math.imul(z,lt)|0,a=a+Math.imul(z,ct)|0,n=n+Math.imul(C,ft)|0,i=(i=i+Math.imul(C,ht)|0)+Math.imul(L,ft)|0,a=a+Math.imul(L,ht)|0;var Lt=(c+(n=n+Math.imul(A,dt)|0)|0)+((8191&(i=(i=i+Math.imul(A,gt)|0)+Math.imul(S,dt)|0))<<13)|0;c=((a=a+Math.imul(S,gt)|0)+(i>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,n=Math.imul(B,at),i=(i=Math.imul(B,ot))+Math.imul(N,at)|0,a=Math.imul(N,ot),n=n+Math.imul(D,lt)|0,i=(i=i+Math.imul(D,ct)|0)+Math.imul(R,lt)|0,a=a+Math.imul(R,ct)|0,n=n+Math.imul(P,ft)|0,i=(i=i+Math.imul(P,ht)|0)+Math.imul(z,ft)|0,a=a+Math.imul(z,ht)|0;var It=(c+(n=n+Math.imul(C,dt)|0)|0)+((8191&(i=(i=i+Math.imul(C,gt)|0)+Math.imul(L,dt)|0))<<13)|0;c=((a=a+Math.imul(L,gt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(B,lt),i=(i=Math.imul(B,ct))+Math.imul(N,lt)|0,a=Math.imul(N,ct),n=n+Math.imul(D,ft)|0,i=(i=i+Math.imul(D,ht)|0)+Math.imul(R,ft)|0,a=a+Math.imul(R,ht)|0;var Pt=(c+(n=n+Math.imul(P,dt)|0)|0)+((8191&(i=(i=i+Math.imul(P,gt)|0)+Math.imul(z,dt)|0))<<13)|0;c=((a=a+Math.imul(z,gt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(B,ft),i=(i=Math.imul(B,ht))+Math.imul(N,ft)|0,a=Math.imul(N,ht);var zt=(c+(n=n+Math.imul(D,dt)|0)|0)+((8191&(i=(i=i+Math.imul(D,gt)|0)+Math.imul(R,dt)|0))<<13)|0;c=((a=a+Math.imul(R,gt)|0)+(i>>>13)|0)+(zt>>>26)|0,zt&=67108863;var Ot=(c+(n=Math.imul(B,dt))|0)+((8191&(i=(i=Math.imul(B,gt))+Math.imul(N,dt)|0))<<13)|0;return c=((a=Math.imul(N,gt))+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,l[0]=mt,l[1]=vt,l[2]=yt,l[3]=xt,l[4]=bt,l[5]=_t,l[6]=wt,l[7]=Tt,l[8]=kt,l[9]=Mt,l[10]=At,l[11]=St,l[12]=Et,l[13]=Ct,l[14]=Lt,l[15]=It,l[16]=Pt,l[17]=zt,l[18]=Ot,0!==c&&(l[19]=c,r.length++),r};function d(t,e,r){return(new g).mulp(t,e,r)}function g(t,e){this.x=t,this.y=e}Math.imul||(p=h),a.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?p(this,t,e):r<63?h(this,t,e):r<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,a=0;a>>26)|0)>>>26,o&=67108863}r.words[a]=s,n=o,o=i}return 0!==n?r.words[a]=n:r.length--,r.strip()}(this,t,e):d(this,t,e)},g.prototype.makeRBT=function(t){for(var e=new Array(t),r=a.prototype._countBits(t)-1,n=0;n>=1;return n},g.prototype.permute=function(t,e,r,n,i,a){for(var o=0;o>>=1)i++;return 1<>>=13,r[2*o+1]=8191&a,a>>>=13;for(o=2*e;o>=26,e+=i/67108864|0,e+=a>>>26,this.words[r]=67108863&a}return 0!==e&&(this.words[r]=e,this.length++),this},a.prototype.muln=function(t){return this.clone().imuln(t)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}(t);if(0===e.length)return new a(1);for(var r=this,n=0;n=0);var e,r=t%26,i=(t-r)/26,a=67108863>>>26-r<<26-r;if(0!==r){var o=0;for(e=0;e>>26-r}o&&(this.words[e]=o,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e=0),i=e?(e-e%26)/26:0;var a=t%26,o=Math.min((t-a)/26,this.length),s=67108863^67108863>>>a<o)for(this.length-=o,c=0;c=0&&(0!==u||c>=i);c--){var f=0|this.words[c];this.words[c]=u<<26-a|f>>>a,u=f&s}return l&&0!==u&&(l.words[l.length++]=u),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},a.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},a.prototype.shln=function(t){return this.clone().ishln(t)},a.prototype.ushln=function(t){return this.clone().iushln(t)},a.prototype.shrn=function(t){return this.clone().ishrn(t)},a.prototype.ushrn=function(t){return this.clone().iushrn(t)},a.prototype.testn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},a.prototype.isubn=function(t){if(n("number"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(l/67108864|0),this.words[i+r]=67108863&a}for(;i>26,this.words[i+r]=67108863&a;if(0===s)return this.strip();for(n(-1===s),s=0,i=0;i>26,this.words[i]=67108863&a;return this.negative=1,this.strip()},a.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,o=0|i.words[i.length-1];0!==(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var s,l=n.length-i.length;if("mod"!==e){(s=new a(null)).length=l+1,s.words=new Array(s.length);for(var c=0;c=0;f--){var h=67108864*(0|n.words[i.length+f])+(0|n.words[i.length+f-1]);for(h=Math.min(h/o|0,67108863),n._ishlnsubmul(i,h,f);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(i,1,f),n.isZero()||(n.negative^=1);s&&(s.words[f]=h)}return s&&s.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},a.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(i=s.div.neg()),"div"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(t)),{div:i,mod:o}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(i=s.div.neg()),{div:i,mod:s.mod}):0!=(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(t)),{div:s.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new a(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new a(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new a(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,o,s},a.prototype.div=function(t){return this.divmod(t,"div",!1).div},a.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},a.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},a.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),a=r.cmp(n);return a<0||1===i&&0===a?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},a.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},a.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},a.prototype.divn=function(t){return this.clone().idivn(t)},a.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new a(1),o=new a(0),s=new a(0),l=new a(1),c=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++c;for(var u=r.clone(),f=e.clone();!e.isZero();){for(var h=0,p=1;0==(e.words[0]&p)&&h<26;++h,p<<=1);if(h>0)for(e.iushrn(h);h-- >0;)(i.isOdd()||o.isOdd())&&(i.iadd(u),o.isub(f)),i.iushrn(1),o.iushrn(1);for(var d=0,g=1;0==(r.words[0]&g)&&d<26;++d,g<<=1);if(d>0)for(r.iushrn(d);d-- >0;)(s.isOdd()||l.isOdd())&&(s.iadd(u),l.isub(f)),s.iushrn(1),l.iushrn(1);e.cmp(r)>=0?(e.isub(r),i.isub(s),o.isub(l)):(r.isub(e),s.isub(i),l.isub(o))}return{a:s,b:l,gcd:r.iushln(c)}},a.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i,o=new a(1),s=new a(0),l=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,u=1;0==(e.words[0]&u)&&c<26;++c,u<<=1);if(c>0)for(e.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(l),o.iushrn(1);for(var f=0,h=1;0==(r.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(r.iushrn(f);f-- >0;)s.isOdd()&&s.iadd(l),s.iushrn(1);e.cmp(r)>=0?(e.isub(r),o.isub(s)):(r.isub(e),s.isub(o))}return(i=0===e.cmpn(1)?o:s).cmpn(0)<0&&i.iadd(t),i},a.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var a=e;e=r,r=a}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},a.prototype.invm=function(t){return this.egcd(t).a.umod(t)},a.prototype.isEven=function(){return 0==(1&this.words[0])},a.prototype.isOdd=function(){return 1==(1&this.words[0])},a.prototype.andln=function(t){return this.words[0]&t},a.prototype.bincn=function(t){n("number"==typeof t);var e=t%26,r=(t-e)/26,i=1<>>26,s&=67108863,this.words[o]=s}return 0!==a&&(this.words[o]=a,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:it.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},a.prototype.gtn=function(t){return 1===this.cmpn(t)},a.prototype.gt=function(t){return 1===this.cmp(t)},a.prototype.gten=function(t){return this.cmpn(t)>=0},a.prototype.gte=function(t){return this.cmp(t)>=0},a.prototype.ltn=function(t){return-1===this.cmpn(t)},a.prototype.lt=function(t){return-1===this.cmp(t)},a.prototype.lten=function(t){return this.cmpn(t)<=0},a.prototype.lte=function(t){return this.cmp(t)<=0},a.prototype.eqn=function(t){return 0===this.cmpn(t)},a.prototype.eq=function(t){return 0===this.cmp(t)},a.red=function(t){return new w(t)},a.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},a.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(t){return this.red=t,this},a.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},a.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},a.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},a.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},a.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},a.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},a.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},a.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},a.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var m={k256:null,p224:null,p192:null,p25519:null};function v(t,e){this.name=t,this.p=new a(e,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function y(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function x(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function b(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function _(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function w(t){if("string"==typeof t){var e=a._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function T(t){w.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var t=new a(null);return t.words=new Array(Math.ceil(this.n/13)),t},v.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e0?r.isub(this.p):r.strip(),r},v.prototype.split=function(t,e){t.iushrn(this.n,0,e)},v.prototype.imulK=function(t){return t.imul(this.k)},i(y,v),y.prototype.split=function(t,e){for(var r=Math.min(t.length,9),n=0;n>>22,i=a}i>>>=22,t.words[n-10]=i,0===i&&t.length>10?t.length-=10:t.length-=9},y.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},a._prime=function(t){if(m[t])return m[t];var e;if("k256"===t)e=new y;else if("p224"===t)e=new x;else if("p192"===t)e=new b;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new _}return m[t]=e,e},w.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},w.prototype._verify2=function(t,e){n(0==(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},w.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},w.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},w.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},w.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},w.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},w.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},w.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},w.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},w.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},w.prototype.isqr=function(t){return this.imul(t,t.clone())},w.prototype.sqr=function(t){return this.mul(t,t)},w.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var r=this.m.add(new a(1)).iushrn(2);return this.pow(t,r)}for(var i=this.m.subn(1),o=0;!i.isZero()&&0===i.andln(1);)o++,i.iushrn(1);n(!i.isZero());var s=new a(1).toRed(this),l=s.redNeg(),c=this.m.subn(1).iushrn(1),u=this.m.bitLength();for(u=new a(2*u*u).toRed(this);0!==this.pow(u,c).cmp(l);)u.redIAdd(l);for(var f=this.pow(u,i),h=this.pow(t,i.addn(1).iushrn(1)),p=this.pow(t,i),d=o;0!==p.cmp(s);){for(var g=p,m=0;0!==g.cmp(s);m++)g=g.redSqr();n(m=0;n--){for(var c=e.words[n],u=l-1;u>=0;u--){var f=c>>u&1;i!==r[0]&&(i=this.sqr(i)),0!==f||0!==o?(o<<=1,o|=f,(4===++s||0===n&&0===u)&&(i=this.mul(i,r[o]),s=0,o=0)):s=0}l=26}return i},w.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},w.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},a.mont=function(t){return new T(t)},i(T,w),T.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},T.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},T.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},T.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new a(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},T.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}("undefined"==typeof e||e,this)},{buffer:108}],100:[function(t,e,r){"use strict";e.exports=function(t){var e,r,n,i=t.length,a=0;for(e=0;e>>1;if(!(u<=0)){var f,h=i.mallocDouble(2*u*s),p=i.mallocInt32(s);if((s=l(t,u,h,p))>0){if(1===u&&n)a.init(s),f=a.sweepComplete(u,r,0,s,h,p,0,s,h,p);else{var d=i.mallocDouble(2*u*c),g=i.mallocInt32(c);(c=l(e,u,d,g))>0&&(a.init(s+c),f=1===u?a.sweepBipartite(u,r,0,s,h,p,0,c,d,g):o(u,r,n,s,h,p,c,d,g),i.free(d),i.free(g))}i.free(h),i.free(p)}return f}}}function u(t,e){n.push([t,e])}function f(t){return n=[],c(t,t,u,!0),n}function h(t,e){return n=[],c(t,e,u,!1),n}},{"./lib/intersect":103,"./lib/sweep":107,"typedarray-pool":595}],102:[function(t,e,r){"use strict";var n=["d","ax","vv","rs","re","rb","ri","bs","be","bb","bi"];function i(t){var e="bruteForce"+(t?"Full":"Partial"),r=[],i=n.slice();t||i.splice(3,0,"fp");var a=["function "+e+"("+i.join()+"){"];function o(e,i){var o=function(t,e,r){var i="bruteForce"+(t?"Red":"Blue")+(e?"Flip":"")+(r?"Full":""),a=["function ",i,"(",n.join(),"){","var ","es","=2*","d",";"],o="for(var i=rs,rp=es*rs;ibe-bs){"),t?(o(!0,!1),a.push("}else{"),o(!1,!1)):(a.push("if(fp){"),o(!0,!0),a.push("}else{"),o(!0,!1),a.push("}}else{if(fp){"),o(!1,!0),a.push("}else{"),o(!1,!1),a.push("}")),a.push("}}return "+e);var s=r.join("")+a.join("");return new Function(s)()}r.partial=i(!1),r.full=i(!0)},{}],103:[function(t,e,r){"use strict";e.exports=function(t,e,r,a,u,w,T,k,M){!function(t,e){var r=8*i.log2(e+1)*(t+1)|0,a=i.nextPow2(6*r);v.length0;){var C=6*(S-=1),L=v[C],I=v[C+1],P=v[C+2],z=v[C+3],O=v[C+4],D=v[C+5],R=2*S,F=y[R],B=y[R+1],N=1&D,j=!!(16&D),U=u,V=w,q=k,H=M;if(N&&(U=k,V=M,q=u,H=w),!(2&D&&(P=p(t,L,I,P,U,V,B),I>=P)||4&D&&(I=d(t,L,I,P,U,V,F))>=P)){var G=P-I,Y=O-z;if(j){if(t*G*(G+Y)<1<<22){if(void 0!==(A=l.scanComplete(t,L,e,I,P,U,V,z,O,q,H)))return A;continue}}else{if(t*Math.min(G,Y)<128){if(void 0!==(A=o(t,L,e,N,I,P,U,V,z,O,q,H)))return A;continue}if(t*G*Y<1<<22){if(void 0!==(A=l.scanBipartite(t,L,e,N,I,P,U,V,z,O,q,H)))return A;continue}}var W=f(t,L,I,P,U,V,F,B);if(I=p0)&&!(p1>=hi)",["p0","p1"]),h=u("lo===p0",["p0"]),p=u("lo>>1,f=2*t,h=u,p=o[f*u+e];for(;l=y?(h=v,p=y):m>=b?(h=g,p=m):(h=x,p=b):y>=b?(h=v,p=y):b>=m?(h=g,p=m):(h=x,p=b);for(var _=f*(c-1),w=f*h,T=0;Tr&&i[f+e]>c;--u,f-=o){for(var h=f,p=f+o,d=0;d=0&&n.push("lo=e[k+n]");t.indexOf("hi")>=0&&n.push("hi=e[k+o]");return r.push("for(var j=2*a,k=j*c,l=k,m=c,n=b,o=a+b,p=c;d>p;++p,k+=j){var _;if($)if(m===p)m+=1,l+=j;else{for(var s=0;j>s;++s){var t=e[k+s];e[k+s]=e[l],e[l++]=t}var u=f[p];f[p]=f[m],f[m++]=u}}return m".replace("_",n.join()).replace("$",t)),Function.apply(void 0,r)}},{}],106:[function(t,e,r){"use strict";e.exports=function(t,e){e<=128?n(0,e-1,t):function t(e,r,u){var f=(r-e+1)/6|0,h=e+f,p=r-f,d=e+r>>1,g=d-f,m=d+f,v=h,y=g,x=d,b=m,_=p,w=e+1,T=r-1,k=0;l(v,y,u)&&(k=v,v=y,y=k);l(b,_,u)&&(k=b,b=_,_=k);l(v,x,u)&&(k=v,v=x,x=k);l(y,x,u)&&(k=y,y=x,x=k);l(v,b,u)&&(k=v,v=b,b=k);l(x,b,u)&&(k=x,x=b,b=k);l(y,_,u)&&(k=y,y=_,_=k);l(y,x,u)&&(k=y,y=x,x=k);l(b,_,u)&&(k=b,b=_,_=k);for(var M=u[2*y],A=u[2*y+1],S=u[2*b],E=u[2*b+1],C=2*v,L=2*x,I=2*_,P=2*h,z=2*d,O=2*p,D=0;D<2;++D){var R=u[C+D],F=u[L+D],B=u[I+D];u[P+D]=R,u[z+D]=F,u[O+D]=B}a(g,e,u),a(m,r,u);for(var N=w;N<=T;++N)if(c(N,M,A,u))N!==w&&i(N,w,u),++w;else if(!c(N,S,E,u))for(;;){if(c(T,S,E,u)){c(T,M,A,u)?(o(N,w,T,u),++w,--T):(i(N,T,u),--T);break}if(--Tt;){var c=r[l-2],u=r[l-1];if(cr[e+1])}function c(t,e,r,n){var i=n[t*=2];return i>>1;a(h,A);var S=0,E=0;for(w=0;w=1<<28)p(l,c,E--,C=C-(1<<28)|0);else if(C>=0)p(o,s,S--,C);else if(C<=-(1<<28)){C=-C-(1<<28)|0;for(var L=0;L>>1;a(h,E);var C=0,L=0,I=0;for(k=0;k>1==h[2*k+3]>>1&&(z=2,k+=1),P<0){for(var O=-(P>>1)-1,D=0;D>1)-1;0===z?p(o,s,C--,O):1===z?p(l,c,L--,O):2===z&&p(u,f,I--,O)}}},scanBipartite:function(t,e,r,n,i,l,c,u,f,g,m,v){var y=0,x=2*t,b=e,_=e+t,w=1,T=1;n?T=1<<28:w=1<<28;for(var k=i;k>>1;a(h,E);var C=0;for(k=0;k=1<<28?(I=!n,M-=1<<28):(I=!!n,M-=1),I)d(o,s,C++,M);else{var P=v[M],z=x*M,O=m[z+e+1],D=m[z+e+1+t];t:for(var R=0;R>>1;a(h,w);var T=0;for(y=0;y=1<<28)o[T++]=x-(1<<28);else{var M=p[x-=1],A=g*x,S=f[A+e+1],E=f[A+e+1+t];t:for(var C=0;C=0;--C)if(o[C]===x){for(z=C+1;z0&&o.length>i&&!o.warned){o.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=t,l.type=e,l.count=o.length,s=l,console&&console.warn&&console.warn(s)}return t}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},i=h.bind(n);return i.listener=r,n.wrapFn=i,i}function d(t,e,r){var n=t._events;if(void 0===n)return[];var i=n[e];return void 0===i?[]:"function"==typeof i?r?[i.listener||i]:[i]:r?function(t){for(var e=new Array(t.length),r=0;r0&&(o=e[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var l=i[t];if(void 0===l)return!1;if("function"==typeof l)a(l,this,e);else{var c=l.length,u=m(l,c);for(r=0;r=0;a--)if(r[a]===e||r[a].listener===e){o=r[a].listener,i=a;break}if(i<0)return this;0===i?r.shift():function(t,e){for(;e+1=0;n--)this.removeListener(t,e[n]);return this},s.prototype.listeners=function(t){return d(this,t,!0)},s.prototype.rawListeners=function(t){return d(this,t,!1)},s.listenerCount=function(t,e){return"function"==typeof t.listenerCount?t.listenerCount(e):g.call(t,e)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},{}],111:[function(t,e,r){(function(e){(function(){ +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +"use strict";var e=t("base64-js"),n=t("ieee754");r.Buffer=a,r.SlowBuffer=function(t){+t!=t&&(t=0);return a.alloc(+t)},r.INSPECT_MAX_BYTES=50;function i(t){if(t>2147483647)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return e.__proto__=a.prototype,e}function a(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return l(t)}return o(t,e,r)}function o(t,e,r){if("string"==typeof t)return function(t,e){"string"==typeof e&&""!==e||(e="utf8");if(!a.isEncoding(e))throw new TypeError("Unknown encoding: "+e);var r=0|f(t,e),n=i(r),o=n.write(t,e);o!==r&&(n=n.slice(0,o));return n}(t,e);if(ArrayBuffer.isView(t))return c(t);if(null==t)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(B(t,ArrayBuffer)||t&&B(t.buffer,ArrayBuffer))return function(t,e,r){if(e<0||t.byteLength=2147483647)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+2147483647..toString(16)+" bytes");return 0|t}function f(t,e){if(a.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||B(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var r=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;for(var i=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return D(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return R(t).length;default:if(i)return n?-1:D(t).length;e=(""+e).toLowerCase(),i=!0}}function h(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return A(this,e,r);case"utf8":case"utf-8":return T(this,e,r);case"ascii":return k(this,e,r);case"latin1":case"binary":return M(this,e,r);case"base64":return w(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function p(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function d(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),N(r=+r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=a.from(e,n)),a.isBuffer(e))return 0===e.length?-1:g(t,e,r,n,i);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):g(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function g(t,e,r,n,i){var a,o=1,s=t.length,l=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;o=2,s/=2,l/=2,r/=2}function c(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}if(i){var u=-1;for(a=r;as&&(r=s-l),a=r;a>=0;a--){for(var f=!0,h=0;hi&&(n=i):n=i;var a=e.length;n>a/2&&(n=a/2);for(var o=0;o>8,i=r%256,a.push(i),a.push(n);return a}(e,t.length-r),t,r,n)}function w(t,r,n){return 0===r&&n===t.length?e.fromByteArray(t):e.fromByteArray(t.slice(r,n))}function T(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:c>223?3:c>191?2:1;if(i+f<=r)switch(f){case 1:c<128&&(u=c);break;case 2:128==(192&(a=t[i+1]))&&(l=(31&c)<<6|63&a)>127&&(u=l);break;case 3:a=t[i+1],o=t[i+2],128==(192&a)&&128==(192&o)&&(l=(15&c)<<12|(63&a)<<6|63&o)>2047&&(l<55296||l>57343)&&(u=l);break;case 4:a=t[i+1],o=t[i+2],s=t[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&(l=(15&c)<<18|(63&a)<<12|(63&o)<<6|63&s)>65535&&l<1114112&&(u=l)}null===u?(u=65533,f=1):u>65535&&(u-=65536,n.push(u>>>10&1023|55296),u=56320|1023&u),n.push(u),i+=f}return function(t){var e=t.length;if(e<=4096)return String.fromCharCode.apply(String,t);var r="",n=0;for(;ne&&(t+=" ... "),""},a.prototype.compare=function(t,e,r,n,i){if(B(t,Uint8Array)&&(t=a.from(t,t.offset,t.byteLength)),!a.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;for(var o=(i>>>=0)-(n>>>=0),s=(r>>>=0)-(e>>>=0),l=Math.min(o,s),c=this.slice(n,i),u=t.slice(e,r),f=0;f>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-e;if((void 0===r||r>i)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var a=!1;;)switch(n){case"hex":return m(this,t,e,r);case"utf8":case"utf-8":return v(this,t,e,r);case"ascii":return y(this,t,e,r);case"latin1":case"binary":return x(this,t,e,r);case"base64":return b(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _(this,t,e,r);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function k(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i="",a=e;ar)throw new RangeError("Trying to access beyond buffer length")}function C(t,e,r,n,i,o){if(!a.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function L(t,e,r,n,i,a){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function I(t,e,r,i,a){return e=+e,r>>>=0,a||L(t,0,r,4),n.write(t,e,r,i,23,4),r+4}function P(t,e,r,i,a){return e=+e,r>>>=0,a||L(t,0,r,8),n.write(t,e,r,i,52,8),r+8}a.prototype.slice=function(t,e){var r=this.length;(t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e>>=0,e>>>=0,r||E(t,e,this.length);for(var n=this[t],i=1,a=0;++a>>=0,e>>>=0,r||E(t,e,this.length);for(var n=this[t+--e],i=1;e>0&&(i*=256);)n+=this[t+--e]*i;return n},a.prototype.readUInt8=function(t,e){return t>>>=0,e||E(t,1,this.length),this[t]},a.prototype.readUInt16LE=function(t,e){return t>>>=0,e||E(t,2,this.length),this[t]|this[t+1]<<8},a.prototype.readUInt16BE=function(t,e){return t>>>=0,e||E(t,2,this.length),this[t]<<8|this[t+1]},a.prototype.readUInt32LE=function(t,e){return t>>>=0,e||E(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},a.prototype.readUInt32BE=function(t,e){return t>>>=0,e||E(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},a.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||E(t,e,this.length);for(var n=this[t],i=1,a=0;++a=(i*=128)&&(n-=Math.pow(2,8*e)),n},a.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||E(t,e,this.length);for(var n=e,i=1,a=this[t+--n];n>0&&(i*=256);)a+=this[t+--n]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*e)),a},a.prototype.readInt8=function(t,e){return t>>>=0,e||E(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},a.prototype.readInt16LE=function(t,e){t>>>=0,e||E(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt16BE=function(t,e){t>>>=0,e||E(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt32LE=function(t,e){return t>>>=0,e||E(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},a.prototype.readInt32BE=function(t,e){return t>>>=0,e||E(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},a.prototype.readFloatLE=function(t,e){return t>>>=0,e||E(t,4,this.length),n.read(this,t,!0,23,4)},a.prototype.readFloatBE=function(t,e){return t>>>=0,e||E(t,4,this.length),n.read(this,t,!1,23,4)},a.prototype.readDoubleLE=function(t,e){return t>>>=0,e||E(t,8,this.length),n.read(this,t,!0,52,8)},a.prototype.readDoubleBE=function(t,e){return t>>>=0,e||E(t,8,this.length),n.read(this,t,!1,52,8)},a.prototype.writeUIntLE=function(t,e,r,n){(t=+t,e>>>=0,r>>>=0,n)||C(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,a=0;for(this[e]=255&t;++a>>=0,r>>>=0,n)||C(this,t,e,r,Math.pow(2,8*r)-1,0);var i=r-1,a=1;for(this[e+i]=255&t;--i>=0&&(a*=256);)this[e+i]=t/a&255;return e+r},a.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,1,255,0),this[e]=255&t,e+1},a.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},a.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},a.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},a.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},a.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);C(this,t,e,r,i-1,-i)}var a=0,o=1,s=0;for(this[e]=255&t;++a>0)-s&255;return e+r},a.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);C(this,t,e,r,i-1,-i)}var a=r-1,o=1,s=0;for(this[e+a]=255&t;--a>=0&&(o*=256);)t<0&&0===s&&0!==this[e+a+1]&&(s=1),this[e+a]=(t/o>>0)-s&255;return e+r},a.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},a.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},a.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},a.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},a.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},a.prototype.writeFloatLE=function(t,e,r){return I(this,t,e,!0,r)},a.prototype.writeFloatBE=function(t,e,r){return I(this,t,e,!1,r)},a.prototype.writeDoubleLE=function(t,e,r){return P(this,t,e,!0,r)},a.prototype.writeDoubleBE=function(t,e,r){return P(this,t,e,!1,r)},a.prototype.copy=function(t,e,r,n){if(!a.isBuffer(t))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--o)t[o+e]=this[o+r];else Uint8Array.prototype.set.call(t,this.subarray(r,n),e);return i},a.prototype.fill=function(t,e,r,n){if("string"==typeof t){if("string"==typeof e?(n=e,e=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!a.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(1===t.length){var i=t.charCodeAt(0);("utf8"===n&&i<128||"latin1"===n)&&(t=i)}}else"number"==typeof t&&(t&=255);if(e<0||this.length>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(o=e;o55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&a.push(239,191,189);continue}if(o+1===n){(e-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&a.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;a.push(r)}else if(r<2048){if((e-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return a}function R(t){return e.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(z,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function F(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function B(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function N(t){return t!=t}}).call(this)}).call(this,t("buffer").Buffer)},{"base64-js":79,buffer:111,ieee754:442}],112:[function(t,e,r){"use strict";var n=t("./lib/monotone"),i=t("./lib/triangulation"),a=t("./lib/delaunay"),o=t("./lib/filter");function s(t){return[Math.min(t[0],t[1]),Math.max(t[0],t[1])]}function l(t,e){return t[0]-e[0]||t[1]-e[1]}function c(t,e,r){return e in t?t[e]:r}e.exports=function(t,e,r){Array.isArray(e)?(r=r||{},e=e||[]):(r=e||{},e=[]);var u=!!c(r,"delaunay",!0),f=!!c(r,"interior",!0),h=!!c(r,"exterior",!0),p=!!c(r,"infinity",!1);if(!f&&!h||0===t.length)return[];var d=n(t,e);if(u||f!==h||p){for(var g=i(t.length,function(t){return t.map(s).sort(l)}(e)),m=0;m0;){for(var p=r.pop(),d=(s=r.pop(),u=-1,f=-1,l=o[s],1);d=0||(e.flip(s,p),i(t,e,r,u,s,f),i(t,e,r,s,f,u),i(t,e,r,f,p,u),i(t,e,r,p,u,f)))}}},{"binary-search-bounds":96,"robust-in-sphere":546}],114:[function(t,e,r){"use strict";var n,i=t("binary-search-bounds");function a(t,e,r,n,i,a,o){this.cells=t,this.neighbor=e,this.flags=n,this.constraint=r,this.active=i,this.next=a,this.boundary=o}function o(t,e){return t[0]-e[0]||t[1]-e[1]||t[2]-e[2]}e.exports=function(t,e,r){var n=function(t,e){for(var r=t.cells(),n=r.length,i=0;i0||l.length>0;){for(;s.length>0;){var p=s.pop();if(c[p]!==-i){c[p]=i;u[p];for(var d=0;d<3;++d){var g=h[3*p+d];g>=0&&0===c[g]&&(f[3*p+d]?l.push(g):(s.push(g),c[g]=i))}}}var m=l;l=s,s=m,l.length=0,i=-i}var v=function(t,e,r){for(var n=0,i=0;i1&&i(r[h[p-2]],r[h[p-1]],a)>0;)t.push([h[p-1],h[p-2],o]),p-=1;h.length=p,h.push(o);var d=f.upperIds;for(p=d.length;p>1&&i(r[d[p-2]],r[d[p-1]],a)<0;)t.push([d[p-2],d[p-1],o]),p-=1;d.length=p,d.push(o)}}function u(t,e){var r;return(r=t.a[0]d[0]&&i.push(new o(d,p,2,l),new o(p,d,1,l))}i.sort(s);for(var g=i[0].a[0]-(1+Math.abs(i[0].a[0]))*Math.pow(2,-52),m=[new a([g,1],[g,0],-1,[],[],[],[])],v=[],y=(l=0,i.length);l=0}}(),a.removeTriangle=function(t,e,r){var n=this.stars;o(n[t],e,r),o(n[e],r,t),o(n[r],t,e)},a.addTriangle=function(t,e,r){var n=this.stars;n[t].push(e,r),n[e].push(r,t),n[r].push(t,e)},a.opposite=function(t,e){for(var r=this.stars[e],n=1,i=r.length;nr?r:t:te?e:t}},{}],121:[function(t,e,r){"use strict";e.exports=function(t,e,r){var n;if(r){n=e;for(var i=new Array(e.length),a=0;ae[2]?1:0)}function v(t,e,r){if(0!==t.length){if(e)for(var n=0;n=0;--a){var x=e[u=(S=n[a])[0]],b=x[0],_=x[1],w=t[b],T=t[_];if((w[0]-T[0]||w[1]-T[1])<0){var k=b;b=_,_=k}x[0]=b;var M,A=x[1]=S[1];for(i&&(M=x[2]);a>0&&n[a-1][0]===u;){var S,E=(S=n[--a])[1];i?e.push([A,E,M]):e.push([A,E]),A=E}i?e.push([A,_,M]):e.push([A,_])}return h}(t,e,h,m,r));return v(e,y,r),!!y||(h.length>0||m.length>0)}},{"./lib/rat-seg-intersect":122,"big-rat":83,"big-rat/cmp":81,"big-rat/to-float":95,"box-intersect":101,nextafter:496,"rat-vec":530,"robust-segment-intersect":551,"union-find":596}],122:[function(t,e,r){"use strict";e.exports=function(t,e,r,n){var a=s(e,t),f=s(n,r),h=u(a,f);if(0===o(h))return null;var p=s(t,r),d=u(f,p),g=i(d,h),m=c(a,g);return l(t,m)};var n=t("big-rat/mul"),i=t("big-rat/div"),a=t("big-rat/sub"),o=t("big-rat/sign"),s=t("rat-vec/sub"),l=t("rat-vec/add"),c=t("rat-vec/muls");function u(t,e){return a(n(t[0],e[1]),n(t[1],e[0]))}},{"big-rat/div":82,"big-rat/mul":92,"big-rat/sign":93,"big-rat/sub":94,"rat-vec/add":529,"rat-vec/muls":531,"rat-vec/sub":532}],123:[function(t,e,r){"use strict";var n=t("clamp");function i(t,e){null==e&&(e=!0);var r=t[0],i=t[1],a=t[2],o=t[3];return null==o&&(o=e?1:255),e&&(r*=255,i*=255,a*=255,o*=255),16777216*(r=255&n(r,0,255))+((i=255&n(i,0,255))<<16)+((a=255&n(a,0,255))<<8)+(o=255&n(o,0,255))}e.exports=i,e.exports.to=i,e.exports.from=function(t,e){var r=(t=+t)>>>24,n=(16711680&t)>>>16,i=(65280&t)>>>8,a=255&t;return!1===e?[r,n,i,a]:[r/255,n/255,i/255,a/255]}},{clamp:120}],124:[function(t,e,r){"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},{}],125:[function(t,e,r){"use strict";var n=t("color-rgba"),i=t("clamp"),a=t("dtype");e.exports=function(t,e){"float"!==e&&e||(e="array"),"uint"===e&&(e="uint8"),"uint_clamped"===e&&(e="uint8_clamped");var r=new(a(e))(4),o="uint8"!==e&&"uint8_clamped"!==e;return t.length&&"string"!=typeof t||((t=n(t))[0]/=255,t[1]/=255,t[2]/=255),function(t){return t instanceof Uint8Array||t instanceof Uint8ClampedArray||!!(Array.isArray(t)&&(t[0]>1||0===t[0])&&(t[1]>1||0===t[1])&&(t[2]>1||0===t[2])&&(!t[3]||t[3]>1))}(t)?(r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=null!=t[3]?t[3]:255,o&&(r[0]/=255,r[1]/=255,r[2]/=255,r[3]/=255),r):(o?(r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=null!=t[3]?t[3]:1):(r[0]=i(Math.floor(255*t[0]),0,255),r[1]=i(Math.floor(255*t[1]),0,255),r[2]=i(Math.floor(255*t[2]),0,255),r[3]=null==t[3]?255:i(Math.floor(255*t[3]),0,255)),r)}},{clamp:120,"color-rgba":127,dtype:175}],126:[function(t,e,r){(function(r){(function(){"use strict";var n=t("color-name"),i=t("is-plain-obj"),a=t("defined");e.exports=function(t){var e,s,l=[],c=1;if("string"==typeof t)if(n[t])l=n[t].slice(),s="rgb";else if("transparent"===t)c=0,s="rgb",l=[0,0,0];else if(/^#[A-Fa-f0-9]+$/.test(t)){var u=(p=t.slice(1)).length;c=1,u<=4?(l=[parseInt(p[0]+p[0],16),parseInt(p[1]+p[1],16),parseInt(p[2]+p[2],16)],4===u&&(c=parseInt(p[3]+p[3],16)/255)):(l=[parseInt(p[0]+p[1],16),parseInt(p[2]+p[3],16),parseInt(p[4]+p[5],16)],8===u&&(c=parseInt(p[6]+p[7],16)/255)),l[0]||(l[0]=0),l[1]||(l[1]=0),l[2]||(l[2]=0),s="rgb"}else if(e=/^((?:rgb|hs[lvb]|hwb|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms)a?)\s*\(([^\)]*)\)/.exec(t)){var f=e[1],h="rgb"===f,p=f.replace(/a$/,"");s=p;u="cmyk"===p?4:"gray"===p?1:3;l=e[2].trim().split(/\s*,\s*/).map((function(t,e){if(/%$/.test(t))return e===u?parseFloat(t)/100:"rgb"===p?255*parseFloat(t)/100:parseFloat(t);if("h"===p[e]){if(/deg$/.test(t))return parseFloat(t);if(void 0!==o[t])return o[t]}return parseFloat(t)})),f===p&&l.push(1),c=h||void 0===l[u]?1:l[u],l=l.slice(0,u)}else t.length>10&&/[0-9](?:\s|\/)/.test(t)&&(l=t.match(/([0-9]+)/g).map((function(t){return parseFloat(t)})),s=t.match(/([a-z])/gi).join("").toLowerCase());else if(isNaN(t))if(i(t)){var d=a(t.r,t.red,t.R,null);null!==d?(s="rgb",l=[d,a(t.g,t.green,t.G),a(t.b,t.blue,t.B)]):(s="hsl",l=[a(t.h,t.hue,t.H),a(t.s,t.saturation,t.S),a(t.l,t.lightness,t.L,t.b,t.brightness)]),c=a(t.a,t.alpha,t.opacity,1),null!=t.opacity&&(c/=100)}else(Array.isArray(t)||r.ArrayBuffer&&ArrayBuffer.isView&&ArrayBuffer.isView(t))&&(l=[t[0],t[1],t[2]],s="rgb",c=4===t.length?t[3]:1);else s="rgb",l=[t>>>16,(65280&t)>>>8,255&t];return{space:s,values:l,alpha:c}};var o={red:0,orange:60,yellow:120,green:180,blue:240,purple:300}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"color-name":124,defined:170,"is-plain-obj":469}],127:[function(t,e,r){"use strict";var n=t("color-parse"),i=t("color-space/hsl"),a=t("clamp");e.exports=function(t){var e,r=n(t);return r.space?((e=Array(3))[0]=a(r.values[0],0,255),e[1]=a(r.values[1],0,255),e[2]=a(r.values[2],0,255),"h"===r.space[0]&&(e=i.rgb(e)),e.push(a(r.alpha,0,1)),e):[]}},{clamp:120,"color-parse":126,"color-space/hsl":128}],128:[function(t,e,r){"use strict";var n=t("./rgb");e.exports={name:"hsl",min:[0,0,0],max:[360,100,100],channel:["hue","saturation","lightness"],alias:["HSL"],rgb:function(t){var e,r,n,i,a,o=t[0]/360,s=t[1]/100,l=t[2]/100;if(0===s)return[a=255*l,a,a];e=2*l-(r=l<.5?l*(1+s):l+s-l*s),i=[0,0,0];for(var c=0;c<3;c++)(n=o+1/3*-(c-1))<0?n++:n>1&&n--,a=6*n<1?e+6*(r-e)*n:2*n<1?r:3*n<2?e+(r-e)*(2/3-n)*6:e,i[c]=255*a;return i}},n.hsl=function(t){var e,r,n=t[0]/255,i=t[1]/255,a=t[2]/255,o=Math.min(n,i,a),s=Math.max(n,i,a),l=s-o;return s===o?e=0:n===s?e=(i-a)/l:i===s?e=2+(a-n)/l:a===s&&(e=4+(n-i)/l),(e=Math.min(60*e,360))<0&&(e+=360),r=(o+s)/2,[e,100*(s===o?0:r<=.5?l/(s+o):l/(2-s-o)),100*r]}},{"./rgb":129}],129:[function(t,e,r){"use strict";e.exports={name:"rgb",min:[0,0,0],max:[255,255,255],channel:["red","green","blue"],alias:["RGB"]}},{}],130:[function(t,e,r){e.exports={jet:[{index:0,rgb:[0,0,131]},{index:.125,rgb:[0,60,170]},{index:.375,rgb:[5,255,255]},{index:.625,rgb:[255,255,0]},{index:.875,rgb:[250,0,0]},{index:1,rgb:[128,0,0]}],hsv:[{index:0,rgb:[255,0,0]},{index:.169,rgb:[253,255,2]},{index:.173,rgb:[247,255,2]},{index:.337,rgb:[0,252,4]},{index:.341,rgb:[0,252,10]},{index:.506,rgb:[1,249,255]},{index:.671,rgb:[2,0,253]},{index:.675,rgb:[8,0,253]},{index:.839,rgb:[255,0,251]},{index:.843,rgb:[255,0,245]},{index:1,rgb:[255,0,6]}],hot:[{index:0,rgb:[0,0,0]},{index:.3,rgb:[230,0,0]},{index:.6,rgb:[255,210,0]},{index:1,rgb:[255,255,255]}],cool:[{index:0,rgb:[0,255,255]},{index:1,rgb:[255,0,255]}],spring:[{index:0,rgb:[255,0,255]},{index:1,rgb:[255,255,0]}],summer:[{index:0,rgb:[0,128,102]},{index:1,rgb:[255,255,102]}],autumn:[{index:0,rgb:[255,0,0]},{index:1,rgb:[255,255,0]}],winter:[{index:0,rgb:[0,0,255]},{index:1,rgb:[0,255,128]}],bone:[{index:0,rgb:[0,0,0]},{index:.376,rgb:[84,84,116]},{index:.753,rgb:[169,200,200]},{index:1,rgb:[255,255,255]}],copper:[{index:0,rgb:[0,0,0]},{index:.804,rgb:[255,160,102]},{index:1,rgb:[255,199,127]}],greys:[{index:0,rgb:[0,0,0]},{index:1,rgb:[255,255,255]}],yignbu:[{index:0,rgb:[8,29,88]},{index:.125,rgb:[37,52,148]},{index:.25,rgb:[34,94,168]},{index:.375,rgb:[29,145,192]},{index:.5,rgb:[65,182,196]},{index:.625,rgb:[127,205,187]},{index:.75,rgb:[199,233,180]},{index:.875,rgb:[237,248,217]},{index:1,rgb:[255,255,217]}],greens:[{index:0,rgb:[0,68,27]},{index:.125,rgb:[0,109,44]},{index:.25,rgb:[35,139,69]},{index:.375,rgb:[65,171,93]},{index:.5,rgb:[116,196,118]},{index:.625,rgb:[161,217,155]},{index:.75,rgb:[199,233,192]},{index:.875,rgb:[229,245,224]},{index:1,rgb:[247,252,245]}],yiorrd:[{index:0,rgb:[128,0,38]},{index:.125,rgb:[189,0,38]},{index:.25,rgb:[227,26,28]},{index:.375,rgb:[252,78,42]},{index:.5,rgb:[253,141,60]},{index:.625,rgb:[254,178,76]},{index:.75,rgb:[254,217,118]},{index:.875,rgb:[255,237,160]},{index:1,rgb:[255,255,204]}],bluered:[{index:0,rgb:[0,0,255]},{index:1,rgb:[255,0,0]}],rdbu:[{index:0,rgb:[5,10,172]},{index:.35,rgb:[106,137,247]},{index:.5,rgb:[190,190,190]},{index:.6,rgb:[220,170,132]},{index:.7,rgb:[230,145,90]},{index:1,rgb:[178,10,28]}],picnic:[{index:0,rgb:[0,0,255]},{index:.1,rgb:[51,153,255]},{index:.2,rgb:[102,204,255]},{index:.3,rgb:[153,204,255]},{index:.4,rgb:[204,204,255]},{index:.5,rgb:[255,255,255]},{index:.6,rgb:[255,204,255]},{index:.7,rgb:[255,153,255]},{index:.8,rgb:[255,102,204]},{index:.9,rgb:[255,102,102]},{index:1,rgb:[255,0,0]}],rainbow:[{index:0,rgb:[150,0,90]},{index:.125,rgb:[0,0,200]},{index:.25,rgb:[0,25,255]},{index:.375,rgb:[0,152,255]},{index:.5,rgb:[44,255,150]},{index:.625,rgb:[151,255,0]},{index:.75,rgb:[255,234,0]},{index:.875,rgb:[255,111,0]},{index:1,rgb:[255,0,0]}],portland:[{index:0,rgb:[12,51,131]},{index:.25,rgb:[10,136,186]},{index:.5,rgb:[242,211,56]},{index:.75,rgb:[242,143,56]},{index:1,rgb:[217,30,30]}],blackbody:[{index:0,rgb:[0,0,0]},{index:.2,rgb:[230,0,0]},{index:.4,rgb:[230,210,0]},{index:.7,rgb:[255,255,255]},{index:1,rgb:[160,200,255]}],earth:[{index:0,rgb:[0,0,130]},{index:.1,rgb:[0,180,180]},{index:.2,rgb:[40,210,40]},{index:.4,rgb:[230,230,50]},{index:.6,rgb:[120,70,20]},{index:1,rgb:[255,255,255]}],electric:[{index:0,rgb:[0,0,0]},{index:.15,rgb:[30,0,100]},{index:.4,rgb:[120,0,100]},{index:.6,rgb:[160,90,0]},{index:.8,rgb:[230,200,0]},{index:1,rgb:[255,250,220]}],alpha:[{index:0,rgb:[255,255,255,0]},{index:1,rgb:[255,255,255,1]}],viridis:[{index:0,rgb:[68,1,84]},{index:.13,rgb:[71,44,122]},{index:.25,rgb:[59,81,139]},{index:.38,rgb:[44,113,142]},{index:.5,rgb:[33,144,141]},{index:.63,rgb:[39,173,129]},{index:.75,rgb:[92,200,99]},{index:.88,rgb:[170,220,50]},{index:1,rgb:[253,231,37]}],inferno:[{index:0,rgb:[0,0,4]},{index:.13,rgb:[31,12,72]},{index:.25,rgb:[85,15,109]},{index:.38,rgb:[136,34,106]},{index:.5,rgb:[186,54,85]},{index:.63,rgb:[227,89,51]},{index:.75,rgb:[249,140,10]},{index:.88,rgb:[249,201,50]},{index:1,rgb:[252,255,164]}],magma:[{index:0,rgb:[0,0,4]},{index:.13,rgb:[28,16,68]},{index:.25,rgb:[79,18,123]},{index:.38,rgb:[129,37,129]},{index:.5,rgb:[181,54,122]},{index:.63,rgb:[229,80,100]},{index:.75,rgb:[251,135,97]},{index:.88,rgb:[254,194,135]},{index:1,rgb:[252,253,191]}],plasma:[{index:0,rgb:[13,8,135]},{index:.13,rgb:[75,3,161]},{index:.25,rgb:[125,3,168]},{index:.38,rgb:[168,34,150]},{index:.5,rgb:[203,70,121]},{index:.63,rgb:[229,107,93]},{index:.75,rgb:[248,148,65]},{index:.88,rgb:[253,195,40]},{index:1,rgb:[240,249,33]}],warm:[{index:0,rgb:[125,0,179]},{index:.13,rgb:[172,0,187]},{index:.25,rgb:[219,0,170]},{index:.38,rgb:[255,0,130]},{index:.5,rgb:[255,63,74]},{index:.63,rgb:[255,123,0]},{index:.75,rgb:[234,176,0]},{index:.88,rgb:[190,228,0]},{index:1,rgb:[147,255,0]}],cool:[{index:0,rgb:[125,0,179]},{index:.13,rgb:[116,0,218]},{index:.25,rgb:[98,74,237]},{index:.38,rgb:[68,146,231]},{index:.5,rgb:[0,204,197]},{index:.63,rgb:[0,247,146]},{index:.75,rgb:[0,255,88]},{index:.88,rgb:[40,255,8]},{index:1,rgb:[147,255,0]}],"rainbow-soft":[{index:0,rgb:[125,0,179]},{index:.1,rgb:[199,0,180]},{index:.2,rgb:[255,0,121]},{index:.3,rgb:[255,108,0]},{index:.4,rgb:[222,194,0]},{index:.5,rgb:[150,255,0]},{index:.6,rgb:[0,255,55]},{index:.7,rgb:[0,246,150]},{index:.8,rgb:[50,167,222]},{index:.9,rgb:[103,51,235]},{index:1,rgb:[124,0,186]}],bathymetry:[{index:0,rgb:[40,26,44]},{index:.13,rgb:[59,49,90]},{index:.25,rgb:[64,76,139]},{index:.38,rgb:[63,110,151]},{index:.5,rgb:[72,142,158]},{index:.63,rgb:[85,174,163]},{index:.75,rgb:[120,206,163]},{index:.88,rgb:[187,230,172]},{index:1,rgb:[253,254,204]}],cdom:[{index:0,rgb:[47,15,62]},{index:.13,rgb:[87,23,86]},{index:.25,rgb:[130,28,99]},{index:.38,rgb:[171,41,96]},{index:.5,rgb:[206,67,86]},{index:.63,rgb:[230,106,84]},{index:.75,rgb:[242,149,103]},{index:.88,rgb:[249,193,135]},{index:1,rgb:[254,237,176]}],chlorophyll:[{index:0,rgb:[18,36,20]},{index:.13,rgb:[25,63,41]},{index:.25,rgb:[24,91,59]},{index:.38,rgb:[13,119,72]},{index:.5,rgb:[18,148,80]},{index:.63,rgb:[80,173,89]},{index:.75,rgb:[132,196,122]},{index:.88,rgb:[175,221,162]},{index:1,rgb:[215,249,208]}],density:[{index:0,rgb:[54,14,36]},{index:.13,rgb:[89,23,80]},{index:.25,rgb:[110,45,132]},{index:.38,rgb:[120,77,178]},{index:.5,rgb:[120,113,213]},{index:.63,rgb:[115,151,228]},{index:.75,rgb:[134,185,227]},{index:.88,rgb:[177,214,227]},{index:1,rgb:[230,241,241]}],"freesurface-blue":[{index:0,rgb:[30,4,110]},{index:.13,rgb:[47,14,176]},{index:.25,rgb:[41,45,236]},{index:.38,rgb:[25,99,212]},{index:.5,rgb:[68,131,200]},{index:.63,rgb:[114,156,197]},{index:.75,rgb:[157,181,203]},{index:.88,rgb:[200,208,216]},{index:1,rgb:[241,237,236]}],"freesurface-red":[{index:0,rgb:[60,9,18]},{index:.13,rgb:[100,17,27]},{index:.25,rgb:[142,20,29]},{index:.38,rgb:[177,43,27]},{index:.5,rgb:[192,87,63]},{index:.63,rgb:[205,125,105]},{index:.75,rgb:[216,162,148]},{index:.88,rgb:[227,199,193]},{index:1,rgb:[241,237,236]}],oxygen:[{index:0,rgb:[64,5,5]},{index:.13,rgb:[106,6,15]},{index:.25,rgb:[144,26,7]},{index:.38,rgb:[168,64,3]},{index:.5,rgb:[188,100,4]},{index:.63,rgb:[206,136,11]},{index:.75,rgb:[220,174,25]},{index:.88,rgb:[231,215,44]},{index:1,rgb:[248,254,105]}],par:[{index:0,rgb:[51,20,24]},{index:.13,rgb:[90,32,35]},{index:.25,rgb:[129,44,34]},{index:.38,rgb:[159,68,25]},{index:.5,rgb:[182,99,19]},{index:.63,rgb:[199,134,22]},{index:.75,rgb:[212,171,35]},{index:.88,rgb:[221,210,54]},{index:1,rgb:[225,253,75]}],phase:[{index:0,rgb:[145,105,18]},{index:.13,rgb:[184,71,38]},{index:.25,rgb:[186,58,115]},{index:.38,rgb:[160,71,185]},{index:.5,rgb:[110,97,218]},{index:.63,rgb:[50,123,164]},{index:.75,rgb:[31,131,110]},{index:.88,rgb:[77,129,34]},{index:1,rgb:[145,105,18]}],salinity:[{index:0,rgb:[42,24,108]},{index:.13,rgb:[33,50,162]},{index:.25,rgb:[15,90,145]},{index:.38,rgb:[40,118,137]},{index:.5,rgb:[59,146,135]},{index:.63,rgb:[79,175,126]},{index:.75,rgb:[120,203,104]},{index:.88,rgb:[193,221,100]},{index:1,rgb:[253,239,154]}],temperature:[{index:0,rgb:[4,35,51]},{index:.13,rgb:[23,51,122]},{index:.25,rgb:[85,59,157]},{index:.38,rgb:[129,79,143]},{index:.5,rgb:[175,95,130]},{index:.63,rgb:[222,112,101]},{index:.75,rgb:[249,146,66]},{index:.88,rgb:[249,196,65]},{index:1,rgb:[232,250,91]}],turbidity:[{index:0,rgb:[34,31,27]},{index:.13,rgb:[65,50,41]},{index:.25,rgb:[98,69,52]},{index:.38,rgb:[131,89,57]},{index:.5,rgb:[161,112,59]},{index:.63,rgb:[185,140,66]},{index:.75,rgb:[202,174,88]},{index:.88,rgb:[216,209,126]},{index:1,rgb:[233,246,171]}],"velocity-blue":[{index:0,rgb:[17,32,64]},{index:.13,rgb:[35,52,116]},{index:.25,rgb:[29,81,156]},{index:.38,rgb:[31,113,162]},{index:.5,rgb:[50,144,169]},{index:.63,rgb:[87,173,176]},{index:.75,rgb:[149,196,189]},{index:.88,rgb:[203,221,211]},{index:1,rgb:[254,251,230]}],"velocity-green":[{index:0,rgb:[23,35,19]},{index:.13,rgb:[24,64,38]},{index:.25,rgb:[11,95,45]},{index:.38,rgb:[39,123,35]},{index:.5,rgb:[95,146,12]},{index:.63,rgb:[152,165,18]},{index:.75,rgb:[201,186,69]},{index:.88,rgb:[233,216,137]},{index:1,rgb:[255,253,205]}],cubehelix:[{index:0,rgb:[0,0,0]},{index:.07,rgb:[22,5,59]},{index:.13,rgb:[60,4,105]},{index:.2,rgb:[109,1,135]},{index:.27,rgb:[161,0,147]},{index:.33,rgb:[210,2,142]},{index:.4,rgb:[251,11,123]},{index:.47,rgb:[255,29,97]},{index:.53,rgb:[255,54,69]},{index:.6,rgb:[255,85,46]},{index:.67,rgb:[255,120,34]},{index:.73,rgb:[255,157,37]},{index:.8,rgb:[241,191,57]},{index:.87,rgb:[224,220,93]},{index:.93,rgb:[218,241,142]},{index:1,rgb:[227,253,198]}]}},{}],131:[function(t,e,r){"use strict";var n=t("./colorScale"),i=t("lerp");function a(t){return[t[0]/255,t[1]/255,t[2]/255,t[3]]}function o(t){for(var e,r="#",n=0;n<3;++n)r+=("00"+(e=(e=t[n]).toString(16))).substr(e.length);return r}function s(t){return"rgba("+t.join(",")+")"}e.exports=function(t){var e,r,l,c,u,f,h,p,d,g;t||(t={});p=(t.nshades||72)-1,h=t.format||"hex",(f=t.colormap)||(f="jet");if("string"==typeof f){if(f=f.toLowerCase(),!n[f])throw Error(f+" not a supported colorscale");u=n[f]}else{if(!Array.isArray(f))throw Error("unsupported colormap option",f);u=f.slice()}if(u.length>p+1)throw new Error(f+" map requires nshades to be at least size "+u.length);d=Array.isArray(t.alpha)?2!==t.alpha.length?[1,1]:t.alpha.slice():"number"==typeof t.alpha?[t.alpha,t.alpha]:[1,1];e=u.map((function(t){return Math.round(t.index*p)})),d[0]=Math.min(Math.max(d[0],0),1),d[1]=Math.min(Math.max(d[1],0),1);var m=u.map((function(t,e){var r=u[e].index,n=u[e].rgb.slice();return 4===n.length&&n[3]>=0&&n[3]<=1||(n[3]=d[0]+(d[1]-d[0])*r),n})),v=[];for(g=0;g0||l(t,e,a)?-1:1:0===s?c>0||l(t,e,r)?1:-1:i(c-s)}var h=n(t,e,r);return h>0?o>0&&n(t,e,a)>0?1:-1:h<0?o>0||n(t,e,a)>0?1:-1:n(t,e,a)>0||l(t,e,r)?1:-1};var n=t("robust-orientation"),i=t("signum"),a=t("two-sum"),o=t("robust-product"),s=t("robust-sum");function l(t,e,r){var n=a(t[0],-e[0]),i=a(t[1],-e[1]),l=a(r[0],-e[0]),c=a(r[1],-e[1]),u=s(o(n,l),o(i,c));return u[u.length-1]>=0}},{"robust-orientation":548,"robust-product":549,"robust-sum":553,signum:554,"two-sum":583}],133:[function(t,e,r){e.exports=function(t,e){var r=t.length,a=t.length-e.length;if(a)return a;switch(r){case 0:return 0;case 1:return t[0]-e[0];case 2:return t[0]+t[1]-e[0]-e[1]||n(t[0],t[1])-n(e[0],e[1]);case 3:var o=t[0]+t[1],s=e[0]+e[1];if(a=o+t[2]-(s+e[2]))return a;var l=n(t[0],t[1]),c=n(e[0],e[1]);return n(l,t[2])-n(c,e[2])||n(l+t[2],o)-n(c+e[2],s);case 4:var u=t[0],f=t[1],h=t[2],p=t[3],d=e[0],g=e[1],m=e[2],v=e[3];return u+f+h+p-(d+g+m+v)||n(u,f,h,p)-n(d,g,m,v,d)||n(u+f,u+h,u+p,f+h,f+p,h+p)-n(d+g,d+m,d+v,g+m,g+v,m+v)||n(u+f+h,u+f+p,u+h+p,f+h+p)-n(d+g+m,d+g+v,d+m+v,g+m+v);default:for(var y=t.slice().sort(i),x=e.slice().sort(i),b=0;bt[r][0]&&(r=n);return er?[[r],[e]]:[[e]]}},{}],137:[function(t,e,r){"use strict";e.exports=function(t){var e=n(t),r=e.length;if(r<=2)return[];for(var i=new Array(r),a=e[r-1],o=0;o=e[l]&&(s+=1);a[o]=s}}return t}(n(a,!0),r)}};var n=t("incremental-convex-hull"),i=t("affine-hull")},{"affine-hull":67,"incremental-convex-hull":459}],139:[function(t,e,r){e.exports={AFG:"afghan",ALA:"\\b\\wland",ALB:"albania",DZA:"algeria",ASM:"^(?=.*americ).*samoa",AND:"andorra",AGO:"angola",AIA:"anguill?a",ATA:"antarctica",ATG:"antigua",ARG:"argentin",ARM:"armenia",ABW:"^(?!.*bonaire).*\\baruba",AUS:"australia",AUT:"^(?!.*hungary).*austria|\\baustri.*\\bemp",AZE:"azerbaijan",BHS:"bahamas",BHR:"bahrain",BGD:"bangladesh|^(?=.*east).*paki?stan",BRB:"barbados",BLR:"belarus|byelo",BEL:"^(?!.*luxem).*belgium",BLZ:"belize|^(?=.*british).*honduras",BEN:"benin|dahome",BMU:"bermuda",BTN:"bhutan",BOL:"bolivia",BES:"^(?=.*bonaire).*eustatius|^(?=.*carib).*netherlands|\\bbes.?islands",BIH:"herzegovina|bosnia",BWA:"botswana|bechuana",BVT:"bouvet",BRA:"brazil",IOT:"british.?indian.?ocean",BRN:"brunei",BGR:"bulgaria",BFA:"burkina|\\bfaso|upper.?volta",BDI:"burundi",CPV:"verde",KHM:"cambodia|kampuchea|khmer",CMR:"cameroon",CAN:"canada",CYM:"cayman",CAF:"\\bcentral.african.republic",TCD:"\\bchad",CHL:"\\bchile",CHN:"^(?!.*\\bmac)(?!.*\\bhong)(?!.*\\btai)(?!.*\\brep).*china|^(?=.*peo)(?=.*rep).*china",CXR:"christmas",CCK:"\\bcocos|keeling",COL:"colombia",COM:"comoro",COG:"^(?!.*\\bdem)(?!.*\\bd[\\.]?r)(?!.*kinshasa)(?!.*zaire)(?!.*belg)(?!.*l.opoldville)(?!.*free).*\\bcongo",COK:"\\bcook",CRI:"costa.?rica",CIV:"ivoire|ivory",HRV:"croatia",CUB:"\\bcuba",CUW:"^(?!.*bonaire).*\\bcura(c|\xe7)ao",CYP:"cyprus",CSK:"czechoslovakia",CZE:"^(?=.*rep).*czech|czechia|bohemia",COD:"\\bdem.*congo|congo.*\\bdem|congo.*\\bd[\\.]?r|\\bd[\\.]?r.*congo|belgian.?congo|congo.?free.?state|kinshasa|zaire|l.opoldville|drc|droc|rdc",DNK:"denmark",DJI:"djibouti",DMA:"dominica(?!n)",DOM:"dominican.rep",ECU:"ecuador",EGY:"egypt",SLV:"el.?salvador",GNQ:"guine.*eq|eq.*guine|^(?=.*span).*guinea",ERI:"eritrea",EST:"estonia",ETH:"ethiopia|abyssinia",FLK:"falkland|malvinas",FRO:"faroe|faeroe",FJI:"fiji",FIN:"finland",FRA:"^(?!.*\\bdep)(?!.*martinique).*france|french.?republic|\\bgaul",GUF:"^(?=.*french).*guiana",PYF:"french.?polynesia|tahiti",ATF:"french.?southern",GAB:"gabon",GMB:"gambia",GEO:"^(?!.*south).*georgia",DDR:"german.?democratic.?republic|democratic.?republic.*germany|east.germany",DEU:"^(?!.*east).*germany|^(?=.*\\bfed.*\\brep).*german",GHA:"ghana|gold.?coast",GIB:"gibraltar",GRC:"greece|hellenic|hellas",GRL:"greenland",GRD:"grenada",GLP:"guadeloupe",GUM:"\\bguam",GTM:"guatemala",GGY:"guernsey",GIN:"^(?!.*eq)(?!.*span)(?!.*bissau)(?!.*portu)(?!.*new).*guinea",GNB:"bissau|^(?=.*portu).*guinea",GUY:"guyana|british.?guiana",HTI:"haiti",HMD:"heard.*mcdonald",VAT:"holy.?see|vatican|papal.?st",HND:"^(?!.*brit).*honduras",HKG:"hong.?kong",HUN:"^(?!.*austr).*hungary",ISL:"iceland",IND:"india(?!.*ocea)",IDN:"indonesia",IRN:"\\biran|persia",IRQ:"\\biraq|mesopotamia",IRL:"(^ireland)|(^republic.*ireland)",IMN:"^(?=.*isle).*\\bman",ISR:"israel",ITA:"italy",JAM:"jamaica",JPN:"japan",JEY:"jersey",JOR:"jordan",KAZ:"kazak",KEN:"kenya|british.?east.?africa|east.?africa.?prot",KIR:"kiribati",PRK:"^(?=.*democrat|people|north|d.*p.*.r).*\\bkorea|dprk|korea.*(d.*p.*r)",KWT:"kuwait",KGZ:"kyrgyz|kirghiz",LAO:"\\blaos?\\b",LVA:"latvia",LBN:"lebanon",LSO:"lesotho|basuto",LBR:"liberia",LBY:"libya",LIE:"liechtenstein",LTU:"lithuania",LUX:"^(?!.*belg).*luxem",MAC:"maca(o|u)",MDG:"madagascar|malagasy",MWI:"malawi|nyasa",MYS:"malaysia",MDV:"maldive",MLI:"\\bmali\\b",MLT:"\\bmalta",MHL:"marshall",MTQ:"martinique",MRT:"mauritania",MUS:"mauritius",MYT:"\\bmayotte",MEX:"\\bmexic",FSM:"fed.*micronesia|micronesia.*fed",MCO:"monaco",MNG:"mongolia",MNE:"^(?!.*serbia).*montenegro",MSR:"montserrat",MAR:"morocco|\\bmaroc",MOZ:"mozambique",MMR:"myanmar|burma",NAM:"namibia",NRU:"nauru",NPL:"nepal",NLD:"^(?!.*\\bant)(?!.*\\bcarib).*netherlands",ANT:"^(?=.*\\bant).*(nether|dutch)",NCL:"new.?caledonia",NZL:"new.?zealand",NIC:"nicaragua",NER:"\\bniger(?!ia)",NGA:"nigeria",NIU:"niue",NFK:"norfolk",MNP:"mariana",NOR:"norway",OMN:"\\boman|trucial",PAK:"^(?!.*east).*paki?stan",PLW:"palau",PSE:"palestin|\\bgaza|west.?bank",PAN:"panama",PNG:"papua|new.?guinea",PRY:"paraguay",PER:"peru",PHL:"philippines",PCN:"pitcairn",POL:"poland",PRT:"portugal",PRI:"puerto.?rico",QAT:"qatar",KOR:"^(?!.*d.*p.*r)(?!.*democrat)(?!.*people)(?!.*north).*\\bkorea(?!.*d.*p.*r)",MDA:"moldov|b(a|e)ssarabia",REU:"r(e|\xe9)union",ROU:"r(o|u|ou)mania",RUS:"\\brussia|soviet.?union|u\\.?s\\.?s\\.?r|socialist.?republics",RWA:"rwanda",BLM:"barth(e|\xe9)lemy",SHN:"helena",KNA:"kitts|\\bnevis",LCA:"\\blucia",MAF:"^(?=.*collectivity).*martin|^(?=.*france).*martin(?!ique)|^(?=.*french).*martin(?!ique)",SPM:"miquelon",VCT:"vincent",WSM:"^(?!.*amer).*samoa",SMR:"san.?marino",STP:"\\bs(a|\xe3)o.?tom(e|\xe9)",SAU:"\\bsa\\w*.?arabia",SEN:"senegal",SRB:"^(?!.*monte).*serbia",SYC:"seychell",SLE:"sierra",SGP:"singapore",SXM:"^(?!.*martin)(?!.*saba).*maarten",SVK:"^(?!.*cze).*slovak",SVN:"slovenia",SLB:"solomon",SOM:"somali",ZAF:"south.africa|s\\\\..?africa",SGS:"south.?georgia|sandwich",SSD:"\\bs\\w*.?sudan",ESP:"spain",LKA:"sri.?lanka|ceylon",SDN:"^(?!.*\\bs(?!u)).*sudan",SUR:"surinam|dutch.?guiana",SJM:"svalbard",SWZ:"swaziland",SWE:"sweden",CHE:"switz|swiss",SYR:"syria",TWN:"taiwan|taipei|formosa|^(?!.*peo)(?=.*rep).*china",TJK:"tajik",THA:"thailand|\\bsiam",MKD:"macedonia|fyrom",TLS:"^(?=.*leste).*timor|^(?=.*east).*timor",TGO:"togo",TKL:"tokelau",TON:"tonga",TTO:"trinidad|tobago",TUN:"tunisia",TUR:"turkey",TKM:"turkmen",TCA:"turks",TUV:"tuvalu",UGA:"uganda",UKR:"ukrain",ARE:"emirates|^u\\.?a\\.?e\\.?$|united.?arab.?em",GBR:"united.?kingdom|britain|^u\\.?k\\.?$",TZA:"tanzania",USA:"united.?states\\b(?!.*islands)|\\bu\\.?s\\.?a\\.?\\b|^\\s*u\\.?s\\.?\\b(?!.*islands)",UMI:"minor.?outlying.?is",URY:"uruguay",UZB:"uzbek",VUT:"vanuatu|new.?hebrides",VEN:"venezuela",VNM:"^(?!.*republic).*viet.?nam|^(?=.*socialist).*viet.?nam",VGB:"^(?=.*\\bu\\.?\\s?k).*virgin|^(?=.*brit).*virgin|^(?=.*kingdom).*virgin",VIR:"^(?=.*\\bu\\.?\\s?s).*virgin|^(?=.*states).*virgin",WLF:"futuna|wallis",ESH:"western.sahara",YEM:"^(?!.*arab)(?!.*north)(?!.*sana)(?!.*peo)(?!.*dem)(?!.*south)(?!.*aden)(?!.*\\bp\\.?d\\.?r).*yemen",YMD:"^(?=.*peo).*yemen|^(?!.*rep)(?=.*dem).*yemen|^(?=.*south).*yemen|^(?=.*aden).*yemen|^(?=.*\\bp\\.?d\\.?r).*yemen",YUG:"yugoslavia",ZMB:"zambia|northern.?rhodesia",EAZ:"zanzibar",ZWE:"zimbabwe|^(?!.*northern).*rhodesia"}},{}],140:[function(t,e,r){e.exports=["xx-small","x-small","small","medium","large","x-large","xx-large","larger","smaller"]},{}],141:[function(t,e,r){e.exports=["normal","condensed","semi-condensed","extra-condensed","ultra-condensed","expanded","semi-expanded","extra-expanded","ultra-expanded"]},{}],142:[function(t,e,r){e.exports=["normal","italic","oblique"]},{}],143:[function(t,e,r){e.exports=["normal","bold","bolder","lighter","100","200","300","400","500","600","700","800","900"]},{}],144:[function(t,e,r){"use strict";e.exports={parse:t("./parse"),stringify:t("./stringify")}},{"./parse":146,"./stringify":147}],145:[function(t,e,r){"use strict";var n=t("css-font-size-keywords");e.exports={isSize:function(t){return/^[\d\.]/.test(t)||-1!==t.indexOf("/")||-1!==n.indexOf(t)}}},{"css-font-size-keywords":140}],146:[function(t,e,r){"use strict";var n=t("unquote"),i=t("css-global-keywords"),a=t("css-system-font-keywords"),o=t("css-font-weight-keywords"),s=t("css-font-style-keywords"),l=t("css-font-stretch-keywords"),c=t("string-split-by"),u=t("./lib/util").isSize;e.exports=h;var f=h.cache={};function h(t){if("string"!=typeof t)throw new Error("Font argument must be a string.");if(f[t])return f[t];if(""===t)throw new Error("Cannot parse an empty string.");if(-1!==a.indexOf(t))return f[t]={system:t};for(var e,r={style:"normal",variant:"normal",weight:"normal",stretch:"normal",lineHeight:"normal",size:"1rem",family:["serif"]},h=c(t,/\s+/);e=h.shift();){if(-1!==i.indexOf(e))return["style","variant","weight","stretch"].forEach((function(t){r[t]=e})),f[t]=r;if(-1===s.indexOf(e))if("normal"!==e&&"small-caps"!==e)if(-1===l.indexOf(e)){if(-1===o.indexOf(e)){if(u(e)){var d=c(e,"/");if(r.size=d[0],null!=d[1]?r.lineHeight=p(d[1]):"/"===h[0]&&(h.shift(),r.lineHeight=p(h.shift())),!h.length)throw new Error("Missing required font-family.");return r.family=c(h.join(" "),/\s*,\s*/).map(n),f[t]=r}throw new Error("Unknown or unsupported font token: "+e)}r.weight=e}else r.stretch=e;else r.variant=e;else r.style=e}throw new Error("Missing required font-size.")}function p(t){var e=parseFloat(t);return e.toString()===t?e:t}},{"./lib/util":145,"css-font-stretch-keywords":141,"css-font-style-keywords":142,"css-font-weight-keywords":143,"css-global-keywords":148,"css-system-font-keywords":149,"string-split-by":568,unquote:598}],147:[function(t,e,r){"use strict";var n=t("pick-by-alias"),i=t("./lib/util").isSize,a=g(t("css-global-keywords")),o=g(t("css-system-font-keywords")),s=g(t("css-font-weight-keywords")),l=g(t("css-font-style-keywords")),c=g(t("css-font-stretch-keywords")),u={normal:1,"small-caps":1},f={serif:1,"sans-serif":1,monospace:1,cursive:1,fantasy:1,"system-ui":1},h="1rem",p="serif";function d(t,e){if(t&&!e[t]&&!a[t])throw Error("Unknown keyword `"+t+"`");return t}function g(t){for(var e={},r=0;r=0;--p)a[p]=c*t[p]+u*e[p]+f*r[p]+h*n[p];return a}return c*t+u*e+f*r+h*n},e.exports.derivative=function(t,e,r,n,i,a){var o=6*i*i-6*i,s=3*i*i-4*i+1,l=-6*i*i+6*i,c=3*i*i-2*i;if(t.length){a||(a=new Array(t.length));for(var u=t.length-1;u>=0;--u)a[u]=o*t[u]+s*e[u]+l*r[u]+c*n[u];return a}return o*t+s*e+l*r[u]+c*n}},{}],151:[function(t,e,r){"use strict";var n=t("./lib/thunk.js");function i(){this.argTypes=[],this.shimArgs=[],this.arrayArgs=[],this.arrayBlockIndices=[],this.scalarArgs=[],this.offsetArgs=[],this.offsetArgIndex=[],this.indexArgs=[],this.shapeArgs=[],this.funcName="",this.pre=null,this.body=null,this.post=null,this.debug=!1}e.exports=function(t){var e=new i;e.pre=t.pre,e.body=t.body,e.post=t.post;var r=t.args.slice(0);e.argTypes=r;for(var a=0;a0)throw new Error("cwise: pre() block may not reference array args");if(a0)throw new Error("cwise: post() block may not reference array args")}else if("scalar"===o)e.scalarArgs.push(a),e.shimArgs.push("scalar"+a);else if("index"===o){if(e.indexArgs.push(a),a0)throw new Error("cwise: pre() block may not reference array index");if(a0)throw new Error("cwise: post() block may not reference array index")}else if("shape"===o){if(e.shapeArgs.push(a),ar.length)throw new Error("cwise: Too many arguments in pre() block");if(e.body.args.length>r.length)throw new Error("cwise: Too many arguments in body() block");if(e.post.args.length>r.length)throw new Error("cwise: Too many arguments in post() block");return e.debug=!!t.printCode||!!t.debug,e.funcName=t.funcName||"cwise",e.blockSize=t.blockSize||64,n(e)}},{"./lib/thunk.js":153}],152:[function(t,e,r){"use strict";var n=t("uniq");function i(t,e,r){var n,i,a=t.length,o=e.arrayArgs.length,s=e.indexArgs.length>0,l=[],c=[],u=0,f=0;for(n=0;n0&&l.push("var "+c.join(",")),n=a-1;n>=0;--n)u=t[n],l.push(["for(i",n,"=0;i",n,"0&&l.push(["index[",f,"]-=s",f].join("")),l.push(["++index[",u,"]"].join(""))),l.push("}")}return l.join("\n")}function a(t,e,r){for(var n=t.body,i=[],a=[],o=0;o0&&(r=r&&e[n]===e[n-1])}return r?e[0]:e.join("")}e.exports=function(t,e){for(var r=e[1].length-Math.abs(t.arrayBlockIndices[0])|0,s=new Array(t.arrayArgs.length),l=new Array(t.arrayArgs.length),c=0;c0&&x.push("shape=SS.slice(0)"),t.indexArgs.length>0){var b=new Array(r);for(c=0;c0&&y.push("var "+x.join(",")),c=0;c3&&y.push(a(t.pre,t,l));var k=a(t.body,t,l),M=function(t){for(var e=0,r=t[0].length;e0,c=[],u=0;u0;){"].join("")),c.push(["if(j",u,"<",s,"){"].join("")),c.push(["s",e[u],"=j",u].join("")),c.push(["j",u,"=0"].join("")),c.push(["}else{s",e[u],"=",s].join("")),c.push(["j",u,"-=",s,"}"].join("")),l&&c.push(["index[",e[u],"]=j",u].join(""));for(u=0;u3&&y.push(a(t.post,t,l)),t.debug&&console.log("-----Generated cwise routine for ",e,":\n"+y.join("\n")+"\n----------");var A=[t.funcName||"unnamed","_cwise_loop_",s[0].join("s"),"m",M,o(l)].join("");return new Function(["function ",A,"(",v.join(","),"){",y.join("\n"),"} return ",A].join(""))()}},{uniq:597}],153:[function(t,e,r){"use strict";var n=t("./compile.js");e.exports=function(t){var e=["'use strict'","var CACHED={}"],r=[],i=t.funcName+"_cwise_thunk";e.push(["return function ",i,"(",t.shimArgs.join(","),"){"].join(""));for(var a=[],o=[],s=[["array",t.arrayArgs[0],".shape.slice(",Math.max(0,t.arrayBlockIndices[0]),t.arrayBlockIndices[0]<0?","+t.arrayBlockIndices[0]+")":")"].join("")],l=[],c=[],u=0;u0&&(l.push("array"+t.arrayArgs[0]+".shape.length===array"+f+".shape.length+"+(Math.abs(t.arrayBlockIndices[0])-Math.abs(t.arrayBlockIndices[u]))),c.push("array"+t.arrayArgs[0]+".shape[shapeIndex+"+Math.max(0,t.arrayBlockIndices[0])+"]===array"+f+".shape[shapeIndex+"+Math.max(0,t.arrayBlockIndices[u])+"]"))}for(t.arrayArgs.length>1&&(e.push("if (!("+l.join(" && ")+")) throw new Error('cwise: Arrays do not all have the same dimensionality!')"),e.push("for(var shapeIndex=array"+t.arrayArgs[0]+".shape.length-"+Math.abs(t.arrayBlockIndices[0])+"; shapeIndex--\x3e0;) {"),e.push("if (!("+c.join(" && ")+")) throw new Error('cwise: Arrays do not all have the same shape!')"),e.push("}")),u=0;ue?1:t>=e?0:NaN}function r(t){var r;return 1===t.length&&(r=t,t=function(t,n){return e(r(t),n)}),{left:function(e,r,n,i){for(null==n&&(n=0),null==i&&(i=e.length);n>>1;t(e[a],r)<0?n=a+1:i=a}return n},right:function(e,r,n,i){for(null==n&&(n=0),null==i&&(i=e.length);n>>1;t(e[a],r)>0?i=a:n=a+1}return n}}}var n=r(e),i=n.right,a=n.left;function o(t,e){return[t,e]}function s(t){return null===t?NaN:+t}function l(t,e){var r,n,i=t.length,a=0,o=-1,l=0,c=0;if(null==e)for(;++o1)return c/(a-1)}function c(t,e){var r=l(t,e);return r?Math.sqrt(r):r}function u(t,e){var r,n,i,a=t.length,o=-1;if(null==e){for(;++o=r)for(n=i=r;++or&&(n=r),i=r)for(n=i=r;++or&&(n=r),i=0?(a>=v?10:a>=y?5:a>=x?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=v?10:a>=y?5:a>=x?2:1)}function _(t,e,r){var n=Math.abs(e-t)/Math.max(0,r),i=Math.pow(10,Math.floor(Math.log(n)/Math.LN10)),a=n/i;return a>=v?i*=10:a>=y?i*=5:a>=x&&(i*=2),e=1)return+r(t[n-1],n-1,t);var n,i=(n-1)*e,a=Math.floor(i),o=+r(t[a],a,t);return o+(+r(t[a+1],a+1,t)-o)*(i-a)}}function k(t,e){var r,n,i=t.length,a=-1;if(null==e){for(;++a=r)for(n=r;++ar&&(n=r)}else for(;++a=r)for(n=r;++ar&&(n=r);return n}function M(t){if(!(i=t.length))return[];for(var e=-1,r=k(t,A),n=new Array(r);++et?1:e>=t?0:NaN},t.deviation=c,t.extent=u,t.histogram=function(){var t=g,e=u,r=w;function n(n){var a,o,s=n.length,l=new Array(s);for(a=0;af;)h.pop(),--p;var d,g=new Array(p+1);for(a=0;a<=p;++a)(d=g[a]=[]).x0=a>0?h[a-1]:u,d.x1=a=r)for(n=r;++an&&(n=r)}else for(;++a=r)for(n=r;++an&&(n=r);return n},t.mean=function(t,e){var r,n=t.length,i=n,a=-1,o=0;if(null==e)for(;++a=0;)for(e=(n=t[i]).length;--e>=0;)r[--o]=n[e];return r},t.min=k,t.pairs=function(t,e){null==e&&(e=o);for(var r=0,n=t.length-1,i=t[0],a=new Array(n<0?0:n);r0)return[t];if((n=e0)for(t=Math.ceil(t/o),e=Math.floor(e/o),a=new Array(i=Math.ceil(e-t+1));++s=l.length)return null!=t&&n.sort(t),null!=e?e(n):n;for(var s,c,f,h=-1,p=n.length,d=l[i++],g=r(),m=a();++hl.length)return r;var i,a=c[n-1];return null!=e&&n>=l.length?i=r.entries():(i=[],r.each((function(e,r){i.push({key:r,values:t(e,n)})}))),null!=a?i.sort((function(t,e){return a(t.key,e.key)})):i}(u(t,0,a,o),0)},key:function(t){return l.push(t),s},sortKeys:function(t){return c[l.length-1]=t,s},sortValues:function(e){return t=e,s},rollup:function(t){return e=t,s}}},t.set=c,t.map=r,t.keys=function(t){var e=[];for(var r in t)e.push(r);return e},t.values=function(t){var e=[];for(var r in t)e.push(t[r]);return e},t.entries=function(t){var e=[];for(var r in t)e.push({key:r,value:t[r]});return e},Object.defineProperty(t,"__esModule",{value:!0})}))},{}],158:[function(t,e,r){!function(t,n){"object"==typeof r&&"undefined"!=typeof e?n(r):n((t=t||self).d3=t.d3||{})}(this,(function(t){"use strict";function e(t,e,r){t.prototype=e.prototype=r,r.constructor=t}function r(t,e){var r=Object.create(t.prototype);for(var n in e)r[n]=e[n];return r}function n(){}var i="\\s*([+-]?\\d+)\\s*",a="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",o="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",s=/^#([0-9a-f]{3,8})$/,l=new RegExp("^rgb\\("+[i,i,i]+"\\)$"),c=new RegExp("^rgb\\("+[o,o,o]+"\\)$"),u=new RegExp("^rgba\\("+[i,i,i,a]+"\\)$"),f=new RegExp("^rgba\\("+[o,o,o,a]+"\\)$"),h=new RegExp("^hsl\\("+[a,o,o]+"\\)$"),p=new RegExp("^hsla\\("+[a,o,o,a]+"\\)$"),d={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function g(){return this.rgb().formatHex()}function m(){return this.rgb().formatRgb()}function v(t){var e,r;return t=(t+"").trim().toLowerCase(),(e=s.exec(t))?(r=e[1].length,e=parseInt(e[1],16),6===r?y(e):3===r?new w(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===r?x(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===r?x(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=l.exec(t))?new w(e[1],e[2],e[3],1):(e=c.exec(t))?new w(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=u.exec(t))?x(e[1],e[2],e[3],e[4]):(e=f.exec(t))?x(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=h.exec(t))?A(e[1],e[2]/100,e[3]/100,1):(e=p.exec(t))?A(e[1],e[2]/100,e[3]/100,e[4]):d.hasOwnProperty(t)?y(d[t]):"transparent"===t?new w(NaN,NaN,NaN,0):null}function y(t){return new w(t>>16&255,t>>8&255,255&t,1)}function x(t,e,r,n){return n<=0&&(t=e=r=NaN),new w(t,e,r,n)}function b(t){return t instanceof n||(t=v(t)),t?new w((t=t.rgb()).r,t.g,t.b,t.opacity):new w}function _(t,e,r,n){return 1===arguments.length?b(t):new w(t,e,r,null==n?1:n)}function w(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}function T(){return"#"+M(this.r)+M(this.g)+M(this.b)}function k(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function M(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function A(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new C(t,e,r,n)}function S(t){if(t instanceof C)return new C(t.h,t.s,t.l,t.opacity);if(t instanceof n||(t=v(t)),!t)return new C;if(t instanceof C)return t;var e=(t=t.rgb()).r/255,r=t.g/255,i=t.b/255,a=Math.min(e,r,i),o=Math.max(e,r,i),s=NaN,l=o-a,c=(o+a)/2;return l?(s=e===o?(r-i)/l+6*(r0&&c<1?0:s,new C(s,l,c,t.opacity)}function E(t,e,r,n){return 1===arguments.length?S(t):new C(t,e,r,null==n?1:n)}function C(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}function L(t,e,r){return 255*(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)}e(n,v,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:g,formatHex:g,formatHsl:function(){return S(this).formatHsl()},formatRgb:m,toString:m}),e(w,_,r(n,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new w(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new w(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:T,formatHex:T,formatRgb:k,toString:k})),e(C,E,r(n,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new C(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new C(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new w(L(t>=240?t-240:t+120,i,n),L(t,i,n),L(t<120?t+240:t-120,i,n),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));var I=Math.PI/180,P=180/Math.PI,z=6/29,O=3*z*z;function D(t){if(t instanceof F)return new F(t.l,t.a,t.b,t.opacity);if(t instanceof H)return G(t);t instanceof w||(t=b(t));var e,r,n=U(t.r),i=U(t.g),a=U(t.b),o=B((.2225045*n+.7168786*i+.0606169*a)/1);return n===i&&i===a?e=r=o:(e=B((.4360747*n+.3850649*i+.1430804*a)/.96422),r=B((.0139322*n+.0971045*i+.7141733*a)/.82521)),new F(116*o-16,500*(e-o),200*(o-r),t.opacity)}function R(t,e,r,n){return 1===arguments.length?D(t):new F(t,e,r,null==n?1:n)}function F(t,e,r,n){this.l=+t,this.a=+e,this.b=+r,this.opacity=+n}function B(t){return t>.008856451679035631?Math.pow(t,1/3):t/O+4/29}function N(t){return t>z?t*t*t:O*(t-4/29)}function j(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function U(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function V(t){if(t instanceof H)return new H(t.h,t.c,t.l,t.opacity);if(t instanceof F||(t=D(t)),0===t.a&&0===t.b)return new H(NaN,0=0&&(r=t.slice(n+1),t=t.slice(0,n)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:r}}))}function a(t,e){for(var r,n=0,i=t.length;n0)for(var r,n,i=new Array(r),a=0;ah+c||np+c||au.index){var f=h-s.x-s.vx,m=p-s.y-s.vy,v=f*f+m*m;vt.r&&(t.r=t[e].r)}function h(){if(r){var e,i,a=r.length;for(n=new Array(a),e=0;e=c)){(t.data!==r||t.next)&&(0===f&&(d+=(f=o())*f),0===h&&(d+=(h=o())*h),d1?(null==r?u.remove(t):u.set(t,v(r)),e):u.get(t)},find:function(e,r,n){var i,a,o,s,l,c=0,u=t.length;for(null==n?n=1/0:n*=n,c=0;c1?(h.on(t,r),e):h.on(t)}}},t.forceX=function(t){var e,r,n,i=a(.1);function o(t){for(var i,a=0,o=e.length;a=0;)e+=r[n].value;else e=1;t.value=e}function a(t,e){var r,n,i,a,s,u=new c(t),f=+t.value&&(u.value=t.value),h=[u];for(null==e&&(e=o);r=h.pop();)if(f&&(r.value=+r.data.value),(i=e(r.data))&&(s=i.length))for(r.children=new Array(s),a=s-1;a>=0;--a)h.push(n=r.children[a]=new c(i[a])),n.parent=r,n.depth=r.depth+1;return u.eachBefore(l)}function o(t){return t.children}function s(t){t.data=t.data.data}function l(t){var e=0;do{t.height=e}while((t=t.parent)&&t.height<++e)}function c(t){this.data=t,this.depth=this.height=0,this.parent=null}c.prototype=a.prototype={constructor:c,count:function(){return this.eachAfter(i)},each:function(t){var e,r,n,i,a=this,o=[a];do{for(e=o.reverse(),o=[];a=e.pop();)if(t(a),r=a.children)for(n=0,i=r.length;n=0;--r)i.push(e[r]);return this},sum:function(t){return this.eachAfter((function(e){for(var r=+t(e.data)||0,n=e.children,i=n&&n.length;--i>=0;)r+=n[i].value;e.value=r}))},sort:function(t){return this.eachBefore((function(e){e.children&&e.children.sort(t)}))},path:function(t){for(var e=this,r=function(t,e){if(t===e)return t;var r=t.ancestors(),n=e.ancestors(),i=null;t=r.pop(),e=n.pop();for(;t===e;)i=t,t=r.pop(),e=n.pop();return i}(e,t),n=[e];e!==r;)e=e.parent,n.push(e);for(var i=n.length;t!==r;)n.splice(i,0,t),t=t.parent;return n},ancestors:function(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e},descendants:function(){var t=[];return this.each((function(e){t.push(e)})),t},leaves:function(){var t=[];return this.eachBefore((function(e){e.children||t.push(e)})),t},links:function(){var t=this,e=[];return t.each((function(r){r!==t&&e.push({source:r.parent,target:r})})),e},copy:function(){return a(this).eachBefore(s)}};var u=Array.prototype.slice;function f(t){for(var e,r,n=0,i=(t=function(t){for(var e,r,n=t.length;n;)r=Math.random()*n--|0,e=t[n],t[n]=t[r],t[r]=e;return t}(u.call(t))).length,a=[];n0&&r*r>n*n+i*i}function g(t,e){for(var r=0;r(o*=o)?(n=(c+o-i)/(2*c),a=Math.sqrt(Math.max(0,o/c-n*n)),r.x=t.x-n*s-a*l,r.y=t.y-n*l+a*s):(n=(c+i-o)/(2*c),a=Math.sqrt(Math.max(0,i/c-n*n)),r.x=e.x+n*s-a*l,r.y=e.y+n*l+a*s)):(r.x=e.x+r.r,r.y=e.y)}function b(t,e){var r=t.r+e.r-1e-6,n=e.x-t.x,i=e.y-t.y;return r>0&&r*r>n*n+i*i}function _(t){var e=t._,r=t.next._,n=e.r+r.r,i=(e.x*r.r+r.x*e.r)/n,a=(e.y*r.r+r.y*e.r)/n;return i*i+a*a}function w(t){this._=t,this.next=null,this.previous=null}function T(t){if(!(i=t.length))return 0;var e,r,n,i,a,o,s,l,c,u,h;if((e=t[0]).x=0,e.y=0,!(i>1))return e.r;if(r=t[1],e.x=-r.r,r.x=e.r,r.y=0,!(i>2))return e.r+r.r;x(r,e,n=t[2]),e=new w(e),r=new w(r),n=new w(n),e.next=n.previous=r,r.next=e.previous=n,n.next=r.previous=e;t:for(s=3;sh&&(h=s),m=u*u*g,(p=Math.max(h/m,m/f))>d){u-=s;break}d=p}v.push(o={value:u,dice:l1?e:1)},r}(G);var X=function t(e){function r(t,r,n,i,a){if((o=t._squarify)&&o.ratio===e)for(var o,s,l,c,u,f=-1,h=o.length,p=t.value;++f1?e:1)},r}(G);t.cluster=function(){var t=e,i=1,a=1,o=!1;function s(e){var s,l=0;e.eachAfter((function(e){var i=e.children;i?(e.x=function(t){return t.reduce(r,0)/t.length}(i),e.y=function(t){return 1+t.reduce(n,0)}(i)):(e.x=s?l+=t(e,s):0,e.y=0,s=e)}));var c=function(t){for(var e;e=t.children;)t=e[0];return t}(e),u=function(t){for(var e;e=t.children;)t=e[e.length-1];return t}(e),f=c.x-t(c,u)/2,h=u.x+t(u,c)/2;return e.eachAfter(o?function(t){t.x=(t.x-e.x)*i,t.y=(e.y-t.y)*a}:function(t){t.x=(t.x-f)/(h-f)*i,t.y=(1-(e.y?t.y/e.y:1))*a})}return s.separation=function(e){return arguments.length?(t=e,s):t},s.size=function(t){return arguments.length?(o=!1,i=+t[0],a=+t[1],s):o?null:[i,a]},s.nodeSize=function(t){return arguments.length?(o=!0,i=+t[0],a=+t[1],s):o?[i,a]:null},s},t.hierarchy=a,t.pack=function(){var t=null,e=1,r=1,n=A;function i(i){return i.x=e/2,i.y=r/2,t?i.eachBefore(C(t)).eachAfter(L(n,.5)).eachBefore(I(1)):i.eachBefore(C(E)).eachAfter(L(A,1)).eachAfter(L(n,i.r/Math.min(e,r))).eachBefore(I(Math.min(e,r)/(2*i.r))),i}return i.radius=function(e){return arguments.length?(t=k(e),i):t},i.size=function(t){return arguments.length?(e=+t[0],r=+t[1],i):[e,r]},i.padding=function(t){return arguments.length?(n="function"==typeof t?t:S(+t),i):n},i},t.packEnclose=f,t.packSiblings=function(t){return T(t),t},t.partition=function(){var t=1,e=1,r=0,n=!1;function i(i){var a=i.height+1;return i.x0=i.y0=r,i.x1=t,i.y1=e/a,i.eachBefore(function(t,e){return function(n){n.children&&z(n,n.x0,t*(n.depth+1)/e,n.x1,t*(n.depth+2)/e);var i=n.x0,a=n.y0,o=n.x1-r,s=n.y1-r;o0)throw new Error("cycle");return a}return r.id=function(e){return arguments.length?(t=M(e),r):t},r.parentId=function(t){return arguments.length?(e=M(t),r):e},r},t.tree=function(){var t=B,e=1,r=1,n=null;function i(i){var l=function(t){for(var e,r,n,i,a,o=new q(t,0),s=[o];e=s.pop();)if(n=e._.children)for(e.children=new Array(a=n.length),i=a-1;i>=0;--i)s.push(r=e.children[i]=new q(n[i],i)),r.parent=e;return(o.parent=new q(null,0)).children=[o],o}(i);if(l.eachAfter(a),l.parent.m=-l.z,l.eachBefore(o),n)i.eachBefore(s);else{var c=i,u=i,f=i;i.eachBefore((function(t){t.xu.x&&(u=t),t.depth>f.depth&&(f=t)}));var h=c===u?1:t(c,u)/2,p=h-c.x,d=e/(u.x+h+p),g=r/(f.depth||1);i.eachBefore((function(t){t.x=(t.x+p)*d,t.y=t.depth*g}))}return i}function a(e){var r=e.children,n=e.parent.children,i=e.i?n[e.i-1]:null;if(r){!function(t){for(var e,r=0,n=0,i=t.children,a=i.length;--a>=0;)(e=i[a]).z+=r,e.m+=r,r+=e.s+(n+=e.c)}(e);var a=(r[0].z+r[r.length-1].z)/2;i?(e.z=i.z+t(e._,i._),e.m=e.z-a):e.z=a}else i&&(e.z=i.z+t(e._,i._));e.parent.A=function(e,r,n){if(r){for(var i,a=e,o=e,s=r,l=a.parent.children[0],c=a.m,u=o.m,f=s.m,h=l.m;s=j(s),a=N(a),s&&a;)l=N(l),(o=j(o)).a=e,(i=s.z+f-a.z-c+t(s._,a._))>0&&(U(V(s,e,n),e,i),c+=i,u+=i),f+=s.m,c+=a.m,h+=l.m,u+=o.m;s&&!j(o)&&(o.t=s,o.m+=f-u),a&&!N(l)&&(l.t=a,l.m+=c-h,n=e)}return n}(e,i,e.parent.A||n[0])}function o(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function s(t){t.x*=e,t.y=t.depth*r}return i.separation=function(e){return arguments.length?(t=e,i):t},i.size=function(t){return arguments.length?(n=!1,e=+t[0],r=+t[1],i):n?null:[e,r]},i.nodeSize=function(t){return arguments.length?(n=!0,e=+t[0],r=+t[1],i):n?[e,r]:null},i},t.treemap=function(){var t=W,e=!1,r=1,n=1,i=[0],a=A,o=A,s=A,l=A,c=A;function u(t){return t.x0=t.y0=0,t.x1=r,t.y1=n,t.eachBefore(f),i=[0],e&&t.eachBefore(P),t}function f(e){var r=i[e.depth],n=e.x0+r,u=e.y0+r,f=e.x1-r,h=e.y1-r;f=r-1){var u=s[e];return u.x0=i,u.y0=a,u.x1=o,void(u.y1=l)}var f=c[e],h=n/2+f,p=e+1,d=r-1;for(;p>>1;c[g]l-a){var y=(i*v+o*m)/n;t(e,p,m,i,a,y,l),t(p,r,v,y,a,o,l)}else{var x=(a*v+l*m)/n;t(e,p,m,i,a,o,x),t(p,r,v,i,x,o,l)}}(0,l,t.value,e,r,n,i)},t.treemapDice=z,t.treemapResquarify=X,t.treemapSlice=H,t.treemapSliceDice=function(t,e,r,n,i){(1&t.depth?H:z)(t,e,r,n,i)},t.treemapSquarify=W,Object.defineProperty(t,"__esModule",{value:!0})}))},{}],162:[function(t,e,r){!function(n,i){"object"==typeof r&&"undefined"!=typeof e?i(r,t("d3-color")):i((n=n||self).d3=n.d3||{},n.d3)}(this,(function(t,e){"use strict";function r(t,e,r,n,i){var a=t*t,o=a*t;return((1-3*t+3*a-o)*e+(4-6*a+3*o)*r+(1+3*t+3*a-3*o)*n+o*i)/6}function n(t){var e=t.length-1;return function(n){var i=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),a=t[i],o=t[i+1],s=i>0?t[i-1]:2*a-o,l=i180||r<-180?r-360*Math.round(r/360):r):a(isNaN(t)?e:t)}function l(t){return 1==(t=+t)?c:function(e,r){return r-e?function(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}(e,r,t):a(isNaN(e)?r:e)}}function c(t,e){var r=e-t;return r?o(t,r):a(isNaN(t)?e:t)}var u=function t(r){var n=l(r);function i(t,r){var i=n((t=e.rgb(t)).r,(r=e.rgb(r)).r),a=n(t.g,r.g),o=n(t.b,r.b),s=c(t.opacity,r.opacity);return function(e){return t.r=i(e),t.g=a(e),t.b=o(e),t.opacity=s(e),t+""}}return i.gamma=t,i}(1);function f(t){return function(r){var n,i,a=r.length,o=new Array(a),s=new Array(a),l=new Array(a);for(n=0;na&&(i=e.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(r=r[0])===(n=n[0])?s[o]?s[o]+=n:s[++o]=n:(s[++o]=null,l.push({i:o,x:y(r,n)})),a=_.lastIndex;return a180?e+=360:e-t>180&&(t+=360),a.push({i:r.push(i(r)+"rotate(",null,n)-2,x:y(t,e)})):e&&r.push(i(r)+"rotate("+e+n)}(a.rotate,o.rotate,s,l),function(t,e,r,a){t!==e?a.push({i:r.push(i(r)+"skewX(",null,n)-2,x:y(t,e)}):e&&r.push(i(r)+"skewX("+e+n)}(a.skewX,o.skewX,s,l),function(t,e,r,n,a,o){if(t!==r||e!==n){var s=a.push(i(a)+"scale(",null,",",null,")");o.push({i:s-4,x:y(t,r)},{i:s-2,x:y(e,n)})}else 1===r&&1===n||a.push(i(a)+"scale("+r+","+n+")")}(a.scaleX,a.scaleY,o.scaleX,o.scaleY,s,l),a=o=null,function(t){for(var e,r=-1,n=l.length;++r1e-6)if(Math.abs(f*l-c*u)>1e-6&&a){var p=n-o,d=i-s,g=l*l+c*c,m=p*p+d*d,v=Math.sqrt(g),y=Math.sqrt(h),x=a*Math.tan((e-Math.acos((g+h-m)/(2*v*y)))/2),b=x/y,_=x/v;Math.abs(b-1)>1e-6&&(this._+="L"+(t+b*u)+","+(r+b*f)),this._+="A"+a+","+a+",0,0,"+ +(f*p>u*d)+","+(this._x1=t+_*l)+","+(this._y1=r+_*c)}else this._+="L"+(this._x1=t)+","+(this._y1=r);else;},arc:function(t,i,a,o,s,l){t=+t,i=+i,l=!!l;var c=(a=+a)*Math.cos(o),u=a*Math.sin(o),f=t+c,h=i+u,p=1^l,d=l?o-s:s-o;if(a<0)throw new Error("negative radius: "+a);null===this._x1?this._+="M"+f+","+h:(Math.abs(this._x1-f)>1e-6||Math.abs(this._y1-h)>1e-6)&&(this._+="L"+f+","+h),a&&(d<0&&(d=d%r+r),d>n?this._+="A"+a+","+a+",0,1,"+p+","+(t-c)+","+(i-u)+"A"+a+","+a+",0,1,"+p+","+(this._x1=f)+","+(this._y1=h):d>1e-6&&(this._+="A"+a+","+a+",0,"+ +(d>=e)+","+p+","+(this._x1=t+a*Math.cos(s))+","+(this._y1=i+a*Math.sin(s))))},rect:function(t,e,r,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +r+"v"+ +n+"h"+-r+"Z"},toString:function(){return this._}},t.path=a,Object.defineProperty(t,"__esModule",{value:!0})}))},{}],164:[function(t,e,r){!function(t,n){"object"==typeof r&&"undefined"!=typeof e?n(r):n((t=t||self).d3=t.d3||{})}(this,(function(t){"use strict";function e(t,e,r,n){if(isNaN(e)||isNaN(r))return t;var i,a,o,s,l,c,u,f,h,p=t._root,d={data:n},g=t._x0,m=t._y0,v=t._x1,y=t._y1;if(!p)return t._root=d,t;for(;p.length;)if((c=e>=(a=(g+v)/2))?g=a:v=a,(u=r>=(o=(m+y)/2))?m=o:y=o,i=p,!(p=p[f=u<<1|c]))return i[f]=d,t;if(s=+t._x.call(null,p.data),l=+t._y.call(null,p.data),e===s&&r===l)return d.next=p,i?i[f]=d:t._root=d,t;do{i=i?i[f]=new Array(4):t._root=new Array(4),(c=e>=(a=(g+v)/2))?g=a:v=a,(u=r>=(o=(m+y)/2))?m=o:y=o}while((f=u<<1|c)==(h=(l>=o)<<1|s>=a));return i[h]=p,i[f]=d,t}function r(t,e,r,n,i){this.node=t,this.x0=e,this.y0=r,this.x1=n,this.y1=i}function n(t){return t[0]}function i(t){return t[1]}function a(t,e,r){var a=new o(null==e?n:e,null==r?i:r,NaN,NaN,NaN,NaN);return null==t?a:a.addAll(t)}function o(t,e,r,n,i,a){this._x=t,this._y=e,this._x0=r,this._y0=n,this._x1=i,this._y1=a,this._root=void 0}function s(t){for(var e={data:t.data},r=e;t=t.next;)r=r.next={data:t.data};return e}var l=a.prototype=o.prototype;l.copy=function(){var t,e,r=new o(this._x,this._y,this._x0,this._y0,this._x1,this._y1),n=this._root;if(!n)return r;if(!n.length)return r._root=s(n),r;for(t=[{source:n,target:r._root=new Array(4)}];n=t.pop();)for(var i=0;i<4;++i)(e=n.source[i])&&(e.length?t.push({source:e,target:n.target[i]=new Array(4)}):n.target[i]=s(e));return r},l.add=function(t){var r=+this._x.call(null,t),n=+this._y.call(null,t);return e(this.cover(r,n),r,n,t)},l.addAll=function(t){var r,n,i,a,o=t.length,s=new Array(o),l=new Array(o),c=1/0,u=1/0,f=-1/0,h=-1/0;for(n=0;nf&&(f=i),ah&&(h=a));if(c>f||u>h)return this;for(this.cover(c,u).cover(f,h),n=0;nt||t>=i||n>e||e>=a;)switch(s=(ep||(o=c.y0)>d||(s=c.x1)=y)<<1|t>=v)&&(c=g[g.length-1],g[g.length-1]=g[g.length-1-u],g[g.length-1-u]=c)}else{var x=t-+this._x.call(null,m.data),b=e-+this._y.call(null,m.data),_=x*x+b*b;if(_=(s=(d+m)/2))?d=s:m=s,(u=o>=(l=(g+v)/2))?g=l:v=l,e=p,!(p=p[f=u<<1|c]))return this;if(!p.length)break;(e[f+1&3]||e[f+2&3]||e[f+3&3])&&(r=e,h=f)}for(;p.data!==t;)if(n=p,!(p=p.next))return this;return(i=p.next)&&delete p.next,n?(i?n.next=i:delete n.next,this):e?(i?e[f]=i:delete e[f],(p=e[0]||e[1]||e[2]||e[3])&&p===(e[3]||e[2]||e[1]||e[0])&&!p.length&&(r?r[h]=p:this._root=p),this):(this._root=i,this)},l.removeAll=function(t){for(var e=0,r=t.length;e1?0:t<-1?u:Math.acos(t)}function d(t){return t>=1?f:t<=-1?-f:Math.asin(t)}function g(t){return t.innerRadius}function m(t){return t.outerRadius}function v(t){return t.startAngle}function y(t){return t.endAngle}function x(t){return t&&t.padAngle}function b(t,e,r,n,i,a,o,s){var l=r-t,c=n-e,u=o-i,f=s-a,h=f*l-u*c;if(!(h*h<1e-12))return[t+(h=(u*(e-a)-f*(t-i))/h)*l,e+h*c]}function _(t,e,r,n,i,a,s){var l=t-r,u=e-n,f=(s?a:-a)/c(l*l+u*u),h=f*u,p=-f*l,d=t+h,g=e+p,m=r+h,v=n+p,y=(d+m)/2,x=(g+v)/2,b=m-d,_=v-g,w=b*b+_*_,T=i-a,k=d*v-m*g,M=(_<0?-1:1)*c(o(0,T*T*w-k*k)),A=(k*_-b*M)/w,S=(-k*b-_*M)/w,E=(k*_+b*M)/w,C=(-k*b+_*M)/w,L=A-y,I=S-x,P=E-y,z=C-x;return L*L+I*I>P*P+z*z&&(A=E,S=C),{cx:A,cy:S,x01:-h,y01:-p,x11:A*(i/T-1),y11:S*(i/T-1)}}function w(t){this._context=t}function T(t){return new w(t)}function k(t){return t[0]}function M(t){return t[1]}function A(){var t=k,n=M,i=r(!0),a=null,o=T,s=null;function l(r){var l,c,u,f=r.length,h=!1;for(null==a&&(s=o(u=e.path())),l=0;l<=f;++l)!(l=f;--h)c.point(v[h],y[h]);c.lineEnd(),c.areaEnd()}m&&(v[u]=+t(p,u,r),y[u]=+i(p,u,r),c.point(n?+n(p,u,r):v[u],a?+a(p,u,r):y[u]))}if(d)return c=null,d+""||null}function f(){return A().defined(o).curve(l).context(s)}return u.x=function(e){return arguments.length?(t="function"==typeof e?e:r(+e),n=null,u):t},u.x0=function(e){return arguments.length?(t="function"==typeof e?e:r(+e),u):t},u.x1=function(t){return arguments.length?(n=null==t?null:"function"==typeof t?t:r(+t),u):n},u.y=function(t){return arguments.length?(i="function"==typeof t?t:r(+t),a=null,u):i},u.y0=function(t){return arguments.length?(i="function"==typeof t?t:r(+t),u):i},u.y1=function(t){return arguments.length?(a=null==t?null:"function"==typeof t?t:r(+t),u):a},u.lineX0=u.lineY0=function(){return f().x(t).y(i)},u.lineY1=function(){return f().x(t).y(a)},u.lineX1=function(){return f().x(n).y(i)},u.defined=function(t){return arguments.length?(o="function"==typeof t?t:r(!!t),u):o},u.curve=function(t){return arguments.length?(l=t,null!=s&&(c=l(s)),u):l},u.context=function(t){return arguments.length?(null==t?s=c=null:c=l(s=t),u):s},u}function E(t,e){return et?1:e>=t?0:NaN}function C(t){return t}w.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e)}}};var L=P(T);function I(t){this._curve=t}function P(t){function e(e){return new I(t(e))}return e._curve=t,e}function z(t){var e=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?e(P(t)):e()._curve},t}function O(){return z(A().curve(L))}function D(){var t=S().curve(L),e=t.curve,r=t.lineX0,n=t.lineX1,i=t.lineY0,a=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return z(r())},delete t.lineX0,t.lineEndAngle=function(){return z(n())},delete t.lineX1,t.lineInnerRadius=function(){return z(i())},delete t.lineY0,t.lineOuterRadius=function(){return z(a())},delete t.lineY1,t.curve=function(t){return arguments.length?e(P(t)):e()._curve},t}function R(t,e){return[(e=+e)*Math.cos(t-=Math.PI/2),e*Math.sin(t)]}I.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,e){this._curve.point(e*Math.sin(t),e*-Math.cos(t))}};var F=Array.prototype.slice;function B(t){return t.source}function N(t){return t.target}function j(t){var n=B,i=N,a=k,o=M,s=null;function l(){var r,l=F.call(arguments),c=n.apply(this,l),u=i.apply(this,l);if(s||(s=r=e.path()),t(s,+a.apply(this,(l[0]=c,l)),+o.apply(this,l),+a.apply(this,(l[0]=u,l)),+o.apply(this,l)),r)return s=null,r+""||null}return l.source=function(t){return arguments.length?(n=t,l):n},l.target=function(t){return arguments.length?(i=t,l):i},l.x=function(t){return arguments.length?(a="function"==typeof t?t:r(+t),l):a},l.y=function(t){return arguments.length?(o="function"==typeof t?t:r(+t),l):o},l.context=function(t){return arguments.length?(s=null==t?null:t,l):s},l}function U(t,e,r,n,i){t.moveTo(e,r),t.bezierCurveTo(e=(e+n)/2,r,e,i,n,i)}function V(t,e,r,n,i){t.moveTo(e,r),t.bezierCurveTo(e,r=(r+i)/2,n,r,n,i)}function q(t,e,r,n,i){var a=R(e,r),o=R(e,r=(r+i)/2),s=R(n,r),l=R(n,i);t.moveTo(a[0],a[1]),t.bezierCurveTo(o[0],o[1],s[0],s[1],l[0],l[1])}var H={draw:function(t,e){var r=Math.sqrt(e/u);t.moveTo(r,0),t.arc(0,0,r,0,h)}},G={draw:function(t,e){var r=Math.sqrt(e/5)/2;t.moveTo(-3*r,-r),t.lineTo(-r,-r),t.lineTo(-r,-3*r),t.lineTo(r,-3*r),t.lineTo(r,-r),t.lineTo(3*r,-r),t.lineTo(3*r,r),t.lineTo(r,r),t.lineTo(r,3*r),t.lineTo(-r,3*r),t.lineTo(-r,r),t.lineTo(-3*r,r),t.closePath()}},Y=Math.sqrt(1/3),W=2*Y,X={draw:function(t,e){var r=Math.sqrt(e/W),n=r*Y;t.moveTo(0,-r),t.lineTo(n,0),t.lineTo(0,r),t.lineTo(-n,0),t.closePath()}},Z=Math.sin(u/10)/Math.sin(7*u/10),J=Math.sin(h/10)*Z,K=-Math.cos(h/10)*Z,Q={draw:function(t,e){var r=Math.sqrt(.8908130915292852*e),n=J*r,i=K*r;t.moveTo(0,-r),t.lineTo(n,i);for(var a=1;a<5;++a){var o=h*a/5,s=Math.cos(o),l=Math.sin(o);t.lineTo(l*r,-s*r),t.lineTo(s*n-l*i,l*n+s*i)}t.closePath()}},$={draw:function(t,e){var r=Math.sqrt(e),n=-r/2;t.rect(n,n,r,r)}},tt=Math.sqrt(3),et={draw:function(t,e){var r=-Math.sqrt(e/(3*tt));t.moveTo(0,2*r),t.lineTo(-tt*r,-r),t.lineTo(tt*r,-r),t.closePath()}},rt=-.5,nt=Math.sqrt(3)/2,it=1/Math.sqrt(12),at=3*(it/2+1),ot={draw:function(t,e){var r=Math.sqrt(e/at),n=r/2,i=r*it,a=n,o=r*it+r,s=-a,l=o;t.moveTo(n,i),t.lineTo(a,o),t.lineTo(s,l),t.lineTo(rt*n-nt*i,nt*n+rt*i),t.lineTo(rt*a-nt*o,nt*a+rt*o),t.lineTo(rt*s-nt*l,nt*s+rt*l),t.lineTo(rt*n+nt*i,rt*i-nt*n),t.lineTo(rt*a+nt*o,rt*o-nt*a),t.lineTo(rt*s+nt*l,rt*l-nt*s),t.closePath()}},st=[H,G,X,$,Q,et,ot];function lt(){}function ct(t,e,r){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+r)/6)}function ut(t){this._context=t}function ft(t){this._context=t}function ht(t){this._context=t}function pt(t,e){this._basis=new ut(t),this._beta=e}ut.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:ct(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:ct(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},ft.prototype={areaStart:lt,areaEnd:lt,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:ct(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},ht.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+t)/6,n=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:ct(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},pt.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,r=t.length-1;if(r>0)for(var n,i=t[0],a=e[0],o=t[r]-i,s=e[r]-a,l=-1;++l<=r;)n=l/r,this._basis.point(this._beta*t[l]+(1-this._beta)*(i+n*o),this._beta*e[l]+(1-this._beta)*(a+n*s));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};var dt=function t(e){function r(t){return 1===e?new ut(t):new pt(t,e)}return r.beta=function(e){return t(+e)},r}(.85);function gt(t,e,r){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-r),t._x2,t._y2)}function mt(t,e){this._context=t,this._k=(1-e)/6}mt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:gt(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:gt(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var vt=function t(e){function r(t){return new mt(t,e)}return r.tension=function(e){return t(+e)},r}(0);function yt(t,e){this._context=t,this._k=(1-e)/6}yt.prototype={areaStart:lt,areaEnd:lt,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:gt(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var xt=function t(e){function r(t){return new yt(t,e)}return r.tension=function(e){return t(+e)},r}(0);function bt(t,e){this._context=t,this._k=(1-e)/6}bt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:gt(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var _t=function t(e){function r(t){return new bt(t,e)}return r.tension=function(e){return t(+e)},r}(0);function wt(t,e,r){var n=t._x1,i=t._y1,a=t._x2,o=t._y2;if(t._l01_a>1e-12){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,l=3*t._l01_a*(t._l01_a+t._l12_a);n=(n*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/l,i=(i*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/l}if(t._l23_a>1e-12){var c=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,u=3*t._l23_a*(t._l23_a+t._l12_a);a=(a*c+t._x1*t._l23_2a-e*t._l12_2a)/u,o=(o*c+t._y1*t._l23_2a-r*t._l12_2a)/u}t._context.bezierCurveTo(n,i,a,o,t._x2,t._y2)}function Tt(t,e){this._context=t,this._alpha=e}Tt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:wt(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var kt=function t(e){function r(t){return e?new Tt(t,e):new mt(t,0)}return r.alpha=function(e){return t(+e)},r}(.5);function Mt(t,e){this._context=t,this._alpha=e}Mt.prototype={areaStart:lt,areaEnd:lt,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:wt(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var At=function t(e){function r(t){return e?new Mt(t,e):new yt(t,0)}return r.alpha=function(e){return t(+e)},r}(.5);function St(t,e){this._context=t,this._alpha=e}St.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:wt(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Et=function t(e){function r(t){return e?new St(t,e):new bt(t,0)}return r.alpha=function(e){return t(+e)},r}(.5);function Ct(t){this._context=t}function Lt(t){return t<0?-1:1}function It(t,e,r){var n=t._x1-t._x0,i=e-t._x1,a=(t._y1-t._y0)/(n||i<0&&-0),o=(r-t._y1)/(i||n<0&&-0),s=(a*i+o*n)/(n+i);return(Lt(a)+Lt(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(s))||0}function Pt(t,e){var r=t._x1-t._x0;return r?(3*(t._y1-t._y0)/r-e)/2:e}function zt(t,e,r){var n=t._x0,i=t._y0,a=t._x1,o=t._y1,s=(a-n)/3;t._context.bezierCurveTo(n+s,i+s*e,a-s,o-s*r,a,o)}function Ot(t){this._context=t}function Dt(t){this._context=new Rt(t)}function Rt(t){this._context=t}function Ft(t){this._context=t}function Bt(t){var e,r,n=t.length-1,i=new Array(n),a=new Array(n),o=new Array(n);for(i[0]=0,a[0]=2,o[0]=t[0]+2*t[1],e=1;e=0;--e)i[e]=(o[e]-i[e+1])/a[e];for(a[n-1]=(t[n]+i[n-1])/2,e=0;e1)for(var r,n,i,a=1,o=t[e[0]],s=o.length;a=0;)r[e]=e;return r}function Vt(t,e){return t[e]}function qt(t){var e=t.map(Ht);return Ut(t).sort((function(t,r){return e[t]-e[r]}))}function Ht(t){for(var e,r=-1,n=0,i=t.length,a=-1/0;++ra&&(a=e,n=r);return n}function Gt(t){var e=t.map(Yt);return Ut(t).sort((function(t,r){return e[t]-e[r]}))}function Yt(t){for(var e,r=0,n=-1,i=t.length;++n=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var r=this._x*(1-this._t)+t*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,e)}}this._x=t,this._y=e}},t.arc=function(){var t=g,o=m,w=r(0),T=null,k=v,M=y,A=x,S=null;function E(){var r,g,m=+t.apply(this,arguments),v=+o.apply(this,arguments),y=k.apply(this,arguments)-f,x=M.apply(this,arguments)-f,E=n(x-y),C=x>y;if(S||(S=r=e.path()),v1e-12)if(E>h-1e-12)S.moveTo(v*a(y),v*l(y)),S.arc(0,0,v,y,x,!C),m>1e-12&&(S.moveTo(m*a(x),m*l(x)),S.arc(0,0,m,x,y,C));else{var L,I,P=y,z=x,O=y,D=x,R=E,F=E,B=A.apply(this,arguments)/2,N=B>1e-12&&(T?+T.apply(this,arguments):c(m*m+v*v)),j=s(n(v-m)/2,+w.apply(this,arguments)),U=j,V=j;if(N>1e-12){var q=d(N/m*l(B)),H=d(N/v*l(B));(R-=2*q)>1e-12?(O+=q*=C?1:-1,D-=q):(R=0,O=D=(y+x)/2),(F-=2*H)>1e-12?(P+=H*=C?1:-1,z-=H):(F=0,P=z=(y+x)/2)}var G=v*a(P),Y=v*l(P),W=m*a(D),X=m*l(D);if(j>1e-12){var Z,J=v*a(z),K=v*l(z),Q=m*a(O),$=m*l(O);if(E1e-12?V>1e-12?(L=_(Q,$,G,Y,v,V,C),I=_(J,K,W,X,v,V,C),S.moveTo(L.cx+L.x01,L.cy+L.y01),V1e-12&&R>1e-12?U>1e-12?(L=_(W,X,J,K,m,-U,C),I=_(G,Y,Q,$,m,-U,C),S.lineTo(L.cx+L.x01,L.cy+L.y01),U0&&(d+=f);for(null!=e?g.sort((function(t,r){return e(m[t],m[r])})):null!=n&&g.sort((function(t,e){return n(r[t],r[e])})),s=0,c=d?(y-p*b)/d:0;s0?f*c:0)+b,m[l]={data:r[l],index:s,value:f,startAngle:v,endAngle:u,padAngle:x};return m}return s.value=function(e){return arguments.length?(t="function"==typeof e?e:r(+e),s):t},s.sortValues=function(t){return arguments.length?(e=t,n=null,s):e},s.sort=function(t){return arguments.length?(n=t,e=null,s):n},s.startAngle=function(t){return arguments.length?(i="function"==typeof t?t:r(+t),s):i},s.endAngle=function(t){return arguments.length?(a="function"==typeof t?t:r(+t),s):a},s.padAngle=function(t){return arguments.length?(o="function"==typeof t?t:r(+t),s):o},s},t.pointRadial=R,t.radialArea=D,t.radialLine=O,t.stack=function(){var t=r([]),e=Ut,n=jt,i=Vt;function a(r){var a,o,s=t.apply(this,arguments),l=r.length,c=s.length,u=new Array(c);for(a=0;a0)for(var r,n,i,a,o,s,l=0,c=t[e[0]].length;l0?(n[0]=a,n[1]=a+=i):i<0?(n[1]=o,n[0]=o+=i):(n[0]=0,n[1]=i)},t.stackOffsetExpand=function(t,e){if((n=t.length)>0){for(var r,n,i,a=0,o=t[0].length;a0){for(var r,n=0,i=t[e[0]],a=i.length;n0&&(n=(r=t[e[0]]).length)>0){for(var r,n,i,a=0,o=1;o=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:mt,s:vt,S:q,u:H,U:G,V:Y,w:W,W:X,x:null,X:null,y:Z,Y:J,Z:K,"%":gt},Lt={a:function(t){return f[t.getUTCDay()]},A:function(t){return u[t.getUTCDay()]},b:function(t){return yt[t.getUTCMonth()]},B:function(t){return h[t.getUTCMonth()]},c:null,d:Q,e:Q,f:nt,H:$,I:tt,j:et,L:rt,m:it,M:at,p:function(t){return c[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:mt,s:vt,S:ot,u:st,U:lt,V:ct,w:ut,W:ft,x:null,X:null,y:ht,Y:pt,Z:dt,"%":gt},It={a:function(t,e,r){var n=Tt.exec(e.slice(r));return n?(t.w=kt[n[0].toLowerCase()],r+n[0].length):-1},A:function(t,e,r){var n=_t.exec(e.slice(r));return n?(t.w=wt[n[0].toLowerCase()],r+n[0].length):-1},b:function(t,e,r){var n=St.exec(e.slice(r));return n?(t.m=Et[n[0].toLowerCase()],r+n[0].length):-1},B:function(t,e,r){var n=Mt.exec(e.slice(r));return n?(t.m=At[n[0].toLowerCase()],r+n[0].length):-1},c:function(t,e,r){return Ot(t,a,e,r)},d:M,e:M,f:I,H:S,I:S,j:A,L:L,m:k,M:E,p:function(t,e,r){var n=xt.exec(e.slice(r));return n?(t.p=bt[n[0].toLowerCase()],r+n[0].length):-1},q:T,Q:z,s:O,S:C,u:m,U:v,V:y,w:g,W:x,x:function(t,e,r){return Ot(t,o,e,r)},X:function(t,e,r){return Ot(t,l,e,r)},y:_,Y:b,Z:w,"%":P};function Pt(t,e){return function(r){var n,i,a,o=[],l=-1,c=0,u=t.length;for(r instanceof Date||(r=new Date(+r));++l53)return null;"w"in c||(c.w=1),"Z"in c?(l=(s=n(i(c.y,0,1))).getUTCDay(),s=l>4||0===l?e.utcMonday.ceil(s):e.utcMonday(s),s=e.utcDay.offset(s,7*(c.V-1)),c.y=s.getUTCFullYear(),c.m=s.getUTCMonth(),c.d=s.getUTCDate()+(c.w+6)%7):(l=(s=r(i(c.y,0,1))).getDay(),s=l>4||0===l?e.timeMonday.ceil(s):e.timeMonday(s),s=e.timeDay.offset(s,7*(c.V-1)),c.y=s.getFullYear(),c.m=s.getMonth(),c.d=s.getDate()+(c.w+6)%7)}else("W"in c||"U"in c)&&("w"in c||(c.w="u"in c?c.u%7:"W"in c?1:0),l="Z"in c?n(i(c.y,0,1)).getUTCDay():r(i(c.y,0,1)).getDay(),c.m=0,c.d="W"in c?(c.w+6)%7+7*c.W-(l+5)%7:c.w+7*c.U-(l+6)%7);return"Z"in c?(c.H+=c.Z/100|0,c.M+=c.Z%100,n(c)):r(c)}}function Ot(t,e,r,n){for(var i,a,o=0,l=e.length,c=r.length;o=c)return-1;if(37===(i=e.charCodeAt(o++))){if(i=e.charAt(o++),!(a=It[i in s?e.charAt(o++):i])||(n=a(t,r,n))<0)return-1}else if(i!=r.charCodeAt(n++))return-1}return n}return Ct.x=Pt(o,Ct),Ct.X=Pt(l,Ct),Ct.c=Pt(a,Ct),Lt.x=Pt(o,Lt),Lt.X=Pt(l,Lt),Lt.c=Pt(a,Lt),{format:function(t){var e=Pt(t+="",Ct);return e.toString=function(){return t},e},parse:function(t){var e=zt(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=Pt(t+="",Lt);return e.toString=function(){return t},e},utcParse:function(t){var e=zt(t+="",!0);return e.toString=function(){return t},e}}}var o,s={"-":"",_:" ",0:"0"},l=/^\s*\d+/,c=/^%/,u=/[\\^$*+?|[\]().{}]/g;function f(t,e,r){var n=t<0?"-":"",i=(n?-t:t)+"",a=i.length;return n+(a68?1900:2e3),r+n[0].length):-1}function w(t,e,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return n?(t.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function T(t,e,r){var n=l.exec(e.slice(r,r+1));return n?(t.q=3*n[0]-3,r+n[0].length):-1}function k(t,e,r){var n=l.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function M(t,e,r){var n=l.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function A(t,e,r){var n=l.exec(e.slice(r,r+3));return n?(t.m=0,t.d=+n[0],r+n[0].length):-1}function S(t,e,r){var n=l.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function E(t,e,r){var n=l.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function C(t,e,r){var n=l.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function L(t,e,r){var n=l.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function I(t,e,r){var n=l.exec(e.slice(r,r+6));return n?(t.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function P(t,e,r){var n=c.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function z(t,e,r){var n=l.exec(e.slice(r));return n?(t.Q=+n[0],r+n[0].length):-1}function O(t,e,r){var n=l.exec(e.slice(r));return n?(t.s=+n[0],r+n[0].length):-1}function D(t,e){return f(t.getDate(),e,2)}function R(t,e){return f(t.getHours(),e,2)}function F(t,e){return f(t.getHours()%12||12,e,2)}function B(t,r){return f(1+e.timeDay.count(e.timeYear(t),t),r,3)}function N(t,e){return f(t.getMilliseconds(),e,3)}function j(t,e){return N(t,e)+"000"}function U(t,e){return f(t.getMonth()+1,e,2)}function V(t,e){return f(t.getMinutes(),e,2)}function q(t,e){return f(t.getSeconds(),e,2)}function H(t){var e=t.getDay();return 0===e?7:e}function G(t,r){return f(e.timeSunday.count(e.timeYear(t)-1,t),r,2)}function Y(t,r){var n=t.getDay();return t=n>=4||0===n?e.timeThursday(t):e.timeThursday.ceil(t),f(e.timeThursday.count(e.timeYear(t),t)+(4===e.timeYear(t).getDay()),r,2)}function W(t){return t.getDay()}function X(t,r){return f(e.timeMonday.count(e.timeYear(t)-1,t),r,2)}function Z(t,e){return f(t.getFullYear()%100,e,2)}function J(t,e){return f(t.getFullYear()%1e4,e,4)}function K(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+f(e/60|0,"0",2)+f(e%60,"0",2)}function Q(t,e){return f(t.getUTCDate(),e,2)}function $(t,e){return f(t.getUTCHours(),e,2)}function tt(t,e){return f(t.getUTCHours()%12||12,e,2)}function et(t,r){return f(1+e.utcDay.count(e.utcYear(t),t),r,3)}function rt(t,e){return f(t.getUTCMilliseconds(),e,3)}function nt(t,e){return rt(t,e)+"000"}function it(t,e){return f(t.getUTCMonth()+1,e,2)}function at(t,e){return f(t.getUTCMinutes(),e,2)}function ot(t,e){return f(t.getUTCSeconds(),e,2)}function st(t){var e=t.getUTCDay();return 0===e?7:e}function lt(t,r){return f(e.utcSunday.count(e.utcYear(t)-1,t),r,2)}function ct(t,r){var n=t.getUTCDay();return t=n>=4||0===n?e.utcThursday(t):e.utcThursday.ceil(t),f(e.utcThursday.count(e.utcYear(t),t)+(4===e.utcYear(t).getUTCDay()),r,2)}function ut(t){return t.getUTCDay()}function ft(t,r){return f(e.utcMonday.count(e.utcYear(t)-1,t),r,2)}function ht(t,e){return f(t.getUTCFullYear()%100,e,2)}function pt(t,e){return f(t.getUTCFullYear()%1e4,e,4)}function dt(){return"+0000"}function gt(){return"%"}function mt(t){return+t}function vt(t){return Math.floor(+t/1e3)}function yt(e){return o=a(e),t.timeFormat=o.format,t.timeParse=o.parse,t.utcFormat=o.utcFormat,t.utcParse=o.utcParse,o}yt({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var xt=Date.prototype.toISOString?function(t){return t.toISOString()}:t.utcFormat("%Y-%m-%dT%H:%M:%S.%LZ");var bt=+new Date("2000-01-01T00:00:00.000Z")?function(t){var e=new Date(t);return isNaN(e)?null:e}:t.utcParse("%Y-%m-%dT%H:%M:%S.%LZ");t.isoFormat=xt,t.isoParse=bt,t.timeFormatDefaultLocale=yt,t.timeFormatLocale=a,Object.defineProperty(t,"__esModule",{value:!0})}))},{"d3-time":167}],167:[function(t,e,r){!function(t,n){"object"==typeof r&&"undefined"!=typeof e?n(r):n((t=t||self).d3=t.d3||{})}(this,(function(t){"use strict";var e=new Date,r=new Date;function n(t,i,a,o){function s(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return s.floor=function(e){return t(e=new Date(+e)),e},s.ceil=function(e){return t(e=new Date(e-1)),i(e,1),t(e),e},s.round=function(t){var e=s(t),r=s.ceil(t);return t-e0))return o;do{o.push(a=new Date(+e)),i(e,n),t(e)}while(a=r)for(;t(r),!e(r);)r.setTime(r-1)}),(function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;i(t,-1),!e(t););else for(;--r>=0;)for(;i(t,1),!e(t););}))},a&&(s.count=function(n,i){return e.setTime(+n),r.setTime(+i),t(e),t(r),Math.floor(a(e,r))},s.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?s.filter(o?function(e){return o(e)%t==0}:function(e){return s.count(0,e)%t==0}):s:null}),s}var i=n((function(){}),(function(t,e){t.setTime(+t+e)}),(function(t,e){return e-t}));i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?n((function(e){e.setTime(Math.floor(e/t)*t)}),(function(e,r){e.setTime(+e+r*t)}),(function(e,r){return(r-e)/t})):i:null};var a=i.range,o=n((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,e){t.setTime(+t+1e3*e)}),(function(t,e){return(e-t)/1e3}),(function(t){return t.getUTCSeconds()})),s=o.range,l=n((function(t){t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds())}),(function(t,e){t.setTime(+t+6e4*e)}),(function(t,e){return(e-t)/6e4}),(function(t){return t.getMinutes()})),c=l.range,u=n((function(t){t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds()-6e4*t.getMinutes())}),(function(t,e){t.setTime(+t+36e5*e)}),(function(t,e){return(e-t)/36e5}),(function(t){return t.getHours()})),f=u.range,h=n((function(t){t.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+e)}),(function(t,e){return(e-t-6e4*(e.getTimezoneOffset()-t.getTimezoneOffset()))/864e5}),(function(t){return t.getDate()-1})),p=h.range;function d(t){return n((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+7*e)}),(function(t,e){return(e-t-6e4*(e.getTimezoneOffset()-t.getTimezoneOffset()))/6048e5}))}var g=d(0),m=d(1),v=d(2),y=d(3),x=d(4),b=d(5),_=d(6),w=g.range,T=m.range,k=v.range,M=y.range,A=x.range,S=b.range,E=_.range,C=n((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()})),L=C.range,I=n((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));I.every=function(t){return isFinite(t=Math.floor(t))&&t>0?n((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,r){e.setFullYear(e.getFullYear()+r*t)})):null};var P=I.range,z=n((function(t){t.setUTCSeconds(0,0)}),(function(t,e){t.setTime(+t+6e4*e)}),(function(t,e){return(e-t)/6e4}),(function(t){return t.getUTCMinutes()})),O=z.range,D=n((function(t){t.setUTCMinutes(0,0,0)}),(function(t,e){t.setTime(+t+36e5*e)}),(function(t,e){return(e-t)/36e5}),(function(t){return t.getUTCHours()})),R=D.range,F=n((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/864e5}),(function(t){return t.getUTCDate()-1})),B=F.range;function N(t){return n((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+7*e)}),(function(t,e){return(e-t)/6048e5}))}var j=N(0),U=N(1),V=N(2),q=N(3),H=N(4),G=N(5),Y=N(6),W=j.range,X=U.range,Z=V.range,J=q.range,K=H.range,Q=G.range,$=Y.range,tt=n((function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCMonth(t.getUTCMonth()+e)}),(function(t,e){return e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())}),(function(t){return t.getUTCMonth()})),et=tt.range,rt=n((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));rt.every=function(t){return isFinite(t=Math.floor(t))&&t>0?n((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,r){e.setUTCFullYear(e.getUTCFullYear()+r*t)})):null};var nt=rt.range;t.timeDay=h,t.timeDays=p,t.timeFriday=b,t.timeFridays=S,t.timeHour=u,t.timeHours=f,t.timeInterval=n,t.timeMillisecond=i,t.timeMilliseconds=a,t.timeMinute=l,t.timeMinutes=c,t.timeMonday=m,t.timeMondays=T,t.timeMonth=C,t.timeMonths=L,t.timeSaturday=_,t.timeSaturdays=E,t.timeSecond=o,t.timeSeconds=s,t.timeSunday=g,t.timeSundays=w,t.timeThursday=x,t.timeThursdays=A,t.timeTuesday=v,t.timeTuesdays=k,t.timeWednesday=y,t.timeWednesdays=M,t.timeWeek=g,t.timeWeeks=w,t.timeYear=I,t.timeYears=P,t.utcDay=F,t.utcDays=B,t.utcFriday=G,t.utcFridays=Q,t.utcHour=D,t.utcHours=R,t.utcMillisecond=i,t.utcMilliseconds=a,t.utcMinute=z,t.utcMinutes=O,t.utcMonday=U,t.utcMondays=X,t.utcMonth=tt,t.utcMonths=et,t.utcSaturday=Y,t.utcSaturdays=$,t.utcSecond=o,t.utcSeconds=s,t.utcSunday=j,t.utcSundays=W,t.utcThursday=H,t.utcThursdays=K,t.utcTuesday=V,t.utcTuesdays=Z,t.utcWednesday=q,t.utcWednesdays=J,t.utcWeek=j,t.utcWeeks=W,t.utcYear=rt,t.utcYears=nt,Object.defineProperty(t,"__esModule",{value:!0})}))},{}],168:[function(t,e,r){!function(t,n){"object"==typeof r&&"undefined"!=typeof e?n(r):n((t=t||self).d3=t.d3||{})}(this,(function(t){"use strict";var e,r,n=0,i=0,a=0,o=0,s=0,l=0,c="object"==typeof performance&&performance.now?performance:Date,u="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function f(){return s||(u(h),s=c.now()+l)}function h(){s=0}function p(){this._call=this._time=this._next=null}function d(t,e,r){var n=new p;return n.restart(t,e,r),n}function g(){f(),++n;for(var t,r=e;r;)(t=s-r._time)>=0&&r._call.call(null,t),r=r._next;--n}function m(){s=(o=c.now())+l,n=i=0;try{g()}finally{n=0,function(){var t,n,i=e,a=1/0;for(;i;)i._call?(a>i._time&&(a=i._time),t=i,i=i._next):(n=i._next,i._next=null,i=t?t._next=n:e=n);r=t,y(a)}(),s=0}}function v(){var t=c.now(),e=t-o;e>1e3&&(l-=e,o=t)}function y(t){n||(i&&(i=clearTimeout(i)),t-s>24?(t<1/0&&(i=setTimeout(m,t-c.now()-l)),a&&(a=clearInterval(a))):(a||(o=c.now(),a=setInterval(v,1e3)),n=1,u(m)))}p.prototype=d.prototype={constructor:p,restart:function(t,n,i){if("function"!=typeof t)throw new TypeError("callback is not a function");i=(null==i?f():+i)+(null==n?0:+n),this._next||r===this||(r?r._next=this:e=this,r=this),this._call=t,this._time=i,y()},stop:function(){this._call&&(this._call=null,this._time=1/0,y())}},t.interval=function(t,e,r){var n=new p,i=e;return null==e?(n.restart(t,e,r),n):(e=+e,r=null==r?f():+r,n.restart((function a(o){o+=i,n.restart(a,i+=e,r),t(o)}),e,r),n)},t.now=f,t.timeout=function(t,e,r){var n=new p;return e=null==e?0:+e,n.restart((function(r){n.stop(),t(r+e)}),e,r),n},t.timer=d,t.timerFlush=g,Object.defineProperty(t,"__esModule",{value:!0})}))},{}],169:[function(t,e,r){!function(){var t={version:"3.5.17"},r=[].slice,n=function(t){return r.call(t)},i=this.document;function a(t){return t&&(t.ownerDocument||t.document||t).documentElement}function o(t){return t&&(t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView)}if(i)try{n(i.documentElement.childNodes)[0].nodeType}catch(t){n=function(t){for(var e=t.length,r=new Array(e);e--;)r[e]=t[e];return r}}if(Date.now||(Date.now=function(){return+new Date}),i)try{i.createElement("DIV").style.setProperty("opacity",0,"")}catch(t){var s=this.Element.prototype,l=s.setAttribute,c=s.setAttributeNS,u=this.CSSStyleDeclaration.prototype,f=u.setProperty;s.setAttribute=function(t,e){l.call(this,t,e+"")},s.setAttributeNS=function(t,e,r){c.call(this,t,e,r+"")},u.setProperty=function(t,e,r){f.call(this,t,e+"",r)}}function h(t,e){return te?1:t>=e?0:NaN}function p(t){return null===t?NaN:+t}function d(t){return!isNaN(t)}function g(t){return{left:function(e,r,n,i){for(arguments.length<3&&(n=0),arguments.length<4&&(i=e.length);n>>1;t(e[a],r)<0?n=a+1:i=a}return n},right:function(e,r,n,i){for(arguments.length<3&&(n=0),arguments.length<4&&(i=e.length);n>>1;t(e[a],r)>0?i=a:n=a+1}return n}}}t.ascending=h,t.descending=function(t,e){return et?1:e>=t?0:NaN},t.min=function(t,e){var r,n,i=-1,a=t.length;if(1===arguments.length){for(;++i=n){r=n;break}for(;++in&&(r=n)}else{for(;++i=n){r=n;break}for(;++in&&(r=n)}return r},t.max=function(t,e){var r,n,i=-1,a=t.length;if(1===arguments.length){for(;++i=n){r=n;break}for(;++ir&&(r=n)}else{for(;++i=n){r=n;break}for(;++ir&&(r=n)}return r},t.extent=function(t,e){var r,n,i,a=-1,o=t.length;if(1===arguments.length){for(;++a=n){r=i=n;break}for(;++an&&(r=n),i=n){r=i=n;break}for(;++an&&(r=n),i1)return o/(l-1)},t.deviation=function(){var e=t.variance.apply(this,arguments);return e?Math.sqrt(e):e};var m=g(h);function v(t){return t.length}t.bisectLeft=m.left,t.bisect=t.bisectRight=m.right,t.bisector=function(t){return g(1===t.length?function(e,r){return h(t(e),r)}:t)},t.shuffle=function(t,e,r){(a=arguments.length)<3&&(r=t.length,a<2&&(e=0));for(var n,i,a=r-e;a;)i=Math.random()*a--|0,n=t[a+e],t[a+e]=t[i+e],t[i+e]=n;return t},t.permute=function(t,e){for(var r=e.length,n=new Array(r);r--;)n[r]=t[e[r]];return n},t.pairs=function(t){for(var e=0,r=t.length-1,n=t[0],i=new Array(r<0?0:r);e=0;)for(e=(n=t[i]).length;--e>=0;)r[--o]=n[e];return r};var y=Math.abs;function x(t){for(var e=1;t*e%1;)e*=10;return e}function b(t,e){for(var r in e)Object.defineProperty(t.prototype,r,{value:e[r],enumerable:!1})}function _(){this._=Object.create(null)}t.range=function(t,e,r){if(arguments.length<3&&(r=1,arguments.length<2&&(e=t,t=0)),(e-t)/r==1/0)throw new Error("infinite range");var n,i=[],a=x(y(r)),o=-1;if(t*=a,e*=a,(r*=a)<0)for(;(n=t+r*++o)>e;)i.push(n/a);else for(;(n=t+r*++o)=i.length)return r?r.call(n,a):e?a.sort(e):a;for(var l,c,u,f,h=-1,p=a.length,d=i[s++],g=new _;++h=i.length)return e;var n=[],o=a[r++];return e.forEach((function(e,i){n.push({key:e,values:t(i,r)})})),o?n.sort((function(t,e){return o(t.key,e.key)})):n}(o(t.map,e,0),0)},n.key=function(t){return i.push(t),n},n.sortKeys=function(t){return a[i.length-1]=t,n},n.sortValues=function(t){return e=t,n},n.rollup=function(t){return r=t,n},n},t.set=function(t){var e=new C;if(t)for(var r=0,n=t.length;r=0&&(n=t.slice(r+1),t=t.slice(0,r)),t)return arguments.length<2?this[t].on(n):this[t].on(n,e);if(2===arguments.length){if(null==e)for(t in this)this.hasOwnProperty(t)&&this[t].on(n,null);return this}},t.event=null,t.requote=function(t){return t.replace(j,"\\$&")};var j=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,U={}.__proto__?function(t,e){t.__proto__=e}:function(t,e){for(var r in e)t[r]=e[r]};function V(t){return U(t,Y),t}var q=function(t,e){return e.querySelector(t)},H=function(t,e){return e.querySelectorAll(t)},G=function(t,e){var r=t.matches||t[P(t,"matchesSelector")];return(G=function(t,e){return r.call(t,e)})(t,e)};"function"==typeof Sizzle&&(q=function(t,e){return Sizzle(t,e)[0]||null},H=Sizzle,G=Sizzle.matchesSelector),t.selection=function(){return t.select(i.documentElement)};var Y=t.selection.prototype=[];function W(t){return"function"==typeof t?t:function(){return q(t,this)}}function X(t){return"function"==typeof t?t:function(){return H(t,this)}}Y.select=function(t){var e,r,n,i,a=[];t=W(t);for(var o=-1,s=this.length;++o=0&&"xmlns"!==(r=t.slice(0,e))&&(t=t.slice(e+1)),J.hasOwnProperty(r)?{space:J[r],local:t}:t}},Y.attr=function(e,r){if(arguments.length<2){if("string"==typeof e){var n=this.node();return(e=t.ns.qualify(e)).local?n.getAttributeNS(e.space,e.local):n.getAttribute(e)}for(r in e)this.each(K(r,e[r]));return this}return this.each(K(e,r))},Y.classed=function(t,e){if(arguments.length<2){if("string"==typeof t){var r=this.node(),n=(t=tt(t)).length,i=-1;if(e=r.classList){for(;++i=0;)(r=n[i])&&(a&&a!==r.nextSibling&&a.parentNode.insertBefore(r,a),a=r);return this},Y.sort=function(t){t=ct.apply(this,arguments);for(var e=-1,r=this.length;++e=e&&(e=i+1);!(o=s[e])&&++e0&&(e=e.slice(0,o));var l=gt.get(e);function c(){var t=this[a];t&&(this.removeEventListener(e,t,t.$),delete this[a])}return l&&(e=l,s=vt),o?r?function(){var t=s(r,n(arguments));c.call(this),this.addEventListener(e,this[a]=t,t.$=i),t._=r}:c:r?O:function(){var r,n=new RegExp("^__on([^.]+)"+t.requote(e)+"$");for(var i in this)if(r=i.match(n)){var a=this[i];this.removeEventListener(r[1],a,a.$),delete this[i]}}}t.selection.enter=ft,t.selection.enter.prototype=ht,ht.append=Y.append,ht.empty=Y.empty,ht.node=Y.node,ht.call=Y.call,ht.size=Y.size,ht.select=function(t){for(var e,r,n,i,a,o=[],s=-1,l=this.length;++s0?1:t<0?-1:0}function zt(t,e,r){return(e[0]-t[0])*(r[1]-t[1])-(e[1]-t[1])*(r[0]-t[0])}function Ot(t){return t>1?0:t<-1?At:Math.acos(t)}function Dt(t){return t>1?Ct:t<-1?-Ct:Math.asin(t)}function Rt(t){return((t=Math.exp(t))+1/t)/2}function Ft(t){return(t=Math.sin(t/2))*t}var Bt=Math.SQRT2;t.interpolateZoom=function(t,e){var r,n,i=t[0],a=t[1],o=t[2],s=e[0],l=e[1],c=e[2],u=s-i,f=l-a,h=u*u+f*f;if(h0&&(e=e.transition().duration(g)),e.call(w.event)}function S(){c&&c.domain(l.range().map((function(t){return(t-h.x)/h.k})).map(l.invert)),f&&f.domain(u.range().map((function(t){return(t-h.y)/h.k})).map(u.invert))}function E(t){m++||t({type:"zoomstart"})}function C(t){S(),t({type:"zoom",scale:h.k,translate:[h.x,h.y]})}function L(t){--m||(t({type:"zoomend"}),r=null)}function I(){var e=this,r=_.of(e,arguments),n=0,i=t.select(o(e)).on(y,l).on(x,c),a=T(t.mouse(e)),s=bt(e);function l(){n=1,M(t.mouse(e),a),C(r)}function c(){i.on(y,null).on(x,null),s(n),L(r)}vs.call(e),E(r)}function P(){var e,r=this,n=_.of(r,arguments),i={},a=0,o=".zoom-"+t.event.changedTouches[0].identifier,l="touchmove"+o,c="touchend"+o,u=[],f=t.select(r),p=bt(r);function d(){var n=t.touches(r);return e=h.k,n.forEach((function(t){t.identifier in i&&(i[t.identifier]=T(t))})),n}function g(){var e=t.event.target;t.select(e).on(l,m).on(c,y),u.push(e);for(var n=t.event.changedTouches,o=0,f=n.length;o1){v=p[0];var x=p[1],b=v[0]-x[0],_=v[1]-x[1];a=b*b+_*_}}function m(){var o,l,c,u,f=t.touches(r);vs.call(r);for(var h=0,p=f.length;h360?t-=360:t<0&&(t+=360),t<60?n+(i-n)*t/60:t<180?i:t<240?n+(i-n)*(240-t)/60:n}(t))}return t=isNaN(t)?0:(t%=360)<0?t+360:t,e=isNaN(e)||e<0?0:e>1?1:e,n=2*(r=r<0?0:r>1?1:r)-(i=r<=.5?r*(1+e):r+e-r*e),new ne(a(t+120),a(t),a(t-120))}function Yt(e,r,n){return this instanceof Yt?(this.h=+e,this.c=+r,void(this.l=+n)):arguments.length<2?e instanceof Yt?new Yt(e.h,e.c,e.l):$t(e instanceof Zt?e.l:(e=ue((e=t.rgb(e)).r,e.g,e.b)).l,e.a,e.b):new Yt(e,r,n)}Ht.brighter=function(t){return t=Math.pow(.7,arguments.length?t:1),new qt(this.h,this.s,this.l/t)},Ht.darker=function(t){return t=Math.pow(.7,arguments.length?t:1),new qt(this.h,this.s,t*this.l)},Ht.rgb=function(){return Gt(this.h,this.s,this.l)},t.hcl=Yt;var Wt=Yt.prototype=new Vt;function Xt(t,e,r){return isNaN(t)&&(t=0),isNaN(e)&&(e=0),new Zt(r,Math.cos(t*=Lt)*e,Math.sin(t)*e)}function Zt(t,e,r){return this instanceof Zt?(this.l=+t,this.a=+e,void(this.b=+r)):arguments.length<2?t instanceof Zt?new Zt(t.l,t.a,t.b):t instanceof Yt?Xt(t.h,t.c,t.l):ue((t=ne(t)).r,t.g,t.b):new Zt(t,e,r)}Wt.brighter=function(t){return new Yt(this.h,this.c,Math.min(100,this.l+Jt*(arguments.length?t:1)))},Wt.darker=function(t){return new Yt(this.h,this.c,Math.max(0,this.l-Jt*(arguments.length?t:1)))},Wt.rgb=function(){return Xt(this.h,this.c,this.l).rgb()},t.lab=Zt;var Jt=18,Kt=Zt.prototype=new Vt;function Qt(t,e,r){var n=(t+16)/116,i=n+e/500,a=n-r/200;return new ne(re(3.2404542*(i=.95047*te(i))-1.5371385*(n=1*te(n))-.4985314*(a=1.08883*te(a))),re(-.969266*i+1.8760108*n+.041556*a),re(.0556434*i-.2040259*n+1.0572252*a))}function $t(t,e,r){return t>0?new Yt(Math.atan2(r,e)*It,Math.sqrt(e*e+r*r),t):new Yt(NaN,NaN,t)}function te(t){return t>.206893034?t*t*t:(t-4/29)/7.787037}function ee(t){return t>.008856?Math.pow(t,1/3):7.787037*t+4/29}function re(t){return Math.round(255*(t<=.00304?12.92*t:1.055*Math.pow(t,1/2.4)-.055))}function ne(t,e,r){return this instanceof ne?(this.r=~~t,this.g=~~e,void(this.b=~~r)):arguments.length<2?t instanceof ne?new ne(t.r,t.g,t.b):le(""+t,ne,Gt):new ne(t,e,r)}function ie(t){return new ne(t>>16,t>>8&255,255&t)}function ae(t){return ie(t)+""}Kt.brighter=function(t){return new Zt(Math.min(100,this.l+Jt*(arguments.length?t:1)),this.a,this.b)},Kt.darker=function(t){return new Zt(Math.max(0,this.l-Jt*(arguments.length?t:1)),this.a,this.b)},Kt.rgb=function(){return Qt(this.l,this.a,this.b)},t.rgb=ne;var oe=ne.prototype=new Vt;function se(t){return t<16?"0"+Math.max(0,t).toString(16):Math.min(255,t).toString(16)}function le(t,e,r){var n,i,a,o=0,s=0,l=0;if(n=/([a-z]+)\((.*)\)/.exec(t=t.toLowerCase()))switch(i=n[2].split(","),n[1]){case"hsl":return r(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return e(he(i[0]),he(i[1]),he(i[2]))}return(a=pe.get(t))?e(a.r,a.g,a.b):(null==t||"#"!==t.charAt(0)||isNaN(a=parseInt(t.slice(1),16))||(4===t.length?(o=(3840&a)>>4,o|=o>>4,s=240&a,s|=s>>4,l=15&a,l|=l<<4):7===t.length&&(o=(16711680&a)>>16,s=(65280&a)>>8,l=255&a)),e(o,s,l))}function ce(t,e,r){var n,i,a=Math.min(t/=255,e/=255,r/=255),o=Math.max(t,e,r),s=o-a,l=(o+a)/2;return s?(i=l<.5?s/(o+a):s/(2-o-a),n=t==o?(e-r)/s+(e0&&l<1?0:n),new qt(n,i,l)}function ue(t,e,r){var n=ee((.4124564*(t=fe(t))+.3575761*(e=fe(e))+.1804375*(r=fe(r)))/.95047),i=ee((.2126729*t+.7151522*e+.072175*r)/1);return Zt(116*i-16,500*(n-i),200*(i-ee((.0193339*t+.119192*e+.9503041*r)/1.08883)))}function fe(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function he(t){var e=parseFloat(t);return"%"===t.charAt(t.length-1)?Math.round(2.55*e):e}oe.brighter=function(t){t=Math.pow(.7,arguments.length?t:1);var e=this.r,r=this.g,n=this.b,i=30;return e||r||n?(e&&e=200&&e<300||304===e){try{t=i.call(o,c)}catch(t){return void s.error.call(o,t)}s.load.call(o,t)}else s.error.call(o,c)}return this.XDomainRequest&&!("withCredentials"in c)&&/^(http(s)?:)?\/\//.test(e)&&(c=new XDomainRequest),"onload"in c?c.onload=c.onerror=f:c.onreadystatechange=function(){c.readyState>3&&f()},c.onprogress=function(e){var r=t.event;t.event=e;try{s.progress.call(o,c)}finally{t.event=r}},o.header=function(t,e){return t=(t+"").toLowerCase(),arguments.length<2?l[t]:(null==e?delete l[t]:l[t]=e+"",o)},o.mimeType=function(t){return arguments.length?(r=null==t?null:t+"",o):r},o.responseType=function(t){return arguments.length?(u=t,o):u},o.response=function(t){return i=t,o},["get","post"].forEach((function(t){o[t]=function(){return o.send.apply(o,[t].concat(n(arguments)))}})),o.send=function(t,n,i){if(2===arguments.length&&"function"==typeof n&&(i=n,n=null),c.open(t,e,!0),null==r||"accept"in l||(l.accept=r+",*/*"),c.setRequestHeader)for(var a in l)c.setRequestHeader(a,l[a]);return null!=r&&c.overrideMimeType&&c.overrideMimeType(r),null!=u&&(c.responseType=u),null!=i&&o.on("error",i).on("load",(function(t){i(null,t)})),s.beforesend.call(o,c),c.send(null==n?null:n),o},o.abort=function(){return c.abort(),o},t.rebind(o,s,"on"),null==a?o:o.get(function(t){return 1===t.length?function(e,r){t(null==e?r:null)}:t}(a))}pe.forEach((function(t,e){pe.set(t,ie(e))})),t.functor=de,t.xhr=ge(L),t.dsv=function(t,e){var r=new RegExp('["'+t+"\n]"),n=t.charCodeAt(0);function i(t,r,n){arguments.length<3&&(n=r,r=null);var i=me(t,e,null==r?a:o(r),n);return i.row=function(t){return arguments.length?i.response(null==(r=t)?a:o(t)):r},i}function a(t){return i.parse(t.responseText)}function o(t){return function(e){return i.parse(e.responseText,t)}}function s(e){return e.map(l).join(t)}function l(t){return r.test(t)?'"'+t.replace(/\"/g,'""')+'"':t}return i.parse=function(t,e){var r;return i.parseRows(t,(function(t,n){if(r)return r(t,n-1);var i=new Function("d","return {"+t.map((function(t,e){return JSON.stringify(t)+": d["+e+"]"})).join(",")+"}");r=e?function(t,r){return e(i(t),r)}:i}))},i.parseRows=function(t,e){var r,i,a={},o={},s=[],l=t.length,c=0,u=0;function f(){if(c>=l)return o;if(i)return i=!1,a;var e=c;if(34===t.charCodeAt(e)){for(var r=e;r++24?(isFinite(e)&&(clearTimeout(be),be=setTimeout(Te,e)),xe=0):(xe=1,_e(Te))}function ke(){for(var t=Date.now(),e=ve;e;)t>=e.t&&e.c(t-e.t)&&(e.c=null),e=e.n;return t}function Me(){for(var t,e=ve,r=1/0;e;)e.c?(e.t8?function(t){return t/r}:function(t){return t*r},symbol:t}}));function Ee(e){var r=e.decimal,n=e.thousands,i=e.grouping,a=e.currency,o=i&&n?function(t,e){for(var r=t.length,a=[],o=0,s=i[0],l=0;r>0&&s>0&&(l+s+1>e&&(s=Math.max(1,e-l)),a.push(t.substring(r-=s,r+s)),!((l+=s+1)>e));)s=i[o=(o+1)%i.length];return a.reverse().join(n)}:L;return function(e){var n=Ce.exec(e),i=n[1]||" ",s=n[2]||">",l=n[3]||"-",c=n[4]||"",u=n[5],f=+n[6],h=n[7],p=n[8],d=n[9],g=1,m="",v="",y=!1,x=!0;switch(p&&(p=+p.substring(1)),(u||"0"===i&&"="===s)&&(u=i="0",s="="),d){case"n":h=!0,d="g";break;case"%":g=100,v="%",d="f";break;case"p":g=100,v="%",d="r";break;case"b":case"o":case"x":case"X":"#"===c&&(m="0"+d.toLowerCase());case"c":x=!1;case"d":y=!0,p=0;break;case"s":g=-1,d="r"}"$"===c&&(m=a[0],v=a[1]),"r"!=d||p||(d="g"),null!=p&&("g"==d?p=Math.max(1,Math.min(21,p)):"e"!=d&&"f"!=d||(p=Math.max(0,Math.min(20,p)))),d=Le.get(d)||Ie;var b=u&&h;return function(e){var n=v;if(y&&e%1)return"";var a=e<0||0===e&&1/e<0?(e=-e,"-"):"-"===l?"":l;if(g<0){var c=t.formatPrefix(e,p);e=c.scale(e),n=c.symbol+v}else e*=g;var _,w,T=(e=d(e,p)).lastIndexOf(".");if(T<0){var k=x?e.lastIndexOf("e"):-1;k<0?(_=e,w=""):(_=e.substring(0,k),w=e.substring(k))}else _=e.substring(0,T),w=r+e.substring(T+1);!u&&h&&(_=o(_,1/0));var M=m.length+_.length+w.length+(b?0:a.length),A=M"===s?A+a+e:"^"===s?A.substring(0,M>>=1)+a+e+A.substring(M):a+(b?e:A+e))+n}}}t.formatPrefix=function(e,r){var n=0;return(e=+e)&&(e<0&&(e*=-1),r&&(e=t.round(e,Ae(e,r))),n=1+Math.floor(1e-12+Math.log(e)/Math.LN10),n=Math.max(-24,Math.min(24,3*Math.floor((n-1)/3)))),Se[8+n/3]};var Ce=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,Le=t.map({b:function(t){return t.toString(2)},c:function(t){return String.fromCharCode(t)},o:function(t){return t.toString(8)},x:function(t){return t.toString(16)},X:function(t){return t.toString(16).toUpperCase()},g:function(t,e){return t.toPrecision(e)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},r:function(e,r){return(e=t.round(e,Ae(e,r))).toFixed(Math.max(0,Math.min(20,Ae(e*(1+1e-15),r))))}});function Ie(t){return t+""}var Pe=t.time={},ze=Date;function Oe(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}Oe.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){De.setUTCDate.apply(this._,arguments)},setDay:function(){De.setUTCDay.apply(this._,arguments)},setFullYear:function(){De.setUTCFullYear.apply(this._,arguments)},setHours:function(){De.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){De.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){De.setUTCMinutes.apply(this._,arguments)},setMonth:function(){De.setUTCMonth.apply(this._,arguments)},setSeconds:function(){De.setUTCSeconds.apply(this._,arguments)},setTime:function(){De.setTime.apply(this._,arguments)}};var De=Date.prototype;function Re(t,e,r){function n(e){var r=t(e),n=a(r,1);return e-r1)for(;o=c)return-1;if(37===(i=e.charCodeAt(s++))){if(o=e.charAt(s++),!(a=w[o in Ne?e.charAt(s++):o])||(n=a(t,r,n))<0)return-1}else if(i!=r.charCodeAt(n++))return-1}return n}u.utc=function(t){var e=u(t);function r(t){try{var r=new(ze=Oe);return r._=t,e(r)}finally{ze=Date}}return r.parse=function(t){try{ze=Oe;var r=e.parse(t);return r&&r._}finally{ze=Date}},r.toString=e.toString,r},u.multi=u.utc.multi=or;var h=t.map(),p=qe(o),d=He(o),g=qe(s),m=He(s),v=qe(l),y=He(l),x=qe(c),b=He(c);a.forEach((function(t,e){h.set(t.toLowerCase(),e)}));var _={a:function(t){return s[t.getDay()]},A:function(t){return o[t.getDay()]},b:function(t){return c[t.getMonth()]},B:function(t){return l[t.getMonth()]},c:u(r),d:function(t,e){return Ve(t.getDate(),e,2)},e:function(t,e){return Ve(t.getDate(),e,2)},H:function(t,e){return Ve(t.getHours(),e,2)},I:function(t,e){return Ve(t.getHours()%12||12,e,2)},j:function(t,e){return Ve(1+Pe.dayOfYear(t),e,3)},L:function(t,e){return Ve(t.getMilliseconds(),e,3)},m:function(t,e){return Ve(t.getMonth()+1,e,2)},M:function(t,e){return Ve(t.getMinutes(),e,2)},p:function(t){return a[+(t.getHours()>=12)]},S:function(t,e){return Ve(t.getSeconds(),e,2)},U:function(t,e){return Ve(Pe.sundayOfYear(t),e,2)},w:function(t){return t.getDay()},W:function(t,e){return Ve(Pe.mondayOfYear(t),e,2)},x:u(n),X:u(i),y:function(t,e){return Ve(t.getFullYear()%100,e,2)},Y:function(t,e){return Ve(t.getFullYear()%1e4,e,4)},Z:ir,"%":function(){return"%"}},w={a:function(t,e,r){g.lastIndex=0;var n=g.exec(e.slice(r));return n?(t.w=m.get(n[0].toLowerCase()),r+n[0].length):-1},A:function(t,e,r){p.lastIndex=0;var n=p.exec(e.slice(r));return n?(t.w=d.get(n[0].toLowerCase()),r+n[0].length):-1},b:function(t,e,r){x.lastIndex=0;var n=x.exec(e.slice(r));return n?(t.m=b.get(n[0].toLowerCase()),r+n[0].length):-1},B:function(t,e,r){v.lastIndex=0;var n=v.exec(e.slice(r));return n?(t.m=y.get(n[0].toLowerCase()),r+n[0].length):-1},c:function(t,e,r){return f(t,_.c.toString(),e,r)},d:Qe,e:Qe,H:tr,I:tr,j:$e,L:nr,m:Ke,M:er,p:function(t,e,r){var n=h.get(e.slice(r,r+=2).toLowerCase());return null==n?-1:(t.p=n,r)},S:rr,U:Ye,w:Ge,W:We,x:function(t,e,r){return f(t,_.x.toString(),e,r)},X:function(t,e,r){return f(t,_.X.toString(),e,r)},y:Ze,Y:Xe,Z:Je,"%":ar};return u}Pe.year=Re((function(t){return(t=Pe.day(t)).setMonth(0,1),t}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t){return t.getFullYear()})),Pe.years=Pe.year.range,Pe.years.utc=Pe.year.utc.range,Pe.day=Re((function(t){var e=new ze(2e3,0);return e.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),e}),(function(t,e){t.setDate(t.getDate()+e)}),(function(t){return t.getDate()-1})),Pe.days=Pe.day.range,Pe.days.utc=Pe.day.utc.range,Pe.dayOfYear=function(t){var e=Pe.year(t);return Math.floor((t-e-6e4*(t.getTimezoneOffset()-e.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach((function(t,e){e=7-e;var r=Pe[t]=Re((function(t){return(t=Pe.day(t)).setDate(t.getDate()-(t.getDay()+e)%7),t}),(function(t,e){t.setDate(t.getDate()+7*Math.floor(e))}),(function(t){var r=Pe.year(t).getDay();return Math.floor((Pe.dayOfYear(t)+(r+e)%7)/7)-(r!==e)}));Pe[t+"s"]=r.range,Pe[t+"s"].utc=r.utc.range,Pe[t+"OfYear"]=function(t){var r=Pe.year(t).getDay();return Math.floor((Pe.dayOfYear(t)+(r+e)%7)/7)}})),Pe.week=Pe.sunday,Pe.weeks=Pe.sunday.range,Pe.weeks.utc=Pe.sunday.utc.range,Pe.weekOfYear=Pe.sundayOfYear;var Ne={"-":"",_:" ",0:"0"},je=/^\s*\d+/,Ue=/^%/;function Ve(t,e,r){var n=t<0?"-":"",i=(n?-t:t)+"",a=i.length;return n+(a68?1900:2e3),r+i[0].length):-1}function Je(t,e,r){return/^[+-]\d{4}$/.test(e=e.slice(r,r+5))?(t.Z=-e,r+5):-1}function Ke(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function Qe(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function $e(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+3));return n?(t.j=+n[0],r+n[0].length):-1}function tr(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function er(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function rr(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function nr(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function ir(t){var e=t.getTimezoneOffset(),r=e>0?"-":"+",n=y(e)/60|0,i=y(e)%60;return r+Ve(n,"0",2)+Ve(i,"0",2)}function ar(t,e,r){Ue.lastIndex=0;var n=Ue.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function or(t){for(var e=t.length,r=-1;++r=0?1:-1,s=o*a,l=Math.cos(e),c=Math.sin(e),u=i*c,f=n*l+u*Math.cos(s),h=u*o*Math.sin(s);Er.add(Math.atan2(h,f)),r=t,n=l,i=c}Cr.point=function(o,s){Cr.point=a,r=(t=o)*Lt,n=Math.cos(s=(e=s)*Lt/2+At/4),i=Math.sin(s)},Cr.lineEnd=function(){a(t,e)}}function Ir(t){var e=t[0],r=t[1],n=Math.cos(r);return[n*Math.cos(e),n*Math.sin(e),Math.sin(r)]}function Pr(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function zr(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function Or(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function Dr(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function Rr(t){var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}function Fr(t){return[Math.atan2(t[1],t[0]),Dt(t[2])]}function Br(t,e){return y(t[0]-e[0])kt?i=90:c<-kt&&(r=-90),f[0]=e,f[1]=n}};function p(t,a){u.push(f=[e=t,n=t]),ai&&(i=a)}function d(t,o){var s=Ir([t*Lt,o*Lt]);if(l){var c=zr(l,s),u=zr([c[1],-c[0],0],c);Rr(u),u=Fr(u);var f=t-a,h=f>0?1:-1,d=u[0]*It*h,g=y(f)>180;if(g^(h*ai&&(i=m);else if(g^(h*a<(d=(d+360)%360-180)&&di&&(i=o);g?t_(e,n)&&(n=t):_(t,n)>_(e,n)&&(e=t):n>=e?(tn&&(n=t)):t>a?_(e,t)>_(e,n)&&(n=t):_(t,n)>_(e,n)&&(e=t)}else p(t,o);l=s,a=t}function g(){h.point=d}function m(){f[0]=e,f[1]=n,h.point=p,l=null}function v(t,e){if(l){var r=t-a;c+=y(r)>180?r+(r>0?360:-360):r}else o=t,s=e;Cr.point(t,e),d(t,e)}function x(){Cr.lineStart()}function b(){v(o,s),Cr.lineEnd(),y(c)>kt&&(e=-(n=180)),f[0]=e,f[1]=n,l=null}function _(t,e){return(e-=t)<0?e+360:e}function w(t,e){return t[0]-e[0]}function T(t,e){return e[0]<=e[1]?e[0]<=t&&t<=e[1]:t_(g[0],g[1])&&(g[1]=p[1]),_(p[0],g[1])>_(g[0],g[1])&&(g[0]=p[0])):s.push(g=p);for(var l,c,p,d=-1/0,g=(o=0,s[c=s.length-1]);o<=c;g=p,++o)p=s[o],(l=_(g[1],p[0]))>d&&(d=l,e=p[0],n=g[1])}return u=f=null,e===1/0||r===1/0?[[NaN,NaN],[NaN,NaN]]:[[e,r],[n,i]]}}(),t.geo.centroid=function(e){vr=yr=xr=br=_r=wr=Tr=kr=Mr=Ar=Sr=0,t.geo.stream(e,Nr);var r=Mr,n=Ar,i=Sr,a=r*r+n*n+i*i;return a=0;--s)i.point((f=u[s])[0],f[1]);else n(p.x,p.p.x,-1,i);p=p.p}u=(p=p.o).z,d=!d}while(!p.v);i.lineEnd()}}}function Xr(t){if(e=t.length){for(var e,r,n=0,i=t[0];++n=0?1:-1,T=w*_,k=T>At,M=d*x;if(Er.add(Math.atan2(M*w*Math.sin(T),g*b+M*Math.cos(T))),a+=k?_+w*St:_,k^h>=r^v>=r){var A=zr(Ir(f),Ir(t));Rr(A);var S=zr(i,A);Rr(S);var E=(k^_>=0?-1:1)*Dt(S[2]);(n>E||n===E&&(A[0]||A[1]))&&(o+=k^_>=0?1:-1)}if(!m++)break;h=v,d=x,g=b,f=t}}return(a<-kt||a0){for(x||(o.polygonStart(),x=!0),o.lineStart();++a1&&2&e&&r.push(r.pop().concat(r.shift())),s.push(r.filter(Kr))}return u}}function Kr(t){return t.length>1}function Qr(){var t,e=[];return{lineStart:function(){e.push(t=[])},point:function(e,r){t.push([e,r])},lineEnd:O,buffer:function(){var r=e;return e=[],t=null,r},rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))}}}function $r(t,e){return((t=t.x)[0]<0?t[1]-Ct-kt:Ct-t[1])-((e=e.x)[0]<0?e[1]-Ct-kt:Ct-e[1])}var tn=Jr(Yr,(function(t){var e,r=NaN,n=NaN,i=NaN;return{lineStart:function(){t.lineStart(),e=1},point:function(a,o){var s=a>0?At:-At,l=y(a-r);y(l-At)0?Ct:-Ct),t.point(i,n),t.lineEnd(),t.lineStart(),t.point(s,n),t.point(a,n),e=0):i!==s&&l>=At&&(y(r-i)kt?Math.atan((Math.sin(e)*(a=Math.cos(n))*Math.sin(r)-Math.sin(n)*(i=Math.cos(e))*Math.sin(t))/(i*a*o)):(e+n)/2}(r,n,a,o),t.point(i,n),t.lineEnd(),t.lineStart(),t.point(s,n),e=0),t.point(r=a,n=o),i=s},lineEnd:function(){t.lineEnd(),r=n=NaN},clean:function(){return 2-e}}}),(function(t,e,r,n){var i;if(null==t)i=r*Ct,n.point(-At,i),n.point(0,i),n.point(At,i),n.point(At,0),n.point(At,-i),n.point(0,-i),n.point(-At,-i),n.point(-At,0),n.point(-At,i);else if(y(t[0]-e[0])>kt){var a=t[0]0,n=y(e)>kt;return Jr(i,(function(t){var e,s,l,c,u;return{lineStart:function(){c=l=!1,u=1},point:function(f,h){var p,d=[f,h],g=i(f,h),m=r?g?0:o(f,h):g?o(f+(f<0?At:-At),h):0;if(!e&&(c=l=g)&&t.lineStart(),g!==l&&(p=a(e,d),(Br(e,p)||Br(d,p))&&(d[0]+=kt,d[1]+=kt,g=i(d[0],d[1]))),g!==l)u=0,g?(t.lineStart(),p=a(d,e),t.point(p[0],p[1])):(p=a(e,d),t.point(p[0],p[1]),t.lineEnd()),e=p;else if(n&&e&&r^g){var v;m&s||!(v=a(d,e,!0))||(u=0,r?(t.lineStart(),t.point(v[0][0],v[0][1]),t.point(v[1][0],v[1][1]),t.lineEnd()):(t.point(v[1][0],v[1][1]),t.lineEnd(),t.lineStart(),t.point(v[0][0],v[0][1])))}!g||e&&Br(e,d)||t.point(d[0],d[1]),e=d,l=g,s=m},lineEnd:function(){l&&t.lineEnd(),e=null},clean:function(){return u|(c&&l)<<1}}}),Bn(t,6*Lt),r?[0,-t]:[-At,t-At]);function i(t,r){return Math.cos(t)*Math.cos(r)>e}function a(t,r,n){var i=[1,0,0],a=zr(Ir(t),Ir(r)),o=Pr(a,a),s=a[0],l=o-s*s;if(!l)return!n&&t;var c=e*o/l,u=-e*s/l,f=zr(i,a),h=Dr(i,c);Or(h,Dr(a,u));var p=f,d=Pr(h,p),g=Pr(p,p),m=d*d-g*(Pr(h,h)-1);if(!(m<0)){var v=Math.sqrt(m),x=Dr(p,(-d-v)/g);if(Or(x,h),x=Fr(x),!n)return x;var b,_=t[0],w=r[0],T=t[1],k=r[1];w<_&&(b=_,_=w,w=b);var M=w-_,A=y(M-At)0^x[1]<(y(x[0]-_)At^(_<=x[0]&&x[0]<=w)){var S=Dr(p,(-d+v)/g);return Or(S,h),[x,Fr(S)]}}}function o(e,n){var i=r?t:At-t,a=0;return e<-i?a|=1:e>i&&(a|=2),n<-i?a|=4:n>i&&(a|=8),a}}function rn(t,e,r,n){return function(i){var a,o=i.a,s=i.b,l=o.x,c=o.y,u=0,f=1,h=s.x-l,p=s.y-c;if(a=t-l,h||!(a>0)){if(a/=h,h<0){if(a0){if(a>f)return;a>u&&(u=a)}if(a=r-l,h||!(a<0)){if(a/=h,h<0){if(a>f)return;a>u&&(u=a)}else if(h>0){if(a0)){if(a/=p,p<0){if(a0){if(a>f)return;a>u&&(u=a)}if(a=n-c,p||!(a<0)){if(a/=p,p<0){if(a>f)return;a>u&&(u=a)}else if(p>0){if(a0&&(i.a={x:l+u*h,y:c+u*p}),f<1&&(i.b={x:l+f*h,y:c+f*p}),i}}}}}}function nn(e,r,n,i){return function(l){var c,u,f,h,p,d,g,m,v,y,x,b=l,_=Qr(),w=rn(e,r,n,i),T={point:A,lineStart:function(){T.point=S,u&&u.push(f=[]);y=!0,v=!1,g=m=NaN},lineEnd:function(){c&&(S(h,p),d&&v&&_.rejoin(),c.push(_.buffer()));T.point=A,v&&l.lineEnd()},polygonStart:function(){l=_,c=[],u=[],x=!0},polygonEnd:function(){l=b,c=t.merge(c);var r=function(t){for(var e=0,r=u.length,n=t[1],i=0;in&&zt(c,a,t)>0&&++e:a[1]<=n&&zt(c,a,t)<0&&--e,c=a;return 0!==e}([e,i]),n=x&&r,a=c.length;(n||a)&&(l.polygonStart(),n&&(l.lineStart(),k(null,null,1,l),l.lineEnd()),a&&Wr(c,o,r,k,l),l.polygonEnd()),c=u=f=null}};function k(t,o,l,c){var u=0,f=0;if(null==t||(u=a(t,l))!==(f=a(o,l))||s(t,o)<0^l>0)do{c.point(0===u||3===u?e:n,u>1?i:r)}while((u=(u+l+4)%4)!==f);else c.point(o[0],o[1])}function M(t,a){return e<=t&&t<=n&&r<=a&&a<=i}function A(t,e){M(t,e)&&l.point(t,e)}function S(t,e){var r=M(t=Math.max(-1e9,Math.min(1e9,t)),e=Math.max(-1e9,Math.min(1e9,e)));if(u&&f.push([t,e]),y)h=t,p=e,d=r,y=!1,r&&(l.lineStart(),l.point(t,e));else if(r&&v)l.point(t,e);else{var n={a:{x:g,y:m},b:{x:t,y:e}};w(n)?(v||(l.lineStart(),l.point(n.a.x,n.a.y)),l.point(n.b.x,n.b.y),r||l.lineEnd(),x=!1):r&&(l.lineStart(),l.point(t,e),x=!1)}g=t,m=e,v=r}return T};function a(t,i){return y(t[0]-e)0?0:3:y(t[0]-n)0?2:1:y(t[1]-r)0?1:0:i>0?3:2}function o(t,e){return s(t.x,e.x)}function s(t,e){var r=a(t,1),n=a(e,1);return r!==n?r-n:0===r?e[1]-t[1]:1===r?t[0]-e[0]:2===r?t[1]-e[1]:e[0]-t[0]}}function an(t){var e=0,r=At/3,n=Ln(t),i=n(e,r);return i.parallels=function(t){return arguments.length?n(e=t[0]*At/180,r=t[1]*At/180):[e/At*180,r/At*180]},i}function on(t,e){var r=Math.sin(t),n=(r+Math.sin(e))/2,i=1+r*(2*n-r),a=Math.sqrt(i)/n;function o(t,e){var r=Math.sqrt(i-2*n*Math.sin(e))/n;return[r*Math.sin(t*=n),a-r*Math.cos(t)]}return o.invert=function(t,e){var r=a-e;return[Math.atan2(t,r)/n,Dt((i-(t*t+r*r)*n*n)/(2*n))]},o}t.geo.clipExtent=function(){var t,e,r,n,i,a,o={stream:function(t){return i&&(i.valid=!1),(i=a(t)).valid=!0,i},extent:function(s){return arguments.length?(a=nn(t=+s[0][0],e=+s[0][1],r=+s[1][0],n=+s[1][1]),i&&(i.valid=!1,i=null),o):[[t,e],[r,n]]}};return o.extent([[0,0],[960,500]])},(t.geo.conicEqualArea=function(){return an(on)}).raw=on,t.geo.albers=function(){return t.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},t.geo.albersUsa=function(){var e,r,n,i,a=t.geo.albers(),o=t.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),s=t.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(t,r){e=[t,r]}};function c(t){var a=t[0],o=t[1];return e=null,r(a,o),e||(n(a,o),e)||i(a,o),e}return c.invert=function(t){var e=a.scale(),r=a.translate(),n=(t[0]-r[0])/e,i=(t[1]-r[1])/e;return(i>=.12&&i<.234&&n>=-.425&&n<-.214?o:i>=.166&&i<.234&&n>=-.214&&n<-.115?s:a).invert(t)},c.stream=function(t){var e=a.stream(t),r=o.stream(t),n=s.stream(t);return{point:function(t,i){e.point(t,i),r.point(t,i),n.point(t,i)},sphere:function(){e.sphere(),r.sphere(),n.sphere()},lineStart:function(){e.lineStart(),r.lineStart(),n.lineStart()},lineEnd:function(){e.lineEnd(),r.lineEnd(),n.lineEnd()},polygonStart:function(){e.polygonStart(),r.polygonStart(),n.polygonStart()},polygonEnd:function(){e.polygonEnd(),r.polygonEnd(),n.polygonEnd()}}},c.precision=function(t){return arguments.length?(a.precision(t),o.precision(t),s.precision(t),c):a.precision()},c.scale=function(t){return arguments.length?(a.scale(t),o.scale(.35*t),s.scale(t),c.translate(a.translate())):a.scale()},c.translate=function(t){if(!arguments.length)return a.translate();var e=a.scale(),u=+t[0],f=+t[1];return r=a.translate(t).clipExtent([[u-.455*e,f-.238*e],[u+.455*e,f+.238*e]]).stream(l).point,n=o.translate([u-.307*e,f+.201*e]).clipExtent([[u-.425*e+kt,f+.12*e+kt],[u-.214*e-kt,f+.234*e-kt]]).stream(l).point,i=s.translate([u-.205*e,f+.212*e]).clipExtent([[u-.214*e+kt,f+.166*e+kt],[u-.115*e-kt,f+.234*e-kt]]).stream(l).point,c},c.scale(1070)};var sn,ln,cn,un,fn,hn,pn={point:O,lineStart:O,lineEnd:O,polygonStart:function(){ln=0,pn.lineStart=dn},polygonEnd:function(){pn.lineStart=pn.lineEnd=pn.point=O,sn+=y(ln/2)}};function dn(){var t,e,r,n;function i(t,e){ln+=n*t-r*e,r=t,n=e}pn.point=function(a,o){pn.point=i,t=r=a,e=n=o},pn.lineEnd=function(){i(t,e)}}var gn={point:function(t,e){tfn&&(fn=t);ehn&&(hn=e)},lineStart:O,lineEnd:O,polygonStart:O,polygonEnd:O};function mn(){var t=vn(4.5),e=[],r={point:n,lineStart:function(){r.point=i},lineEnd:o,polygonStart:function(){r.lineEnd=s},polygonEnd:function(){r.lineEnd=o,r.point=n},pointRadius:function(e){return t=vn(e),r},result:function(){if(e.length){var t=e.join("");return e=[],t}}};function n(r,n){e.push("M",r,",",n,t)}function i(t,n){e.push("M",t,",",n),r.point=a}function a(t,r){e.push("L",t,",",r)}function o(){r.point=n}function s(){e.push("Z")}return r}function vn(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}var yn,xn={point:bn,lineStart:_n,lineEnd:wn,polygonStart:function(){xn.lineStart=Tn},polygonEnd:function(){xn.point=bn,xn.lineStart=_n,xn.lineEnd=wn}};function bn(t,e){xr+=t,br+=e,++_r}function _n(){var t,e;function r(r,n){var i=r-t,a=n-e,o=Math.sqrt(i*i+a*a);wr+=o*(t+r)/2,Tr+=o*(e+n)/2,kr+=o,bn(t=r,e=n)}xn.point=function(n,i){xn.point=r,bn(t=n,e=i)}}function wn(){xn.point=bn}function Tn(){var t,e,r,n;function i(t,e){var i=t-r,a=e-n,o=Math.sqrt(i*i+a*a);wr+=o*(r+t)/2,Tr+=o*(n+e)/2,kr+=o,Mr+=(o=n*t-r*e)*(r+t),Ar+=o*(n+e),Sr+=3*o,bn(r=t,n=e)}xn.point=function(a,o){xn.point=i,bn(t=r=a,e=n=o)},xn.lineEnd=function(){i(t,e)}}function kn(t){var e=4.5,r={point:n,lineStart:function(){r.point=i},lineEnd:o,polygonStart:function(){r.lineEnd=s},polygonEnd:function(){r.lineEnd=o,r.point=n},pointRadius:function(t){return e=t,r},result:O};function n(r,n){t.moveTo(r+e,n),t.arc(r,n,e,0,St)}function i(e,n){t.moveTo(e,n),r.point=a}function a(e,r){t.lineTo(e,r)}function o(){r.point=n}function s(){t.closePath()}return r}function Mn(t){var e=.5,r=Math.cos(30*Lt),n=16;function i(t){return(n?o:a)(t)}function a(e){return En(e,(function(r,n){r=t(r,n),e.point(r[0],r[1])}))}function o(e){var r,i,a,o,l,c,u,f,h,p,d,g,m={point:v,lineStart:y,lineEnd:b,polygonStart:function(){e.polygonStart(),m.lineStart=_},polygonEnd:function(){e.polygonEnd(),m.lineStart=y}};function v(r,n){r=t(r,n),e.point(r[0],r[1])}function y(){f=NaN,m.point=x,e.lineStart()}function x(r,i){var a=Ir([r,i]),o=t(r,i);s(f,h,u,p,d,g,f=o[0],h=o[1],u=r,p=a[0],d=a[1],g=a[2],n,e),e.point(f,h)}function b(){m.point=v,e.lineEnd()}function _(){y(),m.point=w,m.lineEnd=T}function w(t,e){x(r=t,e),i=f,a=h,o=p,l=d,c=g,m.point=x}function T(){s(f,h,u,p,d,g,i,a,r,o,l,c,n,e),m.lineEnd=b,b()}return m}function s(n,i,a,o,l,c,u,f,h,p,d,g,m,v){var x=u-n,b=f-i,_=x*x+b*b;if(_>4*e&&m--){var w=o+p,T=l+d,k=c+g,M=Math.sqrt(w*w+T*T+k*k),A=Math.asin(k/=M),S=y(y(k)-1)e||y((x*I+b*P)/_-.5)>.3||o*p+l*d+c*g0&&16,i):Math.sqrt(e)},i}function An(t){var e=Mn((function(e,r){return t([e*It,r*It])}));return function(t){return In(e(t))}}function Sn(t){this.stream=t}function En(t,e){return{point:e,sphere:function(){t.sphere()},lineStart:function(){t.lineStart()},lineEnd:function(){t.lineEnd()},polygonStart:function(){t.polygonStart()},polygonEnd:function(){t.polygonEnd()}}}function Cn(t){return Ln((function(){return t}))()}function Ln(e){var r,n,i,a,o,s,l=Mn((function(t,e){return[(t=r(t,e))[0]*c+a,o-t[1]*c]})),c=150,u=480,f=250,h=0,p=0,d=0,g=0,m=0,v=tn,y=L,x=null,b=null;function _(t){return[(t=i(t[0]*Lt,t[1]*Lt))[0]*c+a,o-t[1]*c]}function w(t){return(t=i.invert((t[0]-a)/c,(o-t[1])/c))&&[t[0]*It,t[1]*It]}function T(){i=Gr(n=On(d,g,m),r);var t=r(h,p);return a=u-t[0]*c,o=f+t[1]*c,k()}function k(){return s&&(s.valid=!1,s=null),_}return _.stream=function(t){return s&&(s.valid=!1),(s=In(v(n,l(y(t))))).valid=!0,s},_.clipAngle=function(t){return arguments.length?(v=null==t?(x=t,tn):en((x=+t)*Lt),k()):x},_.clipExtent=function(t){return arguments.length?(b=t,y=t?nn(t[0][0],t[0][1],t[1][0],t[1][1]):L,k()):b},_.scale=function(t){return arguments.length?(c=+t,T()):c},_.translate=function(t){return arguments.length?(u=+t[0],f=+t[1],T()):[u,f]},_.center=function(t){return arguments.length?(h=t[0]%360*Lt,p=t[1]%360*Lt,T()):[h*It,p*It]},_.rotate=function(t){return arguments.length?(d=t[0]%360*Lt,g=t[1]%360*Lt,m=t.length>2?t[2]%360*Lt:0,T()):[d*It,g*It,m*It]},t.rebind(_,l,"precision"),function(){return r=e.apply(this,arguments),_.invert=r.invert&&w,T()}}function In(t){return En(t,(function(e,r){t.point(e*Lt,r*Lt)}))}function Pn(t,e){return[t,e]}function zn(t,e){return[t>At?t-St:t<-At?t+St:t,e]}function On(t,e,r){return t?e||r?Gr(Rn(t),Fn(e,r)):Rn(t):e||r?Fn(e,r):zn}function Dn(t){return function(e,r){return[(e+=t)>At?e-St:e<-At?e+St:e,r]}}function Rn(t){var e=Dn(t);return e.invert=Dn(-t),e}function Fn(t,e){var r=Math.cos(t),n=Math.sin(t),i=Math.cos(e),a=Math.sin(e);function o(t,e){var o=Math.cos(e),s=Math.cos(t)*o,l=Math.sin(t)*o,c=Math.sin(e),u=c*r+s*n;return[Math.atan2(l*i-u*a,s*r-c*n),Dt(u*i+l*a)]}return o.invert=function(t,e){var o=Math.cos(e),s=Math.cos(t)*o,l=Math.sin(t)*o,c=Math.sin(e),u=c*i-l*a;return[Math.atan2(l*i+c*a,s*r+u*n),Dt(u*r-s*n)]},o}function Bn(t,e){var r=Math.cos(t),n=Math.sin(t);return function(i,a,o,s){var l=o*e;null!=i?(i=Nn(r,i),a=Nn(r,a),(o>0?ia)&&(i+=o*St)):(i=t+o*St,a=t-.5*l);for(var c,u=i;o>0?u>a:u2?t[2]*Lt:0),e.invert=function(e){return(e=t.invert(e[0]*Lt,e[1]*Lt))[0]*=It,e[1]*=It,e},e},zn.invert=Pn,t.geo.circle=function(){var t,e,r=[0,0],n=6;function i(){var t="function"==typeof r?r.apply(this,arguments):r,n=On(-t[0]*Lt,-t[1]*Lt,0).invert,i=[];return e(null,null,1,{point:function(t,e){i.push(t=n(t,e)),t[0]*=It,t[1]*=It}}),{type:"Polygon",coordinates:[i]}}return i.origin=function(t){return arguments.length?(r=t,i):r},i.angle=function(r){return arguments.length?(e=Bn((t=+r)*Lt,n*Lt),i):t},i.precision=function(r){return arguments.length?(e=Bn(t*Lt,(n=+r)*Lt),i):n},i.angle(90)},t.geo.distance=function(t,e){var r,n=(e[0]-t[0])*Lt,i=t[1]*Lt,a=e[1]*Lt,o=Math.sin(n),s=Math.cos(n),l=Math.sin(i),c=Math.cos(i),u=Math.sin(a),f=Math.cos(a);return Math.atan2(Math.sqrt((r=f*o)*r+(r=c*u-l*f*s)*r),l*u+c*f*s)},t.geo.graticule=function(){var e,r,n,i,a,o,s,l,c,u,f,h,p=10,d=p,g=90,m=360,v=2.5;function x(){return{type:"MultiLineString",coordinates:b()}}function b(){return t.range(Math.ceil(i/g)*g,n,g).map(f).concat(t.range(Math.ceil(l/m)*m,s,m).map(h)).concat(t.range(Math.ceil(r/p)*p,e,p).filter((function(t){return y(t%g)>kt})).map(c)).concat(t.range(Math.ceil(o/d)*d,a,d).filter((function(t){return y(t%m)>kt})).map(u))}return x.lines=function(){return b().map((function(t){return{type:"LineString",coordinates:t}}))},x.outline=function(){return{type:"Polygon",coordinates:[f(i).concat(h(s).slice(1),f(n).reverse().slice(1),h(l).reverse().slice(1))]}},x.extent=function(t){return arguments.length?x.majorExtent(t).minorExtent(t):x.minorExtent()},x.majorExtent=function(t){return arguments.length?(i=+t[0][0],n=+t[1][0],l=+t[0][1],s=+t[1][1],i>n&&(t=i,i=n,n=t),l>s&&(t=l,l=s,s=t),x.precision(v)):[[i,l],[n,s]]},x.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],o=+t[0][1],a=+t[1][1],r>e&&(t=r,r=e,e=t),o>a&&(t=o,o=a,a=t),x.precision(v)):[[r,o],[e,a]]},x.step=function(t){return arguments.length?x.majorStep(t).minorStep(t):x.minorStep()},x.majorStep=function(t){return arguments.length?(g=+t[0],m=+t[1],x):[g,m]},x.minorStep=function(t){return arguments.length?(p=+t[0],d=+t[1],x):[p,d]},x.precision=function(t){return arguments.length?(v=+t,c=jn(o,a,90),u=Un(r,e,v),f=jn(l,s,90),h=Un(i,n,v),x):v},x.majorExtent([[-180,-90+kt],[180,90-kt]]).minorExtent([[-180,-80-kt],[180,80+kt]])},t.geo.greatArc=function(){var e,r,n=Vn,i=qn;function a(){return{type:"LineString",coordinates:[e||n.apply(this,arguments),r||i.apply(this,arguments)]}}return a.distance=function(){return t.geo.distance(e||n.apply(this,arguments),r||i.apply(this,arguments))},a.source=function(t){return arguments.length?(n=t,e="function"==typeof t?null:t,a):n},a.target=function(t){return arguments.length?(i=t,r="function"==typeof t?null:t,a):i},a.precision=function(){return arguments.length?a:0},a},t.geo.interpolate=function(t,e){return r=t[0]*Lt,n=t[1]*Lt,i=e[0]*Lt,a=e[1]*Lt,o=Math.cos(n),s=Math.sin(n),l=Math.cos(a),c=Math.sin(a),u=o*Math.cos(r),f=o*Math.sin(r),h=l*Math.cos(i),p=l*Math.sin(i),d=2*Math.asin(Math.sqrt(Ft(a-n)+o*l*Ft(i-r))),g=1/Math.sin(d),(m=d?function(t){var e=Math.sin(t*=d)*g,r=Math.sin(d-t)*g,n=r*u+e*h,i=r*f+e*p,a=r*s+e*c;return[Math.atan2(i,n)*It,Math.atan2(a,Math.sqrt(n*n+i*i))*It]}:function(){return[r*It,n*It]}).distance=d,m;var r,n,i,a,o,s,l,c,u,f,h,p,d,g,m},t.geo.length=function(e){return yn=0,t.geo.stream(e,Hn),yn};var Hn={sphere:O,point:O,lineStart:function(){var t,e,r;function n(n,i){var a=Math.sin(i*=Lt),o=Math.cos(i),s=y((n*=Lt)-t),l=Math.cos(s);yn+=Math.atan2(Math.sqrt((s=o*Math.sin(s))*s+(s=r*a-e*o*l)*s),e*a+r*o*l),t=n,e=a,r=o}Hn.point=function(i,a){t=i*Lt,e=Math.sin(a*=Lt),r=Math.cos(a),Hn.point=n},Hn.lineEnd=function(){Hn.point=Hn.lineEnd=O}},lineEnd:O,polygonStart:O,polygonEnd:O};function Gn(t,e){function r(e,r){var n=Math.cos(e),i=Math.cos(r),a=t(n*i);return[a*i*Math.sin(e),a*Math.sin(r)]}return r.invert=function(t,r){var n=Math.sqrt(t*t+r*r),i=e(n),a=Math.sin(i),o=Math.cos(i);return[Math.atan2(t*a,n*o),Math.asin(n&&r*a/n)]},r}var Yn=Gn((function(t){return Math.sqrt(2/(1+t))}),(function(t){return 2*Math.asin(t/2)}));(t.geo.azimuthalEqualArea=function(){return Cn(Yn)}).raw=Yn;var Wn=Gn((function(t){var e=Math.acos(t);return e&&e/Math.sin(e)}),L);function Xn(t,e){var r=Math.cos(t),n=function(t){return Math.tan(At/4+t/2)},i=t===e?Math.sin(t):Math.log(r/Math.cos(e))/Math.log(n(e)/n(t)),a=r*Math.pow(n(t),i)/i;if(!i)return Kn;function o(t,e){a>0?e<-Ct+kt&&(e=-Ct+kt):e>Ct-kt&&(e=Ct-kt);var r=a/Math.pow(n(e),i);return[r*Math.sin(i*t),a-r*Math.cos(i*t)]}return o.invert=function(t,e){var r=a-e,n=Pt(i)*Math.sqrt(t*t+r*r);return[Math.atan2(t,r)/i,2*Math.atan(Math.pow(a/n,1/i))-Ct]},o}function Zn(t,e){var r=Math.cos(t),n=t===e?Math.sin(t):(r-Math.cos(e))/(e-t),i=r/n+t;if(y(n)1&&zt(t[r[n-2]],t[r[n-1]],t[i])<=0;)--n;r[n++]=i}return r.slice(0,n)}function ai(t,e){return t[0]-e[0]||t[1]-e[1]}(t.geo.stereographic=function(){return Cn(ti)}).raw=ti,ei.invert=function(t,e){return[-e,2*Math.atan(Math.exp(t))-Ct]},(t.geo.transverseMercator=function(){var t=Qn(ei),e=t.center,r=t.rotate;return t.center=function(t){return t?e([-t[1],t[0]]):[(t=e())[1],-t[0]]},t.rotate=function(t){return t?r([t[0],t[1],t.length>2?t[2]+90:90]):[(t=r())[0],t[1],t[2]-90]},r([0,0,90])}).raw=ei,t.geom={},t.geom.hull=function(t){var e=ri,r=ni;if(arguments.length)return n(t);function n(t){if(t.length<3)return[];var n,i=de(e),a=de(r),o=t.length,s=[],l=[];for(n=0;n=0;--n)p.push(t[s[c[n]][2]]);for(n=+f;nkt)s=s.L;else{if(!((i=a-Ti(s,o))>kt)){n>-kt?(e=s.P,r=s):i>-kt?(e=s,r=s.N):e=r=s;break}if(!s.R){e=s;break}s=s.R}var l=yi(t);if(hi.insert(e,l),e||r){if(e===r)return Ei(e),r=yi(e.site),hi.insert(l,r),l.edge=r.edge=Ii(e.site,l.site),Si(e),void Si(r);if(r){Ei(e),Ei(r);var c=e.site,u=c.x,f=c.y,h=t.x-u,p=t.y-f,d=r.site,g=d.x-u,m=d.y-f,v=2*(h*m-p*g),y=h*h+p*p,x=g*g+m*m,b={x:(m*y-p*x)/v+u,y:(h*x-g*y)/v+f};zi(r.edge,c,d,b),l.edge=Ii(c,t,null,b),r.edge=Ii(t,d,null,b),Si(e),Si(r)}else l.edge=Ii(e.site,l.site)}}function wi(t,e){var r=t.site,n=r.x,i=r.y,a=i-e;if(!a)return n;var o=t.P;if(!o)return-1/0;var s=(r=o.site).x,l=r.y,c=l-e;if(!c)return s;var u=s-n,f=1/a-1/c,h=u/c;return f?(-h+Math.sqrt(h*h-2*f*(u*u/(-2*c)-l+c/2+i-a/2)))/f+n:(n+s)/2}function Ti(t,e){var r=t.N;if(r)return wi(r,e);var n=t.site;return n.y===e?n.x:1/0}function ki(t){this.site=t,this.edges=[]}function Mi(t,e){return e.angle-t.angle}function Ai(){Ri(this),this.x=this.y=this.arc=this.site=this.cy=null}function Si(t){var e=t.P,r=t.N;if(e&&r){var n=e.site,i=t.site,a=r.site;if(n!==a){var o=i.x,s=i.y,l=n.x-o,c=n.y-s,u=a.x-o,f=2*(l*(m=a.y-s)-c*u);if(!(f>=-Mt)){var h=l*l+c*c,p=u*u+m*m,d=(m*h-c*p)/f,g=(l*p-u*h)/f,m=g+s,v=mi.pop()||new Ai;v.arc=t,v.site=i,v.x=d+o,v.y=m+Math.sqrt(d*d+g*g),v.cy=m,t.circle=v;for(var y=null,x=di._;x;)if(v.y=s)return;if(h>d){if(a){if(a.y>=c)return}else a={x:m,y:l};r={x:m,y:c}}else{if(a){if(a.y1)if(h>d){if(a){if(a.y>=c)return}else a={x:(l-i)/n,y:l};r={x:(c-i)/n,y:c}}else{if(a){if(a.y=s)return}else a={x:o,y:n*o+i};r={x:s,y:n*s+i}}else{if(a){if(a.xkt||y(i-r)>kt)&&(s.splice(o,0,new Oi(Pi(a.site,u,y(n-f)kt?{x:f,y:y(e-f)kt?{x:y(r-d)kt?{x:h,y:y(e-h)kt?{x:y(r-p)=r&&c.x<=i&&c.y>=n&&c.y<=o?[[r,o],[i,o],[i,n],[r,n]]:[]).point=t[s]})),e}function s(t){return t.map((function(t,e){return{x:Math.round(n(t,e)/kt)*kt,y:Math.round(i(t,e)/kt)*kt,i:e}}))}return o.links=function(t){return ji(s(t)).edges.filter((function(t){return t.l&&t.r})).map((function(e){return{source:t[e.l.i],target:t[e.r.i]}}))},o.triangles=function(t){var e=[];return ji(s(t)).cells.forEach((function(r,n){for(var i,a,o,s,l=r.site,c=r.edges.sort(Mi),u=-1,f=c.length,h=c[f-1].edge,p=h.l===l?h.r:h.l;++ua||f>o||h=_)<<1|e>=b,T=w+4;wa&&(i=e.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(r=r[0])===(n=n[0])?s[o]?s[o]+=n:s[++o]=n:(s[++o]=null,l.push({i:o,x:Zi(r,n)})),a=Qi.lastIndex;return ag&&(g=l.x),l.y>m&&(m=l.y),c.push(l.x),u.push(l.y);else for(f=0;fg&&(g=b),_>m&&(m=_),c.push(b),u.push(_)}var w=g-p,T=m-d;function k(t,e,r,n,i,a,o,s){if(!isNaN(r)&&!isNaN(n))if(t.leaf){var l=t.x,c=t.y;if(null!=l)if(y(l-r)+y(c-n)<.01)M(t,e,r,n,i,a,o,s);else{var u=t.point;t.x=t.y=t.point=null,M(t,u,l,c,i,a,o,s),M(t,e,r,n,i,a,o,s)}else t.x=r,t.y=n,t.point=e}else M(t,e,r,n,i,a,o,s)}function M(t,e,r,n,i,a,o,s){var l=.5*(i+o),c=.5*(a+s),u=r>=l,f=n>=c,h=f<<1|u;t.leaf=!1,u?i=l:o=l,f?a=c:s=c,k(t=t.nodes[h]||(t.nodes[h]={leaf:!0,nodes:[],point:null,x:null,y:null}),e,r,n,i,a,o,s)}w>T?m=d+w:g=p+T;var A={leaf:!0,nodes:[],point:null,x:null,y:null,add:function(t){k(A,t,+v(t,++f),+x(t,f),p,d,g,m)},visit:function(t){Gi(t,A,p,d,g,m)},find:function(t){return Yi(A,t[0],t[1],p,d,g,m)}};if(f=-1,null==e){for(;++f=0&&!(n=t.interpolators[i](e,r)););return n}function ta(t,e){var r,n=[],i=[],a=t.length,o=e.length,s=Math.min(t.length,e.length);for(r=0;r=1?1:t(e)}}function aa(t){return function(e){return 1-t(1-e)}}function oa(t){return function(e){return.5*(e<.5?t(2*e):2-t(2-2*e))}}function sa(t){return t*t}function la(t){return t*t*t}function ca(t){if(t<=0)return 0;if(t>=1)return 1;var e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)}function ua(t){return 1-Math.cos(t*Ct)}function fa(t){return Math.pow(2,10*(t-1))}function ha(t){return 1-Math.sqrt(1-t*t)}function pa(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}function da(t,e){return e-=t,function(r){return Math.round(t+e*r)}}function ga(t){var e,r,n,i=[t.a,t.b],a=[t.c,t.d],o=va(i),s=ma(i,a),l=va(((e=a)[0]+=(n=-s)*(r=i)[0],e[1]+=n*r[1],e))||0;i[0]*a[1]=0?t.slice(0,e):t,i=e>=0?t.slice(e+1):"in";return n=ra.get(n)||ea,ia((i=na.get(i)||L)(n.apply(null,r.call(arguments,1))))},t.interpolateHcl=function(e,r){e=t.hcl(e),r=t.hcl(r);var n=e.h,i=e.c,a=e.l,o=r.h-n,s=r.c-i,l=r.l-a;isNaN(s)&&(s=0,i=isNaN(i)?r.c:i);isNaN(o)?(o=0,n=isNaN(n)?r.h:n):o>180?o-=360:o<-180&&(o+=360);return function(t){return Xt(n+o*t,i+s*t,a+l*t)+""}},t.interpolateHsl=function(e,r){e=t.hsl(e),r=t.hsl(r);var n=e.h,i=e.s,a=e.l,o=r.h-n,s=r.s-i,l=r.l-a;isNaN(s)&&(s=0,i=isNaN(i)?r.s:i);isNaN(o)?(o=0,n=isNaN(n)?r.h:n):o>180?o-=360:o<-180&&(o+=360);return function(t){return Gt(n+o*t,i+s*t,a+l*t)+""}},t.interpolateLab=function(e,r){e=t.lab(e),r=t.lab(r);var n=e.l,i=e.a,a=e.b,o=r.l-n,s=r.a-i,l=r.b-a;return function(t){return Qt(n+o*t,i+s*t,a+l*t)+""}},t.interpolateRound=da,t.transform=function(e){var r=i.createElementNS(t.ns.prefix.svg,"g");return(t.transform=function(t){if(null!=t){r.setAttribute("transform",t);var e=r.transform.baseVal.consolidate()}return new ga(e?e.matrix:ya)})(e)},ga.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var ya={a:1,b:0,c:0,d:1,e:0,f:0};function xa(t){return t.length?t.pop()+",":""}function ba(e,r){var n=[],i=[];return e=t.transform(e),r=t.transform(r),function(t,e,r,n){if(t[0]!==e[0]||t[1]!==e[1]){var i=r.push("translate(",null,",",null,")");n.push({i:i-4,x:Zi(t[0],e[0])},{i:i-2,x:Zi(t[1],e[1])})}else(e[0]||e[1])&&r.push("translate("+e+")")}(e.translate,r.translate,n,i),function(t,e,r,n){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),n.push({i:r.push(xa(r)+"rotate(",null,")")-2,x:Zi(t,e)})):e&&r.push(xa(r)+"rotate("+e+")")}(e.rotate,r.rotate,n,i),function(t,e,r,n){t!==e?n.push({i:r.push(xa(r)+"skewX(",null,")")-2,x:Zi(t,e)}):e&&r.push(xa(r)+"skewX("+e+")")}(e.skew,r.skew,n,i),function(t,e,r,n){if(t[0]!==e[0]||t[1]!==e[1]){var i=r.push(xa(r)+"scale(",null,",",null,")");n.push({i:i-4,x:Zi(t[0],e[0])},{i:i-2,x:Zi(t[1],e[1])})}else 1===e[0]&&1===e[1]||r.push(xa(r)+"scale("+e+")")}(e.scale,r.scale,n,i),e=r=null,function(t){for(var e,r=-1,a=i.length;++r0?n=t:(e.c=null,e.t=NaN,e=null,l.end({type:"end",alpha:n=0})):t>0&&(l.start({type:"start",alpha:n=t}),e=we(s.tick)),s):n},s.start=function(){var t,e,r,n=v.length,l=y.length,u=c[0],d=c[1];for(t=0;t=0;)r.push(i[n])}function Oa(t,e){for(var r=[t],n=[];null!=(t=r.pop());)if(n.push(t),(a=t.children)&&(i=a.length))for(var i,a,o=-1;++o=0;)o.push(u=c[l]),u.parent=a,u.depth=a.depth+1;r&&(a.value=0),a.children=c}else r&&(a.value=+r.call(n,a,a.depth)||0),delete a.children;return Oa(i,(function(e){var n,i;t&&(n=e.children)&&n.sort(t),r&&(i=e.parent)&&(i.value+=e.value)})),s}return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(za(t,(function(t){t.children&&(t.value=0)})),Oa(t,(function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)}))),t},n},t.layout.partition=function(){var e=t.layout.hierarchy(),r=[1,1];function n(t,n){var i=e.call(this,t,n);return function t(e,r,n,i){var a=e.children;if(e.x=r,e.y=e.depth*i,e.dx=n,e.dy=i,a&&(o=a.length)){var o,s,l,c=-1;for(n=e.value?n/e.value:0;++cs&&(s=n),o.push(n)}for(r=0;ri&&(n=r,i=e);return n}function Xa(t){return t.reduce(Za,0)}function Za(t,e){return t+e[1]}function Ja(t,e){return Ka(t,Math.ceil(Math.log(e.length)/Math.LN2+1))}function Ka(t,e){for(var r=-1,n=+t[0],i=(t[1]-n)/e,a=[];++r<=e;)a[r]=i*r+n;return a}function Qa(e){return[t.min(e),t.max(e)]}function $a(t,e){return t.value-e.value}function to(t,e){var r=t._pack_next;t._pack_next=e,e._pack_prev=t,e._pack_next=r,r._pack_prev=e}function eo(t,e){t._pack_next=e,e._pack_prev=t}function ro(t,e){var r=e.x-t.x,n=e.y-t.y,i=t.r+e.r;return.999*i*i>r*r+n*n}function no(t){if((e=t.children)&&(l=e.length)){var e,r,n,i,a,o,s,l,c=1/0,u=-1/0,f=1/0,h=-1/0;if(e.forEach(io),(r=e[0]).x=-r.r,r.y=0,x(r),l>1&&((n=e[1]).x=n.r,n.y=0,x(n),l>2))for(oo(r,n,i=e[2]),x(i),to(r,i),r._pack_prev=i,to(i,n),n=r._pack_next,a=3;a0)for(o=-1;++o=f[0]&&l<=f[1]&&((s=c[t.bisect(h,l,1,d)-1]).y+=g,s.push(a[o]));return c}return a.value=function(t){return arguments.length?(r=t,a):r},a.range=function(t){return arguments.length?(n=de(t),a):n},a.bins=function(t){return arguments.length?(i="number"==typeof t?function(e){return Ka(e,t)}:de(t),a):i},a.frequency=function(t){return arguments.length?(e=!!t,a):e},a},t.layout.pack=function(){var e,r=t.layout.hierarchy().sort($a),n=0,i=[1,1];function a(t,a){var o=r.call(this,t,a),s=o[0],l=i[0],c=i[1],u=null==e?Math.sqrt:"function"==typeof e?e:function(){return e};if(s.x=s.y=0,Oa(s,(function(t){t.r=+u(t.value)})),Oa(s,no),n){var f=n*(e?1:Math.max(2*s.r/l,2*s.r/c))/2;Oa(s,(function(t){t.r+=f})),Oa(s,no),Oa(s,(function(t){t.r-=f}))}return function t(e,r,n,i){var a=e.children;if(e.x=r+=i*e.x,e.y=n+=i*e.y,e.r*=i,a)for(var o=-1,s=a.length;++op.x&&(p=t),t.depth>d.depth&&(d=t)}));var g=r(h,p)/2-h.x,m=n[0]/(p.x+r(p,h)/2+g),v=n[1]/(d.depth||1);za(u,(function(t){t.x=(t.x+g)*m,t.y=t.depth*v}))}return c}function o(t){var e=t.children,n=t.parent.children,i=t.i?n[t.i-1]:null;if(e.length){!function(t){var e,r=0,n=0,i=t.children,a=i.length;for(;--a>=0;)(e=i[a]).z+=r,e.m+=r,r+=e.s+(n+=e.c)}(t);var a=(e[0].z+e[e.length-1].z)/2;i?(t.z=i.z+r(t._,i._),t.m=t.z-a):t.z=a}else i&&(t.z=i.z+r(t._,i._));t.parent.A=function(t,e,n){if(e){for(var i,a=t,o=t,s=e,l=a.parent.children[0],c=a.m,u=o.m,f=s.m,h=l.m;s=co(s),a=lo(a),s&&a;)l=lo(l),(o=co(o)).a=t,(i=s.z+f-a.z-c+r(s._,a._))>0&&(uo(fo(s,t,n),t,i),c+=i,u+=i),f+=s.m,c+=a.m,h+=l.m,u+=o.m;s&&!co(o)&&(o.t=s,o.m+=f-u),a&&!lo(l)&&(l.t=a,l.m+=c-h,n=t)}return n}(t,i,t.parent.A||n[0])}function s(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function l(t){t.x*=n[0],t.y=t.depth*n[1]}return a.separation=function(t){return arguments.length?(r=t,a):r},a.size=function(t){return arguments.length?(i=null==(n=t)?l:null,a):i?null:n},a.nodeSize=function(t){return arguments.length?(i=null==(n=t)?null:l,a):i?n:null},Pa(a,e)},t.layout.cluster=function(){var e=t.layout.hierarchy().sort(null).value(null),r=so,n=[1,1],i=!1;function a(a,o){var s,l=e.call(this,a,o),c=l[0],u=0;Oa(c,(function(e){var n=e.children;n&&n.length?(e.x=function(t){return t.reduce((function(t,e){return t+e.x}),0)/t.length}(n),e.y=function(e){return 1+t.max(e,(function(t){return t.y}))}(n)):(e.x=s?u+=r(e,s):0,e.y=0,s=e)}));var f=function t(e){var r=e.children;return r&&r.length?t(r[0]):e}(c),h=function t(e){var r,n=e.children;return n&&(r=n.length)?t(n[r-1]):e}(c),p=f.x-r(f,h)/2,d=h.x+r(h,f)/2;return Oa(c,i?function(t){t.x=(t.x-c.x)*n[0],t.y=(c.y-t.y)*n[1]}:function(t){t.x=(t.x-p)/(d-p)*n[0],t.y=(1-(c.y?t.y/c.y:1))*n[1]}),l}return a.separation=function(t){return arguments.length?(r=t,a):r},a.size=function(t){return arguments.length?(i=null==(n=t),a):i?null:n},a.nodeSize=function(t){return arguments.length?(i=null!=(n=t),a):i?n:null},Pa(a,e)},t.layout.treemap=function(){var e,r=t.layout.hierarchy(),n=Math.round,i=[1,1],a=null,o=ho,s=!1,l="squarify",c=.5*(1+Math.sqrt(5));function u(t,e){for(var r,n,i=-1,a=t.length;++i0;)s.push(r=c[i-1]),s.area+=r.area,"squarify"!==l||(n=p(s,g))<=h?(c.pop(),h=n):(s.area-=s.pop().area,d(s,g,a,!1),g=Math.min(a.dx,a.dy),s.length=s.area=0,h=1/0);s.length&&(d(s,g,a,!0),s.length=s.area=0),e.forEach(f)}}function h(t){var e=t.children;if(e&&e.length){var r,n=o(t),i=e.slice(),a=[];for(u(i,n.dx*n.dy/t.value),a.area=0;r=i.pop();)a.push(r),a.area+=r.area,null!=r.z&&(d(a,r.z?n.dx:n.dy,n,!i.length),a.length=a.area=0);e.forEach(h)}}function p(t,e){for(var r,n=t.area,i=0,a=1/0,o=-1,s=t.length;++oi&&(i=r));return e*=e,(n*=n)?Math.max(e*i*c/n,n/(e*a*c)):1/0}function d(t,e,r,i){var a,o=-1,s=t.length,l=r.x,c=r.y,u=e?n(t.area/e):0;if(e==r.dx){for((i||u>r.dy)&&(u=r.dy);++or.dx)&&(u=r.dx);++o1);return t+e*r*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var e=t.random.normal.apply(t,arguments);return function(){return Math.exp(e())}},bates:function(e){var r=t.random.irwinHall(e);return function(){return r()/e}},irwinHall:function(t){return function(){for(var e=0,r=0;r2?_o:vo,s=i?wa:_a;return a=t(e,r,s,n),o=t(r,e,s,$i),l}function l(t){return a(t)}return l.invert=function(t){return o(t)},l.domain=function(t){return arguments.length?(e=t.map(Number),s()):e},l.range=function(t){return arguments.length?(r=t,s()):r},l.rangeRound=function(t){return l.range(t).interpolate(da)},l.clamp=function(t){return arguments.length?(i=t,s()):i},l.interpolate=function(t){return arguments.length?(n=t,s()):n},l.ticks=function(t){return Mo(e,t)},l.tickFormat=function(t,r){return Ao(e,t,r)},l.nice=function(t){return To(e,t),s()},l.copy=function(){return t(e,r,n,i)},s()}([0,1],[0,1],$i,!1)};var So={s:1,g:1,p:1,r:1,e:1};function Eo(t){return-Math.floor(Math.log(t)/Math.LN10+.01)}t.scale.log=function(){return function e(r,n,i,a){function o(t){return(i?Math.log(t<0?0:t):-Math.log(t>0?0:-t))/Math.log(n)}function s(t){return i?Math.pow(n,t):-Math.pow(n,-t)}function l(t){return r(o(t))}return l.invert=function(t){return s(r.invert(t))},l.domain=function(t){return arguments.length?(i=t[0]>=0,r.domain((a=t.map(Number)).map(o)),l):a},l.base=function(t){return arguments.length?(n=+t,r.domain(a.map(o)),l):n},l.nice=function(){var t=yo(a.map(o),i?Math:Lo);return r.domain(t),a=t.map(s),l},l.ticks=function(){var t=go(a),e=[],r=t[0],l=t[1],c=Math.floor(o(r)),u=Math.ceil(o(l)),f=n%1?2:n;if(isFinite(u-c)){if(i){for(;c0;h--)e.push(s(c)*h);for(c=0;e[c]l;u--);e=e.slice(c,u)}return e},l.tickFormat=function(e,r){if(!arguments.length)return Co;arguments.length<2?r=Co:"function"!=typeof r&&(r=t.format(r));var i=Math.max(1,n*e/l.ticks().length);return function(t){var e=t/s(Math.round(o(t)));return e*n0?i[t-1]:r[0],tf?0:1;if(c=Et)return l(c,p)+(s?l(s,1-p):"")+"Z";var d,g,m,v,y,x,b,_,w,T,k,M,A=0,S=0,E=[];if((v=(+o.apply(this,arguments)||0)/2)&&(m=n===Fo?Math.sqrt(s*s+c*c):+n.apply(this,arguments),p||(S*=-1),c&&(S=Dt(m/c*Math.sin(v))),s&&(A=Dt(m/s*Math.sin(v)))),c){y=c*Math.cos(u+S),x=c*Math.sin(u+S),b=c*Math.cos(f-S),_=c*Math.sin(f-S);var C=Math.abs(f-u-2*S)<=At?0:1;if(S&&qo(y,x,b,_)===p^C){var L=(u+f)/2;y=c*Math.cos(L),x=c*Math.sin(L),b=_=null}}else y=x=0;if(s){w=s*Math.cos(f-A),T=s*Math.sin(f-A),k=s*Math.cos(u+A),M=s*Math.sin(u+A);var I=Math.abs(u-f+2*A)<=At?0:1;if(A&&qo(w,T,k,M)===1-p^I){var P=(u+f)/2;w=s*Math.cos(P),T=s*Math.sin(P),k=M=null}}else w=T=0;if(h>kt&&(d=Math.min(Math.abs(c-s)/2,+r.apply(this,arguments)))>.001){g=s0?0:1}function Ho(t,e,r,n,i){var a=t[0]-e[0],o=t[1]-e[1],s=(i?n:-n)/Math.sqrt(a*a+o*o),l=s*o,c=-s*a,u=t[0]+l,f=t[1]+c,h=e[0]+l,p=e[1]+c,d=(u+h)/2,g=(f+p)/2,m=h-u,v=p-f,y=m*m+v*v,x=r-n,b=u*p-h*f,_=(v<0?-1:1)*Math.sqrt(Math.max(0,x*x*y-b*b)),w=(b*v-m*_)/y,T=(-b*m-v*_)/y,k=(b*v+m*_)/y,M=(-b*m+v*_)/y,A=w-d,S=T-g,E=k-d,C=M-g;return A*A+S*S>E*E+C*C&&(w=k,T=M),[[w-l,T-c],[w*r/x,T*r/x]]}function Go(t){var e=ri,r=ni,n=Yr,i=Wo,a=i.key,o=.7;function s(a){var s,l=[],c=[],u=-1,f=a.length,h=de(e),p=de(r);function d(){l.push("M",i(t(c),o))}for(;++u1&&i.push("H",n[0]);return i.join("")},"step-before":Zo,"step-after":Jo,basis:$o,"basis-open":function(t){if(t.length<4)return Wo(t);var e,r=[],n=-1,i=t.length,a=[0],o=[0];for(;++n<3;)e=t[n],a.push(e[0]),o.push(e[1]);r.push(ts(ns,a)+","+ts(ns,o)),--n;for(;++n9&&(i=3*e/Math.sqrt(i),o[s]=i*r,o[s+1]=i*n));s=-1;for(;++s<=l;)i=(t[Math.min(l,s+1)][0]-t[Math.max(0,s-1)][0])/(6*(1+o[s]*o[s])),a.push([i||0,o[s]*i||0]);return a}(t))}});function Wo(t){return t.length>1?t.join("L"):t+"Z"}function Xo(t){return t.join("L")+"Z"}function Zo(t){for(var e=0,r=t.length,n=t[0],i=[n[0],",",n[1]];++e1){s=e[1],a=t[l],l++,n+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(a[0]-s[0])+","+(a[1]-s[1])+","+a[0]+","+a[1];for(var c=2;cAt)+",1 "+e}function l(t,e,r,n){return"Q 0,0 "+n}return a.radius=function(t){return arguments.length?(r=de(t),a):r},a.source=function(e){return arguments.length?(t=de(e),a):t},a.target=function(t){return arguments.length?(e=de(t),a):e},a.startAngle=function(t){return arguments.length?(n=de(t),a):n},a.endAngle=function(t){return arguments.length?(i=de(t),a):i},a},t.svg.diagonal=function(){var t=Vn,e=qn,r=cs;function n(n,i){var a=t.call(this,n,i),o=e.call(this,n,i),s=(a.y+o.y)/2,l=[a,{x:a.x,y:s},{x:o.x,y:s},o];return"M"+(l=l.map(r))[0]+"C"+l[1]+" "+l[2]+" "+l[3]}return n.source=function(e){return arguments.length?(t=de(e),n):t},n.target=function(t){return arguments.length?(e=de(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},t.svg.diagonal.radial=function(){var e=t.svg.diagonal(),r=cs,n=e.projection;return e.projection=function(t){return arguments.length?n(us(r=t)):r},e},t.svg.symbol=function(){var t=hs,e=fs;function r(r,n){return(ds.get(t.call(this,r,n))||ps)(e.call(this,r,n))}return r.type=function(e){return arguments.length?(t=de(e),r):t},r.size=function(t){return arguments.length?(e=de(t),r):e},r};var ds=t.map({circle:ps,cross:function(t){var e=Math.sqrt(t/5)/2;return"M"+-3*e+","+-e+"H"+-e+"V"+-3*e+"H"+e+"V"+-e+"H"+3*e+"V"+e+"H"+e+"V"+3*e+"H"+-e+"V"+e+"H"+-3*e+"Z"},diamond:function(t){var e=Math.sqrt(t/(2*ms)),r=e*ms;return"M0,"+-e+"L"+r+",0 0,"+e+" "+-r+",0Z"},square:function(t){var e=Math.sqrt(t)/2;return"M"+-e+","+-e+"L"+e+","+-e+" "+e+","+e+" "+-e+","+e+"Z"},"triangle-down":function(t){var e=Math.sqrt(t/gs),r=e*gs/2;return"M0,"+r+"L"+e+","+-r+" "+-e+","+-r+"Z"},"triangle-up":function(t){var e=Math.sqrt(t/gs),r=e*gs/2;return"M0,"+-r+"L"+e+","+r+" "+-e+","+r+"Z"}});t.svg.symbolTypes=ds.keys();var gs=Math.sqrt(3),ms=Math.tan(30*Lt);Y.transition=function(t){for(var e,r,n=bs||++Ts,i=As(t),a=[],o=_s||{time:Date.now(),ease:ca,delay:0,duration:250},s=-1,l=this.length;++s0;)c[--h].call(t,o);if(a>=1)return f.event&&f.event.end.call(t,t.__data__,e),--u.count?delete u[n]:delete t[r],1}f||(a=i.time,o=we((function(t){var e=f.delay;if(o.t=e+a,e<=t)return h(t-e);o.c=h}),0,a),f=u[n]={tween:new _,time:a,timer:o,delay:i.delay,duration:i.duration,ease:i.ease,index:e},i=null,++u.count)}ws.call=Y.call,ws.empty=Y.empty,ws.node=Y.node,ws.size=Y.size,t.transition=function(e,r){return e&&e.transition?bs?e.transition(r):e:t.selection().transition(e)},t.transition.prototype=ws,ws.select=function(t){var e,r,n,i=this.id,a=this.namespace,o=[];t=W(t);for(var s=-1,l=this.length;++srect,.s>rect").attr("width",s[1]-s[0])}function g(t){t.select(".extent").attr("y",l[0]),t.selectAll(".extent,.e>rect,.w>rect").attr("height",l[1]-l[0])}function m(){var f,m,v=this,y=t.select(t.event.target),x=n.of(v,arguments),b=t.select(v),_=y.datum(),w=!/^(n|s)$/.test(_)&&i,T=!/^(e|w)$/.test(_)&&a,k=y.classed("extent"),M=bt(v),A=t.mouse(v),S=t.select(o(v)).on("keydown.brush",L).on("keyup.brush",I);if(t.event.changedTouches?S.on("touchmove.brush",P).on("touchend.brush",O):S.on("mousemove.brush",P).on("mouseup.brush",O),b.interrupt().selectAll("*").interrupt(),k)A[0]=s[0]-A[0],A[1]=l[0]-A[1];else if(_){var E=+/w$/.test(_),C=+/^n/.test(_);m=[s[1-E]-A[0],l[1-C]-A[1]],A[0]=s[E],A[1]=l[C]}else t.event.altKey&&(f=A.slice());function L(){32==t.event.keyCode&&(k||(f=null,A[0]-=s[1],A[1]-=l[1],k=2),F())}function I(){32==t.event.keyCode&&2==k&&(A[0]+=s[1],A[1]+=l[1],k=0,F())}function P(){var e=t.mouse(v),r=!1;m&&(e[0]+=m[0],e[1]+=m[1]),k||(t.event.altKey?(f||(f=[(s[0]+s[1])/2,(l[0]+l[1])/2]),A[0]=s[+(e[0]1?{floor:function(e){for(;s(e=t.floor(e));)e=Ns(e-1);return e},ceil:function(e){for(;s(e=t.ceil(e));)e=Ns(+e+1);return e}}:t))},i.ticks=function(t,e){var r=go(i.domain()),n=null==t?a(r,10):"number"==typeof t?a(r,t):!t.range&&[{range:t},e];return n&&(t=n[0],e=n[1]),t.range(r[0],Ns(+r[1]+1),e<1?1:e)},i.tickFormat=function(){return n},i.copy=function(){return Bs(e.copy(),r,n)},wo(i,e)}function Ns(t){return new Date(t)}Os.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Fs:Rs,Fs.parse=function(t){var e=new Date(t);return isNaN(e)?null:e},Fs.toString=Rs.toString,Pe.second=Re((function(t){return new ze(1e3*Math.floor(t/1e3))}),(function(t,e){t.setTime(t.getTime()+1e3*Math.floor(e))}),(function(t){return t.getSeconds()})),Pe.seconds=Pe.second.range,Pe.seconds.utc=Pe.second.utc.range,Pe.minute=Re((function(t){return new ze(6e4*Math.floor(t/6e4))}),(function(t,e){t.setTime(t.getTime()+6e4*Math.floor(e))}),(function(t){return t.getMinutes()})),Pe.minutes=Pe.minute.range,Pe.minutes.utc=Pe.minute.utc.range,Pe.hour=Re((function(t){var e=t.getTimezoneOffset()/60;return new ze(36e5*(Math.floor(t/36e5-e)+e))}),(function(t,e){t.setTime(t.getTime()+36e5*Math.floor(e))}),(function(t){return t.getHours()})),Pe.hours=Pe.hour.range,Pe.hours.utc=Pe.hour.utc.range,Pe.month=Re((function(t){return(t=Pe.day(t)).setDate(1),t}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t){return t.getMonth()})),Pe.months=Pe.month.range,Pe.months.utc=Pe.month.utc.range;var js=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Us=[[Pe.second,1],[Pe.second,5],[Pe.second,15],[Pe.second,30],[Pe.minute,1],[Pe.minute,5],[Pe.minute,15],[Pe.minute,30],[Pe.hour,1],[Pe.hour,3],[Pe.hour,6],[Pe.hour,12],[Pe.day,1],[Pe.day,2],[Pe.week,1],[Pe.month,1],[Pe.month,3],[Pe.year,1]],Vs=Os.multi([[".%L",function(t){return t.getMilliseconds()}],[":%S",function(t){return t.getSeconds()}],["%I:%M",function(t){return t.getMinutes()}],["%I %p",function(t){return t.getHours()}],["%a %d",function(t){return t.getDay()&&1!=t.getDate()}],["%b %d",function(t){return 1!=t.getDate()}],["%B",function(t){return t.getMonth()}],["%Y",Yr]]),qs={range:function(e,r,n){return t.range(Math.ceil(e/n)*n,+r,n).map(Ns)},floor:L,ceil:L};Us.year=Pe.year,Pe.scale=function(){return Bs(t.scale.linear(),Us,Vs)};var Hs=Us.map((function(t){return[t[0].utc,t[1]]})),Gs=Ds.multi([[".%L",function(t){return t.getUTCMilliseconds()}],[":%S",function(t){return t.getUTCSeconds()}],["%I:%M",function(t){return t.getUTCMinutes()}],["%I %p",function(t){return t.getUTCHours()}],["%a %d",function(t){return t.getUTCDay()&&1!=t.getUTCDate()}],["%b %d",function(t){return 1!=t.getUTCDate()}],["%B",function(t){return t.getUTCMonth()}],["%Y",Yr]]);function Ys(t){return JSON.parse(t.responseText)}function Ws(t){var e=i.createRange();return e.selectNode(i.body),e.createContextualFragment(t.responseText)}Hs.year=Pe.year.utc,Pe.scale.utc=function(){return Bs(t.scale.linear(),Hs,Gs)},t.text=ge((function(t){return t.responseText})),t.json=function(t,e){return me(t,"application/json",Ys,e)},t.html=function(t,e){return me(t,"text/html",Ws,e)},t.xml=ge((function(t){return t.responseXML})),"object"==typeof e&&e.exports?e.exports=t:this.d3=t}()},{}],170:[function(t,e,r){e.exports=function(){for(var t=0;t=2)return!1;t[r]=n}return!0})):_.filter((function(t){for(var e=0;e<=s;++e){var r=v[t[e]];if(r<0)return!1;t[e]=r}return!0}));if(1&s)for(u=0;u<_.length;++u){h=(b=_[u])[0];b[0]=b[1],b[1]=h}return _}},{"incremental-convex-hull":459,uniq:597}],172:[function(t,e,r){"use strict";e.exports=a;var n=(a.canvas=document.createElement("canvas")).getContext("2d"),i=o([32,126]);function a(t,e){Array.isArray(t)&&(t=t.join(", "));var r,a={},s=16,l=.05;e&&(2===e.length&&"number"==typeof e[0]?r=o(e):Array.isArray(e)?r=e:(e.o?r=o(e.o):e.pairs&&(r=e.pairs),e.fontSize&&(s=e.fontSize),null!=e.threshold&&(l=e.threshold))),r||(r=i),n.font=s+"px "+t;for(var c=0;cs*l){var p=(h-f)/s;a[u]=1e3*p}}return a}function o(t){for(var e=[],r=t[0];r<=t[1];r++)for(var n=String.fromCharCode(r),i=t[0];i>>31},e.exports.exponent=function(t){return(e.exports.hi(t)<<1>>>21)-1023},e.exports.fraction=function(t){var r=e.exports.lo(t),n=e.exports.hi(t),i=1048575&n;return 2146435072&n&&(i+=1<<20),[r,i]},e.exports.denormalized=function(t){return!(2146435072&e.exports.hi(t))}}).call(this)}).call(this,t("buffer").Buffer)},{buffer:111}],174:[function(t,e,r){var n=t("abs-svg-path"),i=t("normalize-svg-path"),a={M:"moveTo",C:"bezierCurveTo"};e.exports=function(t,e){t.beginPath(),i(n(e)).forEach((function(e){var r=e[0],n=e.slice(1);t[a[r]].apply(t,n)})),t.closePath()}},{"abs-svg-path":65,"normalize-svg-path":497}],175:[function(t,e,r){e.exports=function(t){switch(t){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}}},{}],176:[function(t,e,r){"use strict";e.exports=function(t,e){switch("undefined"==typeof e&&(e=0),typeof t){case"number":if(t>0)return function(t,e){var r,n;for(r=new Array(t),n=0;n80*r){n=l=t[0],s=c=t[1];for(var b=r;bl&&(l=u),p>c&&(c=p);d=0!==(d=Math.max(l-n,c-s))?1/d:0}return o(y,x,r,n,s,d),x}function i(t,e,r,n,i){var a,o;if(i===E(t,e,r,n)>0)for(a=e;a=e;a-=n)o=M(a,t[a],t[a+1],o);return o&&x(o,o.next)&&(A(o),o=o.next),o}function a(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!x(n,n.next)&&0!==y(n.prev,n,n.next))n=n.next;else{if(A(n),(n=e=n.prev)===n.next)break;r=!0}}while(r||n!==e);return e}function o(t,e,r,n,i,f,h){if(t){!h&&f&&function(t,e,r,n){var i=t;do{null===i.z&&(i.z=d(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,r,n,i,a,o,s,l,c=1;do{for(r=t,t=null,a=null,o=0;r;){for(o++,n=r,s=0,e=0;e0||l>0&&n;)0!==s&&(0===l||!n||r.z<=n.z)?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,l--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;r=n}a.nextZ=null,c*=2}while(o>1)}(i)}(t,n,i,f);for(var p,g,m=t;t.prev!==t.next;)if(p=t.prev,g=t.next,f?l(t,n,i,f):s(t))e.push(p.i/r),e.push(t.i/r),e.push(g.i/r),A(t),t=g.next,m=g.next;else if((t=g)===m){h?1===h?o(t=c(a(t),e,r),e,r,n,i,f,2):2===h&&u(t,e,r,n,i,f):o(a(t),e,r,n,i,f,1);break}}}function s(t){var e=t.prev,r=t,n=t.next;if(y(e,r,n)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(m(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&y(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function l(t,e,r,n){var i=t.prev,a=t,o=t.next;if(y(i,a,o)>=0)return!1;for(var s=i.xa.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,u=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=d(s,l,e,r,n),h=d(c,u,e,r,n),p=t.prevZ,g=t.nextZ;p&&p.z>=f&&g&&g.z<=h;){if(p!==t.prev&&p!==t.next&&m(i.x,i.y,a.x,a.y,o.x,o.y,p.x,p.y)&&y(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,g!==t.prev&&g!==t.next&&m(i.x,i.y,a.x,a.y,o.x,o.y,g.x,g.y)&&y(g.prev,g,g.next)>=0)return!1;g=g.nextZ}for(;p&&p.z>=f;){if(p!==t.prev&&p!==t.next&&m(i.x,i.y,a.x,a.y,o.x,o.y,p.x,p.y)&&y(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;g&&g.z<=h;){if(g!==t.prev&&g!==t.next&&m(i.x,i.y,a.x,a.y,o.x,o.y,g.x,g.y)&&y(g.prev,g,g.next)>=0)return!1;g=g.nextZ}return!0}function c(t,e,r){var n=t;do{var i=n.prev,o=n.next.next;!x(i,o)&&b(i,n,n.next,o)&&T(i,o)&&T(o,i)&&(e.push(i.i/r),e.push(n.i/r),e.push(o.i/r),A(n),A(n.next),n=t=o),n=n.next}while(n!==t);return a(n)}function u(t,e,r,n,i,s){var l=t;do{for(var c=l.next.next;c!==l.prev;){if(l.i!==c.i&&v(l,c)){var u=k(l,c);return l=a(l,l.next),u=a(u,u.next),o(l,e,r,n,i,s),void o(u,e,r,n,i,s)}c=c.next}l=l.next}while(l!==t)}function f(t,e){return t.x-e.x}function h(t,e){if(e=function(t,e){var r,n=e,i=t.x,a=t.y,o=-1/0;do{if(a<=n.y&&a>=n.next.y&&n.next.y!==n.y){var s=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=i&&s>o){if(o=s,s===i){if(a===n.y)return n;if(a===n.next.y)return n.next}r=n.x=n.x&&n.x>=u&&i!==n.x&&m(ar.x||n.x===r.x&&p(r,n)))&&(r=n,h=l)),n=n.next}while(n!==c);return r}(t,e)){var r=k(e,t);a(e,e.next),a(r,r.next)}}function p(t,e){return y(t.prev,t,e.prev)<0&&y(e.next,t,t.next)<0}function d(t,e,r,n,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*i)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*i)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function g(t){var e=t,r=t;do{(e.x=0&&(t-o)*(n-s)-(r-o)*(e-s)>=0&&(r-o)*(a-s)-(i-o)*(n-s)>=0}function v(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&b(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}(t,e)&&(T(t,e)&&T(e,t)&&function(t,e){var r=t,n=!1,i=(t.x+e.x)/2,a=(t.y+e.y)/2;do{r.y>a!=r.next.y>a&&r.next.y!==r.y&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==t);return n}(t,e)&&(y(t.prev,t,e.prev)||y(t,e.prev,e))||x(t,e)&&y(t.prev,t,t.next)>0&&y(e.prev,e,e.next)>0)}function y(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function x(t,e){return t.x===e.x&&t.y===e.y}function b(t,e,r,n){var i=w(y(t,e,r)),a=w(y(t,e,n)),o=w(y(r,n,t)),s=w(y(r,n,e));return i!==a&&o!==s||(!(0!==i||!_(t,r,e))||(!(0!==a||!_(t,n,e))||(!(0!==o||!_(r,t,n))||!(0!==s||!_(r,e,n)))))}function _(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function w(t){return t>0?1:t<0?-1:0}function T(t,e){return y(t.prev,t,t.next)<0?y(t,e,t.next)>=0&&y(t,t.prev,e)>=0:y(t,e,t.prev)<0||y(t,t.next,e)<0}function k(t,e){var r=new S(t.i,t.x,t.y),n=new S(e.i,e.x,e.y),i=t.next,a=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function M(t,e,r,n){var i=new S(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function A(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function S(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function E(t,e,r,n){for(var i=0,a=e,o=r-n;a0&&(n+=t[i-1].length,r.holes.push(n))}return r}},{}],178:[function(t,e,r){"use strict";e.exports=function(t,e){var r=t.length;if("number"!=typeof e){e=0;for(var i=0;i=e}))}(e);for(var r,i=n(t).components.filter((function(t){return t.length>1})),a=1/0,o=0;o=55296&&y<=56319&&(w+=t[++r]),w=T?h.call(T,k,w,g):w,e?(p.value=w,d(m,g,p)):m[g]=w,++g;v=g}if(void 0===v)for(v=o(t.length),e&&(m=new e(v)),r=0;r0?1:-1}},{}],190:[function(t,e,r){"use strict";var n=t("../math/sign"),i=Math.abs,a=Math.floor;e.exports=function(t){return isNaN(t)?0:0!==(t=Number(t))&&isFinite(t)?n(t)*a(i(t)):t}},{"../math/sign":187}],191:[function(t,e,r){"use strict";var n=t("./to-integer"),i=Math.max;e.exports=function(t){return i(0,n(t))}},{"./to-integer":190}],192:[function(t,e,r){"use strict";var n=t("./valid-callable"),i=t("./valid-value"),a=Function.prototype.bind,o=Function.prototype.call,s=Object.keys,l=Object.prototype.propertyIsEnumerable;e.exports=function(t,e){return function(r,c){var u,f=arguments[2],h=arguments[3];return r=Object(i(r)),n(c),u=s(r),h&&u.sort("function"==typeof h?a.call(h,r):void 0),"function"!=typeof t&&(t=u[t]),o.call(t,u,(function(t,n){return l.call(r,t)?o.call(c,f,r[t],t,r,n):e}))}}},{"./valid-callable":209,"./valid-value":211}],193:[function(t,e,r){"use strict";e.exports=t("./is-implemented")()?Object.assign:t("./shim")},{"./is-implemented":194,"./shim":195}],194:[function(t,e,r){"use strict";e.exports=function(){var t,e=Object.assign;return"function"==typeof e&&(e(t={foo:"raz"},{bar:"dwa"},{trzy:"trzy"}),t.foo+t.bar+t.trzy==="razdwatrzy")}},{}],195:[function(t,e,r){"use strict";var n=t("../keys"),i=t("../valid-value"),a=Math.max;e.exports=function(t,e){var r,o,s,l=a(arguments.length,2);for(t=Object(i(t)),s=function(n){try{t[n]=e[n]}catch(t){r||(r=t)}},o=1;o-1}},{}],215:[function(t,e,r){"use strict";var n=Object.prototype.toString,i=n.call("");e.exports=function(t){return"string"==typeof t||t&&"object"==typeof t&&(t instanceof String||n.call(t)===i)||!1}},{}],216:[function(t,e,r){"use strict";var n=Object.create(null),i=Math.random;e.exports=function(){var t;do{t=i().toString(36).slice(2)}while(n[t]);return t}},{}],217:[function(t,e,r){"use strict";var n,i=t("es5-ext/object/set-prototype-of"),a=t("es5-ext/string/#/contains"),o=t("d"),s=t("es6-symbol"),l=t("./"),c=Object.defineProperty;n=e.exports=function(t,e){if(!(this instanceof n))throw new TypeError("Constructor requires 'new'");l.call(this,t),e=e?a.call(e,"key+value")?"key+value":a.call(e,"key")?"key":"value":"value",c(this,"__kind__",o("",e))},i&&i(n,l),delete n.prototype.constructor,n.prototype=Object.create(l.prototype,{_resolve:o((function(t){return"value"===this.__kind__?this.__list__[t]:"key+value"===this.__kind__?[t,this.__list__[t]]:t}))}),c(n.prototype,s.toStringTag,o("c","Array Iterator"))},{"./":220,d:155,"es5-ext/object/set-prototype-of":206,"es5-ext/string/#/contains":212,"es6-symbol":225}],218:[function(t,e,r){"use strict";var n=t("es5-ext/function/is-arguments"),i=t("es5-ext/object/valid-callable"),a=t("es5-ext/string/is-string"),o=t("./get"),s=Array.isArray,l=Function.prototype.call,c=Array.prototype.some;e.exports=function(t,e){var r,u,f,h,p,d,g,m,v=arguments[2];if(s(t)||n(t)?r="array":a(t)?r="string":t=o(t),i(e),f=function(){h=!0},"array"!==r)if("string"!==r)for(u=t.next();!u.done;){if(l.call(e,v,u.value,f),h)return;u=t.next()}else for(d=t.length,p=0;p=55296&&m<=56319&&(g+=t[++p]),l.call(e,v,g,f),!h);++p);else c.call(t,(function(t){return l.call(e,v,t,f),h}))}},{"./get":219,"es5-ext/function/is-arguments":184,"es5-ext/object/valid-callable":209,"es5-ext/string/is-string":215}],219:[function(t,e,r){"use strict";var n=t("es5-ext/function/is-arguments"),i=t("es5-ext/string/is-string"),a=t("./array"),o=t("./string"),s=t("./valid-iterable"),l=t("es6-symbol").iterator;e.exports=function(t){return"function"==typeof s(t)[l]?t[l]():n(t)?new a(t):i(t)?new o(t):new a(t)}},{"./array":217,"./string":222,"./valid-iterable":223,"es5-ext/function/is-arguments":184,"es5-ext/string/is-string":215,"es6-symbol":225}],220:[function(t,e,r){"use strict";var n,i=t("es5-ext/array/#/clear"),a=t("es5-ext/object/assign"),o=t("es5-ext/object/valid-callable"),s=t("es5-ext/object/valid-value"),l=t("d"),c=t("d/auto-bind"),u=t("es6-symbol"),f=Object.defineProperty,h=Object.defineProperties;e.exports=n=function(t,e){if(!(this instanceof n))throw new TypeError("Constructor requires 'new'");h(this,{__list__:l("w",s(t)),__context__:l("w",e),__nextIndex__:l("w",0)}),e&&(o(e.on),e.on("_add",this._onAdd),e.on("_delete",this._onDelete),e.on("_clear",this._onClear))},delete n.prototype.constructor,h(n.prototype,a({_next:l((function(){var t;if(this.__list__)return this.__redo__&&void 0!==(t=this.__redo__.shift())?t:this.__nextIndex__=this.__nextIndex__||(++this.__nextIndex__,this.__redo__?(this.__redo__.forEach((function(e,r){e>=t&&(this.__redo__[r]=++e)}),this),this.__redo__.push(t)):f(this,"__redo__",l("c",[t])))})),_onDelete:l((function(t){var e;t>=this.__nextIndex__||(--this.__nextIndex__,this.__redo__&&(-1!==(e=this.__redo__.indexOf(t))&&this.__redo__.splice(e,1),this.__redo__.forEach((function(e,r){e>t&&(this.__redo__[r]=--e)}),this)))})),_onClear:l((function(){this.__redo__&&i.call(this.__redo__),this.__nextIndex__=0}))}))),f(n.prototype,u.iterator,l((function(){return this})))},{d:155,"d/auto-bind":154,"es5-ext/array/#/clear":180,"es5-ext/object/assign":193,"es5-ext/object/valid-callable":209,"es5-ext/object/valid-value":211,"es6-symbol":225}],221:[function(t,e,r){"use strict";var n=t("es5-ext/function/is-arguments"),i=t("es5-ext/object/is-value"),a=t("es5-ext/string/is-string"),o=t("es6-symbol").iterator,s=Array.isArray;e.exports=function(t){return!!i(t)&&(!!s(t)||(!!a(t)||(!!n(t)||"function"==typeof t[o])))}},{"es5-ext/function/is-arguments":184,"es5-ext/object/is-value":200,"es5-ext/string/is-string":215,"es6-symbol":225}],222:[function(t,e,r){"use strict";var n,i=t("es5-ext/object/set-prototype-of"),a=t("d"),o=t("es6-symbol"),s=t("./"),l=Object.defineProperty;n=e.exports=function(t){if(!(this instanceof n))throw new TypeError("Constructor requires 'new'");t=String(t),s.call(this,t),l(this,"__length__",a("",t.length))},i&&i(n,s),delete n.prototype.constructor,n.prototype=Object.create(s.prototype,{_next:a((function(){if(this.__list__)return this.__nextIndex__=55296&&e<=56319?r+this.__list__[this.__nextIndex__++]:r}))}),l(n.prototype,o.toStringTag,a("c","String Iterator"))},{"./":220,d:155,"es5-ext/object/set-prototype-of":206,"es6-symbol":225}],223:[function(t,e,r){"use strict";var n=t("./is-iterable");e.exports=function(t){if(!n(t))throw new TypeError(t+" is not iterable");return t}},{"./is-iterable":221}],224:[function(t,e,r){(function(n,i){(function(){ +/*! + * @overview es6-promise - a tiny implementation of Promises/A+. + * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald) + * @license Licensed under MIT license + * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE + * @version v4.2.8+1e68dce6 + */ +!function(t,n){"object"==typeof r&&"undefined"!=typeof e?e.exports=n():t.ES6Promise=n()}(this,(function(){"use strict";function e(t){return"function"==typeof t}var r=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},a=0,o=void 0,s=void 0,l=function(t,e){g[a]=t,g[a+1]=e,2===(a+=2)&&(s?s(m):_())};var c="undefined"!=typeof window?window:void 0,u=c||{},f=u.MutationObserver||u.WebKitMutationObserver,h="undefined"==typeof self&&"undefined"!=typeof n&&"[object process]"==={}.toString.call(n),p="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function d(){var t=setTimeout;return function(){return t(m,1)}}var g=new Array(1e3);function m(){for(var t=0;t=r-1){h=l.length-1;var d=t-e[r-1];for(p=0;p=r-1)for(var u=s.length-1,f=(e[r-1],0);f=0;--r)if(t[--e])return!1;return!0},s.jump=function(t){var e=this.lastT(),r=this.dimension;if(!(t0;--f)n.push(a(l[f-1],c[f-1],arguments[f])),i.push(0)}},s.push=function(t){var e=this.lastT(),r=this.dimension;if(!(t1e-6?1/s:0;this._time.push(t);for(var h=r;h>0;--h){var p=a(c[h-1],u[h-1],arguments[h]);n.push(p),i.push((p-n[o++])*f)}}},s.set=function(t){var e=this.dimension;if(!(t0;--l)r.push(a(o[l-1],s[l-1],arguments[l])),n.push(0)}},s.move=function(t){var e=this.lastT(),r=this.dimension;if(!(t<=e||arguments.length!==r+1)){var n=this._state,i=this._velocity,o=n.length-this.dimension,s=this.bounds,l=s[0],c=s[1],u=t-e,f=u>1e-6?1/u:0;this._time.push(t);for(var h=r;h>0;--h){var p=arguments[h];n.push(a(l[h-1],c[h-1],n[o++]+p)),i.push(p*f)}}},s.idle=function(t){var e=this.lastT();if(!(t=0;--f)n.push(a(l[f],c[f],n[o]+u*i[o])),i.push(0),o+=1}}},{"binary-search-bounds":243,"cubic-hermite":150}],243:[function(t,e,r){"use strict";function n(t,e,r,n,i,a){var o=["function ",t,"(a,l,h,",n.join(","),"){",a?"":"var i=",r?"l-1":"h+1",";while(l<=h){var m=(l+h)>>>1,x=a",i?".get(m)":"[m]"];return a?e.indexOf("c")<0?o.push(";if(x===y){return m}else if(x<=y){"):o.push(";var p=c(x,y);if(p===0){return m}else if(p<=0){"):o.push(";if(",e,"){i=m;"),r?o.push("l=m+1}else{h=m-1}"):o.push("h=m-1}else{l=m+1}"),o.push("}"),a?o.push("return -1};"):o.push("return i};"),o.join("")}function i(t,e,r,i){return new Function([n("A","x"+t+"y",e,["y"],!1,i),n("B","x"+t+"y",e,["y"],!0,i),n("P","c(x,y)"+t+"0",e,["y","c"],!1,i),n("Q","c(x,y)"+t+"0",e,["y","c"],!0,i),"function dispatchBsearch",r,"(a,y,c,l,h){if(a.shape){if(typeof(c)==='function'){return Q(a,(l===undefined)?0:l|0,(h===undefined)?a.shape[0]-1:h|0,y,c)}else{return B(a,(c===undefined)?0:c|0,(l===undefined)?a.shape[0]-1:l|0,y)}}else{if(typeof(c)==='function'){return P(a,(l===undefined)?0:l|0,(h===undefined)?a.length-1:h|0,y,c)}else{return A(a,(c===undefined)?0:c|0,(l===undefined)?a.length-1:l|0,y)}}}return dispatchBsearch",r].join(""))()}e.exports={ge:i(">=",!1,"GE"),gt:i(">",!1,"GT"),lt:i("<",!0,"LT"),le:i("<=",!0,"LE"),eq:i("-",!0,"EQ",!0)}},{}],244:[function(t,e,r){var n=t("dtype");e.exports=function(t,e,r){if(!t)throw new TypeError("must specify data as first parameter");if(r=0|+(r||0),Array.isArray(t)&&t[0]&&"number"==typeof t[0][0]){var i,a,o,s,l=t[0].length,c=t.length*l;e&&"string"!=typeof e||(e=new(n(e||"float32"))(c+r));var u=e.length-r;if(c!==u)throw new Error("source length "+c+" ("+l+"x"+t.length+") does not match destination length "+u);for(i=0,o=r;ie[0]-o[0]/2&&(h=o[0]/2,p+=o[1]);return r}},{"css-font/stringify":147}],246:[function(t,e,r){"use strict";function n(t,e){e||(e={}),("string"==typeof t||Array.isArray(t))&&(e.family=t);var r=Array.isArray(e.family)?e.family.join(", "):e.family;if(!r)throw Error("`family` must be defined");var s=e.size||e.fontSize||e.em||48,l=e.weight||e.fontWeight||"",c=(t=[e.style||e.fontStyle||"",l,s].join(" ")+"px "+r,e.origin||"top");if(n.cache[r]&&s<=n.cache[r].em)return i(n.cache[r],c);var u=e.canvas||n.canvas,f=u.getContext("2d"),h={upper:void 0!==e.upper?e.upper:"H",lower:void 0!==e.lower?e.lower:"x",descent:void 0!==e.descent?e.descent:"p",ascent:void 0!==e.ascent?e.ascent:"h",tittle:void 0!==e.tittle?e.tittle:"i",overshoot:void 0!==e.overshoot?e.overshoot:"O"},p=Math.ceil(1.5*s);u.height=p,u.width=.5*p,f.font=t;var d={top:0};f.clearRect(0,0,p,p),f.textBaseline="top",f.fillStyle="black",f.fillText("H",0,0);var g=a(f.getImageData(0,0,p,p));f.clearRect(0,0,p,p),f.textBaseline="bottom",f.fillText("H",0,p);var m=a(f.getImageData(0,0,p,p));d.lineHeight=d.bottom=p-m+g,f.clearRect(0,0,p,p),f.textBaseline="alphabetic",f.fillText("H",0,p);var v=p-a(f.getImageData(0,0,p,p))-1+g;d.baseline=d.alphabetic=v,f.clearRect(0,0,p,p),f.textBaseline="middle",f.fillText("H",0,.5*p);var y=a(f.getImageData(0,0,p,p));d.median=d.middle=p-y-1+g-.5*p,f.clearRect(0,0,p,p),f.textBaseline="hanging",f.fillText("H",0,.5*p);var x=a(f.getImageData(0,0,p,p));d.hanging=p-x-1+g-.5*p,f.clearRect(0,0,p,p),f.textBaseline="ideographic",f.fillText("H",0,p);var b=a(f.getImageData(0,0,p,p));if(d.ideographic=p-b-1+g,h.upper&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.upper,0,0),d.upper=a(f.getImageData(0,0,p,p)),d.capHeight=d.baseline-d.upper),h.lower&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.lower,0,0),d.lower=a(f.getImageData(0,0,p,p)),d.xHeight=d.baseline-d.lower),h.tittle&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.tittle,0,0),d.tittle=a(f.getImageData(0,0,p,p))),h.ascent&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.ascent,0,0),d.ascent=a(f.getImageData(0,0,p,p))),h.descent&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.descent,0,0),d.descent=o(f.getImageData(0,0,p,p))),h.overshoot){f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.overshoot,0,0);var _=o(f.getImageData(0,0,p,p));d.overshoot=_-v}for(var w in d)d[w]/=s;return d.em=s,n.cache[r]=d,i(d,c)}function i(t,e){var r={};for(var n in"string"==typeof e&&(e=t[e]),t)"em"!==n&&(r[n]=t[n]-e);return r}function a(t){for(var e=t.height,r=t.data,n=3;n0;n-=4)if(0!==r[n])return Math.floor(.25*(n-3)/e)}e.exports=n,n.canvas=document.createElement("canvas"),n.cache={}},{}],247:[function(t,e,r){"use strict";e.exports=function(t){return new s(t||g,null)};function n(t,e,r,n,i,a){this._color=t,this.key=e,this.value=r,this.left=n,this.right=i,this._count=a}function i(t){return new n(t._color,t.key,t.value,t.left,t.right,t._count)}function a(t,e){return new n(t,e.key,e.value,e.left,e.right,e._count)}function o(t){t._count=1+(t.left?t.left._count:0)+(t.right?t.right._count:0)}function s(t,e){this._compare=t,this.root=e}var l=s.prototype;function c(t,e){var r;if(e.left&&(r=c(t,e.left)))return r;return(r=t(e.key,e.value))||(e.right?c(t,e.right):void 0)}function u(t,e,r,n){if(e(t,n.key)<=0){var i;if(n.left)if(i=u(t,e,r,n.left))return i;if(i=r(n.key,n.value))return i}if(n.right)return u(t,e,r,n.right)}function f(t,e,r,n,i){var a,o=r(t,i.key),s=r(e,i.key);if(o<=0){if(i.left&&(a=f(t,e,r,n,i.left)))return a;if(s>0&&(a=n(i.key,i.value)))return a}if(s>0&&i.right)return f(t,e,r,n,i.right)}function h(t,e){this.tree=t,this._stack=e}Object.defineProperty(l,"keys",{get:function(){var t=[];return this.forEach((function(e,r){t.push(e)})),t}}),Object.defineProperty(l,"values",{get:function(){var t=[];return this.forEach((function(e,r){t.push(r)})),t}}),Object.defineProperty(l,"length",{get:function(){return this.root?this.root._count:0}}),l.insert=function(t,e){for(var r=this._compare,i=this.root,l=[],c=[];i;){var u=r(t,i.key);l.push(i),c.push(u),i=u<=0?i.left:i.right}l.push(new n(0,t,e,null,null,1));for(var f=l.length-2;f>=0;--f){i=l[f];c[f]<=0?l[f]=new n(i._color,i.key,i.value,l[f+1],i.right,i._count+1):l[f]=new n(i._color,i.key,i.value,i.left,l[f+1],i._count+1)}for(f=l.length-1;f>1;--f){var h=l[f-1];i=l[f];if(1===h._color||1===i._color)break;var p=l[f-2];if(p.left===h)if(h.left===i){if(!(d=p.right)||0!==d._color){if(p._color=0,p.left=h.right,h._color=1,h.right=p,l[f-2]=h,l[f-1]=i,o(p),o(h),f>=3)(g=l[f-3]).left===p?g.left=h:g.right=h;break}h._color=1,p.right=a(1,d),p._color=0,f-=1}else{if(!(d=p.right)||0!==d._color){if(h.right=i.left,p._color=0,p.left=i.right,i._color=1,i.left=h,i.right=p,l[f-2]=i,l[f-1]=h,o(p),o(h),o(i),f>=3)(g=l[f-3]).left===p?g.left=i:g.right=i;break}h._color=1,p.right=a(1,d),p._color=0,f-=1}else if(h.right===i){if(!(d=p.left)||0!==d._color){if(p._color=0,p.right=h.left,h._color=1,h.left=p,l[f-2]=h,l[f-1]=i,o(p),o(h),f>=3)(g=l[f-3]).right===p?g.right=h:g.left=h;break}h._color=1,p.left=a(1,d),p._color=0,f-=1}else{var d;if(!(d=p.left)||0!==d._color){var g;if(h.left=i.right,p._color=0,p.right=i.left,i._color=1,i.right=h,i.left=p,l[f-2]=i,l[f-1]=h,o(p),o(h),o(i),f>=3)(g=l[f-3]).right===p?g.right=i:g.left=i;break}h._color=1,p.left=a(1,d),p._color=0,f-=1}}return l[0]._color=1,new s(r,l[0])},l.forEach=function(t,e,r){if(this.root)switch(arguments.length){case 1:return c(t,this.root);case 2:return u(e,this._compare,t,this.root);case 3:if(this._compare(e,r)>=0)return;return f(e,r,this._compare,t,this.root)}},Object.defineProperty(l,"begin",{get:function(){for(var t=[],e=this.root;e;)t.push(e),e=e.left;return new h(this,t)}}),Object.defineProperty(l,"end",{get:function(){for(var t=[],e=this.root;e;)t.push(e),e=e.right;return new h(this,t)}}),l.at=function(t){if(t<0)return new h(this,[]);for(var e=this.root,r=[];;){if(r.push(e),e.left){if(t=e.right._count)break;e=e.right}return new h(this,[])},l.ge=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a<=0&&(i=n.length),r=a<=0?r.left:r.right}return n.length=i,new h(this,n)},l.gt=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a<0&&(i=n.length),r=a<0?r.left:r.right}return n.length=i,new h(this,n)},l.lt=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a>0&&(i=n.length),r=a<=0?r.left:r.right}return n.length=i,new h(this,n)},l.le=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a>=0&&(i=n.length),r=a<0?r.left:r.right}return n.length=i,new h(this,n)},l.find=function(t){for(var e=this._compare,r=this.root,n=[];r;){var i=e(t,r.key);if(n.push(r),0===i)return new h(this,n);r=i<=0?r.left:r.right}return new h(this,[])},l.remove=function(t){var e=this.find(t);return e?e.remove():this},l.get=function(t){for(var e=this._compare,r=this.root;r;){var n=e(t,r.key);if(0===n)return r.value;r=n<=0?r.left:r.right}};var p=h.prototype;function d(t,e){t.key=e.key,t.value=e.value,t.left=e.left,t.right=e.right,t._color=e._color,t._count=e._count}function g(t,e){return te?1:0}Object.defineProperty(p,"valid",{get:function(){return this._stack.length>0}}),Object.defineProperty(p,"node",{get:function(){return this._stack.length>0?this._stack[this._stack.length-1]:null},enumerable:!0}),p.clone=function(){return new h(this.tree,this._stack.slice())},p.remove=function(){var t=this._stack;if(0===t.length)return this.tree;var e=new Array(t.length),r=t[t.length-1];e[e.length-1]=new n(r._color,r.key,r.value,r.left,r.right,r._count);for(var l=t.length-2;l>=0;--l){(r=t[l]).left===t[l+1]?e[l]=new n(r._color,r.key,r.value,e[l+1],r.right,r._count):e[l]=new n(r._color,r.key,r.value,r.left,e[l+1],r._count)}if((r=e[e.length-1]).left&&r.right){var c=e.length;for(r=r.left;r.right;)e.push(r),r=r.right;var u=e[c-1];e.push(new n(r._color,u.key,u.value,r.left,r.right,r._count)),e[c-1].key=r.key,e[c-1].value=r.value;for(l=e.length-2;l>=c;--l)r=e[l],e[l]=new n(r._color,r.key,r.value,r.left,e[l+1],r._count);e[c-1].left=e[c]}if(0===(r=e[e.length-1])._color){var f=e[e.length-2];f.left===r?f.left=null:f.right===r&&(f.right=null),e.pop();for(l=0;l=0;--l){if(e=t[l],0===l)return void(e._color=1);if((r=t[l-1]).left===e){if((n=r.right).right&&0===n.right._color){if(s=(n=r.right=i(n)).right=i(n.right),r.right=n.left,n.left=r,n.right=s,n._color=r._color,e._color=1,r._color=1,s._color=1,o(r),o(n),l>1)(c=t[l-2]).left===r?c.left=n:c.right=n;return void(t[l-1]=n)}if(n.left&&0===n.left._color){if(s=(n=r.right=i(n)).left=i(n.left),r.right=s.left,n.left=s.right,s.left=r,s.right=n,s._color=r._color,r._color=1,n._color=1,e._color=1,o(r),o(n),o(s),l>1)(c=t[l-2]).left===r?c.left=s:c.right=s;return void(t[l-1]=s)}if(1===n._color){if(0===r._color)return r._color=1,void(r.right=a(0,n));r.right=a(0,n);continue}n=i(n),r.right=n.left,n.left=r,n._color=r._color,r._color=0,o(r),o(n),l>1&&((c=t[l-2]).left===r?c.left=n:c.right=n),t[l-1]=n,t[l]=r,l+11)(c=t[l-2]).right===r?c.right=n:c.left=n;return void(t[l-1]=n)}if(n.right&&0===n.right._color){if(s=(n=r.left=i(n)).right=i(n.right),r.left=s.right,n.right=s.left,s.right=r,s.left=n,s._color=r._color,r._color=1,n._color=1,e._color=1,o(r),o(n),o(s),l>1)(c=t[l-2]).right===r?c.right=s:c.left=s;return void(t[l-1]=s)}if(1===n._color){if(0===r._color)return r._color=1,void(r.left=a(0,n));r.left=a(0,n);continue}var c;n=i(n),r.left=n.right,n.right=r,n._color=r._color,r._color=0,o(r),o(n),l>1&&((c=t[l-2]).right===r?c.right=n:c.left=n),t[l-1]=n,t[l]=r,l+10)return this._stack[this._stack.length-1].key},enumerable:!0}),Object.defineProperty(p,"value",{get:function(){if(this._stack.length>0)return this._stack[this._stack.length-1].value},enumerable:!0}),Object.defineProperty(p,"index",{get:function(){var t=0,e=this._stack;if(0===e.length){var r=this.tree.root;return r?r._count:0}e[e.length-1].left&&(t=e[e.length-1].left._count);for(var n=e.length-2;n>=0;--n)e[n+1]===e[n].right&&(++t,e[n].left&&(t+=e[n].left._count));return t},enumerable:!0}),p.next=function(){var t=this._stack;if(0!==t.length){var e=t[t.length-1];if(e.right)for(e=e.right;e;)t.push(e),e=e.left;else for(t.pop();t.length>0&&t[t.length-1].right===e;)e=t[t.length-1],t.pop()}},Object.defineProperty(p,"hasNext",{get:function(){var t=this._stack;if(0===t.length)return!1;if(t[t.length-1].right)return!0;for(var e=t.length-1;e>0;--e)if(t[e-1].left===t[e])return!0;return!1}}),p.update=function(t){var e=this._stack;if(0===e.length)throw new Error("Can't update empty node!");var r=new Array(e.length),i=e[e.length-1];r[r.length-1]=new n(i._color,i.key,t,i.left,i.right,i._count);for(var a=e.length-2;a>=0;--a)(i=e[a]).left===e[a+1]?r[a]=new n(i._color,i.key,i.value,r[a+1],i.right,i._count):r[a]=new n(i._color,i.key,i.value,i.left,r[a+1],i._count);return new s(this.tree._compare,r[0])},p.prev=function(){var t=this._stack;if(0!==t.length){var e=t[t.length-1];if(e.left)for(e=e.left;e;)t.push(e),e=e.right;else for(t.pop();t.length>0&&t[t.length-1].left===e;)e=t[t.length-1],t.pop()}},Object.defineProperty(p,"hasPrev",{get:function(){var t=this._stack;if(0===t.length)return!1;if(t[t.length-1].left)return!0;for(var e=t.length-1;e>0;--e)if(t[e-1].right===t[e])return!0;return!1}})},{}],248:[function(t,e,r){var n=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,1.5056327351493116e-7],i=[.9999999999999971,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22];function a(t){if(t<0)return Number("0/0");for(var e=i[0],r=i.length-1;r>0;--r)e+=i[r]/(t+r);var n=t+607/128+.5;return.5*Math.log(2*Math.PI)+(t+.5)*Math.log(n)-n+Math.log(e)-Math.log(t)}e.exports=function t(e){if(e<.5)return Math.PI/(Math.sin(Math.PI*e)*t(1-e));if(e>100)return Math.exp(a(e));e-=1;for(var r=n[0],i=1;i<9;i++)r+=n[i]/(e+i);var o=e+7+.5;return Math.sqrt(2*Math.PI)*Math.pow(o,e+.5)*Math.exp(-o)*r},e.exports.log=a},{}],249:[function(t,e,r){e.exports=function(t,e){if("string"!=typeof t)throw new TypeError("must specify type string");if(e=e||{},"undefined"==typeof document&&!e.canvas)return null;var r=e.canvas||document.createElement("canvas");"number"==typeof e.width&&(r.width=e.width);"number"==typeof e.height&&(r.height=e.height);var n,i=e;try{var a=[t];0===t.indexOf("webgl")&&a.push("experimental-"+t);for(var o=0;o0?(p[u]=-1,d[u]=0):(p[u]=0,d[u]=1)}}var g=[0,0,0],m={model:l,view:l,projection:l,_ortho:!1};f.isOpaque=function(){return!0},f.isTransparent=function(){return!1},f.drawTransparent=function(t){};var v=[0,0,0],y=[0,0,0],x=[0,0,0];f.draw=function(t){t=t||m;for(var e=this.gl,r=t.model||l,n=t.view||l,i=t.projection||l,a=this.bounds,s=t._ortho||!1,u=o(r,n,i,a,s),f=u.cubeEdges,h=u.axis,b=n[12],_=n[13],w=n[14],T=n[15],k=(s?2:1)*this.pixelRatio*(i[3]*b+i[7]*_+i[11]*w+i[15]*T)/e.drawingBufferHeight,M=0;M<3;++M)this.lastCubeProps.cubeEdges[M]=f[M],this.lastCubeProps.axis[M]=h[M];var A=p;for(M=0;M<3;++M)d(p[M],M,this.bounds,f,h);e=this.gl;var S,E=g;for(M=0;M<3;++M)this.backgroundEnable[M]?E[M]=h[M]:E[M]=0;this._background.draw(r,n,i,a,E,this.backgroundColor),this._lines.bind(r,n,i,this);for(M=0;M<3;++M){var C=[0,0,0];h[M]>0?C[M]=a[1][M]:C[M]=a[0][M];for(var L=0;L<2;++L){var I=(M+1+L)%3,P=(M+1+(1^L))%3;this.gridEnable[I]&&this._lines.drawGrid(I,P,this.bounds,C,this.gridColor[I],this.gridWidth[I]*this.pixelRatio)}for(L=0;L<2;++L){I=(M+1+L)%3,P=(M+1+(1^L))%3;this.zeroEnable[P]&&Math.min(a[0][P],a[1][P])<=0&&Math.max(a[0][P],a[1][P])>=0&&this._lines.drawZero(I,P,this.bounds,C,this.zeroLineColor[P],this.zeroLineWidth[P]*this.pixelRatio)}}for(M=0;M<3;++M){this.lineEnable[M]&&this._lines.drawAxisLine(M,this.bounds,A[M].primalOffset,this.lineColor[M],this.lineWidth[M]*this.pixelRatio),this.lineMirror[M]&&this._lines.drawAxisLine(M,this.bounds,A[M].mirrorOffset,this.lineColor[M],this.lineWidth[M]*this.pixelRatio);var z=c(v,A[M].primalMinor),O=c(y,A[M].mirrorMinor),D=this.lineTickLength;for(L=0;L<3;++L){var R=k/r[5*L];z[L]*=D[L]*R,O[L]*=D[L]*R}this.lineTickEnable[M]&&this._lines.drawAxisTicks(M,A[M].primalOffset,z,this.lineTickColor[M],this.lineTickWidth[M]*this.pixelRatio),this.lineTickMirror[M]&&this._lines.drawAxisTicks(M,A[M].mirrorOffset,O,this.lineTickColor[M],this.lineTickWidth[M]*this.pixelRatio)}this._lines.unbind(),this._text.bind(r,n,i,this.pixelRatio);var F,B;function N(t){(B=[0,0,0])[t]=1}function j(t,e,r){var n=(t+1)%3,i=(t+2)%3,a=e[n],o=e[i],s=r[n],l=r[i];a>0&&l>0||a>0&&l<0||a<0&&l>0||a<0&&l<0?N(n):(o>0&&s>0||o>0&&s<0||o<0&&s>0||o<0&&s<0)&&N(i)}for(M=0;M<3;++M){var U=A[M].primalMinor,V=A[M].mirrorMinor,q=c(x,A[M].primalOffset);for(L=0;L<3;++L)this.lineTickEnable[M]&&(q[L]+=k*U[L]*Math.max(this.lineTickLength[L],0)/r[5*L]);var H=[0,0,0];if(H[M]=1,this.tickEnable[M]){-3600===this.tickAngle[M]?(this.tickAngle[M]=0,this.tickAlign[M]="auto"):this.tickAlign[M]=-1,F=1,"auto"===(S=[this.tickAlign[M],.5,F])[0]?S[0]=0:S[0]=parseInt(""+S[0]),B=[0,0,0],j(M,U,V);for(L=0;L<3;++L)q[L]+=k*U[L]*this.tickPad[L]/r[5*L];this._text.drawTicks(M,this.tickSize[M],this.tickAngle[M],q,this.tickColor[M],H,B,S)}if(this.labelEnable[M]){F=0,B=[0,0,0],this.labels[M].length>4&&(N(M),F=1),"auto"===(S=[this.labelAlign[M],.5,F])[0]?S[0]=0:S[0]=parseInt(""+S[0]);for(L=0;L<3;++L)q[L]+=k*U[L]*this.labelPad[L]/r[5*L];q[M]+=.5*(a[0][M]+a[1][M]),this._text.drawLabel(M,this.labelSize[M],this.labelAngle[M],q,this.labelColor[M],[0,0,0],B,S)}}this._text.unbind()},f.dispose=function(){this._text.dispose(),this._lines.dispose(),this._background.dispose(),this._lines=null,this._text=null,this._background=null,this.gl=null}},{"./lib/background.js":251,"./lib/cube.js":252,"./lib/lines.js":253,"./lib/text.js":255,"./lib/ticks.js":256}],251:[function(t,e,r){"use strict";e.exports=function(t){for(var e=[],r=[],s=0,l=0;l<3;++l)for(var c=(l+1)%3,u=(l+2)%3,f=[0,0,0],h=[0,0,0],p=-1;p<=1;p+=2){r.push(s,s+2,s+1,s+1,s+2,s+3),f[l]=p,h[l]=p;for(var d=-1;d<=1;d+=2){f[c]=d;for(var g=-1;g<=1;g+=2)f[u]=g,e.push(f[0],f[1],f[2],h[0],h[1],h[2]),s+=1}var m=c;c=u,u=m}var v=n(t,new Float32Array(e)),y=n(t,new Uint16Array(r),t.ELEMENT_ARRAY_BUFFER),x=i(t,[{buffer:v,type:t.FLOAT,size:3,offset:0,stride:24},{buffer:v,type:t.FLOAT,size:3,offset:12,stride:24}],y),b=a(t);return b.attributes.position.location=0,b.attributes.normal.location=1,new o(t,v,x,b)};var n=t("gl-buffer"),i=t("gl-vao"),a=t("./shaders").bg;function o(t,e,r,n){this.gl=t,this.buffer=e,this.vao=r,this.shader=n}var s=o.prototype;s.draw=function(t,e,r,n,i,a){for(var o=!1,s=0;s<3;++s)o=o||i[s];if(o){var l=this.gl;l.enable(l.POLYGON_OFFSET_FILL),l.polygonOffset(1,2),this.shader.bind(),this.shader.uniforms={model:t,view:e,projection:r,bounds:n,enable:i,colors:a},this.vao.bind(),this.vao.draw(this.gl.TRIANGLES,36),this.vao.unbind(),l.disable(l.POLYGON_OFFSET_FILL)}},s.dispose=function(){this.vao.dispose(),this.buffer.dispose(),this.shader.dispose()}},{"./shaders":254,"gl-buffer":259,"gl-vao":358}],252:[function(t,e,r){"use strict";e.exports=function(t,e,r,a,p){i(s,e,t),i(s,r,s);for(var y=0,x=0;x<2;++x){u[2]=a[x][2];for(var b=0;b<2;++b){u[1]=a[b][1];for(var _=0;_<2;++_)u[0]=a[_][0],h(l[y],u,s),y+=1}}var w=-1;for(x=0;x<8;++x){for(var T=l[x][3],k=0;k<3;++k)c[x][k]=l[x][k]/T;p&&(c[x][2]*=-1),T<0&&(w<0||c[x][2]E&&(w|=1<E&&(w|=1<c[x][1])&&(R=x);var F=-1;for(x=0;x<3;++x){if((N=R^1<c[B][0]&&(B=N)}var j=g;j[0]=j[1]=j[2]=0,j[n.log2(F^R)]=R&F,j[n.log2(R^B)]=R&B;var U=7^B;U===w||U===D?(U=7^F,j[n.log2(B^U)]=U&B):j[n.log2(F^U)]=U&F;var V=m,q=w;for(M=0;M<3;++M)V[M]=q&1< HALF_PI) && (b <= ONE_AND_HALF_PI)) ?\n b - PI :\n b;\n}\n\nfloat look_horizontal_or_vertical(float a, float ratio) {\n // ratio controls the ratio between being horizontal to (vertical + horizontal)\n // if ratio is set to 0.5 then it is 50%, 50%.\n // when using a higher ratio e.g. 0.75 the result would\n // likely be more horizontal than vertical.\n\n float b = positive_angle(a);\n\n return\n (b < ( ratio) * HALF_PI) ? 0.0 :\n (b < (2.0 - ratio) * HALF_PI) ? -HALF_PI :\n (b < (2.0 + ratio) * HALF_PI) ? 0.0 :\n (b < (4.0 - ratio) * HALF_PI) ? HALF_PI :\n 0.0;\n}\n\nfloat roundTo(float a, float b) {\n return float(b * floor((a + 0.5 * b) / b));\n}\n\nfloat look_round_n_directions(float a, int n) {\n float b = positive_angle(a);\n float div = TWO_PI / float(n);\n float c = roundTo(b, div);\n return look_upwards(c);\n}\n\nfloat applyAlignOption(float rawAngle, float delta) {\n return\n (option > 2) ? look_round_n_directions(rawAngle + delta, option) : // option 3-n: round to n directions\n (option == 2) ? look_horizontal_or_vertical(rawAngle + delta, hv_ratio) : // horizontal or vertical\n (option == 1) ? rawAngle + delta : // use free angle, and flip to align with one direction of the axis\n (option == 0) ? look_upwards(rawAngle) : // use free angle, and stay upwards\n (option ==-1) ? 0.0 : // useful for backward compatibility, all texts remains horizontal\n rawAngle; // otherwise return back raw input angle\n}\n\nbool isAxisTitle = (axis.x == 0.0) &&\n (axis.y == 0.0) &&\n (axis.z == 0.0);\n\nvoid main() {\n //Compute world offset\n float axisDistance = position.z;\n vec3 dataPosition = axisDistance * axis + offset;\n\n float beta = angle; // i.e. user defined attributes for each tick\n\n float axisAngle;\n float clipAngle;\n float flip;\n\n if (enableAlign) {\n axisAngle = (isAxisTitle) ? HALF_PI :\n computeViewAngle(dataPosition, dataPosition + axis);\n clipAngle = computeViewAngle(dataPosition, dataPosition + alignDir);\n\n axisAngle += (sin(axisAngle) < 0.0) ? PI : 0.0;\n clipAngle += (sin(clipAngle) < 0.0) ? PI : 0.0;\n\n flip = (dot(vec2(cos(axisAngle), sin(axisAngle)),\n vec2(sin(clipAngle),-cos(clipAngle))) > 0.0) ? 1.0 : 0.0;\n\n beta += applyAlignOption(clipAngle, flip * PI);\n }\n\n //Compute plane offset\n vec2 planeCoord = position.xy * pixelScale;\n\n mat2 planeXform = scale * mat2(\n cos(beta), sin(beta),\n -sin(beta), cos(beta)\n );\n\n vec2 viewOffset = 2.0 * planeXform * planeCoord / resolution;\n\n //Compute clip position\n vec3 clipPosition = project(dataPosition);\n\n //Apply text offset in clip coordinates\n clipPosition += vec3(viewOffset, 0.0);\n\n //Done\n gl_Position = vec4(clipPosition, 1.0);\n}"]),l=n(["precision highp float;\n#define GLSLIFY 1\n\nuniform vec4 color;\nvoid main() {\n gl_FragColor = color;\n}"]);r.text=function(t){return i(t,s,l,null,[{name:"position",type:"vec3"}])};var c=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position;\nattribute vec3 normal;\n\nuniform mat4 model, view, projection;\nuniform vec3 enable;\nuniform vec3 bounds[2];\n\nvarying vec3 colorChannel;\n\nvoid main() {\n\n vec3 signAxis = sign(bounds[1] - bounds[0]);\n\n vec3 realNormal = signAxis * normal;\n\n if(dot(realNormal, enable) > 0.0) {\n vec3 minRange = min(bounds[0], bounds[1]);\n vec3 maxRange = max(bounds[0], bounds[1]);\n vec3 nPosition = mix(minRange, maxRange, 0.5 * (position + 1.0));\n gl_Position = projection * view * model * vec4(nPosition, 1.0);\n } else {\n gl_Position = vec4(0,0,0,0);\n }\n\n colorChannel = abs(realNormal);\n}"]),u=n(["precision highp float;\n#define GLSLIFY 1\n\nuniform vec4 colors[3];\n\nvarying vec3 colorChannel;\n\nvoid main() {\n gl_FragColor = colorChannel.x * colors[0] +\n colorChannel.y * colors[1] +\n colorChannel.z * colors[2];\n}"]);r.bg=function(t){return i(t,c,u,null,[{name:"position",type:"vec3"},{name:"normal",type:"vec3"}])}},{"gl-shader":335,glslify:257}],255:[function(t,e,r){(function(r){(function(){"use strict";e.exports=function(t,e,r,a,s,l){var u=n(t),f=i(t,[{buffer:u,size:3}]),h=o(t);h.attributes.position.location=0;var p=new c(t,h,u,f);return p.update(e,r,a,s,l),p};var n=t("gl-buffer"),i=t("gl-vao"),a=t("vectorize-text"),o=t("./shaders").text,s=window||r.global||{},l=s.__TEXT_CACHE||{};s.__TEXT_CACHE={};function c(t,e,r,n){this.gl=t,this.shader=e,this.buffer=r,this.vao=n,this.tickOffset=this.tickCount=this.labelOffset=this.labelCount=null}var u=c.prototype,f=[0,0];u.bind=function(t,e,r,n){this.vao.bind(),this.shader.bind();var i=this.shader.uniforms;i.model=t,i.view=e,i.projection=r,i.pixelScale=n,f[0]=this.gl.drawingBufferWidth,f[1]=this.gl.drawingBufferHeight,this.shader.uniforms.resolution=f},u.unbind=function(){this.vao.unbind()},u.update=function(t,e,r,n,i){var o=[];function s(t,e,r,n,i,s){var c=l[r];c||(c=l[r]={});var u=c[e];u||(u=c[e]=function(t,e){try{return a(t,e)}catch(e){return console.warn('error vectorizing text:"'+t+'" error:',e),{cells:[],positions:[]}}}(e,{triangles:!0,font:r,textAlign:"center",textBaseline:"middle",lineSpacing:i,styletags:s}));for(var f=(n||12)/12,h=u.positions,p=u.cells,d=0,g=p.length;d=0;--v){var y=h[m[v]];o.push(f*y[0],-f*y[1],t)}}for(var c=[0,0,0],u=[0,0,0],f=[0,0,0],h=[0,0,0],p={breaklines:!0,bolds:!0,italics:!0,subscripts:!0,superscripts:!0},d=0;d<3;++d){f[d]=o.length/3|0,s(.5*(t[0][d]+t[1][d]),e[d],r[d],12,1.25,p),h[d]=(o.length/3|0)-f[d],c[d]=o.length/3|0;for(var g=0;g=0&&(i=r.length-n-1);var a=Math.pow(10,i),o=Math.round(t*e*a),s=o+"";if(s.indexOf("e")>=0)return s;var l=o/a,c=o%a;o<0?(l=0|-Math.ceil(l),c=0|-c):(l=0|Math.floor(l),c|=0);var u=""+l;if(o<0&&(u="-"+u),i){for(var f=""+c;f.length=t[0][i];--o)a.push({x:o*e[i],text:n(e[i],o)});r.push(a)}return r},r.equal=function(t,e){for(var r=0;r<3;++r){if(t[r].length!==e[r].length)return!1;for(var n=0;nr)throw new Error("gl-buffer: If resizing buffer, must not specify offset");return t.bufferSubData(e,a,i),r}function u(t,e){for(var r=n.malloc(t.length,e),i=t.length,a=0;a=0;--n){if(e[n]!==r)return!1;r*=t[n]}return!0}(t.shape,t.stride))0===t.offset&&t.data.length===t.shape[0]?this.length=c(this.gl,this.type,this.length,this.usage,t.data,e):this.length=c(this.gl,this.type,this.length,this.usage,t.data.subarray(t.offset,t.shape[0]),e);else{var s=n.malloc(t.size,r),l=a(s,t.shape);i.assign(l,t),this.length=c(this.gl,this.type,this.length,this.usage,e<0?s:s.subarray(0,t.size),e),n.free(s)}}else if(Array.isArray(t)){var f;f=this.type===this.gl.ELEMENT_ARRAY_BUFFER?u(t,"uint16"):u(t,"float32"),this.length=c(this.gl,this.type,this.length,this.usage,e<0?f:f.subarray(0,t.length),e),n.free(f)}else if("object"==typeof t&&"number"==typeof t.length)this.length=c(this.gl,this.type,this.length,this.usage,t,e);else{if("number"!=typeof t&&void 0!==t)throw new Error("gl-buffer: Invalid data type");if(e>=0)throw new Error("gl-buffer: Cannot specify offset when resizing buffer");(t|=0)<=0&&(t=1),this.gl.bufferData(this.type,0|t,this.usage),this.length=t}},e.exports=function(t,e,r,n){if(r=r||t.ARRAY_BUFFER,n=n||t.DYNAMIC_DRAW,r!==t.ARRAY_BUFFER&&r!==t.ELEMENT_ARRAY_BUFFER)throw new Error("gl-buffer: Invalid type for webgl buffer, must be either gl.ARRAY_BUFFER or gl.ELEMENT_ARRAY_BUFFER");if(n!==t.DYNAMIC_DRAW&&n!==t.STATIC_DRAW&&n!==t.STREAM_DRAW)throw new Error("gl-buffer: Invalid usage for buffer, must be either gl.DYNAMIC_DRAW, gl.STATIC_DRAW or gl.STREAM_DRAW");var i=t.createBuffer(),a=new s(t,r,i,0,n);return a.update(e),a}},{ndarray:495,"ndarray-ops":490,"typedarray-pool":595}],260:[function(t,e,r){"use strict";var n=t("gl-vec3");e.exports=function(t,e){var r=t.positions,i=t.vectors,a={positions:[],vertexIntensity:[],vertexIntensityBounds:t.vertexIntensityBounds,vectors:[],cells:[],coneOffset:t.coneOffset,colormap:t.colormap};if(0===t.positions.length)return e&&(e[0]=[0,0,0],e[1]=[0,0,0]),a;for(var o=0,s=1/0,l=-1/0,c=1/0,u=-1/0,f=1/0,h=-1/0,p=null,d=null,g=[],m=1/0,v=!1,y=0;yo&&(o=n.length(b)),y){var _=2*n.distance(p,x)/(n.length(d)+n.length(b));_?(m=Math.min(m,_),v=!1):v=!0}v||(p=x,d=b),g.push(b)}var w=[s,c,f],T=[l,u,h];e&&(e[0]=w,e[1]=T),0===o&&(o=1);var k=1/o;isFinite(m)||(m=1),a.vectorScale=m;var M=t.coneSize||.5;t.absoluteConeSize&&(M=t.absoluteConeSize*k),a.coneScale=M;y=0;for(var A=0;y=1},p.isTransparent=function(){return this.opacity<1},p.pickSlots=1,p.setPickBase=function(t){this.pickId=t},p.update=function(t){t=t||{};var e=this.gl;this.dirty=!0,"lightPosition"in t&&(this.lightPosition=t.lightPosition),"opacity"in t&&(this.opacity=t.opacity),"ambient"in t&&(this.ambientLight=t.ambient),"diffuse"in t&&(this.diffuseLight=t.diffuse),"specular"in t&&(this.specularLight=t.specular),"roughness"in t&&(this.roughness=t.roughness),"fresnel"in t&&(this.fresnel=t.fresnel),void 0!==t.tubeScale&&(this.tubeScale=t.tubeScale),void 0!==t.vectorScale&&(this.vectorScale=t.vectorScale),void 0!==t.coneScale&&(this.coneScale=t.coneScale),void 0!==t.coneOffset&&(this.coneOffset=t.coneOffset),t.colormap&&(this.texture.shape=[256,256],this.texture.minFilter=e.LINEAR_MIPMAP_LINEAR,this.texture.magFilter=e.LINEAR,this.texture.setPixels(function(t){for(var e=u({colormap:t,nshades:256,format:"rgba"}),r=new Uint8Array(1024),n=0;n<256;++n){for(var i=e[n],a=0;a<3;++a)r[4*n+a]=i[a];r[4*n+3]=255*i[3]}return c(r,[256,256,4],[4,0,1])}(t.colormap)),this.texture.generateMipmap());var r=t.cells,n=t.positions,i=t.vectors;if(n&&r&&i){var a=[],o=[],s=[],l=[],f=[];this.cells=r,this.positions=n,this.vectors=i;var h=t.meshColor||[1,1,1,1],p=t.vertexIntensity,d=1/0,g=-1/0;if(p)if(t.vertexIntensityBounds)d=+t.vertexIntensityBounds[0],g=+t.vertexIntensityBounds[1];else for(var m=0;m0){var g=this.triShader;g.bind(),g.uniforms=c,this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()}},p.drawPick=function(t){t=t||{};for(var e=this.gl,r=t.model||f,n=t.view||f,i=t.projection||f,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);this._model=[].slice.call(r),this._view=[].slice.call(n),this._projection=[].slice.call(i),this._resolution=[e.drawingBufferWidth,e.drawingBufferHeight];var s={model:r,view:n,projection:i,clipBounds:a,tubeScale:this.tubeScale,vectorScale:this.vectorScale,coneScale:this.coneScale,coneOffset:this.coneOffset,pickId:this.pickId/255},l=this.pickShader;l.bind(),l.uniforms=s,this.triangleCount>0&&(this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind())},p.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;var e=t.value[0]+256*t.value[1]+65536*t.value[2],r=this.cells[e],n=this.positions[r[1]].slice(0,3),i={position:n,dataCoordinate:n,index:Math.floor(r[1]/48)};return"cone"===this.traceType?i.index=Math.floor(r[1]/48):"streamtube"===this.traceType&&(i.intensity=this.intensity[r[1]],i.velocity=this.vectors[r[1]].slice(0,3),i.divergence=this.vectors[r[1]][3],i.index=e),i},p.dispose=function(){this.texture.dispose(),this.triShader.dispose(),this.pickShader.dispose(),this.triangleVAO.dispose(),this.trianglePositions.dispose(),this.triangleVectors.dispose(),this.triangleColors.dispose(),this.triangleUVs.dispose(),this.triangleIds.dispose()},e.exports=function(t,e,r){var n=r.shaders;1===arguments.length&&(t=(e=t).gl);var s=d(t,n),l=g(t,n),u=o(t,c(new Uint8Array([255,255,255,255]),[1,1,4]));u.generateMipmap(),u.minFilter=t.LINEAR_MIPMAP_LINEAR,u.magFilter=t.LINEAR;var f=i(t),p=i(t),m=i(t),v=i(t),y=i(t),x=a(t,[{buffer:f,type:t.FLOAT,size:4},{buffer:y,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:m,type:t.FLOAT,size:4},{buffer:v,type:t.FLOAT,size:2},{buffer:p,type:t.FLOAT,size:4}]),b=new h(t,u,s,l,f,p,y,m,v,x,r.traceType||"cone");return b.update(e),b}},{colormap:131,"gl-buffer":259,"gl-mat4/invert":293,"gl-mat4/multiply":295,"gl-shader":335,"gl-texture2d":353,"gl-vao":358,ndarray:495}],262:[function(t,e,r){var n=t("glslify"),i=n(["precision highp float;\n\nprecision highp float;\n#define GLSLIFY 1\n\nvec3 getOrthogonalVector(vec3 v) {\n // Return up-vector for only-z vector.\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\n // Assign z = 0, x = -b, y = a:\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\n return normalize(vec3(-v.y, v.x, 0.0));\n } else {\n return normalize(vec3(0.0, v.z, -v.y));\n }\n}\n\n// Calculate the cone vertex and normal at the given index.\n//\n// The returned vertex is for a cone with its top at origin and height of 1.0,\n// pointing in the direction of the vector attribute.\n//\n// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices.\n// These vertices are used to make up the triangles of the cone by the following:\n// segment + 0 top vertex\n// segment + 1 perimeter vertex a+1\n// segment + 2 perimeter vertex a\n// segment + 3 center base vertex\n// segment + 4 perimeter vertex a\n// segment + 5 perimeter vertex a+1\n// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment.\n// To go from index to segment, floor(index / 6)\n// To go from segment to angle, 2*pi * (segment/segmentCount)\n// To go from index to segment index, index - (segment*6)\n//\nvec3 getConePosition(vec3 d, float rawIndex, float coneOffset, out vec3 normal) {\n\n const float segmentCount = 8.0;\n\n float index = rawIndex - floor(rawIndex /\n (segmentCount * 6.0)) *\n (segmentCount * 6.0);\n\n float segment = floor(0.001 + index/6.0);\n float segmentIndex = index - (segment*6.0);\n\n normal = -normalize(d);\n\n if (segmentIndex > 2.99 && segmentIndex < 3.01) {\n return mix(vec3(0.0), -d, coneOffset);\n }\n\n float nextAngle = (\n (segmentIndex > 0.99 && segmentIndex < 1.01) ||\n (segmentIndex > 4.99 && segmentIndex < 5.01)\n ) ? 1.0 : 0.0;\n float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount);\n\n vec3 v1 = mix(d, vec3(0.0), coneOffset);\n vec3 v2 = v1 - d;\n\n vec3 u = getOrthogonalVector(d);\n vec3 v = normalize(cross(u, d));\n\n vec3 x = u * cos(angle) * length(d)*0.25;\n vec3 y = v * sin(angle) * length(d)*0.25;\n vec3 v3 = v2 + x + y;\n if (segmentIndex < 3.0) {\n vec3 tx = u * sin(angle);\n vec3 ty = v * -cos(angle);\n vec3 tangent = tx + ty;\n normal = normalize(cross(v3 - v1, tangent));\n }\n\n if (segmentIndex == 0.0) {\n return mix(d, vec3(0.0), coneOffset);\n }\n return v3;\n}\n\nattribute vec3 vector;\nattribute vec4 color, position;\nattribute vec2 uv;\n\nuniform float vectorScale, coneScale, coneOffset;\nuniform mat4 model, view, projection, inverseModel;\nuniform vec3 eyePosition, lightPosition;\n\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n // Scale the vector magnitude to stay constant with\n // model & view changes.\n vec3 normal;\n vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector), position.w, coneOffset, normal);\n vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\n\n //Lighting geometry parameters\n vec4 cameraCoordinate = view * conePosition;\n cameraCoordinate.xyz /= cameraCoordinate.w;\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\n\n // vec4 m_position = model * vec4(conePosition, 1.0);\n vec4 t_position = view * conePosition;\n gl_Position = projection * t_position;\n\n f_color = color;\n f_data = conePosition.xyz;\n f_position = position.xyz;\n f_uv = uv;\n}\n"]),a=n(["#extension GL_OES_standard_derivatives : enable\n\nprecision highp float;\n#define GLSLIFY 1\n\nfloat beckmannDistribution(float x, float roughness) {\n float NdotH = max(x, 0.0001);\n float cos2Alpha = NdotH * NdotH;\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\n float roughness2 = roughness * roughness;\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\n return exp(tan2Alpha / roughness2) / denom;\n}\n\nfloat cookTorranceSpecular(\n vec3 lightDirection,\n vec3 viewDirection,\n vec3 surfaceNormal,\n float roughness,\n float fresnel) {\n\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\n\n //Half angle vector\n vec3 H = normalize(lightDirection + viewDirection);\n\n //Geometric term\n float NdotH = max(dot(surfaceNormal, H), 0.0);\n float VdotH = max(dot(viewDirection, H), 0.000001);\n float LdotH = max(dot(lightDirection, H), 0.000001);\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\n float G = min(1.0, min(G1, G2));\n \n //Distribution term\n float D = beckmannDistribution(NdotH, roughness);\n\n //Fresnel term\n float F = pow(1.0 - VdotN, fresnel);\n\n //Multiply terms and done\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\n}\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\nuniform sampler2D texture;\n\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n vec3 N = normalize(f_normal);\n vec3 L = normalize(f_lightDirection);\n vec3 V = normalize(f_eyeDirection);\n\n if(gl_FrontFacing) {\n N = -N;\n }\n\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\n\n vec4 surfaceColor = f_color * texture2D(texture, f_uv);\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\n\n gl_FragColor = litColor * opacity;\n}\n"]),o=n(["precision highp float;\n\nprecision highp float;\n#define GLSLIFY 1\n\nvec3 getOrthogonalVector(vec3 v) {\n // Return up-vector for only-z vector.\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\n // Assign z = 0, x = -b, y = a:\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\n return normalize(vec3(-v.y, v.x, 0.0));\n } else {\n return normalize(vec3(0.0, v.z, -v.y));\n }\n}\n\n// Calculate the cone vertex and normal at the given index.\n//\n// The returned vertex is for a cone with its top at origin and height of 1.0,\n// pointing in the direction of the vector attribute.\n//\n// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices.\n// These vertices are used to make up the triangles of the cone by the following:\n// segment + 0 top vertex\n// segment + 1 perimeter vertex a+1\n// segment + 2 perimeter vertex a\n// segment + 3 center base vertex\n// segment + 4 perimeter vertex a\n// segment + 5 perimeter vertex a+1\n// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment.\n// To go from index to segment, floor(index / 6)\n// To go from segment to angle, 2*pi * (segment/segmentCount)\n// To go from index to segment index, index - (segment*6)\n//\nvec3 getConePosition(vec3 d, float rawIndex, float coneOffset, out vec3 normal) {\n\n const float segmentCount = 8.0;\n\n float index = rawIndex - floor(rawIndex /\n (segmentCount * 6.0)) *\n (segmentCount * 6.0);\n\n float segment = floor(0.001 + index/6.0);\n float segmentIndex = index - (segment*6.0);\n\n normal = -normalize(d);\n\n if (segmentIndex > 2.99 && segmentIndex < 3.01) {\n return mix(vec3(0.0), -d, coneOffset);\n }\n\n float nextAngle = (\n (segmentIndex > 0.99 && segmentIndex < 1.01) ||\n (segmentIndex > 4.99 && segmentIndex < 5.01)\n ) ? 1.0 : 0.0;\n float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount);\n\n vec3 v1 = mix(d, vec3(0.0), coneOffset);\n vec3 v2 = v1 - d;\n\n vec3 u = getOrthogonalVector(d);\n vec3 v = normalize(cross(u, d));\n\n vec3 x = u * cos(angle) * length(d)*0.25;\n vec3 y = v * sin(angle) * length(d)*0.25;\n vec3 v3 = v2 + x + y;\n if (segmentIndex < 3.0) {\n vec3 tx = u * sin(angle);\n vec3 ty = v * -cos(angle);\n vec3 tangent = tx + ty;\n normal = normalize(cross(v3 - v1, tangent));\n }\n\n if (segmentIndex == 0.0) {\n return mix(d, vec3(0.0), coneOffset);\n }\n return v3;\n}\n\nattribute vec4 vector;\nattribute vec4 position;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\nuniform float vectorScale, coneScale, coneOffset;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n vec3 normal;\n vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector.xyz), position.w, coneOffset, normal);\n vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\n gl_Position = projection * view * conePosition;\n f_id = id;\n f_position = position.xyz;\n}\n"]),s=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float pickId;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n\n gl_FragColor = vec4(pickId, f_id.xyz);\n}"]);r.meshShader={vertex:i,fragment:a,attributes:[{name:"position",type:"vec4"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"},{name:"vector",type:"vec3"}]},r.pickShader={vertex:o,fragment:s,attributes:[{name:"position",type:"vec4"},{name:"id",type:"vec4"},{name:"vector",type:"vec3"}]}},{glslify:263}],263:[function(t,e,r){arguments[4][257][0].apply(r,arguments)},{dup:257}],264:[function(t,e,r){e.exports={0:"NONE",1:"ONE",2:"LINE_LOOP",3:"LINE_STRIP",4:"TRIANGLES",5:"TRIANGLE_STRIP",6:"TRIANGLE_FAN",256:"DEPTH_BUFFER_BIT",512:"NEVER",513:"LESS",514:"EQUAL",515:"LEQUAL",516:"GREATER",517:"NOTEQUAL",518:"GEQUAL",519:"ALWAYS",768:"SRC_COLOR",769:"ONE_MINUS_SRC_COLOR",770:"SRC_ALPHA",771:"ONE_MINUS_SRC_ALPHA",772:"DST_ALPHA",773:"ONE_MINUS_DST_ALPHA",774:"DST_COLOR",775:"ONE_MINUS_DST_COLOR",776:"SRC_ALPHA_SATURATE",1024:"STENCIL_BUFFER_BIT",1028:"FRONT",1029:"BACK",1032:"FRONT_AND_BACK",1280:"INVALID_ENUM",1281:"INVALID_VALUE",1282:"INVALID_OPERATION",1285:"OUT_OF_MEMORY",1286:"INVALID_FRAMEBUFFER_OPERATION",2304:"CW",2305:"CCW",2849:"LINE_WIDTH",2884:"CULL_FACE",2885:"CULL_FACE_MODE",2886:"FRONT_FACE",2928:"DEPTH_RANGE",2929:"DEPTH_TEST",2930:"DEPTH_WRITEMASK",2931:"DEPTH_CLEAR_VALUE",2932:"DEPTH_FUNC",2960:"STENCIL_TEST",2961:"STENCIL_CLEAR_VALUE",2962:"STENCIL_FUNC",2963:"STENCIL_VALUE_MASK",2964:"STENCIL_FAIL",2965:"STENCIL_PASS_DEPTH_FAIL",2966:"STENCIL_PASS_DEPTH_PASS",2967:"STENCIL_REF",2968:"STENCIL_WRITEMASK",2978:"VIEWPORT",3024:"DITHER",3042:"BLEND",3088:"SCISSOR_BOX",3089:"SCISSOR_TEST",3106:"COLOR_CLEAR_VALUE",3107:"COLOR_WRITEMASK",3317:"UNPACK_ALIGNMENT",3333:"PACK_ALIGNMENT",3379:"MAX_TEXTURE_SIZE",3386:"MAX_VIEWPORT_DIMS",3408:"SUBPIXEL_BITS",3410:"RED_BITS",3411:"GREEN_BITS",3412:"BLUE_BITS",3413:"ALPHA_BITS",3414:"DEPTH_BITS",3415:"STENCIL_BITS",3553:"TEXTURE_2D",4352:"DONT_CARE",4353:"FASTEST",4354:"NICEST",5120:"BYTE",5121:"UNSIGNED_BYTE",5122:"SHORT",5123:"UNSIGNED_SHORT",5124:"INT",5125:"UNSIGNED_INT",5126:"FLOAT",5386:"INVERT",5890:"TEXTURE",6401:"STENCIL_INDEX",6402:"DEPTH_COMPONENT",6406:"ALPHA",6407:"RGB",6408:"RGBA",6409:"LUMINANCE",6410:"LUMINANCE_ALPHA",7680:"KEEP",7681:"REPLACE",7682:"INCR",7683:"DECR",7936:"VENDOR",7937:"RENDERER",7938:"VERSION",9728:"NEAREST",9729:"LINEAR",9984:"NEAREST_MIPMAP_NEAREST",9985:"LINEAR_MIPMAP_NEAREST",9986:"NEAREST_MIPMAP_LINEAR",9987:"LINEAR_MIPMAP_LINEAR",10240:"TEXTURE_MAG_FILTER",10241:"TEXTURE_MIN_FILTER",10242:"TEXTURE_WRAP_S",10243:"TEXTURE_WRAP_T",10497:"REPEAT",10752:"POLYGON_OFFSET_UNITS",16384:"COLOR_BUFFER_BIT",32769:"CONSTANT_COLOR",32770:"ONE_MINUS_CONSTANT_COLOR",32771:"CONSTANT_ALPHA",32772:"ONE_MINUS_CONSTANT_ALPHA",32773:"BLEND_COLOR",32774:"FUNC_ADD",32777:"BLEND_EQUATION_RGB",32778:"FUNC_SUBTRACT",32779:"FUNC_REVERSE_SUBTRACT",32819:"UNSIGNED_SHORT_4_4_4_4",32820:"UNSIGNED_SHORT_5_5_5_1",32823:"POLYGON_OFFSET_FILL",32824:"POLYGON_OFFSET_FACTOR",32854:"RGBA4",32855:"RGB5_A1",32873:"TEXTURE_BINDING_2D",32926:"SAMPLE_ALPHA_TO_COVERAGE",32928:"SAMPLE_COVERAGE",32936:"SAMPLE_BUFFERS",32937:"SAMPLES",32938:"SAMPLE_COVERAGE_VALUE",32939:"SAMPLE_COVERAGE_INVERT",32968:"BLEND_DST_RGB",32969:"BLEND_SRC_RGB",32970:"BLEND_DST_ALPHA",32971:"BLEND_SRC_ALPHA",33071:"CLAMP_TO_EDGE",33170:"GENERATE_MIPMAP_HINT",33189:"DEPTH_COMPONENT16",33306:"DEPTH_STENCIL_ATTACHMENT",33635:"UNSIGNED_SHORT_5_6_5",33648:"MIRRORED_REPEAT",33901:"ALIASED_POINT_SIZE_RANGE",33902:"ALIASED_LINE_WIDTH_RANGE",33984:"TEXTURE0",33985:"TEXTURE1",33986:"TEXTURE2",33987:"TEXTURE3",33988:"TEXTURE4",33989:"TEXTURE5",33990:"TEXTURE6",33991:"TEXTURE7",33992:"TEXTURE8",33993:"TEXTURE9",33994:"TEXTURE10",33995:"TEXTURE11",33996:"TEXTURE12",33997:"TEXTURE13",33998:"TEXTURE14",33999:"TEXTURE15",34e3:"TEXTURE16",34001:"TEXTURE17",34002:"TEXTURE18",34003:"TEXTURE19",34004:"TEXTURE20",34005:"TEXTURE21",34006:"TEXTURE22",34007:"TEXTURE23",34008:"TEXTURE24",34009:"TEXTURE25",34010:"TEXTURE26",34011:"TEXTURE27",34012:"TEXTURE28",34013:"TEXTURE29",34014:"TEXTURE30",34015:"TEXTURE31",34016:"ACTIVE_TEXTURE",34024:"MAX_RENDERBUFFER_SIZE",34041:"DEPTH_STENCIL",34055:"INCR_WRAP",34056:"DECR_WRAP",34067:"TEXTURE_CUBE_MAP",34068:"TEXTURE_BINDING_CUBE_MAP",34069:"TEXTURE_CUBE_MAP_POSITIVE_X",34070:"TEXTURE_CUBE_MAP_NEGATIVE_X",34071:"TEXTURE_CUBE_MAP_POSITIVE_Y",34072:"TEXTURE_CUBE_MAP_NEGATIVE_Y",34073:"TEXTURE_CUBE_MAP_POSITIVE_Z",34074:"TEXTURE_CUBE_MAP_NEGATIVE_Z",34076:"MAX_CUBE_MAP_TEXTURE_SIZE",34338:"VERTEX_ATTRIB_ARRAY_ENABLED",34339:"VERTEX_ATTRIB_ARRAY_SIZE",34340:"VERTEX_ATTRIB_ARRAY_STRIDE",34341:"VERTEX_ATTRIB_ARRAY_TYPE",34342:"CURRENT_VERTEX_ATTRIB",34373:"VERTEX_ATTRIB_ARRAY_POINTER",34466:"NUM_COMPRESSED_TEXTURE_FORMATS",34467:"COMPRESSED_TEXTURE_FORMATS",34660:"BUFFER_SIZE",34661:"BUFFER_USAGE",34816:"STENCIL_BACK_FUNC",34817:"STENCIL_BACK_FAIL",34818:"STENCIL_BACK_PASS_DEPTH_FAIL",34819:"STENCIL_BACK_PASS_DEPTH_PASS",34877:"BLEND_EQUATION_ALPHA",34921:"MAX_VERTEX_ATTRIBS",34922:"VERTEX_ATTRIB_ARRAY_NORMALIZED",34930:"MAX_TEXTURE_IMAGE_UNITS",34962:"ARRAY_BUFFER",34963:"ELEMENT_ARRAY_BUFFER",34964:"ARRAY_BUFFER_BINDING",34965:"ELEMENT_ARRAY_BUFFER_BINDING",34975:"VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",35040:"STREAM_DRAW",35044:"STATIC_DRAW",35048:"DYNAMIC_DRAW",35632:"FRAGMENT_SHADER",35633:"VERTEX_SHADER",35660:"MAX_VERTEX_TEXTURE_IMAGE_UNITS",35661:"MAX_COMBINED_TEXTURE_IMAGE_UNITS",35663:"SHADER_TYPE",35664:"FLOAT_VEC2",35665:"FLOAT_VEC3",35666:"FLOAT_VEC4",35667:"INT_VEC2",35668:"INT_VEC3",35669:"INT_VEC4",35670:"BOOL",35671:"BOOL_VEC2",35672:"BOOL_VEC3",35673:"BOOL_VEC4",35674:"FLOAT_MAT2",35675:"FLOAT_MAT3",35676:"FLOAT_MAT4",35678:"SAMPLER_2D",35680:"SAMPLER_CUBE",35712:"DELETE_STATUS",35713:"COMPILE_STATUS",35714:"LINK_STATUS",35715:"VALIDATE_STATUS",35716:"INFO_LOG_LENGTH",35717:"ATTACHED_SHADERS",35718:"ACTIVE_UNIFORMS",35719:"ACTIVE_UNIFORM_MAX_LENGTH",35720:"SHADER_SOURCE_LENGTH",35721:"ACTIVE_ATTRIBUTES",35722:"ACTIVE_ATTRIBUTE_MAX_LENGTH",35724:"SHADING_LANGUAGE_VERSION",35725:"CURRENT_PROGRAM",36003:"STENCIL_BACK_REF",36004:"STENCIL_BACK_VALUE_MASK",36005:"STENCIL_BACK_WRITEMASK",36006:"FRAMEBUFFER_BINDING",36007:"RENDERBUFFER_BINDING",36048:"FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",36049:"FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",36050:"FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",36051:"FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",36053:"FRAMEBUFFER_COMPLETE",36054:"FRAMEBUFFER_INCOMPLETE_ATTACHMENT",36055:"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",36057:"FRAMEBUFFER_INCOMPLETE_DIMENSIONS",36061:"FRAMEBUFFER_UNSUPPORTED",36064:"COLOR_ATTACHMENT0",36096:"DEPTH_ATTACHMENT",36128:"STENCIL_ATTACHMENT",36160:"FRAMEBUFFER",36161:"RENDERBUFFER",36162:"RENDERBUFFER_WIDTH",36163:"RENDERBUFFER_HEIGHT",36164:"RENDERBUFFER_INTERNAL_FORMAT",36168:"STENCIL_INDEX8",36176:"RENDERBUFFER_RED_SIZE",36177:"RENDERBUFFER_GREEN_SIZE",36178:"RENDERBUFFER_BLUE_SIZE",36179:"RENDERBUFFER_ALPHA_SIZE",36180:"RENDERBUFFER_DEPTH_SIZE",36181:"RENDERBUFFER_STENCIL_SIZE",36194:"RGB565",36336:"LOW_FLOAT",36337:"MEDIUM_FLOAT",36338:"HIGH_FLOAT",36339:"LOW_INT",36340:"MEDIUM_INT",36341:"HIGH_INT",36346:"SHADER_COMPILER",36347:"MAX_VERTEX_UNIFORM_VECTORS",36348:"MAX_VARYING_VECTORS",36349:"MAX_FRAGMENT_UNIFORM_VECTORS",37440:"UNPACK_FLIP_Y_WEBGL",37441:"UNPACK_PREMULTIPLY_ALPHA_WEBGL",37442:"CONTEXT_LOST_WEBGL",37443:"UNPACK_COLORSPACE_CONVERSION_WEBGL",37444:"BROWSER_DEFAULT_WEBGL"}},{}],265:[function(t,e,r){var n=t("./1.0/numbers");e.exports=function(t){return n[t]}},{"./1.0/numbers":264}],266:[function(t,e,r){"use strict";e.exports=function(t){var e=t.gl,r=n(e),o=i(e,[{buffer:r,type:e.FLOAT,size:3,offset:0,stride:40},{buffer:r,type:e.FLOAT,size:4,offset:12,stride:40},{buffer:r,type:e.FLOAT,size:3,offset:28,stride:40}]),l=a(e);l.attributes.position.location=0,l.attributes.color.location=1,l.attributes.offset.location=2;var c=new s(e,r,o,l);return c.update(t),c};var n=t("gl-buffer"),i=t("gl-vao"),a=t("./shaders/index"),o=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function s(t,e,r,n){this.gl=t,this.shader=n,this.buffer=e,this.vao=r,this.pixelRatio=1,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.lineWidth=[1,1,1],this.capSize=[10,10,10],this.lineCount=[0,0,0],this.lineOffset=[0,0,0],this.opacity=1,this.hasAlpha=!1}var l=s.prototype;function c(t,e){for(var r=0;r<3;++r)t[0][r]=Math.min(t[0][r],e[r]),t[1][r]=Math.max(t[1][r],e[r])}l.isOpaque=function(){return!this.hasAlpha},l.isTransparent=function(){return this.hasAlpha},l.drawTransparent=l.draw=function(t){var e=this.gl,r=this.shader.uniforms;this.shader.bind();var n=r.view=t.view||o,i=r.projection=t.projection||o;r.model=t.model||o,r.clipBounds=this.clipBounds,r.opacity=this.opacity;var a=n[12],s=n[13],l=n[14],c=n[15],u=(t._ortho||!1?2:1)*this.pixelRatio*(i[3]*a+i[7]*s+i[11]*l+i[15]*c)/e.drawingBufferHeight;this.vao.bind();for(var f=0;f<3;++f)e.lineWidth(this.lineWidth[f]*this.pixelRatio),r.capSize=this.capSize[f]*u,this.lineCount[f]&&e.drawArrays(e.LINES,this.lineOffset[f],this.lineCount[f]);this.vao.unbind()};var u=function(){for(var t=new Array(3),e=0;e<3;++e){for(var r=[],n=1;n<=2;++n)for(var i=-1;i<=1;i+=2){var a=[0,0,0];a[(n+e)%3]=i,r.push(a)}t[e]=r}return t}();function f(t,e,r,n){for(var i=u[n],a=0;a0)(g=u.slice())[s]+=p[1][s],i.push(u[0],u[1],u[2],d[0],d[1],d[2],d[3],0,0,0,g[0],g[1],g[2],d[0],d[1],d[2],d[3],0,0,0),c(this.bounds,g),o+=2+f(i,g,d,s)}}this.lineCount[s]=o-this.lineOffset[s]}this.buffer.update(i)}},l.dispose=function(){this.shader.dispose(),this.buffer.dispose(),this.vao.dispose()}},{"./shaders/index":268,"gl-buffer":259,"gl-vao":358}],267:[function(t,e,r){arguments[4][257][0].apply(r,arguments)},{dup:257}],268:[function(t,e,r){"use strict";var n=t("glslify"),i=t("gl-shader"),a=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position, offset;\nattribute vec4 color;\nuniform mat4 model, view, projection;\nuniform float capSize;\nvarying vec4 fragColor;\nvarying vec3 fragPosition;\n\nvoid main() {\n vec4 worldPosition = model * vec4(position, 1.0);\n worldPosition = (worldPosition / worldPosition.w) + vec4(capSize * offset, 0.0);\n gl_Position = projection * view * worldPosition;\n fragColor = color;\n fragPosition = position;\n}"]),o=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float opacity;\nvarying vec3 fragPosition;\nvarying vec4 fragColor;\n\nvoid main() {\n if (\n outOfRange(clipBounds[0], clipBounds[1], fragPosition) ||\n fragColor.a * opacity == 0.\n ) discard;\n\n gl_FragColor = opacity * fragColor;\n}"]);e.exports=function(t){return i(t,a,o,null,[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"offset",type:"vec3"}])}},{"gl-shader":335,glslify:267}],269:[function(t,e,r){"use strict";var n=t("gl-texture2d");e.exports=function(t,e,r,n){i||(i=t.FRAMEBUFFER_UNSUPPORTED,a=t.FRAMEBUFFER_INCOMPLETE_ATTACHMENT,o=t.FRAMEBUFFER_INCOMPLETE_DIMENSIONS,s=t.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT);var c=t.getExtension("WEBGL_draw_buffers");!l&&c&&function(t,e){var r=t.getParameter(e.MAX_COLOR_ATTACHMENTS_WEBGL);l=new Array(r+1);for(var n=0;n<=r;++n){for(var i=new Array(r),a=0;au||r<0||r>u)throw new Error("gl-fbo: Parameters are too large for FBO");var f=1;if("color"in(n=n||{})){if((f=Math.max(0|n.color,0))<0)throw new Error("gl-fbo: Must specify a nonnegative number of colors");if(f>1){if(!c)throw new Error("gl-fbo: Multiple draw buffer extension not supported");if(f>t.getParameter(c.MAX_COLOR_ATTACHMENTS_WEBGL))throw new Error("gl-fbo: Context does not support "+f+" draw buffers")}}var h=t.UNSIGNED_BYTE,p=t.getExtension("OES_texture_float");if(n.float&&f>0){if(!p)throw new Error("gl-fbo: Context does not support floating point textures");h=t.FLOAT}else n.preferFloat&&f>0&&p&&(h=t.FLOAT);var g=!0;"depth"in n&&(g=!!n.depth);var m=!1;"stencil"in n&&(m=!!n.stencil);return new d(t,e,r,h,f,g,m,c)};var i,a,o,s,l=null;function c(t){return[t.getParameter(t.FRAMEBUFFER_BINDING),t.getParameter(t.RENDERBUFFER_BINDING),t.getParameter(t.TEXTURE_BINDING_2D)]}function u(t,e){t.bindFramebuffer(t.FRAMEBUFFER,e[0]),t.bindRenderbuffer(t.RENDERBUFFER,e[1]),t.bindTexture(t.TEXTURE_2D,e[2])}function f(t){switch(t){case i:throw new Error("gl-fbo: Framebuffer unsupported");case a:throw new Error("gl-fbo: Framebuffer incomplete attachment");case o:throw new Error("gl-fbo: Framebuffer incomplete dimensions");case s:throw new Error("gl-fbo: Framebuffer incomplete missing attachment");default:throw new Error("gl-fbo: Framebuffer failed for unspecified reason")}}function h(t,e,r,i,a,o){if(!i)return null;var s=n(t,e,r,a,i);return s.magFilter=t.NEAREST,s.minFilter=t.NEAREST,s.mipSamples=1,s.bind(),t.framebufferTexture2D(t.FRAMEBUFFER,o,t.TEXTURE_2D,s.handle,0),s}function p(t,e,r,n,i){var a=t.createRenderbuffer();return t.bindRenderbuffer(t.RENDERBUFFER,a),t.renderbufferStorage(t.RENDERBUFFER,n,e,r),t.framebufferRenderbuffer(t.FRAMEBUFFER,i,t.RENDERBUFFER,a),a}function d(t,e,r,n,i,a,o,s){this.gl=t,this._shape=[0|e,0|r],this._destroyed=!1,this._ext=s,this.color=new Array(i);for(var d=0;d1&&s.drawBuffersWEBGL(l[o]);var y=r.getExtension("WEBGL_depth_texture");y?d?t.depth=h(r,i,a,y.UNSIGNED_INT_24_8_WEBGL,r.DEPTH_STENCIL,r.DEPTH_STENCIL_ATTACHMENT):g&&(t.depth=h(r,i,a,r.UNSIGNED_SHORT,r.DEPTH_COMPONENT,r.DEPTH_ATTACHMENT)):g&&d?t._depth_rb=p(r,i,a,r.DEPTH_STENCIL,r.DEPTH_STENCIL_ATTACHMENT):g?t._depth_rb=p(r,i,a,r.DEPTH_COMPONENT16,r.DEPTH_ATTACHMENT):d&&(t._depth_rb=p(r,i,a,r.STENCIL_INDEX,r.STENCIL_ATTACHMENT));var x=r.checkFramebufferStatus(r.FRAMEBUFFER);if(x!==r.FRAMEBUFFER_COMPLETE){t._destroyed=!0,r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteFramebuffer(t.handle),t.handle=null,t.depth&&(t.depth.dispose(),t.depth=null),t._depth_rb&&(r.deleteRenderbuffer(t._depth_rb),t._depth_rb=null);for(v=0;vi||r<0||r>i)throw new Error("gl-fbo: Can't resize FBO, invalid dimensions");t._shape[0]=e,t._shape[1]=r;for(var a=c(n),o=0;o>8*p&255;this.pickOffset=r,i.bind();var d=i.uniforms;d.viewTransform=t,d.pickOffset=e,d.shape=this.shape;var g=i.attributes;return this.positionBuffer.bind(),g.position.pointer(),this.weightBuffer.bind(),g.weight.pointer(s.UNSIGNED_BYTE,!1),this.idBuffer.bind(),g.pickId.pointer(s.UNSIGNED_BYTE,!1),s.drawArrays(s.TRIANGLES,0,o),r+this.shape[0]*this.shape[1]}}}(),f.pick=function(t,e,r){var n=this.pickOffset,i=this.shape[0]*this.shape[1];if(r=n+i)return null;var a=r-n,o=this.xData,s=this.yData;return{object:this,pointId:a,dataCoord:[o[a%this.shape[0]],s[a/this.shape[0]|0]]}},f.update=function(t){var e=(t=t||{}).shape||[0,0],r=t.x||i(e[0]),o=t.y||i(e[1]),s=t.z||new Float32Array(e[0]*e[1]),l=!1!==t.zsmooth;this.xData=r,this.yData=o;var c,u,f,p,d=t.colorLevels||[0],g=t.colorValues||[0,0,0,1],m=d.length,v=this.bounds;l?(c=v[0]=r[0],u=v[1]=o[0],f=v[2]=r[r.length-1],p=v[3]=o[o.length-1]):(c=v[0]=r[0]+(r[1]-r[0])/2,u=v[1]=o[0]+(o[1]-o[0])/2,f=v[2]=r[r.length-1]+(r[r.length-1]-r[r.length-2])/2,p=v[3]=o[o.length-1]+(o[o.length-1]-o[o.length-2])/2);var y=1/(f-c),x=1/(p-u),b=e[0],_=e[1];this.shape=[b,_];var w=(l?(b-1)*(_-1):b*_)*(h.length>>>1);this.numVertices=w;for(var T=a.mallocUint8(4*w),k=a.mallocFloat32(2*w),M=a.mallocUint8(2*w),A=a.mallocUint32(w),S=0,E=l?b-1:b,C=l?_-1:_,L=0;L max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform sampler2D dashTexture;\nuniform float dashScale;\nuniform float opacity;\n\nvarying vec3 worldPosition;\nvarying float pixelArcLength;\nvarying vec4 fragColor;\n\nvoid main() {\n if (\n outOfRange(clipBounds[0], clipBounds[1], worldPosition) ||\n fragColor.a * opacity == 0.\n ) discard;\n\n float dashWeight = texture2D(dashTexture, vec2(dashScale * pixelArcLength, 0)).r;\n if(dashWeight < 0.5) {\n discard;\n }\n gl_FragColor = fragColor * opacity;\n}\n"]),s=n(["precision highp float;\n#define GLSLIFY 1\n\n#define FLOAT_MAX 1.70141184e38\n#define FLOAT_MIN 1.17549435e-38\n\n// https://github.com/mikolalysenko/glsl-read-float/blob/master/index.glsl\nvec4 packFloat(float v) {\n float av = abs(v);\n\n //Handle special cases\n if(av < FLOAT_MIN) {\n return vec4(0.0, 0.0, 0.0, 0.0);\n } else if(v > FLOAT_MAX) {\n return vec4(127.0, 128.0, 0.0, 0.0) / 255.0;\n } else if(v < -FLOAT_MAX) {\n return vec4(255.0, 128.0, 0.0, 0.0) / 255.0;\n }\n\n vec4 c = vec4(0,0,0,0);\n\n //Compute exponent and mantissa\n float e = floor(log2(av));\n float m = av * pow(2.0, -e) - 1.0;\n\n //Unpack mantissa\n c[1] = floor(128.0 * m);\n m -= c[1] / 128.0;\n c[2] = floor(32768.0 * m);\n m -= c[2] / 32768.0;\n c[3] = floor(8388608.0 * m);\n\n //Unpack exponent\n float ebias = e + 127.0;\n c[0] = floor(ebias / 2.0);\n ebias -= c[0] * 2.0;\n c[1] += floor(ebias) * 128.0;\n\n //Unpack sign bit\n c[0] += 128.0 * step(0.0, -v);\n\n //Scale back to range\n return c / 255.0;\n}\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform float pickId;\nuniform vec3 clipBounds[2];\n\nvarying vec3 worldPosition;\nvarying float pixelArcLength;\nvarying vec4 fragColor;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], worldPosition)) discard;\n\n gl_FragColor = vec4(pickId/255.0, packFloat(pixelArcLength).xyz);\n}"]),l=[{name:"position",type:"vec3"},{name:"nextPosition",type:"vec3"},{name:"arcLength",type:"float"},{name:"lineWidth",type:"float"},{name:"color",type:"vec4"}];r.createShader=function(t){return i(t,a,o,null,l)},r.createPickShader=function(t){return i(t,a,s,null,l)}},{"gl-shader":335,glslify:276}],275:[function(t,e,r){"use strict";e.exports=function(t){var e=t.gl||t.scene&&t.scene.gl,r=f(e);r.attributes.position.location=0,r.attributes.nextPosition.location=1,r.attributes.arcLength.location=2,r.attributes.lineWidth.location=3,r.attributes.color.location=4;var o=h(e);o.attributes.position.location=0,o.attributes.nextPosition.location=1,o.attributes.arcLength.location=2,o.attributes.lineWidth.location=3,o.attributes.color.location=4;for(var s=n(e),l=i(e,[{buffer:s,size:3,offset:0,stride:48},{buffer:s,size:3,offset:12,stride:48},{buffer:s,size:1,offset:24,stride:48},{buffer:s,size:1,offset:28,stride:48},{buffer:s,size:4,offset:32,stride:48}]),u=c(new Array(1024),[256,1,4]),p=0;p<1024;++p)u.data[p]=255;var d=a(e,u);d.wrap=e.REPEAT;var g=new v(e,r,o,s,l,d);return g.update(t),g};var n=t("gl-buffer"),i=t("gl-vao"),a=t("gl-texture2d"),o=new Uint8Array(4),s=new Float32Array(o.buffer);var l=t("binary-search-bounds"),c=t("ndarray"),u=t("./lib/shaders"),f=u.createShader,h=u.createPickShader,p=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function d(t,e){for(var r=0,n=0;n<3;++n){var i=t[n]-e[n];r+=i*i}return Math.sqrt(r)}function g(t){for(var e=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],r=0;r<3;++r)e[0][r]=Math.max(t[0][r],e[0][r]),e[1][r]=Math.min(t[1][r],e[1][r]);return e}function m(t,e,r,n){this.arcLength=t,this.position=e,this.index=r,this.dataCoordinate=n}function v(t,e,r,n,i,a){this.gl=t,this.shader=e,this.pickShader=r,this.buffer=n,this.vao=i,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.points=[],this.arcLength=[],this.vertexCount=0,this.bounds=[[0,0,0],[0,0,0]],this.pickId=0,this.lineWidth=1,this.texture=a,this.dashScale=1,this.opacity=1,this.hasAlpha=!1,this.dirty=!0,this.pixelRatio=1}var y=v.prototype;y.isTransparent=function(){return this.hasAlpha},y.isOpaque=function(){return!this.hasAlpha},y.pickSlots=1,y.setPickBase=function(t){this.pickId=t},y.drawTransparent=y.draw=function(t){if(this.vertexCount){var e=this.gl,r=this.shader,n=this.vao;r.bind(),r.uniforms={model:t.model||p,view:t.view||p,projection:t.projection||p,clipBounds:g(this.clipBounds),dashTexture:this.texture.bind(),dashScale:this.dashScale/this.arcLength[this.arcLength.length-1],opacity:this.opacity,screenShape:[e.drawingBufferWidth,e.drawingBufferHeight],pixelRatio:this.pixelRatio},n.bind(),n.draw(e.TRIANGLE_STRIP,this.vertexCount),n.unbind()}},y.drawPick=function(t){if(this.vertexCount){var e=this.gl,r=this.pickShader,n=this.vao;r.bind(),r.uniforms={model:t.model||p,view:t.view||p,projection:t.projection||p,pickId:this.pickId,clipBounds:g(this.clipBounds),screenShape:[e.drawingBufferWidth,e.drawingBufferHeight],pixelRatio:this.pixelRatio},n.bind(),n.draw(e.TRIANGLE_STRIP,this.vertexCount),n.unbind()}},y.update=function(t){var e,r;this.dirty=!0;var n=!!t.connectGaps;"dashScale"in t&&(this.dashScale=t.dashScale),this.hasAlpha=!1,"opacity"in t&&(this.opacity=+t.opacity,this.opacity<1&&(this.hasAlpha=!0));var i=[],a=[],o=[],s=0,u=0,f=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],h=t.position||t.positions;if(h){var p=t.color||t.colors||[0,0,0,1],g=t.lineWidth||1,m=!1;t:for(e=1;e0){for(var w=0;w<24;++w)i.push(i[i.length-12]);u+=2,m=!0}continue t}f[0][r]=Math.min(f[0][r],b[r],_[r]),f[1][r]=Math.max(f[1][r],b[r],_[r])}Array.isArray(p[0])?(v=p.length>e-1?p[e-1]:p.length>0?p[p.length-1]:[0,0,0,1],y=p.length>e?p[e]:p.length>0?p[p.length-1]:[0,0,0,1]):v=y=p,3===v.length&&(v=[v[0],v[1],v[2],1]),3===y.length&&(y=[y[0],y[1],y[2],1]),!this.hasAlpha&&v[3]<1&&(this.hasAlpha=!0),x=Array.isArray(g)?g.length>e-1?g[e-1]:g.length>0?g[g.length-1]:[0,0,0,1]:g;var T=s;if(s+=d(b,_),m){for(r=0;r<2;++r)i.push(b[0],b[1],b[2],_[0],_[1],_[2],T,x,v[0],v[1],v[2],v[3]);u+=2,m=!1}i.push(b[0],b[1],b[2],_[0],_[1],_[2],T,x,v[0],v[1],v[2],v[3],b[0],b[1],b[2],_[0],_[1],_[2],T,-x,v[0],v[1],v[2],v[3],_[0],_[1],_[2],b[0],b[1],b[2],s,-x,y[0],y[1],y[2],y[3],_[0],_[1],_[2],b[0],b[1],b[2],s,x,y[0],y[1],y[2],y[3]),u+=4}}if(this.buffer.update(i),a.push(s),o.push(h[h.length-1].slice()),this.bounds=f,this.vertexCount=u,this.points=o,this.arcLength=a,"dashes"in t){var k=t.dashes.slice();for(k.unshift(0),e=1;e1.0001)return null;v+=m[f]}if(Math.abs(v-1)>.001)return null;return[h,s(t,m),m]}},{barycentric:78,"polytope-closest-point/lib/closest_point_2d.js":525}],308:[function(t,e,r){var n=t("glslify"),i=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position, normal;\nattribute vec4 color;\nattribute vec2 uv;\n\nuniform mat4 model\n , view\n , projection\n , inverseModel;\nuniform vec3 eyePosition\n , lightPosition;\n\nvarying vec3 f_normal\n , f_lightDirection\n , f_eyeDirection\n , f_data;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvec4 project(vec3 p) {\n return projection * view * model * vec4(p, 1.0);\n}\n\nvoid main() {\n gl_Position = project(position);\n\n //Lighting geometry parameters\n vec4 cameraCoordinate = view * vec4(position , 1.0);\n cameraCoordinate.xyz /= cameraCoordinate.w;\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\n\n f_color = color;\n f_data = position;\n f_uv = uv;\n}\n"]),a=n(["#extension GL_OES_standard_derivatives : enable\n\nprecision highp float;\n#define GLSLIFY 1\n\nfloat beckmannDistribution(float x, float roughness) {\n float NdotH = max(x, 0.0001);\n float cos2Alpha = NdotH * NdotH;\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\n float roughness2 = roughness * roughness;\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\n return exp(tan2Alpha / roughness2) / denom;\n}\n\nfloat cookTorranceSpecular(\n vec3 lightDirection,\n vec3 viewDirection,\n vec3 surfaceNormal,\n float roughness,\n float fresnel) {\n\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\n\n //Half angle vector\n vec3 H = normalize(lightDirection + viewDirection);\n\n //Geometric term\n float NdotH = max(dot(surfaceNormal, H), 0.0);\n float VdotH = max(dot(viewDirection, H), 0.000001);\n float LdotH = max(dot(lightDirection, H), 0.000001);\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\n float G = min(1.0, min(G1, G2));\n \n //Distribution term\n float D = beckmannDistribution(NdotH, roughness);\n\n //Fresnel term\n float F = pow(1.0 - VdotN, fresnel);\n\n //Multiply terms and done\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\n}\n\n//#pragma glslify: beckmann = require(glsl-specular-beckmann) // used in gl-surface3d\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float roughness\n , fresnel\n , kambient\n , kdiffuse\n , kspecular;\nuniform sampler2D texture;\n\nvarying vec3 f_normal\n , f_lightDirection\n , f_eyeDirection\n , f_data;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n if (f_color.a == 0.0 ||\n outOfRange(clipBounds[0], clipBounds[1], f_data)\n ) discard;\n\n vec3 N = normalize(f_normal);\n vec3 L = normalize(f_lightDirection);\n vec3 V = normalize(f_eyeDirection);\n\n if(gl_FrontFacing) {\n N = -N;\n }\n\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\n //float specular = max(0.0, beckmann(L, V, N, roughness)); // used in gl-surface3d\n\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\n\n vec4 surfaceColor = vec4(f_color.rgb, 1.0) * texture2D(texture, f_uv);\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\n\n gl_FragColor = litColor * f_color.a;\n}\n"]),o=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 uv;\n\nuniform mat4 model, view, projection;\n\nvarying vec4 f_color;\nvarying vec3 f_data;\nvarying vec2 f_uv;\n\nvoid main() {\n gl_Position = projection * view * model * vec4(position, 1.0);\n f_color = color;\n f_data = position;\n f_uv = uv;\n}"]),s=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform sampler2D texture;\nuniform float opacity;\n\nvarying vec4 f_color;\nvarying vec3 f_data;\nvarying vec2 f_uv;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_data)) discard;\n\n gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\n}"]),l=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 uv;\nattribute float pointSize;\n\nuniform mat4 model, view, projection;\nuniform vec3 clipBounds[2];\n\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n gl_Position = vec4(0.0, 0.0 ,0.0 ,0.0);\n } else {\n gl_Position = projection * view * model * vec4(position, 1.0);\n }\n gl_PointSize = pointSize;\n f_color = color;\n f_uv = uv;\n}"]),c=n(["precision highp float;\n#define GLSLIFY 1\n\nuniform sampler2D texture;\nuniform float opacity;\n\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n vec2 pointR = gl_PointCoord.xy - vec2(0.5, 0.5);\n if(dot(pointR, pointR) > 0.25) {\n discard;\n }\n gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\n}"]),u=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n gl_Position = projection * view * model * vec4(position, 1.0);\n f_id = id;\n f_position = position;\n}"]),f=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float pickId;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n\n gl_FragColor = vec4(pickId, f_id.xyz);\n}"]),h=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute float pointSize;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\nuniform vec3 clipBounds[2];\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n gl_Position = vec4(0.0, 0.0, 0.0, 0.0);\n } else {\n gl_Position = projection * view * model * vec4(position, 1.0);\n gl_PointSize = pointSize;\n }\n f_id = id;\n f_position = position;\n}"]),p=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position;\n\nuniform mat4 model, view, projection;\n\nvoid main() {\n gl_Position = projection * view * model * vec4(position, 1.0);\n}"]),d=n(["precision highp float;\n#define GLSLIFY 1\n\nuniform vec3 contourColor;\n\nvoid main() {\n gl_FragColor = vec4(contourColor, 1.0);\n}\n"]);r.meshShader={vertex:i,fragment:a,attributes:[{name:"position",type:"vec3"},{name:"normal",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"}]},r.wireShader={vertex:o,fragment:s,attributes:[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"}]},r.pointShader={vertex:l,fragment:c,attributes:[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"},{name:"pointSize",type:"float"}]},r.pickShader={vertex:u,fragment:f,attributes:[{name:"position",type:"vec3"},{name:"id",type:"vec4"}]},r.pointPickShader={vertex:h,fragment:f,attributes:[{name:"position",type:"vec3"},{name:"pointSize",type:"float"},{name:"id",type:"vec4"}]},r.contourShader={vertex:p,fragment:d,attributes:[{name:"position",type:"vec3"}]}},{glslify:310}],309:[function(t,e,r){"use strict";var n=t("gl-shader"),i=t("gl-buffer"),a=t("gl-vao"),o=t("gl-texture2d"),s=t("normals"),l=t("gl-mat4/multiply"),c=t("gl-mat4/invert"),u=t("ndarray"),f=t("colormap"),h=t("simplicial-complex-contour"),p=t("typedarray-pool"),d=t("./lib/shaders"),g=t("./lib/closest-point"),m=d.meshShader,v=d.wireShader,y=d.pointShader,x=d.pickShader,b=d.pointPickShader,_=d.contourShader,w=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function T(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,g,m,v,y,x,b,_,T,k,M,A,S){this.gl=t,this.pixelRatio=1,this.cells=[],this.positions=[],this.intensity=[],this.texture=e,this.dirty=!0,this.triShader=r,this.lineShader=n,this.pointShader=i,this.pickShader=a,this.pointPickShader=o,this.contourShader=s,this.trianglePositions=l,this.triangleColors=u,this.triangleNormals=h,this.triangleUVs=f,this.triangleIds=c,this.triangleVAO=p,this.triangleCount=0,this.lineWidth=1,this.edgePositions=d,this.edgeColors=m,this.edgeUVs=v,this.edgeIds=g,this.edgeVAO=y,this.edgeCount=0,this.pointPositions=x,this.pointColors=_,this.pointUVs=T,this.pointSizes=k,this.pointIds=b,this.pointVAO=M,this.pointCount=0,this.contourLineWidth=1,this.contourPositions=A,this.contourVAO=S,this.contourCount=0,this.contourColor=[0,0,0],this.contourEnable=!0,this.pickVertex=!0,this.pickId=1,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.lightPosition=[1e5,1e5,0],this.ambientLight=.8,this.diffuseLight=.8,this.specularLight=2,this.roughness=.5,this.fresnel=1.5,this.opacity=1,this.hasAlpha=!1,this.opacityscale=!1,this._model=w,this._view=w,this._projection=w,this._resolution=[1,1]}var k=T.prototype;function M(t,e){if(!e)return 1;if(!e.length)return 1;for(var r=0;rt&&r>0){var n=(e[r][0]-t)/(e[r][0]-e[r-1][0]);return e[r][1]*(1-n)+n*e[r-1][1]}}return 1}function A(t){var e=n(t,m.vertex,m.fragment);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e.attributes.normal.location=4,e}function S(t){var e=n(t,v.vertex,v.fragment);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e}function E(t){var e=n(t,y.vertex,y.fragment);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e.attributes.pointSize.location=4,e}function C(t){var e=n(t,x.vertex,x.fragment);return e.attributes.position.location=0,e.attributes.id.location=1,e}function L(t){var e=n(t,b.vertex,b.fragment);return e.attributes.position.location=0,e.attributes.id.location=1,e.attributes.pointSize.location=4,e}function I(t){var e=n(t,_.vertex,_.fragment);return e.attributes.position.location=0,e}k.isOpaque=function(){return!this.hasAlpha},k.isTransparent=function(){return this.hasAlpha},k.pickSlots=1,k.setPickBase=function(t){this.pickId=t},k.highlight=function(t){if(t&&this.contourEnable){for(var e=h(this.cells,this.intensity,t.intensity),r=e.cells,n=e.vertexIds,i=e.vertexWeights,a=r.length,o=p.mallocFloat32(6*a),s=0,l=0;l0&&((f=this.triShader).bind(),f.uniforms=s,this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind());this.edgeCount>0&&this.lineWidth>0&&((f=this.lineShader).bind(),f.uniforms=s,this.edgeVAO.bind(),e.lineWidth(this.lineWidth*this.pixelRatio),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind());this.pointCount>0&&((f=this.pointShader).bind(),f.uniforms=s,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind());this.contourEnable&&this.contourCount>0&&this.contourLineWidth>0&&((f=this.contourShader).bind(),f.uniforms=s,this.contourVAO.bind(),e.drawArrays(e.LINES,0,this.contourCount),this.contourVAO.unbind())},k.drawPick=function(t){t=t||{};for(var e=this.gl,r=t.model||w,n=t.view||w,i=t.projection||w,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);this._model=[].slice.call(r),this._view=[].slice.call(n),this._projection=[].slice.call(i),this._resolution=[e.drawingBufferWidth,e.drawingBufferHeight];var s,l={model:r,view:n,projection:i,clipBounds:a,pickId:this.pickId/255};((s=this.pickShader).bind(),s.uniforms=l,this.triangleCount>0&&(this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()),this.edgeCount>0&&(this.edgeVAO.bind(),e.lineWidth(this.lineWidth*this.pixelRatio),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind()),this.pointCount>0)&&((s=this.pointPickShader).bind(),s.uniforms=l,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind())},k.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;for(var e=t.value[0]+256*t.value[1]+65536*t.value[2],r=this.cells[e],n=this.positions,i=new Array(r.length),a=0;ai[k]&&(r.uniforms.dataAxis=c,r.uniforms.screenOffset=u,r.uniforms.color=m[t],r.uniforms.angle=v[t],a.drawArrays(a.TRIANGLES,i[k],i[M]-i[k]))),y[t]&&T&&(u[1^t]-=A*p*x[t],r.uniforms.dataAxis=f,r.uniforms.screenOffset=u,r.uniforms.color=b[t],r.uniforms.angle=_[t],a.drawArrays(a.TRIANGLES,w,T)),u[1^t]=A*s[2+(1^t)]-1,d[t+2]&&(u[1^t]+=A*p*g[t+2],ki[k]&&(r.uniforms.dataAxis=c,r.uniforms.screenOffset=u,r.uniforms.color=m[t+2],r.uniforms.angle=v[t+2],a.drawArrays(a.TRIANGLES,i[k],i[M]-i[k]))),y[t+2]&&T&&(u[1^t]+=A*p*x[t+2],r.uniforms.dataAxis=f,r.uniforms.screenOffset=u,r.uniforms.color=b[t+2],r.uniforms.angle=_[t+2],a.drawArrays(a.TRIANGLES,w,T))}),g.drawTitle=function(){var t=[0,0],e=[0,0];return function(){var r=this.plot,n=this.shader,i=r.gl,a=r.screenBox,o=r.titleCenter,s=r.titleAngle,l=r.titleColor,c=r.pixelRatio;if(this.titleCount){for(var u=0;u<2;++u)e[u]=2*(o[u]*c-a[u])/(a[2+u]-a[u])-1;n.bind(),n.uniforms.dataAxis=t,n.uniforms.screenOffset=e,n.uniforms.angle=s,n.uniforms.color=l,i.drawArrays(i.TRIANGLES,this.titleOffset,this.titleCount)}}}(),g.bind=(h=[0,0],p=[0,0],d=[0,0],function(){var t=this.plot,e=this.shader,r=t._tickBounds,n=t.dataBox,i=t.screenBox,a=t.viewBox;e.bind();for(var o=0;o<2;++o){var s=r[o],l=r[o+2]-s,c=.5*(n[o+2]+n[o]),u=n[o+2]-n[o],f=a[o],g=a[o+2]-f,m=i[o],v=i[o+2]-m;p[o]=2*l/u*g/v,h[o]=2*(s-c)/u*g/v}d[1]=2*t.pixelRatio/(i[3]-i[1]),d[0]=d[1]*(i[3]-i[1])/(i[2]-i[0]),e.uniforms.dataScale=p,e.uniforms.dataShift=h,e.uniforms.textScale=d,this.vbo.bind(),e.attributes.textCoordinate.pointer()}),g.update=function(t){var e,r,n,i,o,s=[],l=t.ticks,c=t.bounds;for(o=0;o<2;++o){var u=[Math.floor(s.length/3)],f=[-1/0],h=l[o];for(e=0;e=0){var g=e[d]-n[d]*(e[d+2]-e[d])/(n[d+2]-n[d]);0===d?o.drawLine(g,e[1],g,e[3],p[d],h[d]):o.drawLine(e[0],g,e[2],g,p[d],h[d])}}for(d=0;d=0;--t)this.objects[t].dispose();this.objects.length=0;for(t=this.overlays.length-1;t>=0;--t)this.overlays[t].dispose();this.overlays.length=0,this.gl=null},c.addObject=function(t){this.objects.indexOf(t)<0&&(this.objects.push(t),this.setDirty())},c.removeObject=function(t){for(var e=this.objects,r=0;rMath.abs(e))c.rotate(a,0,0,-t*r*Math.PI*d.rotateSpeed/window.innerWidth);else if(!d._ortho){var o=-d.zoomSpeed*i*e/window.innerHeight*(a-c.lastT())/20;c.pan(a,0,0,f*(Math.exp(o)-1))}}}),!0)},d.enableMouseListeners(),d};var n=t("right-now"),i=t("3d-view"),a=t("mouse-change"),o=t("mouse-wheel"),s=t("mouse-event-offset"),l=t("has-passive-events")},{"3d-view":54,"has-passive-events":441,"mouse-change":483,"mouse-event-offset":484,"mouse-wheel":486,"right-now":542}],319:[function(t,e,r){var n=t("glslify"),i=t("gl-shader"),a=n(["precision mediump float;\n#define GLSLIFY 1\nattribute vec2 position;\nvarying vec2 uv;\nvoid main() {\n uv = position;\n gl_Position = vec4(position, 0, 1);\n}"]),o=n(["precision mediump float;\n#define GLSLIFY 1\n\nuniform sampler2D accumBuffer;\nvarying vec2 uv;\n\nvoid main() {\n vec4 accum = texture2D(accumBuffer, 0.5 * (uv + 1.0));\n gl_FragColor = min(vec4(1,1,1,1), accum);\n}"]);e.exports=function(t){return i(t,a,o,null,[{name:"position",type:"vec2"}])}},{"gl-shader":335,glslify:320}],320:[function(t,e,r){arguments[4][257][0].apply(r,arguments)},{dup:257}],321:[function(t,e,r){"use strict";var n=t("./camera.js"),i=t("gl-axes3d"),a=t("gl-axes3d/properties"),o=t("gl-spikes3d"),s=t("gl-select-static"),l=t("gl-fbo"),c=t("a-big-triangle"),u=t("mouse-change"),f=t("gl-mat4/perspective"),h=t("gl-mat4/ortho"),p=t("./lib/shader"),d=t("is-mobile")({tablet:!0,featureDetect:!0});function g(){this.mouse=[-1,-1],this.screen=null,this.distance=1/0,this.index=null,this.dataCoordinate=null,this.dataPosition=null,this.object=null,this.data=null}function m(t){var e=Math.round(Math.log(Math.abs(t))/Math.log(10));if(e<0){var r=Math.round(Math.pow(10,-e));return Math.ceil(t*r)/r}if(e>0){r=Math.round(Math.pow(10,e));return Math.ceil(t/r)*r}return Math.ceil(t)}function v(t){return"boolean"!=typeof t||t}e.exports={createScene:function(t){(t=t||{}).camera=t.camera||{};var e=t.canvas;if(!e){if(e=document.createElement("canvas"),t.container)t.container.appendChild(e);else document.body.appendChild(e)}var r=t.gl;r||(t.glOptions&&(d=!!t.glOptions.preserveDrawingBuffer),r=function(t,e){var r=null;try{(r=t.getContext("webgl",e))||(r=t.getContext("experimental-webgl",e))}catch(t){return null}return r}(e,t.glOptions||{premultipliedAlpha:!0,antialias:!0,preserveDrawingBuffer:d}));if(!r)throw new Error("webgl not supported");var y=t.bounds||[[-10,-10,-10],[10,10,10]],x=new g,b=l(r,r.drawingBufferWidth,r.drawingBufferHeight,{preferFloat:!d}),_=p(r),w=t.cameraObject&&!0===t.cameraObject._ortho||t.camera.projection&&"orthographic"===t.camera.projection.type||!1,T={eye:t.camera.eye||[2,0,0],center:t.camera.center||[0,0,0],up:t.camera.up||[0,1,0],zoomMin:t.camera.zoomMax||.1,zoomMax:t.camera.zoomMin||100,mode:t.camera.mode||"turntable",_ortho:w},k=t.axes||{},M=i(r,k);M.enable=!k.disable;var A=t.spikes||{},S=o(r,A),E=[],C=[],L=[],I=[],P=!0,z=!0,O=new Array(16),D=new Array(16),R={view:null,projection:O,model:D,_ortho:!1},F=(z=!0,[r.drawingBufferWidth,r.drawingBufferHeight]),B=t.cameraObject||n(e,T),N={gl:r,contextLost:!1,pixelRatio:t.pixelRatio||1,canvas:e,selection:x,camera:B,axes:M,axesPixels:null,spikes:S,bounds:y,objects:E,shape:F,aspect:t.aspectRatio||[1,1,1],pickRadius:t.pickRadius||10,zNear:t.zNear||.01,zFar:t.zFar||1e3,fovy:t.fovy||Math.PI/4,clearColor:t.clearColor||[0,0,0,0],autoResize:v(t.autoResize),autoBounds:v(t.autoBounds),autoScale:!!t.autoScale,autoCenter:v(t.autoCenter),clipToBounds:v(t.clipToBounds),snapToData:!!t.snapToData,onselect:t.onselect||null,onrender:t.onrender||null,onclick:t.onclick||null,cameraParams:R,oncontextloss:null,mouseListener:null,_stopped:!1,getAspectratio:function(){return{x:this.aspect[0],y:this.aspect[1],z:this.aspect[2]}},setAspectratio:function(t){this.aspect[0]=t.x,this.aspect[1]=t.y,this.aspect[2]=t.z,z=!0},setBounds:function(t,e){this.bounds[0][t]=e.min,this.bounds[1][t]=e.max},setClearColor:function(t){this.clearColor=t},clearRGBA:function(){this.gl.clearColor(this.clearColor[0],this.clearColor[1],this.clearColor[2],this.clearColor[3]),this.gl.clear(this.gl.COLOR_BUFFER_BIT|this.gl.DEPTH_BUFFER_BIT)}},j=[r.drawingBufferWidth/N.pixelRatio|0,r.drawingBufferHeight/N.pixelRatio|0];function U(){if(!N._stopped&&N.autoResize){var t=e.parentNode,r=1,n=1;t&&t!==document.body?(r=t.clientWidth,n=t.clientHeight):(r=window.innerWidth,n=window.innerHeight);var i=0|Math.ceil(r*N.pixelRatio),a=0|Math.ceil(n*N.pixelRatio);if(i!==e.width||a!==e.height){e.width=i,e.height=a;var o=e.style;o.position=o.position||"absolute",o.left="0px",o.top="0px",o.width=r+"px",o.height=n+"px",P=!0}}}N.autoResize&&U();function V(){for(var t=E.length,e=I.length,n=0;n0&&0===L[e-1];)L.pop(),I.pop().dispose()}function q(){if(N.contextLost)return!0;r.isContextLost()&&(N.contextLost=!0,N.mouseListener.enabled=!1,N.selection.object=null,N.oncontextloss&&N.oncontextloss())}window.addEventListener("resize",U),N.update=function(t){N._stopped||(t=t||{},P=!0,z=!0)},N.add=function(t){N._stopped||(t.axes=M,E.push(t),C.push(-1),P=!0,z=!0,V())},N.remove=function(t){if(!N._stopped){var e=E.indexOf(t);e<0||(E.splice(e,1),C.pop(),P=!0,z=!0,V())}},N.dispose=function(){if(!N._stopped&&(N._stopped=!0,window.removeEventListener("resize",U),e.removeEventListener("webglcontextlost",q),N.mouseListener.enabled=!1,!N.contextLost)){M.dispose(),S.dispose();for(var t=0;tx.distance)continue;for(var c=0;c 1.0) {\n discard;\n }\n baseColor = mix(borderColor, color, step(radius, centerFraction));\n gl_FragColor = vec4(baseColor.rgb * baseColor.a, baseColor.a);\n }\n}\n"]),r.pickVertex=n(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec2 position;\nattribute vec4 pickId;\n\nuniform mat3 matrix;\nuniform float pointSize;\nuniform vec4 pickOffset;\n\nvarying vec4 fragId;\n\nvoid main() {\n vec3 hgPosition = matrix * vec3(position, 1);\n gl_Position = vec4(hgPosition.xy, 0, hgPosition.z);\n gl_PointSize = pointSize;\n\n vec4 id = pickId + pickOffset;\n id.y += floor(id.x / 256.0);\n id.x -= floor(id.x / 256.0) * 256.0;\n\n id.z += floor(id.y / 256.0);\n id.y -= floor(id.y / 256.0) * 256.0;\n\n id.w += floor(id.z / 256.0);\n id.z -= floor(id.z / 256.0) * 256.0;\n\n fragId = id;\n}\n"]),r.pickFragment=n(["precision mediump float;\n#define GLSLIFY 1\n\nvarying vec4 fragId;\n\nvoid main() {\n float radius = length(2.0 * gl_PointCoord.xy - 1.0);\n if(radius > 1.0) {\n discard;\n }\n gl_FragColor = fragId / 255.0;\n}\n"])},{glslify:323}],323:[function(t,e,r){arguments[4][257][0].apply(r,arguments)},{dup:257}],324:[function(t,e,r){"use strict";var n=t("gl-shader"),i=t("gl-buffer"),a=t("typedarray-pool"),o=t("./lib/shader");function s(t,e,r,n,i){this.plot=t,this.offsetBuffer=e,this.pickBuffer=r,this.shader=n,this.pickShader=i,this.sizeMin=.5,this.sizeMinCap=2,this.sizeMax=20,this.areaRatio=1,this.pointCount=0,this.color=[1,0,0,1],this.borderColor=[0,0,0,1],this.blend=!1,this.pickOffset=0,this.points=null}e.exports=function(t,e){var r=t.gl,a=i(r),l=i(r),c=n(r,o.pointVertex,o.pointFragment),u=n(r,o.pickVertex,o.pickFragment),f=new s(t,a,l,c,u);return f.update(e),t.addObject(f),f};var l,c,u=s.prototype;u.dispose=function(){this.shader.dispose(),this.pickShader.dispose(),this.offsetBuffer.dispose(),this.pickBuffer.dispose(),this.plot.removeObject(this)},u.update=function(t){var e;function r(e,r){return e in t?t[e]:r}t=t||{},this.sizeMin=r("sizeMin",.5),this.sizeMax=r("sizeMax",20),this.color=r("color",[1,0,0,1]).slice(),this.areaRatio=r("areaRatio",1),this.borderColor=r("borderColor",[0,0,0,1]).slice(),this.blend=r("blend",!1);var n=t.positions.length>>>1,i=t.positions instanceof Float32Array,o=t.idToIndex instanceof Int32Array&&t.idToIndex.length>=n,s=t.positions,l=i?s:a.mallocFloat32(s.length),c=o?t.idToIndex:a.mallocInt32(n);if(i||l.set(s),!o)for(l.set(s),e=0;e>>1;for(r=0;r=e[0]&&a<=e[2]&&o>=e[1]&&o<=e[3]&&n++}return n}(this.points,i),u=this.plot.pickPixelRatio*Math.max(Math.min(this.sizeMinCap,this.sizeMin),Math.min(this.sizeMax,this.sizeMax/Math.pow(s,.33333)));l[0]=2/a,l[4]=2/o,l[6]=-2*i[0]/a-1,l[7]=-2*i[1]/o-1,this.offsetBuffer.bind(),r.bind(),r.attributes.position.pointer(),r.uniforms.matrix=l,r.uniforms.color=this.color,r.uniforms.borderColor=this.borderColor,r.uniforms.pointCloud=u<5,r.uniforms.pointSize=u,r.uniforms.centerFraction=Math.min(1,Math.max(0,Math.sqrt(1-this.areaRatio))),e&&(c[0]=255&t,c[1]=t>>8&255,c[2]=t>>16&255,c[3]=t>>24&255,this.pickBuffer.bind(),r.attributes.pickId.pointer(n.UNSIGNED_BYTE),r.uniforms.pickOffset=c,this.pickOffset=t);var f=n.getParameter(n.BLEND),h=n.getParameter(n.DITHER);return f&&!this.blend&&n.disable(n.BLEND),h&&n.disable(n.DITHER),n.drawArrays(n.POINTS,0,this.pointCount),f&&!this.blend&&n.enable(n.BLEND),h&&n.enable(n.DITHER),t+this.pointCount}),u.draw=u.unifiedDraw,u.drawPick=u.unifiedDraw,u.pick=function(t,e,r){var n=this.pickOffset,i=this.pointCount;if(r=n+i)return null;var a=r-n,o=this.points;return{object:this,pointId:a,dataCoord:[o[2*a],o[2*a+1]]}}},{"./lib/shader":322,"gl-buffer":259,"gl-shader":335,"typedarray-pool":595}],325:[function(t,e,r){e.exports=function(t,e,r,n){var i,a,o,s,l,c=e[0],u=e[1],f=e[2],h=e[3],p=r[0],d=r[1],g=r[2],m=r[3];(a=c*p+u*d+f*g+h*m)<0&&(a=-a,p=-p,d=-d,g=-g,m=-m);1-a>1e-6?(i=Math.acos(a),o=Math.sin(i),s=Math.sin((1-n)*i)/o,l=Math.sin(n*i)/o):(s=1-n,l=n);return t[0]=s*c+l*p,t[1]=s*u+l*d,t[2]=s*f+l*g,t[3]=s*h+l*m,t}},{}],326:[function(t,e,r){"use strict";e.exports=function(t){return t||0===t?t.toString():""}},{}],327:[function(t,e,r){"use strict";var n=t("vectorize-text");e.exports=function(t,e,r){var a=i[e];a||(a=i[e]={});if(t in a)return a[t];var o={textAlign:"center",textBaseline:"middle",lineHeight:1,font:e,lineSpacing:1.25,styletags:{breaklines:!0,bolds:!0,italics:!0,subscripts:!0,superscripts:!0},triangles:!0},s=n(t,o);o.triangles=!1;var l,c,u=n(t,o);if(r&&1!==r){for(l=0;l max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 glyph;\nattribute vec4 id;\n\nuniform vec4 highlightId;\nuniform float highlightScale;\nuniform mat4 model, view, projection;\nuniform vec3 clipBounds[2];\n\nvarying vec4 interpColor;\nvarying vec4 pickId;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n gl_Position = vec4(0,0,0,0);\n } else {\n float scale = 1.0;\n if(distance(highlightId, id) < 0.0001) {\n scale = highlightScale;\n }\n\n vec4 worldPosition = model * vec4(position, 1);\n vec4 viewPosition = view * worldPosition;\n viewPosition = viewPosition / viewPosition.w;\n vec4 clipPosition = projection * (viewPosition + scale * vec4(glyph.x, -glyph.y, 0, 0));\n\n gl_Position = clipPosition;\n interpColor = color;\n pickId = id;\n dataCoordinate = position;\n }\n}"]),o=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 glyph;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\nuniform vec2 screenSize;\nuniform vec3 clipBounds[2];\nuniform float highlightScale, pixelRatio;\nuniform vec4 highlightId;\n\nvarying vec4 interpColor;\nvarying vec4 pickId;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n gl_Position = vec4(0,0,0,0);\n } else {\n float scale = pixelRatio;\n if(distance(highlightId.bgr, id.bgr) < 0.001) {\n scale *= highlightScale;\n }\n\n vec4 worldPosition = model * vec4(position, 1.0);\n vec4 viewPosition = view * worldPosition;\n vec4 clipPosition = projection * viewPosition;\n clipPosition /= clipPosition.w;\n\n gl_Position = clipPosition + vec4(screenSize * scale * vec2(glyph.x, -glyph.y), 0.0, 0.0);\n interpColor = color;\n pickId = id;\n dataCoordinate = position;\n }\n}"]),s=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 glyph;\nattribute vec4 id;\n\nuniform float highlightScale;\nuniform vec4 highlightId;\nuniform vec3 axes[2];\nuniform mat4 model, view, projection;\nuniform vec2 screenSize;\nuniform vec3 clipBounds[2];\nuniform float scale, pixelRatio;\n\nvarying vec4 interpColor;\nvarying vec4 pickId;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n gl_Position = vec4(0,0,0,0);\n } else {\n float lscale = pixelRatio * scale;\n if(distance(highlightId, id) < 0.0001) {\n lscale *= highlightScale;\n }\n\n vec4 clipCenter = projection * view * model * vec4(position, 1);\n vec3 dataPosition = position + 0.5*lscale*(axes[0] * glyph.x + axes[1] * glyph.y) * clipCenter.w * screenSize.y;\n vec4 clipPosition = projection * view * model * vec4(dataPosition, 1);\n\n gl_Position = clipPosition;\n interpColor = color;\n pickId = id;\n dataCoordinate = dataPosition;\n }\n}\n"]),l=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 fragClipBounds[2];\nuniform float opacity;\n\nvarying vec4 interpColor;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n if (\n outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate) ||\n interpColor.a * opacity == 0.\n ) discard;\n gl_FragColor = interpColor * opacity;\n}\n"]),c=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 fragClipBounds[2];\nuniform float pickGroup;\n\nvarying vec4 pickId;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n if (outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate)) discard;\n\n gl_FragColor = vec4(pickGroup, pickId.bgr);\n}"]),u=[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"glyph",type:"vec2"},{name:"id",type:"vec4"}],f={vertex:a,fragment:l,attributes:u},h={vertex:o,fragment:l,attributes:u},p={vertex:s,fragment:l,attributes:u},d={vertex:a,fragment:c,attributes:u},g={vertex:o,fragment:c,attributes:u},m={vertex:s,fragment:c,attributes:u};function v(t,e){var r=n(t,e),i=r.attributes;return i.position.location=0,i.color.location=1,i.glyph.location=2,i.id.location=3,r}r.createPerspective=function(t){return v(t,f)},r.createOrtho=function(t){return v(t,h)},r.createProject=function(t){return v(t,p)},r.createPickPerspective=function(t){return v(t,d)},r.createPickOrtho=function(t){return v(t,g)},r.createPickProject=function(t){return v(t,m)}},{"gl-shader":335,glslify:329}],329:[function(t,e,r){arguments[4][257][0].apply(r,arguments)},{dup:257}],330:[function(t,e,r){"use strict";var n=t("is-string-blank"),i=t("gl-buffer"),a=t("gl-vao"),o=t("typedarray-pool"),s=t("gl-mat4/multiply"),l=t("./lib/shaders"),c=t("./lib/glyphs"),u=t("./lib/get-simple-string"),f=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function h(t,e){var r=t[0],n=t[1],i=t[2],a=t[3];return t[0]=e[0]*r+e[4]*n+e[8]*i+e[12]*a,t[1]=e[1]*r+e[5]*n+e[9]*i+e[13]*a,t[2]=e[2]*r+e[6]*n+e[10]*i+e[14]*a,t[3]=e[3]*r+e[7]*n+e[11]*i+e[15]*a,t}function p(t,e,r,n){return h(n,n),h(n,n),h(n,n)}function d(t,e){this.index=t,this.dataCoordinate=this.position=e}function g(t){return!0===t||t>1?1:t}function m(t,e,r,n,i,a,o,s,l,c,u,f){this.gl=t,this.pixelRatio=1,this.shader=e,this.orthoShader=r,this.projectShader=n,this.pointBuffer=i,this.colorBuffer=a,this.glyphBuffer=o,this.idBuffer=s,this.vao=l,this.vertexCount=0,this.lineVertexCount=0,this.opacity=1,this.hasAlpha=!1,this.lineWidth=0,this.projectScale=[2/3,2/3,2/3],this.projectOpacity=[1,1,1],this.projectHasAlpha=!1,this.pickId=0,this.pickPerspectiveShader=c,this.pickOrthoShader=u,this.pickProjectShader=f,this.points=[],this._selectResult=new d(0,[0,0,0]),this.useOrtho=!0,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.axesProject=[!0,!0,!0],this.axesBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.highlightId=[1,1,1,1],this.highlightScale=2,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.dirty=!0}e.exports=function(t){var e=t.gl,r=l.createPerspective(e),n=l.createOrtho(e),o=l.createProject(e),s=l.createPickPerspective(e),c=l.createPickOrtho(e),u=l.createPickProject(e),f=i(e),h=i(e),p=i(e),d=i(e),g=a(e,[{buffer:f,size:3,type:e.FLOAT},{buffer:h,size:4,type:e.FLOAT},{buffer:p,size:2,type:e.FLOAT},{buffer:d,size:4,type:e.UNSIGNED_BYTE,normalized:!0}]),v=new m(e,r,n,o,f,h,p,d,g,s,c,u);return v.update(t),v};var v=m.prototype;v.pickSlots=1,v.setPickBase=function(t){this.pickId=t},v.isTransparent=function(){if(this.hasAlpha)return!0;for(var t=0;t<3;++t)if(this.axesProject[t]&&this.projectHasAlpha)return!0;return!1},v.isOpaque=function(){if(!this.hasAlpha)return!0;for(var t=0;t<3;++t)if(this.axesProject[t]&&!this.projectHasAlpha)return!0;return!1};var y=[0,0],x=[0,0,0],b=[0,0,0],_=[0,0,0,1],w=[0,0,0,1],T=f.slice(),k=[0,0,0],M=[[0,0,0],[0,0,0]];function A(t){return t[0]=t[1]=t[2]=0,t}function S(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=1,t}function E(t,e,r,n){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[r]=n,t}function C(t,e,r,n){var i,a=e.axesProject,o=e.gl,l=t.uniforms,c=r.model||f,u=r.view||f,h=r.projection||f,d=e.axesBounds,g=function(t){for(var e=M,r=0;r<2;++r)for(var n=0;n<3;++n)e[r][n]=Math.max(Math.min(t[r][n],1e8),-1e8);return e}(e.clipBounds);i=e.axes&&e.axes.lastCubeProps?e.axes.lastCubeProps.axis:[1,1,1],y[0]=2/o.drawingBufferWidth,y[1]=2/o.drawingBufferHeight,t.bind(),l.view=u,l.projection=h,l.screenSize=y,l.highlightId=e.highlightId,l.highlightScale=e.highlightScale,l.clipBounds=g,l.pickGroup=e.pickId/255,l.pixelRatio=n;for(var m=0;m<3;++m)if(a[m]){l.scale=e.projectScale[m],l.opacity=e.projectOpacity[m];for(var v=T,C=0;C<16;++C)v[C]=0;for(C=0;C<4;++C)v[5*C]=1;v[5*m]=0,i[m]<0?v[12+m]=d[0][m]:v[12+m]=d[1][m],s(v,c,v),l.model=v;var L=(m+1)%3,I=(m+2)%3,P=A(x),z=A(b);P[L]=1,z[I]=1;var O=p(0,0,0,S(_,P)),D=p(0,0,0,S(w,z));if(Math.abs(O[1])>Math.abs(D[1])){var R=O;O=D,D=R,R=P,P=z,z=R;var F=L;L=I,I=F}O[0]<0&&(P[L]=-1),D[1]>0&&(z[I]=-1);var B=0,N=0;for(C=0;C<4;++C)B+=Math.pow(c[4*L+C],2),N+=Math.pow(c[4*I+C],2);P[L]/=Math.sqrt(B),z[I]/=Math.sqrt(N),l.axes[0]=P,l.axes[1]=z,l.fragClipBounds[0]=E(k,g[0],m,-1e8),l.fragClipBounds[1]=E(k,g[1],m,1e8),e.vao.bind(),e.vao.draw(o.TRIANGLES,e.vertexCount),e.lineWidth>0&&(o.lineWidth(e.lineWidth*n),e.vao.draw(o.LINES,e.lineVertexCount,e.vertexCount)),e.vao.unbind()}}var L=[[-1e8,-1e8,-1e8],[1e8,1e8,1e8]];function I(t,e,r,n,i,a,o){var s=r.gl;if((a===r.projectHasAlpha||o)&&C(e,r,n,i),a===r.hasAlpha||o){t.bind();var l=t.uniforms;l.model=n.model||f,l.view=n.view||f,l.projection=n.projection||f,y[0]=2/s.drawingBufferWidth,y[1]=2/s.drawingBufferHeight,l.screenSize=y,l.highlightId=r.highlightId,l.highlightScale=r.highlightScale,l.fragClipBounds=L,l.clipBounds=r.axes.bounds,l.opacity=r.opacity,l.pickGroup=r.pickId/255,l.pixelRatio=i,r.vao.bind(),r.vao.draw(s.TRIANGLES,r.vertexCount),r.lineWidth>0&&(s.lineWidth(r.lineWidth*i),r.vao.draw(s.LINES,r.lineVertexCount,r.vertexCount)),r.vao.unbind()}}function P(t,e,r,i){var a;a=Array.isArray(t)?e=this.pointCount||e<0)return null;var r=this.points[e],n=this._selectResult;n.index=e;for(var i=0;i<3;++i)n.position[i]=n.dataCoordinate[i]=r[i];return n},v.highlight=function(t){if(t){var e=t.index,r=255&e,n=e>>8&255,i=e>>16&255;this.highlightId=[r/255,n/255,i/255,0]}else this.highlightId=[1,1,1,1]},v.update=function(t){if("perspective"in(t=t||{})&&(this.useOrtho=!t.perspective),"orthographic"in t&&(this.useOrtho=!!t.orthographic),"lineWidth"in t&&(this.lineWidth=t.lineWidth),"project"in t)if(Array.isArray(t.project))this.axesProject=t.project;else{var e=!!t.project;this.axesProject=[e,e,e]}if("projectScale"in t)if(Array.isArray(t.projectScale))this.projectScale=t.projectScale.slice();else{var r=+t.projectScale;this.projectScale=[r,r,r]}if(this.projectHasAlpha=!1,"projectOpacity"in t){if(Array.isArray(t.projectOpacity))this.projectOpacity=t.projectOpacity.slice();else{r=+t.projectOpacity;this.projectOpacity=[r,r,r]}for(var n=0;n<3;++n)this.projectOpacity[n]=g(this.projectOpacity[n]),this.projectOpacity[n]<1&&(this.projectHasAlpha=!0)}this.hasAlpha=!1,"opacity"in t&&(this.opacity=g(t.opacity),this.opacity<1&&(this.hasAlpha=!0)),this.dirty=!0;var i,a,s=t.position,l=t.font||"normal",c=t.alignment||[0,0];if(2===c.length)i=c[0],a=c[1];else{i=[],a=[];for(n=0;n0){var z=0,O=x,D=[0,0,0,1],R=[0,0,0,1],F=Array.isArray(p)&&Array.isArray(p[0]),B=Array.isArray(v)&&Array.isArray(v[0]);t:for(n=0;n<_;++n){y+=1;for(w=s[n],T=0;T<3;++T){if(isNaN(w[T])||!isFinite(w[T]))continue t;f[T]=Math.max(f[T],w[T]),u[T]=Math.min(u[T],w[T])}k=(N=P(h,n,l,this.pixelRatio)).mesh,M=N.lines,A=N.bounds;var N,j=N.visible;if(j)if(Array.isArray(p)){if(3===(U=F?n0?1-A[0][0]:Y<0?1+A[1][0]:1,W*=W>0?1-A[0][1]:W<0?1+A[1][1]:1],Z=k.cells||[],J=k.positions||[];for(T=0;T0){var v=r*u;o.drawBox(f-v,h-v,p+v,h+v,a),o.drawBox(f-v,d-v,p+v,d+v,a),o.drawBox(f-v,h-v,f+v,d+v,a),o.drawBox(p-v,h-v,p+v,d+v,a)}}}},s.update=function(t){t=t||{},this.innerFill=!!t.innerFill,this.outerFill=!!t.outerFill,this.innerColor=(t.innerColor||[0,0,0,.5]).slice(),this.outerColor=(t.outerColor||[0,0,0,.5]).slice(),this.borderColor=(t.borderColor||[0,0,0,1]).slice(),this.borderWidth=t.borderWidth||0,this.selectBox=(t.selectBox||this.selectBox).slice()},s.dispose=function(){this.boxBuffer.dispose(),this.boxShader.dispose(),this.plot.removeOverlay(this)}},{"./lib/shaders":331,"gl-buffer":259,"gl-shader":335}],334:[function(t,e,r){"use strict";e.exports=function(t,e){var r=e[0],a=e[1],o=n(t,r,a,{}),s=i.mallocUint8(r*a*4);return new l(t,o,s)};var n=t("gl-fbo"),i=t("typedarray-pool"),a=t("ndarray"),o=t("bit-twiddle").nextPow2;function s(t,e,r,n,i){this.coord=[t,e],this.id=r,this.value=n,this.distance=i}function l(t,e,r){this.gl=t,this.fbo=e,this.buffer=r,this._readTimeout=null;var n=this;this._readCallback=function(){n.gl&&(e.bind(),t.readPixels(0,0,e.shape[0],e.shape[1],t.RGBA,t.UNSIGNED_BYTE,n.buffer),n._readTimeout=null)}}var c=l.prototype;Object.defineProperty(c,"shape",{get:function(){return this.gl?this.fbo.shape.slice():[0,0]},set:function(t){if(this.gl){this.fbo.shape=t;var e=this.fbo.shape[0],r=this.fbo.shape[1];if(r*e*4>this.buffer.length){i.free(this.buffer);for(var n=this.buffer=i.mallocUint8(o(r*e*4)),a=0;ar)for(t=r;te)for(t=e;t=0){for(var T=0|w.type.charAt(w.type.length-1),k=new Array(T),M=0;M=0;)A+=1;_[y]=A}var S=new Array(r.length);function E(){h.program=o.program(p,h._vref,h._fref,b,_);for(var t=0;t=0){if((d=h.charCodeAt(h.length-1)-48)<2||d>4)throw new n("","Invalid data type for attribute "+f+": "+h);o(t,e,p[0],i,d,a,f)}else{if(!(h.indexOf("mat")>=0))throw new n("","Unknown data type for attribute "+f+": "+h);var d;if((d=h.charCodeAt(h.length-1)-48)<2||d>4)throw new n("","Invalid data type for attribute "+f+": "+h);s(t,e,p,i,d,a,f)}}}return a};var n=t("./GLError");function i(t,e,r,n,i,a){this._gl=t,this._wrapper=e,this._index=r,this._locations=n,this._dimension=i,this._constFunc=a}var a=i.prototype;function o(t,e,r,n,a,o,s){for(var l=["gl","v"],c=[],u=0;u4)throw new i("","Invalid uniform dimension type for matrix "+name+": "+r);return"gl.uniformMatrix"+a+"fv(locations["+e+"],false,obj"+t+")"}throw new i("","Unknown uniform data type for "+name+": "+r)}if((a=r.charCodeAt(r.length-1)-48)<2||a>4)throw new i("","Invalid data type");switch(r.charAt(0)){case"b":case"i":return"gl.uniform"+a+"iv(locations["+e+"],obj"+t+")";case"v":return"gl.uniform"+a+"fv(locations["+e+"],obj"+t+")";default:throw new i("","Unrecognized data type for vector "+name+": "+r)}}}function c(e){for(var n=["return function updateProperty(obj){"],i=function t(e,r){if("object"!=typeof r)return[[e,r]];var n=[];for(var i in r){var a=r[i],o=e;parseInt(i)+""===i?o+="["+i+"]":o+="."+i,"object"==typeof a?n.push.apply(n,t(o,a)):n.push([o,a])}return n}("",e),a=0;a4)throw new i("","Invalid data type");return"b"===t.charAt(0)?o(r,!1):o(r,0)}if(0===t.indexOf("mat")&&4===t.length){var r;if((r=t.charCodeAt(t.length-1)-48)<2||r>4)throw new i("","Invalid uniform dimension type for matrix "+name+": "+t);return o(r*r,0)}throw new i("","Unknown uniform data type for "+name+": "+t)}}(r[u].type);var p}function f(t){var e;if(Array.isArray(t)){e=new Array(t.length);for(var r=0;r1){s[0]in a||(a[s[0]]=[]),a=a[s[0]];for(var l=1;l1)for(var l=0;l 0 U ||b|| > 0.\n // Assign z = 0, x = -b, y = a:\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\n return normalize(vec3(-v.y, v.x, 0.0));\n } else {\n return normalize(vec3(0.0, v.z, -v.y));\n }\n}\n\n// Calculate the tube vertex and normal at the given index.\n//\n// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d.\n//\n// Each tube segment is made up of a ring of vertices.\n// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array.\n// The indexes of tube segments run from 0 to 8.\n//\nvec3 getTubePosition(vec3 d, float index, out vec3 normal) {\n float segmentCount = 8.0;\n\n float angle = 2.0 * 3.14159 * (index / segmentCount);\n\n vec3 u = getOrthogonalVector(d);\n vec3 v = normalize(cross(u, d));\n\n vec3 x = u * cos(angle) * length(d);\n vec3 y = v * sin(angle) * length(d);\n vec3 v3 = x + y;\n\n normal = normalize(v3);\n\n return v3;\n}\n\nattribute vec4 vector;\nattribute vec4 color, position;\nattribute vec2 uv;\n\nuniform float vectorScale, tubeScale;\nuniform mat4 model, view, projection, inverseModel;\nuniform vec3 eyePosition, lightPosition;\n\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n // Scale the vector magnitude to stay constant with\n // model & view changes.\n vec3 normal;\n vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal);\n vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\n\n //Lighting geometry parameters\n vec4 cameraCoordinate = view * tubePosition;\n cameraCoordinate.xyz /= cameraCoordinate.w;\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\n\n // vec4 m_position = model * vec4(tubePosition, 1.0);\n vec4 t_position = view * tubePosition;\n gl_Position = projection * t_position;\n\n f_color = color;\n f_data = tubePosition.xyz;\n f_position = position.xyz;\n f_uv = uv;\n}\n"]),a=n(["#extension GL_OES_standard_derivatives : enable\n\nprecision highp float;\n#define GLSLIFY 1\n\nfloat beckmannDistribution(float x, float roughness) {\n float NdotH = max(x, 0.0001);\n float cos2Alpha = NdotH * NdotH;\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\n float roughness2 = roughness * roughness;\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\n return exp(tan2Alpha / roughness2) / denom;\n}\n\nfloat cookTorranceSpecular(\n vec3 lightDirection,\n vec3 viewDirection,\n vec3 surfaceNormal,\n float roughness,\n float fresnel) {\n\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\n\n //Half angle vector\n vec3 H = normalize(lightDirection + viewDirection);\n\n //Geometric term\n float NdotH = max(dot(surfaceNormal, H), 0.0);\n float VdotH = max(dot(viewDirection, H), 0.000001);\n float LdotH = max(dot(lightDirection, H), 0.000001);\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\n float G = min(1.0, min(G1, G2));\n \n //Distribution term\n float D = beckmannDistribution(NdotH, roughness);\n\n //Fresnel term\n float F = pow(1.0 - VdotN, fresnel);\n\n //Multiply terms and done\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\n}\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\nuniform sampler2D texture;\n\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n vec3 N = normalize(f_normal);\n vec3 L = normalize(f_lightDirection);\n vec3 V = normalize(f_eyeDirection);\n\n if(gl_FrontFacing) {\n N = -N;\n }\n\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\n\n vec4 surfaceColor = f_color * texture2D(texture, f_uv);\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\n\n gl_FragColor = litColor * opacity;\n}\n"]),o=n(["precision highp float;\n\nprecision highp float;\n#define GLSLIFY 1\n\nvec3 getOrthogonalVector(vec3 v) {\n // Return up-vector for only-z vector.\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\n // Assign z = 0, x = -b, y = a:\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\n return normalize(vec3(-v.y, v.x, 0.0));\n } else {\n return normalize(vec3(0.0, v.z, -v.y));\n }\n}\n\n// Calculate the tube vertex and normal at the given index.\n//\n// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d.\n//\n// Each tube segment is made up of a ring of vertices.\n// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array.\n// The indexes of tube segments run from 0 to 8.\n//\nvec3 getTubePosition(vec3 d, float index, out vec3 normal) {\n float segmentCount = 8.0;\n\n float angle = 2.0 * 3.14159 * (index / segmentCount);\n\n vec3 u = getOrthogonalVector(d);\n vec3 v = normalize(cross(u, d));\n\n vec3 x = u * cos(angle) * length(d);\n vec3 y = v * sin(angle) * length(d);\n vec3 v3 = x + y;\n\n normal = normalize(v3);\n\n return v3;\n}\n\nattribute vec4 vector;\nattribute vec4 position;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\nuniform float tubeScale;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n vec3 normal;\n vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal);\n vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\n\n gl_Position = projection * view * tubePosition;\n f_id = id;\n f_position = position.xyz;\n}\n"]),s=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float pickId;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n\n gl_FragColor = vec4(pickId, f_id.xyz);\n}"]);r.meshShader={vertex:i,fragment:a,attributes:[{name:"position",type:"vec4"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"},{name:"vector",type:"vec4"}]},r.pickShader={vertex:o,fragment:s,attributes:[{name:"position",type:"vec4"},{name:"id",type:"vec4"},{name:"vector",type:"vec4"}]}},{glslify:347}],347:[function(t,e,r){arguments[4][257][0].apply(r,arguments)},{dup:257}],348:[function(t,e,r){"use strict";var n=t("gl-vec3"),i=t("gl-vec4"),a=["xyz","xzy","yxz","yzx","zxy","zyx"],o=function(t,e,r,a){for(var o=0,s=0;s0)for(T=0;T<8;T++){var k=(T+1)%8;c.push(h[T],p[T],p[k],p[k],h[k],h[T]),f.push(y,v,v,v,y,y),d.push(g,m,m,m,g,g);var M=c.length;u.push([M-6,M-5,M-4],[M-3,M-2,M-1])}var A=h;h=p,p=A;var S=y;y=v,v=S;var E=g;g=m,m=E}return{positions:c,cells:u,vectors:f,vertexIntensity:d}}(t,r,a,o)})),f=[],h=[],p=[],d=[];for(s=0;se)return r-1}return r},l=function(t,e,r){return tr?r:t},c=function(t){var e=1/0;t.sort((function(t,e){return t-e}));for(var r=t.length,n=1;nf-1||y>h-1||x>p-1)return n.create();var b,_,w,T,k,M,A=a[0][d],S=a[0][v],E=a[1][g],C=a[1][y],L=a[2][m],I=(o-A)/(S-A),P=(c-E)/(C-E),z=(u-L)/(a[2][x]-L);switch(isFinite(I)||(I=.5),isFinite(P)||(P=.5),isFinite(z)||(z=.5),r.reversedX&&(d=f-1-d,v=f-1-v),r.reversedY&&(g=h-1-g,y=h-1-y),r.reversedZ&&(m=p-1-m,x=p-1-x),r.filled){case 5:k=m,M=x,w=g*p,T=y*p,b=d*p*h,_=v*p*h;break;case 4:k=m,M=x,b=d*p,_=v*p,w=g*p*f,T=y*p*f;break;case 3:w=g,T=y,k=m*h,M=x*h,b=d*h*p,_=v*h*p;break;case 2:w=g,T=y,b=d*h,_=v*h,k=m*h*f,M=x*h*f;break;case 1:b=d,_=v,k=m*f,M=x*f,w=g*f*p,T=y*f*p;break;default:b=d,_=v,w=g*f,T=y*f,k=m*f*h,M=x*f*h}var O=i[b+w+k],D=i[b+w+M],R=i[b+T+k],F=i[b+T+M],B=i[_+w+k],N=i[_+w+M],j=i[_+T+k],U=i[_+T+M],V=n.create(),q=n.create(),H=n.create(),G=n.create();n.lerp(V,O,B,I),n.lerp(q,D,N,I),n.lerp(H,R,j,I),n.lerp(G,F,U,I);var Y=n.create(),W=n.create();n.lerp(Y,V,H,P),n.lerp(W,q,G,P);var X=n.create();return n.lerp(X,Y,W,z),X}(e,t,p)},g=t.getDivergence||function(t,e){var r=n.create(),i=1e-4;n.add(r,t,[i,0,0]);var a=d(r);n.subtract(a,a,e),n.scale(a,a,1/i),n.add(r,t,[0,i,0]);var o=d(r);n.subtract(o,o,e),n.scale(o,o,1/i),n.add(r,t,[0,0,i]);var s=d(r);return n.subtract(s,s,e),n.scale(s,s,1/i),n.add(r,a,o),n.add(r,r,s),r},m=[],v=e[0][0],y=e[0][1],x=e[0][2],b=e[1][0],_=e[1][1],w=e[1][2],T=function(t){var e=t[0],r=t[1],n=t[2];return!(eb||r_||nw)},k=10*n.distance(e[0],e[1])/i,M=k*k,A=1,S=0,E=r.length;E>1&&(A=function(t){for(var e=[],r=[],n=[],i={},a={},o={},s=t.length,l=0;lS&&(S=F),D.push(F),m.push({points:I,velocities:P,divergences:D});for(var B=0;B<100*i&&I.lengthM&&n.scale(N,N,k/Math.sqrt(j)),n.add(N,N,L),z=d(N),n.squaredDistance(O,N)-M>-1e-4*M){I.push(N),O=N,P.push(z);R=g(N,z),F=n.length(R);isFinite(F)&&F>S&&(S=F),D.push(F)}L=N}}var U=o(m,t.colormap,S,A);return f?U.tubeScale=f:(0===S&&(S=1),U.tubeScale=.5*u*A/S),U};var u=t("./lib/shaders"),f=t("gl-cone3d").createMesh;e.exports.createTubeMesh=function(t,e){return f(t,e,{shaders:u,traceType:"streamtube"})}},{"./lib/shaders":346,"gl-cone3d":260,"gl-vec3":377,"gl-vec4":413}],349:[function(t,e,r){var n=t("gl-shader"),i=t("glslify"),a=i(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec4 uv;\nattribute vec3 f;\nattribute vec3 normal;\n\nuniform vec3 objectOffset;\nuniform mat4 model, view, projection, inverseModel;\nuniform vec3 lightPosition, eyePosition;\nuniform sampler2D colormap;\n\nvarying float value, kill;\nvarying vec3 worldCoordinate;\nvarying vec2 planeCoordinate;\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\nvarying vec4 vColor;\n\nvoid main() {\n vec3 localCoordinate = vec3(uv.zw, f.x);\n worldCoordinate = objectOffset + localCoordinate;\n vec4 worldPosition = model * vec4(worldCoordinate, 1.0);\n vec4 clipPosition = projection * view * worldPosition;\n gl_Position = clipPosition;\n kill = f.y;\n value = f.z;\n planeCoordinate = uv.xy;\n\n vColor = texture2D(colormap, vec2(value, value));\n\n //Lighting geometry parameters\n vec4 cameraCoordinate = view * worldPosition;\n cameraCoordinate.xyz /= cameraCoordinate.w;\n lightDirection = lightPosition - cameraCoordinate.xyz;\n eyeDirection = eyePosition - cameraCoordinate.xyz;\n surfaceNormal = normalize((vec4(normal,0) * inverseModel).xyz);\n}\n"]),o=i(["precision highp float;\n#define GLSLIFY 1\n\nfloat beckmannDistribution(float x, float roughness) {\n float NdotH = max(x, 0.0001);\n float cos2Alpha = NdotH * NdotH;\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\n float roughness2 = roughness * roughness;\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\n return exp(tan2Alpha / roughness2) / denom;\n}\n\nfloat beckmannSpecular(\n vec3 lightDirection,\n vec3 viewDirection,\n vec3 surfaceNormal,\n float roughness) {\n return beckmannDistribution(dot(surfaceNormal, normalize(lightDirection + viewDirection)), roughness);\n}\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 lowerBound, upperBound;\nuniform float contourTint;\nuniform vec4 contourColor;\nuniform sampler2D colormap;\nuniform vec3 clipBounds[2];\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\nuniform float vertexColor;\n\nvarying float value, kill;\nvarying vec3 worldCoordinate;\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\nvarying vec4 vColor;\n\nvoid main() {\n if (\n kill > 0.0 ||\n vColor.a == 0.0 ||\n outOfRange(clipBounds[0], clipBounds[1], worldCoordinate)\n ) discard;\n\n vec3 N = normalize(surfaceNormal);\n vec3 V = normalize(eyeDirection);\n vec3 L = normalize(lightDirection);\n\n if(gl_FrontFacing) {\n N = -N;\n }\n\n float specular = max(beckmannSpecular(L, V, N, roughness), 0.);\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\n\n //decide how to interpolate color \u2014 in vertex or in fragment\n vec4 surfaceColor =\n step(vertexColor, .5) * texture2D(colormap, vec2(value, value)) +\n step(.5, vertexColor) * vColor;\n\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\n\n gl_FragColor = mix(litColor, contourColor, contourTint) * opacity;\n}\n"]),s=i(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec4 uv;\nattribute float f;\n\nuniform vec3 objectOffset;\nuniform mat3 permutation;\nuniform mat4 model, view, projection;\nuniform float height, zOffset;\nuniform sampler2D colormap;\n\nvarying float value, kill;\nvarying vec3 worldCoordinate;\nvarying vec2 planeCoordinate;\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\nvarying vec4 vColor;\n\nvoid main() {\n vec3 dataCoordinate = permutation * vec3(uv.xy, height);\n worldCoordinate = objectOffset + dataCoordinate;\n vec4 worldPosition = model * vec4(worldCoordinate, 1.0);\n\n vec4 clipPosition = projection * view * worldPosition;\n clipPosition.z += zOffset;\n\n gl_Position = clipPosition;\n value = f + objectOffset.z;\n kill = -1.0;\n planeCoordinate = uv.zw;\n\n vColor = texture2D(colormap, vec2(value, value));\n\n //Don't do lighting for contours\n surfaceNormal = vec3(1,0,0);\n eyeDirection = vec3(0,1,0);\n lightDirection = vec3(0,0,1);\n}\n"]),l=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec2 shape;\nuniform vec3 clipBounds[2];\nuniform float pickId;\n\nvarying float value, kill;\nvarying vec3 worldCoordinate;\nvarying vec2 planeCoordinate;\nvarying vec3 surfaceNormal;\n\nvec2 splitFloat(float v) {\n float vh = 255.0 * v;\n float upper = floor(vh);\n float lower = fract(vh);\n return vec2(upper / 255.0, floor(lower * 16.0) / 16.0);\n}\n\nvoid main() {\n if ((kill > 0.0) ||\n (outOfRange(clipBounds[0], clipBounds[1], worldCoordinate))) discard;\n\n vec2 ux = splitFloat(planeCoordinate.x / shape.x);\n vec2 uy = splitFloat(planeCoordinate.y / shape.y);\n gl_FragColor = vec4(pickId, ux.x, uy.x, ux.y + (uy.y/16.0));\n}\n"]);r.createShader=function(t){var e=n(t,a,o,null,[{name:"uv",type:"vec4"},{name:"f",type:"vec3"},{name:"normal",type:"vec3"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e.attributes.normal.location=2,e},r.createPickShader=function(t){var e=n(t,a,l,null,[{name:"uv",type:"vec4"},{name:"f",type:"vec3"},{name:"normal",type:"vec3"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e.attributes.normal.location=2,e},r.createContourShader=function(t){var e=n(t,s,o,null,[{name:"uv",type:"vec4"},{name:"f",type:"float"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e},r.createPickContourShader=function(t){var e=n(t,s,l,null,[{name:"uv",type:"vec4"},{name:"f",type:"float"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e}},{"gl-shader":335,glslify:350}],350:[function(t,e,r){arguments[4][257][0].apply(r,arguments)},{dup:257}],351:[function(t,e,r){"use strict";e.exports=function(t){var e=t.gl,r=y(e),n=b(e),s=x(e),l=_(e),c=i(e),u=a(e,[{buffer:c,size:4,stride:40,offset:0},{buffer:c,size:3,stride:40,offset:16},{buffer:c,size:3,stride:40,offset:28}]),f=i(e),h=a(e,[{buffer:f,size:4,stride:20,offset:0},{buffer:f,size:1,stride:20,offset:16}]),p=i(e),d=a(e,[{buffer:p,size:2,type:e.FLOAT}]),g=o(e,1,256,e.RGBA,e.UNSIGNED_BYTE);g.minFilter=e.LINEAR,g.magFilter=e.LINEAR;var m=new A(e,[0,0],[[0,0,0],[0,0,0]],r,n,c,u,g,s,l,f,h,p,d,[0,0,0]),v={levels:[[],[],[]]};for(var w in t)v[w]=t[w];return v.colormap=v.colormap||"jet",m.update(v),m};var n=t("bit-twiddle"),i=t("gl-buffer"),a=t("gl-vao"),o=t("gl-texture2d"),s=t("typedarray-pool"),l=t("colormap"),c=t("ndarray-ops"),u=t("ndarray-pack"),f=t("ndarray"),h=t("surface-nets"),p=t("gl-mat4/multiply"),d=t("gl-mat4/invert"),g=t("binary-search-bounds"),m=t("ndarray-gradient"),v=t("./lib/shaders"),y=v.createShader,x=v.createContourShader,b=v.createPickShader,_=v.createPickContourShader,w=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],T=[[0,0],[0,1],[1,0],[1,1],[1,0],[0,1]],k=[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]];function M(t,e,r,n,i){this.position=t,this.index=e,this.uv=r,this.level=n,this.dataCoordinate=i}!function(){for(var t=0;t<3;++t){var e=k[t],r=(t+2)%3;e[(t+1)%3+0]=1,e[r+3]=1,e[t+6]=1}}();function A(t,e,r,n,i,a,o,l,c,u,h,p,d,g,m){this.gl=t,this.shape=e,this.bounds=r,this.objectOffset=m,this.intensityBounds=[],this._shader=n,this._pickShader=i,this._coordinateBuffer=a,this._vao=o,this._colorMap=l,this._contourShader=c,this._contourPickShader=u,this._contourBuffer=h,this._contourVAO=p,this._contourOffsets=[[],[],[]],this._contourCounts=[[],[],[]],this._vertexCount=0,this._pickResult=new M([0,0,0],[0,0],[0,0],[0,0,0],[0,0,0]),this._dynamicBuffer=d,this._dynamicVAO=g,this._dynamicOffsets=[0,0,0],this._dynamicCounts=[0,0,0],this.contourWidth=[1,1,1],this.contourLevels=[[1],[1],[1]],this.contourTint=[0,0,0],this.contourColor=[[.5,.5,.5,1],[.5,.5,.5,1],[.5,.5,.5,1]],this.showContour=!0,this.showSurface=!0,this.enableHighlight=[!0,!0,!0],this.highlightColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.highlightTint=[1,1,1],this.highlightLevel=[-1,-1,-1],this.enableDynamic=[!0,!0,!0],this.dynamicLevel=[NaN,NaN,NaN],this.dynamicColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.dynamicTint=[1,1,1],this.dynamicWidth=[1,1,1],this.axesBounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.surfaceProject=[!1,!1,!1],this.contourProject=[[!1,!1,!1],[!1,!1,!1],[!1,!1,!1]],this.colorBounds=[!1,!1],this._field=[f(s.mallocFloat(1024),[0,0]),f(s.mallocFloat(1024),[0,0]),f(s.mallocFloat(1024),[0,0])],this.pickId=1,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.snapToData=!1,this.pixelRatio=1,this.opacity=1,this.lightPosition=[10,1e4,0],this.ambientLight=.8,this.diffuseLight=.8,this.specularLight=2,this.roughness=.5,this.fresnel=1.5,this.vertexColor=0,this.dirty=!0}var S=A.prototype;S.genColormap=function(t,e){var r=!1,n=u([l({colormap:t,nshades:256,format:"rgba"}).map((function(t,n){var i=e?function(t,e){if(!e)return 1;if(!e.length)return 1;for(var r=0;rt&&r>0){var n=(e[r][0]-t)/(e[r][0]-e[r-1][0]);return e[r][1]*(1-n)+n*e[r-1][1]}}return 1}(n/255,e):t[3];return i<1&&(r=!0),[t[0],t[1],t[2],255*i]}))]);return c.divseq(n,255),this.hasAlphaScale=r,n},S.isTransparent=function(){return this.opacity<1||this.hasAlphaScale},S.isOpaque=function(){return!this.isTransparent()},S.pickSlots=1,S.setPickBase=function(t){this.pickId=t};var E=[0,0,0],C={showSurface:!1,showContour:!1,projections:[w.slice(),w.slice(),w.slice()],clipBounds:[[[0,0,0],[0,0,0]],[[0,0,0],[0,0,0]],[[0,0,0],[0,0,0]]]};function L(t,e){var r,n,i,a=e.axes&&e.axes.lastCubeProps.axis||E,o=e.showSurface,s=e.showContour;for(r=0;r<3;++r)for(o=o||e.surfaceProject[r],n=0;n<3;++n)s=s||e.contourProject[r][n];for(r=0;r<3;++r){var l=C.projections[r];for(n=0;n<16;++n)l[n]=0;for(n=0;n<4;++n)l[5*n]=1;l[5*r]=0,l[12+r]=e.axesBounds[+(a[r]>0)][r],p(l,t.model,l);var c=C.clipBounds[r];for(i=0;i<2;++i)for(n=0;n<3;++n)c[i][n]=t.clipBounds[i][n];c[0][r]=-1e8,c[1][r]=1e8}return C.showSurface=o,C.showContour=s,C}var I={model:w,view:w,projection:w,inverseModel:w.slice(),lowerBound:[0,0,0],upperBound:[0,0,0],colorMap:0,clipBounds:[[0,0,0],[0,0,0]],height:0,contourTint:0,contourColor:[0,0,0,1],permutation:[1,0,0,0,1,0,0,0,1],zOffset:-1e-4,objectOffset:[0,0,0],kambient:1,kdiffuse:1,kspecular:1,lightPosition:[1e3,1e3,1e3],eyePosition:[0,0,0],roughness:1,fresnel:1,opacity:1,vertexColor:0},P=w.slice(),z=[1,0,0,0,1,0,0,0,1];function O(t,e){t=t||{};var r=this.gl;r.disable(r.CULL_FACE),this._colorMap.bind(0);var n=I;n.model=t.model||w,n.view=t.view||w,n.projection=t.projection||w,n.lowerBound=[this.bounds[0][0],this.bounds[0][1],this.colorBounds[0]||this.bounds[0][2]],n.upperBound=[this.bounds[1][0],this.bounds[1][1],this.colorBounds[1]||this.bounds[1][2]],n.objectOffset=this.objectOffset,n.contourColor=this.contourColor[0],n.inverseModel=d(n.inverseModel,n.model);for(var i=0;i<2;++i)for(var a=n.clipBounds[i],o=0;o<3;++o)a[o]=Math.min(Math.max(this.clipBounds[i][o],-1e8),1e8);n.kambient=this.ambientLight,n.kdiffuse=this.diffuseLight,n.kspecular=this.specularLight,n.roughness=this.roughness,n.fresnel=this.fresnel,n.opacity=this.opacity,n.height=0,n.permutation=z,n.vertexColor=this.vertexColor;var s=P;for(p(s,n.view,n.model),p(s,n.projection,s),d(s,s),i=0;i<3;++i)n.eyePosition[i]=s[12+i]/s[15];var l=s[15];for(i=0;i<3;++i)l+=this.lightPosition[i]*s[4*i+3];for(i=0;i<3;++i){var c=s[12+i];for(o=0;o<3;++o)c+=s[4*o+i]*this.lightPosition[o];n.lightPosition[i]=c/l}var u=L(n,this);if(u.showSurface){for(this._shader.bind(),this._shader.uniforms=n,this._vao.bind(),this.showSurface&&this._vertexCount&&this._vao.draw(r.TRIANGLES,this._vertexCount),i=0;i<3;++i)this.surfaceProject[i]&&this.vertexCount&&(this._shader.uniforms.model=u.projections[i],this._shader.uniforms.clipBounds=u.clipBounds[i],this._vao.draw(r.TRIANGLES,this._vertexCount));this._vao.unbind()}if(u.showContour){var f=this._contourShader;n.kambient=1,n.kdiffuse=0,n.kspecular=0,n.opacity=1,f.bind(),f.uniforms=n;var h=this._contourVAO;for(h.bind(),i=0;i<3;++i)for(f.uniforms.permutation=k[i],r.lineWidth(this.contourWidth[i]*this.pixelRatio),o=0;o>4)/16)/255,i=Math.floor(n),a=n-i,o=e[1]*(t.value[1]+(15&t.value[2])/16)/255,s=Math.floor(o),l=o-s;i+=1,s+=1;var c=r.position;c[0]=c[1]=c[2]=0;for(var u=0;u<2;++u)for(var f=u?a:1-a,h=0;h<2;++h)for(var p=i+u,d=s+h,m=f*(h?l:1-l),v=0;v<3;++v)c[v]+=this._field[v].get(p,d)*m;for(var y=this._pickResult.level,x=0;x<3;++x)if(y[x]=g.le(this.contourLevels[x],c[x]),y[x]<0)this.contourLevels[x].length>0&&(y[x]=0);else if(y[x]Math.abs(_-c[x])&&(y[x]+=1)}for(r.index[0]=a<.5?i:i+1,r.index[1]=l<.5?s:s+1,r.uv[0]=n/e[0],r.uv[1]=o/e[1],v=0;v<3;++v)r.dataCoordinate[v]=this._field[v].get(r.index[0],r.index[1]);return r},S.padField=function(t,e){var r=e.shape.slice(),n=t.shape.slice();c.assign(t.lo(1,1).hi(r[0],r[1]),e),c.assign(t.lo(1).hi(r[0],1),e.hi(r[0],1)),c.assign(t.lo(1,n[1]-1).hi(r[0],1),e.lo(0,r[1]-1).hi(r[0],1)),c.assign(t.lo(0,1).hi(1,r[1]),e.hi(1)),c.assign(t.lo(n[0]-1,1).hi(1,r[1]),e.lo(r[0]-1)),t.set(0,0,e.get(0,0)),t.set(0,n[1]-1,e.get(0,r[1]-1)),t.set(n[0]-1,0,e.get(r[0]-1,0)),t.set(n[0]-1,n[1]-1,e.get(r[0]-1,r[1]-1))},S.update=function(t){t=t||{},this.objectOffset=t.objectOffset||this.objectOffset,this.dirty=!0,"contourWidth"in t&&(this.contourWidth=R(t.contourWidth,Number)),"showContour"in t&&(this.showContour=R(t.showContour,Boolean)),"showSurface"in t&&(this.showSurface=!!t.showSurface),"contourTint"in t&&(this.contourTint=R(t.contourTint,Boolean)),"contourColor"in t&&(this.contourColor=B(t.contourColor)),"contourProject"in t&&(this.contourProject=R(t.contourProject,(function(t){return R(t,Boolean)}))),"surfaceProject"in t&&(this.surfaceProject=t.surfaceProject),"dynamicColor"in t&&(this.dynamicColor=B(t.dynamicColor)),"dynamicTint"in t&&(this.dynamicTint=R(t.dynamicTint,Number)),"dynamicWidth"in t&&(this.dynamicWidth=R(t.dynamicWidth,Number)),"opacity"in t&&(this.opacity=t.opacity),"opacityscale"in t&&(this.opacityscale=t.opacityscale),"colorBounds"in t&&(this.colorBounds=t.colorBounds),"vertexColor"in t&&(this.vertexColor=t.vertexColor?1:0),"colormap"in t&&this._colorMap.setPixels(this.genColormap(t.colormap,this.opacityscale));var e=t.field||t.coords&&t.coords[2]||null,r=!1;if(e||(e=this._field[2].shape[0]||this._field[2].shape[2]?this._field[2].lo(1,1).hi(this._field[2].shape[0]-2,this._field[2].shape[1]-2):this._field[2].hi(0,0)),"field"in t||"coords"in t){var i=(e.shape[0]+2)*(e.shape[1]+2);i>this._field[2].data.length&&(s.freeFloat(this._field[2].data),this._field[2].data=s.mallocFloat(n.nextPow2(i))),this._field[2]=f(this._field[2].data,[e.shape[0]+2,e.shape[1]+2]),this.padField(this._field[2],e),this.shape=e.shape.slice();for(var a=this.shape,o=0;o<2;++o)this._field[2].size>this._field[o].data.length&&(s.freeFloat(this._field[o].data),this._field[o].data=s.mallocFloat(this._field[2].size)),this._field[o]=f(this._field[o].data,[a[0]+2,a[1]+2]);if(t.coords){var l=t.coords;if(!Array.isArray(l)||3!==l.length)throw new Error("gl-surface: invalid coordinates for x/y");for(o=0;o<2;++o){var c=l[o];for(v=0;v<2;++v)if(c.shape[v]!==a[v])throw new Error("gl-surface: coords have incorrect shape");this.padField(this._field[o],c)}}else if(t.ticks){var u=t.ticks;if(!Array.isArray(u)||2!==u.length)throw new Error("gl-surface: invalid ticks");for(o=0;o<2;++o){var p=u[o];if((Array.isArray(p)||p.length)&&(p=f(p)),p.shape[0]!==a[o])throw new Error("gl-surface: invalid tick length");var d=f(p.data,a);d.stride[o]=p.stride[0],d.stride[1^o]=0,this.padField(this._field[o],d)}}else{for(o=0;o<2;++o){var g=[0,0];g[o]=1,this._field[o]=f(this._field[o].data,[a[0]+2,a[1]+2],g,0)}this._field[0].set(0,0,0);for(var v=0;v0){for(var xt=0;xt<5;++xt)Q.pop();U-=1}continue t}Q.push(nt[0],nt[1],ot[0],ot[1],nt[2]),U+=1}}rt.push(U)}this._contourOffsets[$]=et,this._contourCounts[$]=rt}var bt=s.mallocFloat(Q.length);for(o=0;o halfCharStep + halfCharWidth ||\n\t\t\t\t\tfloor(uv.x) < halfCharStep - halfCharWidth) return;\n\n\t\t\t\tuv += charId * charStep;\n\t\t\t\tuv = uv / atlasSize;\n\n\t\t\t\tvec4 color = fontColor;\n\t\t\t\tvec4 mask = texture2D(atlas, uv);\n\n\t\t\t\tfloat maskY = lightness(mask);\n\t\t\t\t// float colorY = lightness(color);\n\t\t\t\tcolor.a *= maskY;\n\t\t\t\tcolor.a *= opacity;\n\n\t\t\t\t// color.a += .1;\n\n\t\t\t\t// antialiasing, see yiq color space y-channel formula\n\t\t\t\t// color.rgb += (1. - color.rgb) * (1. - mask.rgb);\n\n\t\t\t\tgl_FragColor = color;\n\t\t\t}"});return{regl:t,draw:e,atlas:{}}},T.prototype.update=function(t){var e=this;if("string"==typeof t)t={text:t};else if(!t)return;null!=(t=i(t,{position:"position positions coord coords coordinates",font:"font fontFace fontface typeface cssFont css-font family fontFamily",fontSize:"fontSize fontsize size font-size",text:"text texts chars characters value values symbols",align:"align alignment textAlign textbaseline",baseline:"baseline textBaseline textbaseline",direction:"dir direction textDirection",color:"color colour fill fill-color fillColor textColor textcolor",kerning:"kerning kern",range:"range dataBox",viewport:"vp viewport viewBox viewbox viewPort",opacity:"opacity alpha transparency visible visibility opaque",offset:"offset positionOffset padding shift indent indentation"},!0)).opacity&&(Array.isArray(t.opacity)?this.opacity=t.opacity.map((function(t){return parseFloat(t)})):this.opacity=parseFloat(t.opacity)),null!=t.viewport&&(this.viewport=f(t.viewport),T.normalViewport&&(this.viewport.y=this.canvas.height-this.viewport.y-this.viewport.height),this.viewportArray=[this.viewport.x,this.viewport.y,this.viewport.width,this.viewport.height]),null==this.viewport&&(this.viewport={x:0,y:0,width:this.gl.drawingBufferWidth,height:this.gl.drawingBufferHeight},this.viewportArray=[this.viewport.x,this.viewport.y,this.viewport.width,this.viewport.height]),null!=t.kerning&&(this.kerning=t.kerning),null!=t.offset&&("number"==typeof t.offset&&(t.offset=[t.offset,0]),this.positionOffset=y(t.offset)),t.direction&&(this.direction=t.direction),t.range&&(this.range=t.range,this.scale=[1/(t.range[2]-t.range[0]),1/(t.range[3]-t.range[1])],this.translate=[-t.range[0],-t.range[1]]),t.scale&&(this.scale=t.scale),t.translate&&(this.translate=t.translate),this.scale||(this.scale=[1/this.viewport.width,1/this.viewport.height]),this.translate||(this.translate=[0,0]),this.font.length||t.font||(t.font=T.baseFontSize+"px sans-serif");var r,a=!1,o=!1;if(t.font&&(Array.isArray(t.font)?t.font:[t.font]).forEach((function(t,r){if("string"==typeof t)try{t=n.parse(t)}catch(e){t=n.parse(T.baseFontSize+"px "+t)}else t=n.parse(n.stringify(t));var i=n.stringify({size:T.baseFontSize,family:t.family,stretch:_?t.stretch:void 0,variant:t.variant,weight:t.weight,style:t.style}),s=p(t.size),l=Math.round(s[0]*d(s[1]));if(l!==e.fontSize[r]&&(o=!0,e.fontSize[r]=l),!(e.font[r]&&i==e.font[r].baseString||(a=!0,e.font[r]=T.fonts[i],e.font[r]))){var c=t.family.join(", "),u=[t.style];t.style!=t.variant&&u.push(t.variant),t.variant!=t.weight&&u.push(t.weight),_&&t.weight!=t.stretch&&u.push(t.stretch),e.font[r]={baseString:i,family:c,weight:t.weight,stretch:t.stretch,style:t.style,variant:t.variant,width:{},kerning:{},metrics:v(c,{origin:"top",fontSize:T.baseFontSize,fontStyle:u.join(" ")})},T.fonts[i]=e.font[r]}})),(a||o)&&this.font.forEach((function(r,i){var a=n.stringify({size:e.fontSize[i],family:r.family,stretch:_?r.stretch:void 0,variant:r.variant,weight:r.weight,style:r.style});if(e.fontAtlas[i]=e.shader.atlas[a],!e.fontAtlas[i]){var o=r.metrics;e.shader.atlas[a]=e.fontAtlas[i]={fontString:a,step:2*Math.ceil(e.fontSize[i]*o.bottom*.5),em:e.fontSize[i],cols:0,rows:0,height:0,width:0,chars:[],ids:{},texture:e.regl.texture()}}null==t.text&&(t.text=e.text)})),"string"==typeof t.text&&t.position&&t.position.length>2){for(var s=Array(.5*t.position.length),h=0;h2){for(var w=!t.position[0].length,k=u.mallocFloat(2*this.count),M=0,A=0;M1?e.align[r]:e.align[0]:e.align;if("number"==typeof n)return n;switch(n){case"right":case"end":return-t;case"center":case"centre":case"middle":return.5*-t}return 0}))),null==this.baseline&&null==t.baseline&&(t.baseline=0),null!=t.baseline&&(this.baseline=t.baseline,Array.isArray(this.baseline)||(this.baseline=[this.baseline]),this.baselineOffset=this.baseline.map((function(t,r){var n=(e.font[r]||e.font[0]).metrics,i=0;return i+=.5*n.bottom,i+="number"==typeof t?t-n.baseline:-n[t],T.normalViewport||(i*=-1),i}))),null!=t.color)if(t.color||(t.color="transparent"),"string"!=typeof t.color&&isNaN(t.color)){var H;if("number"==typeof t.color[0]&&t.color.length>this.counts.length){var G=t.color.length;H=u.mallocUint8(G);for(var Y=(t.color.subarray||t.color.slice).bind(t.color),W=0;W4||this.baselineOffset.length>1||this.align&&this.align.length>1||this.fontAtlas.length>1||this.positionOffset.length>2){var J=Math.max(.5*this.position.length||0,.25*this.color.length||0,this.baselineOffset.length||0,this.alignOffset.length||0,this.font.length||0,this.opacity.length||0,.5*this.positionOffset.length||0);this.batch=Array(J);for(var K=0;K1?this.counts[K]:this.counts[0],offset:this.textOffsets.length>1?this.textOffsets[K]:this.textOffsets[0],color:this.color?this.color.length<=4?this.color:this.color.subarray(4*K,4*K+4):[0,0,0,255],opacity:Array.isArray(this.opacity)?this.opacity[K]:this.opacity,baseline:null!=this.baselineOffset[K]?this.baselineOffset[K]:this.baselineOffset[0],align:this.align?null!=this.alignOffset[K]?this.alignOffset[K]:this.alignOffset[0]:0,atlas:this.fontAtlas[K]||this.fontAtlas[0],positionOffset:this.positionOffset.length>2?this.positionOffset.subarray(2*K,2*K+2):this.positionOffset}}else this.count?this.batch=[{count:this.count,offset:0,color:this.color||[0,0,0,255],opacity:Array.isArray(this.opacity)?this.opacity[0]:this.opacity,baseline:this.baselineOffset[0],align:this.alignOffset?this.alignOffset[0]:0,atlas:this.fontAtlas[0],positionOffset:this.positionOffset}]:this.batch=[]},T.prototype.destroy=function(){},T.prototype.kerning=!0,T.prototype.position={constant:new Float32Array(2)},T.prototype.translate=null,T.prototype.scale=null,T.prototype.font=null,T.prototype.text="",T.prototype.positionOffset=[0,0],T.prototype.opacity=1,T.prototype.color=new Uint8Array([0,0,0,255]),T.prototype.alignOffset=[0,0],T.normalViewport=!1,T.maxAtlasSize=1024,T.atlasCanvas=document.createElement("canvas"),T.atlasContext=T.atlasCanvas.getContext("2d",{alpha:!1}),T.baseFontSize=64,T.fonts={},e.exports=T},{"bit-twiddle":97,"color-normalize":125,"css-font":144,"detect-kerning":172,"es6-weak-map":233,"flatten-vertex-data":244,"font-atlas":245,"font-measure":246,"gl-util/context":354,"is-plain-obj":469,"object-assign":499,"parse-rect":504,"parse-unit":506,"pick-by-alias":511,regl:540,"to-px":578,"typedarray-pool":595}],353:[function(t,e,r){"use strict";var n=t("ndarray"),i=t("ndarray-ops"),a=t("typedarray-pool");e.exports=function(t){if(arguments.length<=1)throw new Error("gl-texture2d: Missing arguments for texture2d constructor");o||c(t);if("number"==typeof arguments[1])return v(t,arguments[1],arguments[2],arguments[3]||t.RGBA,arguments[4]||t.UNSIGNED_BYTE);if(Array.isArray(arguments[1]))return v(t,0|arguments[1][0],0|arguments[1][1],arguments[2]||t.RGBA,arguments[3]||t.UNSIGNED_BYTE);if("object"==typeof arguments[1]){var e=arguments[1],r=u(e)?e:e.raw;if(r)return y(t,r,0|e.width,0|e.height,arguments[2]||t.RGBA,arguments[3]||t.UNSIGNED_BYTE);if(e.shape&&e.data&&e.stride)return x(t,e)}throw new Error("gl-texture2d: Invalid arguments for texture2d constructor")};var o=null,s=null,l=null;function c(t){o=[t.LINEAR,t.NEAREST_MIPMAP_LINEAR,t.LINEAR_MIPMAP_NEAREST,t.LINEAR_MIPMAP_NEAREST],s=[t.NEAREST,t.LINEAR,t.NEAREST_MIPMAP_NEAREST,t.NEAREST_MIPMAP_LINEAR,t.LINEAR_MIPMAP_NEAREST,t.LINEAR_MIPMAP_LINEAR],l=[t.REPEAT,t.CLAMP_TO_EDGE,t.MIRRORED_REPEAT]}function u(t){return"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLVideoElement&&t instanceof HTMLVideoElement||"undefined"!=typeof ImageData&&t instanceof ImageData}var f=function(t,e){i.muls(t,e,255)};function h(t,e,r){var n=t.gl,i=n.getParameter(n.MAX_TEXTURE_SIZE);if(e<0||e>i||r<0||r>i)throw new Error("gl-texture2d: Invalid texture size");return t._shape=[e,r],t.bind(),n.texImage2D(n.TEXTURE_2D,0,t.format,e,r,0,t.format,t.type,null),t._mipLevels=[0],t}function p(t,e,r,n,i,a){this.gl=t,this.handle=e,this.format=i,this.type=a,this._shape=[r,n],this._mipLevels=[0],this._magFilter=t.NEAREST,this._minFilter=t.NEAREST,this._wrapS=t.CLAMP_TO_EDGE,this._wrapT=t.CLAMP_TO_EDGE,this._anisoSamples=1;var o=this,s=[this._wrapS,this._wrapT];Object.defineProperties(s,[{get:function(){return o._wrapS},set:function(t){return o.wrapS=t}},{get:function(){return o._wrapT},set:function(t){return o.wrapT=t}}]),this._wrapVector=s;var l=[this._shape[0],this._shape[1]];Object.defineProperties(l,[{get:function(){return o._shape[0]},set:function(t){return o.width=t}},{get:function(){return o._shape[1]},set:function(t){return o.height=t}}]),this._shapeVector=l}var d=p.prototype;function g(t,e){return 3===t.length?1===e[2]&&e[1]===t[0]*t[2]&&e[0]===t[2]:1===e[0]&&e[1]===t[0]}function m(t){var e=t.createTexture();return t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),e}function v(t,e,r,n,i){var a=t.getParameter(t.MAX_TEXTURE_SIZE);if(e<0||e>a||r<0||r>a)throw new Error("gl-texture2d: Invalid texture shape");if(i===t.FLOAT&&!t.getExtension("OES_texture_float"))throw new Error("gl-texture2d: Floating point textures not supported on this platform");var o=m(t);return t.texImage2D(t.TEXTURE_2D,0,n,e,r,0,n,i,null),new p(t,o,e,r,n,i)}function y(t,e,r,n,i,a){var o=m(t);return t.texImage2D(t.TEXTURE_2D,0,i,i,a,e),new p(t,o,r,n,i,a)}function x(t,e){var r=e.dtype,o=e.shape.slice(),s=t.getParameter(t.MAX_TEXTURE_SIZE);if(o[0]<0||o[0]>s||o[1]<0||o[1]>s)throw new Error("gl-texture2d: Invalid texture size");var l=g(o,e.stride.slice()),c=0;"float32"===r?c=t.FLOAT:"float64"===r?(c=t.FLOAT,l=!1,r="float32"):"uint8"===r?c=t.UNSIGNED_BYTE:(c=t.UNSIGNED_BYTE,l=!1,r="uint8");var u,h,d=0;if(2===o.length)d=t.LUMINANCE,o=[o[0],o[1],1],e=n(e.data,o,[e.stride[0],e.stride[1],1],e.offset);else{if(3!==o.length)throw new Error("gl-texture2d: Invalid shape for texture");if(1===o[2])d=t.ALPHA;else if(2===o[2])d=t.LUMINANCE_ALPHA;else if(3===o[2])d=t.RGB;else{if(4!==o[2])throw new Error("gl-texture2d: Invalid shape for pixel coords");d=t.RGBA}}c!==t.FLOAT||t.getExtension("OES_texture_float")||(c=t.UNSIGNED_BYTE,l=!1);var v=e.size;if(l)u=0===e.offset&&e.data.length===v?e.data:e.data.subarray(e.offset,e.offset+v);else{var y=[o[2],o[2]*o[0],1];h=a.malloc(v,r);var x=n(h,o,y,0);"float32"!==r&&"float64"!==r||c!==t.UNSIGNED_BYTE?i.assign(x,e):f(x,e),u=h.subarray(0,v)}var b=m(t);return t.texImage2D(t.TEXTURE_2D,0,d,o[0],o[1],0,d,c,u),l||a.free(h),new p(t,b,o[0],o[1],d,c)}Object.defineProperties(d,{minFilter:{get:function(){return this._minFilter},set:function(t){this.bind();var e=this.gl;if(this.type===e.FLOAT&&o.indexOf(t)>=0&&(e.getExtension("OES_texture_float_linear")||(t=e.NEAREST)),s.indexOf(t)<0)throw new Error("gl-texture2d: Unknown filter mode "+t);return e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,t),this._minFilter=t}},magFilter:{get:function(){return this._magFilter},set:function(t){this.bind();var e=this.gl;if(this.type===e.FLOAT&&o.indexOf(t)>=0&&(e.getExtension("OES_texture_float_linear")||(t=e.NEAREST)),s.indexOf(t)<0)throw new Error("gl-texture2d: Unknown filter mode "+t);return e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,t),this._magFilter=t}},mipSamples:{get:function(){return this._anisoSamples},set:function(t){var e=this._anisoSamples;if(this._anisoSamples=0|Math.max(t,1),e!==this._anisoSamples){var r=this.gl.getExtension("EXT_texture_filter_anisotropic");r&&this.gl.texParameterf(this.gl.TEXTURE_2D,r.TEXTURE_MAX_ANISOTROPY_EXT,this._anisoSamples)}return this._anisoSamples}},wrapS:{get:function(){return this._wrapS},set:function(t){if(this.bind(),l.indexOf(t)<0)throw new Error("gl-texture2d: Unknown wrap mode "+t);return this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,t),this._wrapS=t}},wrapT:{get:function(){return this._wrapT},set:function(t){if(this.bind(),l.indexOf(t)<0)throw new Error("gl-texture2d: Unknown wrap mode "+t);return this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,t),this._wrapT=t}},wrap:{get:function(){return this._wrapVector},set:function(t){if(Array.isArray(t)||(t=[t,t]),2!==t.length)throw new Error("gl-texture2d: Must specify wrap mode for rows and columns");for(var e=0;e<2;++e)if(l.indexOf(t[e])<0)throw new Error("gl-texture2d: Unknown wrap mode "+t);this._wrapS=t[0],this._wrapT=t[1];var r=this.gl;return this.bind(),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,this._wrapS),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,this._wrapT),t}},shape:{get:function(){return this._shapeVector},set:function(t){if(Array.isArray(t)){if(2!==t.length)throw new Error("gl-texture2d: Invalid texture shape")}else t=[0|t,0|t];return h(this,0|t[0],0|t[1]),[0|t[0],0|t[1]]}},width:{get:function(){return this._shape[0]},set:function(t){return h(this,t|=0,this._shape[1]),t}},height:{get:function(){return this._shape[1]},set:function(t){return t|=0,h(this,this._shape[0],t),t}}}),d.bind=function(t){var e=this.gl;return void 0!==t&&e.activeTexture(e.TEXTURE0+(0|t)),e.bindTexture(e.TEXTURE_2D,this.handle),void 0!==t?0|t:e.getParameter(e.ACTIVE_TEXTURE)-e.TEXTURE0},d.dispose=function(){this.gl.deleteTexture(this.handle)},d.generateMipmap=function(){this.bind(),this.gl.generateMipmap(this.gl.TEXTURE_2D);for(var t=Math.min(this._shape[0],this._shape[1]),e=0;t>0;++e,t>>>=1)this._mipLevels.indexOf(e)<0&&this._mipLevels.push(e)},d.setPixels=function(t,e,r,o){var s=this.gl;this.bind(),Array.isArray(e)?(o=r,r=0|e[1],e=0|e[0]):(e=e||0,r=r||0),o=o||0;var l=u(t)?t:t.raw;if(l){this._mipLevels.indexOf(o)<0?(s.texImage2D(s.TEXTURE_2D,0,this.format,this.format,this.type,l),this._mipLevels.push(o)):s.texSubImage2D(s.TEXTURE_2D,o,e,r,this.format,this.type,l)}else{if(!(t.shape&&t.stride&&t.data))throw new Error("gl-texture2d: Unsupported data type");if(t.shape.length<2||e+t.shape[1]>this._shape[1]>>>o||r+t.shape[0]>this._shape[0]>>>o||e<0||r<0)throw new Error("gl-texture2d: Texture dimensions are out of bounds");!function(t,e,r,o,s,l,c,u){var h=u.dtype,p=u.shape.slice();if(p.length<2||p.length>3)throw new Error("gl-texture2d: Invalid ndarray, must be 2d or 3d");var d=0,m=0,v=g(p,u.stride.slice());"float32"===h?d=t.FLOAT:"float64"===h?(d=t.FLOAT,v=!1,h="float32"):"uint8"===h?d=t.UNSIGNED_BYTE:(d=t.UNSIGNED_BYTE,v=!1,h="uint8");if(2===p.length)m=t.LUMINANCE,p=[p[0],p[1],1],u=n(u.data,p,[u.stride[0],u.stride[1],1],u.offset);else{if(3!==p.length)throw new Error("gl-texture2d: Invalid shape for texture");if(1===p[2])m=t.ALPHA;else if(2===p[2])m=t.LUMINANCE_ALPHA;else if(3===p[2])m=t.RGB;else{if(4!==p[2])throw new Error("gl-texture2d: Invalid shape for pixel coords");m=t.RGBA}p[2]}m!==t.LUMINANCE&&m!==t.ALPHA||s!==t.LUMINANCE&&s!==t.ALPHA||(m=s);if(m!==s)throw new Error("gl-texture2d: Incompatible texture format for setPixels");var y=u.size,x=c.indexOf(o)<0;x&&c.push(o);if(d===l&&v)0===u.offset&&u.data.length===y?x?t.texImage2D(t.TEXTURE_2D,o,s,p[0],p[1],0,s,l,u.data):t.texSubImage2D(t.TEXTURE_2D,o,e,r,p[0],p[1],s,l,u.data):x?t.texImage2D(t.TEXTURE_2D,o,s,p[0],p[1],0,s,l,u.data.subarray(u.offset,u.offset+y)):t.texSubImage2D(t.TEXTURE_2D,o,e,r,p[0],p[1],s,l,u.data.subarray(u.offset,u.offset+y));else{var b;b=l===t.FLOAT?a.mallocFloat32(y):a.mallocUint8(y);var _=n(b,p,[p[2],p[2]*p[0],1]);d===t.FLOAT&&l===t.UNSIGNED_BYTE?f(_,u):i.assign(_,u),x?t.texImage2D(t.TEXTURE_2D,o,s,p[0],p[1],0,s,l,b.subarray(0,y)):t.texSubImage2D(t.TEXTURE_2D,o,e,r,p[0],p[1],s,l,b.subarray(0,y)),l===t.FLOAT?a.freeFloat32(b):a.freeUint8(b)}}(s,e,r,o,this.format,this.type,this._mipLevels,t)}}},{ndarray:495,"ndarray-ops":490,"typedarray-pool":595}],354:[function(t,e,r){(function(r){(function(){"use strict";var n=t("pick-by-alias");function i(t){if(t.container)if(t.container==document.body)document.body.style.width||(t.canvas.width=t.width||t.pixelRatio*r.innerWidth),document.body.style.height||(t.canvas.height=t.height||t.pixelRatio*r.innerHeight);else{var e=t.container.getBoundingClientRect();t.canvas.width=t.width||e.right-e.left,t.canvas.height=t.height||e.bottom-e.top}}function a(t){return"function"==typeof t.getContext&&"width"in t&&"height"in t}function o(){var t=document.createElement("canvas");return t.style.position="absolute",t.style.top=0,t.style.left=0,t}e.exports=function(t){var e;if(t?"string"==typeof t&&(t={container:t}):t={},a(t)?t={container:t}:t="string"==typeof(e=t).nodeName&&"function"==typeof e.appendChild&&"function"==typeof e.getBoundingClientRect?{container:t}:function(t){return"function"==typeof t.drawArrays||"function"==typeof t.drawElements}(t)?{gl:t}:n(t,{container:"container target element el canvas holder parent parentNode wrapper use ref root node",gl:"gl context webgl glContext",attrs:"attributes attrs contextAttributes",pixelRatio:"pixelRatio pxRatio px ratio pxratio pixelratio",width:"w width",height:"h height"},!0),t.pixelRatio||(t.pixelRatio=r.pixelRatio||1),t.gl)return t.gl;if(t.canvas&&(t.container=t.canvas.parentNode),t.container){if("string"==typeof t.container){var s=document.querySelector(t.container);if(!s)throw Error("Element "+t.container+" is not found");t.container=s}a(t.container)?(t.canvas=t.container,t.container=t.canvas.parentNode):t.canvas||(t.canvas=o(),t.container.appendChild(t.canvas),i(t))}else if(!t.canvas){if("undefined"==typeof document)throw Error("Not DOM environment. Use headless-gl.");t.container=document.body||document.documentElement,t.canvas=o(),t.container.appendChild(t.canvas),i(t)}if(!t.gl)try{t.gl=t.canvas.getContext("webgl",t.attrs)}catch(e){try{t.gl=t.canvas.getContext("experimental-webgl",t.attrs)}catch(e){t.gl=t.canvas.getContext("webgl-experimental",t.attrs)}}return t.gl}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"pick-by-alias":511}],355:[function(t,e,r){"use strict";e.exports=function(t,e,r){e?e.bind():t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null);var n=0|t.getParameter(t.MAX_VERTEX_ATTRIBS);if(r){if(r.length>n)throw new Error("gl-vao: Too many vertex attributes");for(var i=0;i1?0:Math.acos(s)};var n=t("./fromValues"),i=t("./normalize"),a=t("./dot")},{"./dot":370,"./fromValues":376,"./normalize":387}],361:[function(t,e,r){e.exports=function(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t}},{}],362:[function(t,e,r){e.exports=function(t){var e=new Float32Array(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}},{}],363:[function(t,e,r){e.exports=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}},{}],364:[function(t,e,r){e.exports=function(){var t=new Float32Array(3);return t[0]=0,t[1]=0,t[2]=0,t}},{}],365:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2];return t[0]=i*l-a*s,t[1]=a*o-n*l,t[2]=n*s-i*o,t}},{}],366:[function(t,e,r){e.exports=t("./distance")},{"./distance":367}],367:[function(t,e,r){e.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2];return Math.sqrt(r*r+n*n+i*i)}},{}],368:[function(t,e,r){e.exports=t("./divide")},{"./divide":369}],369:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}},{}],370:[function(t,e,r){e.exports=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}},{}],371:[function(t,e,r){e.exports=1e-6},{}],372:[function(t,e,r){e.exports=function(t,e){var r=t[0],i=t[1],a=t[2],o=e[0],s=e[1],l=e[2];return Math.abs(r-o)<=n*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(i-s)<=n*Math.max(1,Math.abs(i),Math.abs(s))&&Math.abs(a-l)<=n*Math.max(1,Math.abs(a),Math.abs(l))};var n=t("./epsilon")},{"./epsilon":371}],373:[function(t,e,r){e.exports=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}},{}],374:[function(t,e,r){e.exports=function(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t}},{}],375:[function(t,e,r){e.exports=function(t,e,r,i,a,o){var s,l;e||(e=3);r||(r=0);l=i?Math.min(i*e+r,t.length):t.length;for(s=r;s0&&(a=1/Math.sqrt(a),t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a);return t}},{}],388:[function(t,e,r){e.exports=function(t,e){e=e||1;var r=2*Math.random()*Math.PI,n=2*Math.random()-1,i=Math.sqrt(1-n*n)*e;return t[0]=Math.cos(r)*i,t[1]=Math.sin(r)*i,t[2]=n*e,t}},{}],389:[function(t,e,r){e.exports=function(t,e,r,n){var i=r[1],a=r[2],o=e[1]-i,s=e[2]-a,l=Math.sin(n),c=Math.cos(n);return t[0]=e[0],t[1]=i+o*c-s*l,t[2]=a+o*l+s*c,t}},{}],390:[function(t,e,r){e.exports=function(t,e,r,n){var i=r[0],a=r[2],o=e[0]-i,s=e[2]-a,l=Math.sin(n),c=Math.cos(n);return t[0]=i+s*l+o*c,t[1]=e[1],t[2]=a+s*c-o*l,t}},{}],391:[function(t,e,r){e.exports=function(t,e,r,n){var i=r[0],a=r[1],o=e[0]-i,s=e[1]-a,l=Math.sin(n),c=Math.cos(n);return t[0]=i+o*c-s*l,t[1]=a+o*l+s*c,t[2]=e[2],t}},{}],392:[function(t,e,r){e.exports=function(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t[2]=Math.round(e[2]),t}},{}],393:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}},{}],394:[function(t,e,r){e.exports=function(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t}},{}],395:[function(t,e,r){e.exports=function(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t}},{}],396:[function(t,e,r){e.exports=t("./squaredDistance")},{"./squaredDistance":398}],397:[function(t,e,r){e.exports=t("./squaredLength")},{"./squaredLength":399}],398:[function(t,e,r){e.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2];return r*r+n*n+i*i}},{}],399:[function(t,e,r){e.exports=function(t){var e=t[0],r=t[1],n=t[2];return e*e+r*r+n*n}},{}],400:[function(t,e,r){e.exports=t("./subtract")},{"./subtract":401}],401:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}},{}],402:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2];return t[0]=n*r[0]+i*r[3]+a*r[6],t[1]=n*r[1]+i*r[4]+a*r[7],t[2]=n*r[2]+i*r[5]+a*r[8],t}},{}],403:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[3]*n+r[7]*i+r[11]*a+r[15];return o=o||1,t[0]=(r[0]*n+r[4]*i+r[8]*a+r[12])/o,t[1]=(r[1]*n+r[5]*i+r[9]*a+r[13])/o,t[2]=(r[2]*n+r[6]*i+r[10]*a+r[14])/o,t}},{}],404:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2],c=r[3],u=c*n+s*a-l*i,f=c*i+l*n-o*a,h=c*a+o*i-s*n,p=-o*n-s*i-l*a;return t[0]=u*c+p*-o+f*-l-h*-s,t[1]=f*c+p*-s+h*-o-u*-l,t[2]=h*c+p*-l+u*-s-f*-o,t}},{}],405:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t}},{}],406:[function(t,e,r){e.exports=function(t){var e=new Float32Array(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}},{}],407:[function(t,e,r){e.exports=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}},{}],408:[function(t,e,r){e.exports=function(){var t=new Float32Array(4);return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t}},{}],409:[function(t,e,r){e.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2],a=e[3]-t[3];return Math.sqrt(r*r+n*n+i*i+a*a)}},{}],410:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t[3]=e[3]/r[3],t}},{}],411:[function(t,e,r){e.exports=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}},{}],412:[function(t,e,r){e.exports=function(t,e,r,n){var i=new Float32Array(4);return i[0]=t,i[1]=e,i[2]=r,i[3]=n,i}},{}],413:[function(t,e,r){e.exports={create:t("./create"),clone:t("./clone"),fromValues:t("./fromValues"),copy:t("./copy"),set:t("./set"),add:t("./add"),subtract:t("./subtract"),multiply:t("./multiply"),divide:t("./divide"),min:t("./min"),max:t("./max"),scale:t("./scale"),scaleAndAdd:t("./scaleAndAdd"),distance:t("./distance"),squaredDistance:t("./squaredDistance"),length:t("./length"),squaredLength:t("./squaredLength"),negate:t("./negate"),inverse:t("./inverse"),normalize:t("./normalize"),dot:t("./dot"),lerp:t("./lerp"),random:t("./random"),transformMat4:t("./transformMat4"),transformQuat:t("./transformQuat")}},{"./add":405,"./clone":406,"./copy":407,"./create":408,"./distance":409,"./divide":410,"./dot":411,"./fromValues":412,"./inverse":414,"./length":415,"./lerp":416,"./max":417,"./min":418,"./multiply":419,"./negate":420,"./normalize":421,"./random":422,"./scale":423,"./scaleAndAdd":424,"./set":425,"./squaredDistance":426,"./squaredLength":427,"./subtract":428,"./transformMat4":429,"./transformQuat":430}],414:[function(t,e,r){e.exports=function(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t[3]=1/e[3],t}},{}],415:[function(t,e,r){e.exports=function(t){var e=t[0],r=t[1],n=t[2],i=t[3];return Math.sqrt(e*e+r*r+n*n+i*i)}},{}],416:[function(t,e,r){e.exports=function(t,e,r,n){var i=e[0],a=e[1],o=e[2],s=e[3];return t[0]=i+n*(r[0]-i),t[1]=a+n*(r[1]-a),t[2]=o+n*(r[2]-o),t[3]=s+n*(r[3]-s),t}},{}],417:[function(t,e,r){e.exports=function(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t[3]=Math.max(e[3],r[3]),t}},{}],418:[function(t,e,r){e.exports=function(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t[3]=Math.min(e[3],r[3]),t}},{}],419:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t[3]=e[3]*r[3],t}},{}],420:[function(t,e,r){e.exports=function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t}},{}],421:[function(t,e,r){e.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=r*r+n*n+i*i+a*a;o>0&&(o=1/Math.sqrt(o),t[0]=r*o,t[1]=n*o,t[2]=i*o,t[3]=a*o);return t}},{}],422:[function(t,e,r){var n=t("./normalize"),i=t("./scale");e.exports=function(t,e){return e=e||1,t[0]=Math.random(),t[1]=Math.random(),t[2]=Math.random(),t[3]=Math.random(),n(t,t),i(t,t,e),t}},{"./normalize":421,"./scale":423}],423:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t}},{}],424:[function(t,e,r){e.exports=function(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t}},{}],425:[function(t,e,r){e.exports=function(t,e,r,n,i){return t[0]=e,t[1]=r,t[2]=n,t[3]=i,t}},{}],426:[function(t,e,r){e.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2],a=e[3]-t[3];return r*r+n*n+i*i+a*a}},{}],427:[function(t,e,r){e.exports=function(t){var e=t[0],r=t[1],n=t[2],i=t[3];return e*e+r*r+n*n+i*i}},{}],428:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t}},{}],429:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3];return t[0]=r[0]*n+r[4]*i+r[8]*a+r[12]*o,t[1]=r[1]*n+r[5]*i+r[9]*a+r[13]*o,t[2]=r[2]*n+r[6]*i+r[10]*a+r[14]*o,t[3]=r[3]*n+r[7]*i+r[11]*a+r[15]*o,t}},{}],430:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2],c=r[3],u=c*n+s*a-l*i,f=c*i+l*n-o*a,h=c*a+o*i-s*n,p=-o*n-s*i-l*a;return t[0]=u*c+p*-o+f*-l-h*-s,t[1]=f*c+p*-s+h*-o-u*-l,t[2]=h*c+p*-l+u*-s-f*-o,t[3]=e[3],t}},{}],431:[function(t,e,r){var n=t("glsl-tokenizer"),i=t("atob-lite");e.exports=function(t){for(var e=Array.isArray(t)?t:n(t),r=0;r0)continue;r=t.slice(0,1).join("")}return M(r),v+=r.length,(p=p.slice(r.length)).length}}function P(){return/[^a-fA-F0-9]/.test(e)?(M(p.join("")),h=999,u):(p.push(e),r=e,u+1)}function z(){return"."===e||/[eE]/.test(e)?(p.push(e),h=5,r=e,u+1):"x"===e&&1===p.length&&"0"===p[0]?(h=11,p.push(e),r=e,u+1):/[^\d]/.test(e)?(M(p.join("")),h=999,u):(p.push(e),r=e,u+1)}function O(){return"f"===e&&(p.push(e),r=e,u+=1),/[eE]/.test(e)?(p.push(e),r=e,u+1):("-"!==e&&"+"!==e||!/[eE]/.test(r))&&/[^\d]/.test(e)?(M(p.join("")),h=999,u):(p.push(e),r=e,u+1)}function D(){if(/[^\d\w_]/.test(e)){var t=p.join("");return h=k[t]?8:T[t]?7:6,M(p.join("")),h=999,u}return p.push(e),r=e,u+1}};var n=t("./lib/literals"),i=t("./lib/operators"),a=t("./lib/builtins"),o=t("./lib/literals-300es"),s=t("./lib/builtins-300es"),l=["block-comment","line-comment","preprocessor","operator","integer","float","ident","builtin","keyword","whitespace","eof","integer"]},{"./lib/builtins":434,"./lib/builtins-300es":433,"./lib/literals":436,"./lib/literals-300es":435,"./lib/operators":437}],433:[function(t,e,r){var n=t("./builtins");n=n.slice().filter((function(t){return!/^(gl\_|texture)/.test(t)})),e.exports=n.concat(["gl_VertexID","gl_InstanceID","gl_Position","gl_PointSize","gl_FragCoord","gl_FrontFacing","gl_FragDepth","gl_PointCoord","gl_MaxVertexAttribs","gl_MaxVertexUniformVectors","gl_MaxVertexOutputVectors","gl_MaxFragmentInputVectors","gl_MaxVertexTextureImageUnits","gl_MaxCombinedTextureImageUnits","gl_MaxTextureImageUnits","gl_MaxFragmentUniformVectors","gl_MaxDrawBuffers","gl_MinProgramTexelOffset","gl_MaxProgramTexelOffset","gl_DepthRangeParameters","gl_DepthRange","trunc","round","roundEven","isnan","isinf","floatBitsToInt","floatBitsToUint","intBitsToFloat","uintBitsToFloat","packSnorm2x16","unpackSnorm2x16","packUnorm2x16","unpackUnorm2x16","packHalf2x16","unpackHalf2x16","outerProduct","transpose","determinant","inverse","texture","textureSize","textureProj","textureLod","textureOffset","texelFetch","texelFetchOffset","textureProjOffset","textureLodOffset","textureProjLod","textureProjLodOffset","textureGrad","textureGradOffset","textureProjGrad","textureProjGradOffset"])},{"./builtins":434}],434:[function(t,e,r){e.exports=["abs","acos","all","any","asin","atan","ceil","clamp","cos","cross","dFdx","dFdy","degrees","distance","dot","equal","exp","exp2","faceforward","floor","fract","gl_BackColor","gl_BackLightModelProduct","gl_BackLightProduct","gl_BackMaterial","gl_BackSecondaryColor","gl_ClipPlane","gl_ClipVertex","gl_Color","gl_DepthRange","gl_DepthRangeParameters","gl_EyePlaneQ","gl_EyePlaneR","gl_EyePlaneS","gl_EyePlaneT","gl_Fog","gl_FogCoord","gl_FogFragCoord","gl_FogParameters","gl_FragColor","gl_FragCoord","gl_FragData","gl_FragDepth","gl_FragDepthEXT","gl_FrontColor","gl_FrontFacing","gl_FrontLightModelProduct","gl_FrontLightProduct","gl_FrontMaterial","gl_FrontSecondaryColor","gl_LightModel","gl_LightModelParameters","gl_LightModelProducts","gl_LightProducts","gl_LightSource","gl_LightSourceParameters","gl_MaterialParameters","gl_MaxClipPlanes","gl_MaxCombinedTextureImageUnits","gl_MaxDrawBuffers","gl_MaxFragmentUniformComponents","gl_MaxLights","gl_MaxTextureCoords","gl_MaxTextureImageUnits","gl_MaxTextureUnits","gl_MaxVaryingFloats","gl_MaxVertexAttribs","gl_MaxVertexTextureImageUnits","gl_MaxVertexUniformComponents","gl_ModelViewMatrix","gl_ModelViewMatrixInverse","gl_ModelViewMatrixInverseTranspose","gl_ModelViewMatrixTranspose","gl_ModelViewProjectionMatrix","gl_ModelViewProjectionMatrixInverse","gl_ModelViewProjectionMatrixInverseTranspose","gl_ModelViewProjectionMatrixTranspose","gl_MultiTexCoord0","gl_MultiTexCoord1","gl_MultiTexCoord2","gl_MultiTexCoord3","gl_MultiTexCoord4","gl_MultiTexCoord5","gl_MultiTexCoord6","gl_MultiTexCoord7","gl_Normal","gl_NormalMatrix","gl_NormalScale","gl_ObjectPlaneQ","gl_ObjectPlaneR","gl_ObjectPlaneS","gl_ObjectPlaneT","gl_Point","gl_PointCoord","gl_PointParameters","gl_PointSize","gl_Position","gl_ProjectionMatrix","gl_ProjectionMatrixInverse","gl_ProjectionMatrixInverseTranspose","gl_ProjectionMatrixTranspose","gl_SecondaryColor","gl_TexCoord","gl_TextureEnvColor","gl_TextureMatrix","gl_TextureMatrixInverse","gl_TextureMatrixInverseTranspose","gl_TextureMatrixTranspose","gl_Vertex","greaterThan","greaterThanEqual","inversesqrt","length","lessThan","lessThanEqual","log","log2","matrixCompMult","max","min","mix","mod","normalize","not","notEqual","pow","radians","reflect","refract","sign","sin","smoothstep","sqrt","step","tan","texture2D","texture2DLod","texture2DProj","texture2DProjLod","textureCube","textureCubeLod","texture2DLodEXT","texture2DProjLodEXT","textureCubeLodEXT","texture2DGradEXT","texture2DProjGradEXT","textureCubeGradEXT"]},{}],435:[function(t,e,r){var n=t("./literals");e.exports=n.slice().concat(["layout","centroid","smooth","case","mat2x2","mat2x3","mat2x4","mat3x2","mat3x3","mat3x4","mat4x2","mat4x3","mat4x4","uvec2","uvec3","uvec4","samplerCubeShadow","sampler2DArray","sampler2DArrayShadow","isampler2D","isampler3D","isamplerCube","isampler2DArray","usampler2D","usampler3D","usamplerCube","usampler2DArray","coherent","restrict","readonly","writeonly","resource","atomic_uint","noperspective","patch","sample","subroutine","common","partition","active","filter","image1D","image2D","image3D","imageCube","iimage1D","iimage2D","iimage3D","iimageCube","uimage1D","uimage2D","uimage3D","uimageCube","image1DArray","image2DArray","iimage1DArray","iimage2DArray","uimage1DArray","uimage2DArray","image1DShadow","image2DShadow","image1DArrayShadow","image2DArrayShadow","imageBuffer","iimageBuffer","uimageBuffer","sampler1DArray","sampler1DArrayShadow","isampler1D","isampler1DArray","usampler1D","usampler1DArray","isampler2DRect","usampler2DRect","samplerBuffer","isamplerBuffer","usamplerBuffer","sampler2DMS","isampler2DMS","usampler2DMS","sampler2DMSArray","isampler2DMSArray","usampler2DMSArray"])},{"./literals":436}],436:[function(t,e,r){e.exports=["precision","highp","mediump","lowp","attribute","const","uniform","varying","break","continue","do","for","while","if","else","in","out","inout","float","int","uint","void","bool","true","false","discard","return","mat2","mat3","mat4","vec2","vec3","vec4","ivec2","ivec3","ivec4","bvec2","bvec3","bvec4","sampler1D","sampler2D","sampler3D","samplerCube","sampler1DShadow","sampler2DShadow","struct","asm","class","union","enum","typedef","template","this","packed","goto","switch","default","inline","noinline","volatile","public","static","extern","external","interface","long","short","double","half","fixed","unsigned","input","output","hvec2","hvec3","hvec4","dvec2","dvec3","dvec4","fvec2","fvec3","fvec4","sampler2DRect","sampler3DRect","sampler2DRectShadow","sizeof","cast","namespace","using"]},{}],437:[function(t,e,r){e.exports=["<<=",">>=","++","--","<<",">>","<=",">=","==","!=","&&","||","+=","-=","*=","/=","%=","&=","^^","^=","|=","(",")","[","]",".","!","~","*","/","%","+","-","<",">","&","^","|","?",":","=",",",";","{","}"]},{}],438:[function(t,e,r){var n=t("./index");e.exports=function(t,e){var r=n(e),i=[];return i=(i=i.concat(r(t))).concat(r(null))}},{"./index":432}],439:[function(t,e,r){arguments[4][257][0].apply(r,arguments)},{dup:257}],440:[function(t,e,r){(function(r){(function(){"use strict";var n,i=t("is-browser");n="function"==typeof r.matchMedia?!r.matchMedia("(hover: none)").matches:i,e.exports=n}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"is-browser":464}],441:[function(t,e,r){"use strict";var n=t("is-browser");e.exports=n&&function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("test",null,e),window.removeEventListener("test",null,e)}catch(e){t=!1}return t}()},{"is-browser":464}],442:[function(t,e,r){r.read=function(t,e,r,n,i){var a,o,s=8*i-n-1,l=(1<>1,u=-7,f=r?i-1:0,h=r?-1:1,p=t[e+f];for(f+=h,a=p&(1<<-u)-1,p>>=-u,u+=s;u>0;a=256*a+t[e+f],f+=h,u-=8);for(o=a&(1<<-u)-1,a>>=-u,u+=n;u>0;o=256*o+t[e+f],f+=h,u-=8);if(0===a)a=1-c;else{if(a===l)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),a-=c}return(p?-1:1)*o*Math.pow(2,a-n)},r.write=function(t,e,r,n,i,a){var o,s,l,c=8*a-i-1,u=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:a-1,d=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=u):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+f>=1?h/l:h*Math.pow(2,1-f))*l>=2&&(o++,l/=2),o+f>=u?(s=0,o=u):o+f>=1?(s=(e*l-1)*Math.pow(2,i),o+=f):(s=e*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;t[r+p]=255&s,p+=d,s/=256,i-=8);for(o=o<0;t[r+p]=255&o,p+=d,o/=256,c-=8);t[r+p-d]|=128*g}},{}],443:[function(t,e,r){"use strict";var n=t("./types");e.exports=function(t,e){var r;for(r in n)if(n[r].detect(t,e))return r}},{"./types":446}],444:[function(t,e,r){(function(r){(function(){"use strict";var n=t("fs"),i=t("path"),a=t("./types"),o=t("./detector");function s(t,e){var r=o(t,e);if(r in a){var n=a[r].calculate(t,e);if(!1!==n)return n.type=r,n}throw new TypeError("unsupported file type: "+r+" (file: "+e+")")}e.exports=function(t,e){if(r.isBuffer(t))return s(t);if("string"!=typeof t)throw new TypeError("invalid invocation");var a=i.resolve(t);if("function"!=typeof e)return s(function(t){var e=n.openSync(t,"r"),i=n.fstatSync(e).size,a=Math.min(i,524288),o=r.alloc(a);return n.readSync(e,o,0,a,0),n.closeSync(e),o}(a),a);!function(t,e){n.open(t,"r",(function(i,a){if(i)return e(i);n.fstat(a,(function(i,o){if(i)return e(i);var s=o.size;if(s<=0)return e(new Error("File size is not greater than 0 \u2014\u2014 "+t));var l=Math.min(s,524288),c=r.alloc(l);n.read(a,c,0,l,0,(function(t){if(t)return e(t);n.close(a,(function(t){e(t,c)}))}))}))}))}(a,(function(t,r){if(t)return e(t);var n;try{n=s(r,a)}catch(e){t=e}e(t,n)}))},e.exports.types=Object.keys(a)}).call(this)}).call(this,t("buffer").Buffer)},{"./detector":443,"./types":446,buffer:111,fs:109,path:507}],445:[function(t,e,r){"use strict";e.exports=function(t,e,r,n){return r=r||0,t["readUInt"+e+(n?"BE":"LE")].call(t,r)}},{}],446:[function(t,e,r){"use strict";var n={bmp:t("./types/bmp"),cur:t("./types/cur"),dds:t("./types/dds"),gif:t("./types/gif"),icns:t("./types/icns"),ico:t("./types/ico"),jpg:t("./types/jpg"),png:t("./types/png"),psd:t("./types/psd"),svg:t("./types/svg"),tiff:t("./types/tiff"),webp:t("./types/webp")};e.exports=n},{"./types/bmp":447,"./types/cur":448,"./types/dds":449,"./types/gif":450,"./types/icns":451,"./types/ico":452,"./types/jpg":453,"./types/png":454,"./types/psd":455,"./types/svg":456,"./types/tiff":457,"./types/webp":458}],447:[function(t,e,r){"use strict";e.exports={detect:function(t){return"BM"===t.toString("ascii",0,2)},calculate:function(t){return{width:t.readUInt32LE(18),height:Math.abs(t.readInt32LE(22))}}}},{}],448:[function(t,e,r){"use strict";e.exports={detect:function(t){return 0===t.readUInt16LE(0)&&2===t.readUInt16LE(2)},calculate:t("./ico").calculate}},{"./ico":452}],449:[function(t,e,r){"use strict";e.exports={detect:function(t){return 542327876===t.readUInt32LE(0)},calculate:function(t){return{height:t.readUInt32LE(12),width:t.readUInt32LE(16)}}}},{}],450:[function(t,e,r){"use strict";var n=/^GIF8[79]a/;e.exports={detect:function(t){var e=t.toString("ascii",0,6);return n.test(e)},calculate:function(t){return{width:t.readUInt16LE(6),height:t.readUInt16LE(8)}}}},{}],451:[function(t,e,r){"use strict";var n={ICON:32,"ICN#":32,"icm#":16,icm4:16,icm8:16,"ics#":16,ics4:16,ics8:16,is32:16,s8mk:16,icp4:16,icl4:32,icl8:32,il32:32,l8mk:32,icp5:32,ic11:32,ich4:48,ich8:48,ih32:48,h8mk:48,icp6:64,ic12:32,it32:128,t8mk:128,ic07:128,ic08:256,ic13:256,ic09:512,ic14:512,ic10:1024};function i(t,e){var r=e+4;return[t.toString("ascii",e,r),t.readUInt32BE(r)]}function a(t){var e=n[t];return{width:e,height:e,type:t}}e.exports={detect:function(t){return"icns"===t.toString("ascii",0,4)},calculate:function(t){var e,r,n,o=t.length,s=8,l=t.readUInt32BE(4);if(r=a((e=i(t,s))[0]),(s+=e[1])===l)return r;for(n={width:r.width,height:r.height,images:[r]};st.length)return;var s=t.slice(r,i);if(274===n(s,16,0,e)){if(3!==n(s,16,2,e))return;if(1!==n(s,32,4,e))return;return n(s,16,8,e)}}}(r,a)}function s(t,e){if(e>t.length)throw new TypeError("Corrupt JPG, exceeded buffer limits");if(255!==t[e])throw new TypeError("Invalid JPG, marker table corrupted")}e.exports={detect:function(t){return"ffd8"===t.toString("hex",0,2)},calculate:function(t){var e,r,n;for(t=t.slice(4);t.length;){if(r=t.readUInt16BE(0),i(t)&&(e=o(t,r)),s(t,r),192===(n=t[r+1])||193===n||194===n){var l=a(t,r+5);return e?{width:l.width,height:l.height,orientation:e}:l}t=t.slice(r+2)}throw new TypeError("Invalid JPG, no size found")}}},{"../readUInt":445}],454:[function(t,e,r){"use strict";e.exports={detect:function(t){if("PNG\r\n\x1a\n"===t.toString("ascii",1,8)){var e=t.toString("ascii",12,16);if("CgBI"===e&&(e=t.toString("ascii",28,32)),"IHDR"!==e)throw new TypeError("invalid png");return!0}},calculate:function(t){return"CgBI"===t.toString("ascii",12,16)?{width:t.readUInt32BE(32),height:t.readUInt32BE(36)}:{width:t.readUInt32BE(16),height:t.readUInt32BE(20)}}}},{}],455:[function(t,e,r){"use strict";e.exports={detect:function(t){return"8BPS"===t.toString("ascii",0,4)},calculate:function(t){return{width:t.readUInt32BE(18),height:t.readUInt32BE(14)}}}},{}],456:[function(t,e,r){"use strict";var n=/"']|"[^"]*"|'[^']*')*>/;var i={root:n,width:/\swidth=(['"])([^%]+?)\1/,height:/\sheight=(['"])([^%]+?)\1/,viewbox:/\sviewBox=(['"])(.+?)\1/},a={cm:96/2.54,mm:96/2.54/10,m:96/2.54*100,pt:96/72,pc:96/72/12,em:16,ex:8};function o(t){var e=/([0-9.]+)([a-z]*)/.exec(t);if(e)return Math.round(parseFloat(e[1])*(a[e[2]]||1))}function s(t){var e=t.split(" ");return{width:o(e[2]),height:o(e[3])}}e.exports={detect:function(t){return n.test(t)},calculate:function(t){var e=t.toString("utf8").match(i.root);if(e){var r=function(t){var e=t.match(i.width),r=t.match(i.height),n=t.match(i.viewbox);return{width:e&&o(e[2]),height:r&&o(r[2]),viewbox:n&&s(n[2])}}(e[0]);if(r.width&&r.height)return function(t){return{width:t.width,height:t.height}}(r);if(r.viewbox)return function(t){var e=t.viewbox.width/t.viewbox.height;return t.width?{width:t.width,height:Math.floor(t.width/e)}:t.height?{width:Math.floor(t.height*e),height:t.height}:{width:t.viewbox.width,height:t.viewbox.height}}(r)}throw new TypeError("invalid svg")}}},{}],457:[function(t,e,r){(function(r){(function(){"use strict";var n=t("fs"),i=t("../readUInt");function a(t,e){var r=i(t,16,8,e);return(i(t,16,10,e)<<16)+r}function o(t){if(t.length>24)return t.slice(12)}e.exports={detect:function(t){var e=t.toString("hex",0,4);return"49492a00"===e||"4d4d002a"===e},calculate:function(t,e){if(!e)throw new TypeError("Tiff doesn't support buffer");var s="BE"===function(t){var e=t.toString("ascii",0,2);return"II"===e?"LE":"MM"===e?"BE":void 0}(t),l=function(t,e){for(var r,n,s,l={};t&&t.length&&(r=i(t,16,0,e),n=i(t,16,2,e),s=i(t,32,4,e),0!==r);)1!==s||3!==n&&4!==n||(l[r]=a(t,e)),t=o(t);return l}(function(t,e,a){var o=i(t,32,4,a),s=1024,l=n.statSync(e).size;o+s>l&&(s=l-o-10);var c=r.alloc(s),u=n.openSync(e,"r");return n.readSync(u,c,0,s,o),c.slice(2)}(t,e,s),s),c=l[256],u=l[257];if(!c||!u)throw new TypeError("Invalid Tiff, missing tags");return{width:c,height:u}}}}).call(this)}).call(this,t("buffer").Buffer)},{"../readUInt":445,buffer:111,fs:109}],458:[function(t,e,r){"use strict";e.exports={detect:function(t){var e="RIFF"===t.toString("ascii",0,4),r="WEBP"===t.toString("ascii",8,12),n="VP8"===t.toString("ascii",12,15);return e&&r&&n},calculate:function(t){var e=t.toString("ascii",12,16);if(t=t.slice(20,30),"VP8X"===e){var r=t[0];return!(!(0==(192&r))||!(0==(1&r)))&&function(t){return{width:1+t.readUIntLE(4,3),height:1+t.readUIntLE(7,3)}}(t)}if("VP8 "===e&&47!==t[0])return function(t){return{width:16383&t.readInt16LE(6),height:16383&t.readInt16LE(8)}}(t);var n=t.toString("hex",3,6);return"VP8L"===e&&"9d012a"!==n&&function(t){return{width:1+((63&t[2])<<8|t[1]),height:1+((15&t[4])<<10|t[3]<<2|(192&t[2])>>6)}}(t)}}},{}],459:[function(t,e,r){"use strict";e.exports=function(t,e){var r=t.length;if(0===r)throw new Error("Must have at least d+1 points");var i=t[0].length;if(r<=i)throw new Error("Must input at least d+1 points");var o=t.slice(0,i+1),s=n.apply(void 0,o);if(0===s)throw new Error("Input not in general position");for(var l=new Array(i+1),u=0;u<=i;++u)l[u]=u;s<0&&(l[0]=1,l[1]=0);var f=new a(l,new Array(i+1),!1),h=f.adjacent,p=new Array(i+2);for(u=0;u<=i;++u){for(var d=l.slice(),g=0;g<=i;++g)g===u&&(d[g]=-1);var m=d[0];d[0]=d[1],d[1]=m;var v=new a(d,new Array(i+1),!0);h[u]=v,p[u]=v}p[i+1]=f;for(u=0;u<=i;++u){d=h[u].vertices;var y=h[u].adjacent;for(g=0;g<=i;++g){var x=d[g];if(x<0)y[g]=f;else for(var b=0;b<=i;++b)h[b].vertices.indexOf(x)<0&&(y[g]=h[b])}}var _=new c(i,o,p),w=!!e;for(u=i+1;u0&&e.push(","),e.push("tuple[",r,"]");e.push(")}return orient");var i=new Function("test",e.join("")),a=n[t+1];return a||(a=n),i(a)}(t)),this.orient=a}var u=c.prototype;u.handleBoundaryDegeneracy=function(t,e){var r=this.dimension,n=this.vertices.length-1,i=this.tuple,a=this.vertices,o=[t];for(t.lastVisited=-n;o.length>0;){(t=o.pop()).vertices;for(var s=t.adjacent,l=0;l<=r;++l){var c=s[l];if(c.boundary&&!(c.lastVisited<=-n)){for(var u=c.vertices,f=0;f<=r;++f){var h=u[f];i[f]=h<0?e:a[h]}var p=this.orient();if(p>0)return c;c.lastVisited=-n,0===p&&o.push(c)}}}return null},u.walk=function(t,e){var r=this.vertices.length-1,n=this.dimension,i=this.vertices,a=this.tuple,o=e?this.interior.length*Math.random()|0:this.interior.length-1,s=this.interior[o];t:for(;!s.boundary;){for(var l=s.vertices,c=s.adjacent,u=0;u<=n;++u)a[u]=i[l[u]];s.lastVisited=r;for(u=0;u<=n;++u){var f=c[u];if(!(f.lastVisited>=r)){var h=a[u];a[u]=t;var p=this.orient();if(a[u]=h,p<0){s=f;continue t}f.boundary?f.lastVisited=-r:f.lastVisited=r}}return}return s},u.addPeaks=function(t,e){var r=this.vertices.length-1,n=this.dimension,i=this.vertices,l=this.tuple,c=this.interior,u=this.simplices,f=[e];e.lastVisited=r,e.vertices[e.vertices.indexOf(-1)]=r,e.boundary=!1,c.push(e);for(var h=[];f.length>0;){var p=(e=f.pop()).vertices,d=e.adjacent,g=p.indexOf(r);if(!(g<0))for(var m=0;m<=n;++m)if(m!==g){var v=d[m];if(v.boundary&&!(v.lastVisited>=r)){var y=v.vertices;if(v.lastVisited!==-r){for(var x=0,b=0;b<=n;++b)y[b]<0?(x=b,l[b]=t):l[b]=i[y[b]];if(this.orient()>0){y[x]=r,v.boundary=!1,c.push(v),f.push(v),v.lastVisited=r;continue}v.lastVisited=-r}var _=v.adjacent,w=p.slice(),T=d.slice(),k=new a(w,T,!0);u.push(k);var M=_.indexOf(e);if(!(M<0)){_[M]=k,T[g]=v,w[m]=-1,T[m]=e,d[m]=k,k.flip();for(b=0;b<=n;++b){var A=w[b];if(!(A<0||A===r)){for(var S=new Array(n-1),E=0,C=0;C<=n;++C){var L=w[C];L<0||C===b||(S[E++]=L)}h.push(new o(S,k,b))}}}}}}h.sort(s);for(m=0;m+1=0?o[l++]=s[u]:c=1&u;if(c===(1&t)){var f=o[0];o[0]=o[1],o[1]=f}e.push(o)}}return e}},{"robust-orientation":548,"simplicial-complex":558}],460:[function(t,e,r){"use strict";var n=t("binary-search-bounds");function i(t,e,r,n,i){this.mid=t,this.left=e,this.right=r,this.leftPoints=n,this.rightPoints=i,this.count=(e?e.count:0)+(r?r.count:0)+n.length}e.exports=function(t){if(!t||0===t.length)return new v(null);return new v(m(t))};var a=i.prototype;function o(t,e){t.mid=e.mid,t.left=e.left,t.right=e.right,t.leftPoints=e.leftPoints,t.rightPoints=e.rightPoints,t.count=e.count}function s(t,e){var r=m(e);t.mid=r.mid,t.left=r.left,t.right=r.right,t.leftPoints=r.leftPoints,t.rightPoints=r.rightPoints,t.count=r.count}function l(t,e){var r=t.intervals([]);r.push(e),s(t,r)}function c(t,e){var r=t.intervals([]),n=r.indexOf(e);return n<0?0:(r.splice(n,1),s(t,r),1)}function u(t,e,r){for(var n=0;n=0&&t[n][1]>=e;--n){var i=r(t[n]);if(i)return i}}function h(t,e){for(var r=0;r>1],a=[],o=[],s=[];for(r=0;r3*(e+1)?l(this,t):this.left.insert(t):this.left=m([t]);else if(t[0]>this.mid)this.right?4*(this.right.count+1)>3*(e+1)?l(this,t):this.right.insert(t):this.right=m([t]);else{var r=n.ge(this.leftPoints,t,d),i=n.ge(this.rightPoints,t,g);this.leftPoints.splice(r,0,t),this.rightPoints.splice(i,0,t)}},a.remove=function(t){var e=this.count-this.leftPoints;if(t[1]3*(e-1)?c(this,t):2===(s=this.left.remove(t))?(this.left=null,this.count-=1,1):(1===s&&(this.count-=1),s):0;if(t[0]>this.mid)return this.right?4*(this.left?this.left.count:0)>3*(e-1)?c(this,t):2===(s=this.right.remove(t))?(this.right=null,this.count-=1,1):(1===s&&(this.count-=1),s):0;if(1===this.count)return this.leftPoints[0]===t?2:0;if(1===this.leftPoints.length&&this.leftPoints[0]===t){if(this.left&&this.right){for(var r=this,i=this.left;i.right;)r=i,i=i.right;if(r===this)i.right=this.right;else{var a=this.left,s=this.right;r.count-=i.count,r.right=i.left,i.left=a,i.right=s}o(this,i),this.count=(this.left?this.left.count:0)+(this.right?this.right.count:0)+this.leftPoints.length}else this.left?o(this,this.left):o(this,this.right);return 1}for(a=n.ge(this.leftPoints,t,d);athis.mid){var r;if(this.right)if(r=this.right.queryPoint(t,e))return r;return f(this.rightPoints,t,e)}return h(this.leftPoints,e)},a.queryInterval=function(t,e,r){var n;if(tthis.mid&&this.right&&(n=this.right.queryInterval(t,e,r)))return n;return ethis.mid?f(this.rightPoints,t,r):h(this.leftPoints,r)};var y=v.prototype;y.insert=function(t){this.root?this.root.insert(t):this.root=new i(t[0],null,null,[t],[t])},y.remove=function(t){if(this.root){var e=this.root.remove(t);return 2===e&&(this.root=null),0!==e}return!1},y.queryPoint=function(t,e){if(this.root)return this.root.queryPoint(t,e)},y.queryInterval=function(t,e,r){if(t<=e&&this.root)return this.root.queryInterval(t,e,r)},Object.defineProperty(y,"count",{get:function(){return this.root?this.root.count:0}}),Object.defineProperty(y,"intervals",{get:function(){return this.root?this.root.intervals([]):[]}})},{"binary-search-bounds":461}],461:[function(t,e,r){arguments[4][243][0].apply(r,arguments)},{dup:243}],462:[function(t,e,r){"use strict";e.exports=function(t,e){e=e||new Array(t.length);for(var r=0;r + * @license MIT + */ +e.exports=function(t){return null!=t&&(n(t)||function(t){return"function"==typeof t.readFloatLE&&"function"==typeof t.slice&&n(t.slice(0,0))}(t)||!!t._isBuffer)}},{}],466:[function(t,e,r){"use strict";e.exports="undefined"!=typeof navigator&&(/MSIE/.test(navigator.userAgent)||/Trident\//.test(navigator.appVersion))},{}],467:[function(t,e,r){"use strict";e.exports=a,e.exports.isMobile=a,e.exports.default=a;var n=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,i=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino|android|ipad|playbook|silk/i;function a(t){t||(t={});var e=t.ua;if(e||"undefined"==typeof navigator||(e=navigator.userAgent),e&&e.headers&&"string"==typeof e.headers["user-agent"]&&(e=e.headers["user-agent"]),"string"!=typeof e)return!1;var r=t.tablet?i.test(e):n.test(e);return!r&&t.tablet&&t.featureDetect&&navigator&&navigator.maxTouchPoints>1&&-1!==e.indexOf("Macintosh")&&-1!==e.indexOf("Safari")&&(r=!0),r}},{}],468:[function(t,e,r){"use strict";e.exports=function(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)}},{}],469:[function(t,e,r){"use strict";var n=Object.prototype.toString;e.exports=function(t){var e;return"[object Object]"===n.call(t)&&(null===(e=Object.getPrototypeOf(t))||e===Object.getPrototypeOf({}))}},{}],470:[function(t,e,r){"use strict";e.exports=function(t){for(var e,r=t.length,n=0;n13)&&32!==e&&133!==e&&160!==e&&5760!==e&&6158!==e&&(e<8192||e>8205)&&8232!==e&&8233!==e&&8239!==e&&8287!==e&&8288!==e&&12288!==e&&65279!==e)return!1;return!0}},{}],471:[function(t,e,r){"use strict";e.exports=function(t){return"string"==typeof t&&(t=t.trim(),!!(/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4))}},{}],472:[function(t,e,r){e.exports=function(t,e,r){return t*(1-r)+e*r}},{}],473:[function(t,e,r){!function(t,n){"object"==typeof r&&"undefined"!=typeof e?e.exports=n():(t=t||self).mapboxgl=n()}(this,(function(){"use strict";var t,e,r;function n(n,i){if(t)if(e){var a="var sharedChunk = {}; ("+t+")(sharedChunk); ("+e+")(sharedChunk);",o={};t(o),(r=i(o)).workerUrl=window.URL.createObjectURL(new Blob([a],{type:"text/javascript"}))}else e=i;else t=i}return n(0,(function(t){function e(t,e){return t(e={exports:{}},e.exports),e.exports}var r=n;function n(t,e,r,n){this.cx=3*t,this.bx=3*(r-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*e,this.by=3*(n-e)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=n,this.p2x=r,this.p2y=n}n.prototype.sampleCurveX=function(t){return((this.ax*t+this.bx)*t+this.cx)*t},n.prototype.sampleCurveY=function(t){return((this.ay*t+this.by)*t+this.cy)*t},n.prototype.sampleCurveDerivativeX=function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},n.prototype.solveCurveX=function(t,e){var r,n,i,a,o;for(void 0===e&&(e=1e-6),i=t,o=0;o<8;o++){if(a=this.sampleCurveX(i)-t,Math.abs(a)(n=1))return n;for(;ra?r=i:n=i,i=.5*(n-r)+r}return i},n.prototype.solve=function(t,e){return this.sampleCurveY(this.solveCurveX(t,e))};var i=a;function a(t,e){this.x=t,this.y=e}function o(t,e,n,i){var a=new r(t,e,n,i);return function(t){return a.solve(t)}}a.prototype={clone:function(){return new a(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(t)},multByPoint:function(t){return this.clone()._multByPoint(t)},divByPoint:function(t){return this.clone()._divByPoint(t)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},rotateAround:function(t,e){return this.clone()._rotateAround(t,e)},matMult:function(t){return this.clone()._matMult(t)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var e=t.x-this.x,r=t.y-this.y;return e*e+r*r},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,e){return Math.atan2(this.x*e-this.y*t,this.x*t+this.y*e)},_matMult:function(t){var e=t[2]*this.x+t[3]*this.y;return this.x=t[0]*this.x+t[1]*this.y,this.y=e,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_multByPoint:function(t){return this.x*=t.x,this.y*=t.y,this},_divByPoint:function(t){return this.x/=t.x,this.y/=t.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var t=this.y;return this.y=this.x,this.x=-t,this},_rotate:function(t){var e=Math.cos(t),r=Math.sin(t),n=r*this.x+e*this.y;return this.x=e*this.x-r*this.y,this.y=n,this},_rotateAround:function(t,e){var r=Math.cos(t),n=Math.sin(t),i=e.y+n*(this.x-e.x)+r*(this.y-e.y);return this.x=e.x+r*(this.x-e.x)-n*(this.y-e.y),this.y=i,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},a.convert=function(t){return t instanceof a?t:Array.isArray(t)?new a(t[0],t[1]):t};var s=o(.25,.1,.25,1);function l(t,e,r){return Math.min(r,Math.max(e,t))}function c(t,e,r){var n=r-e,i=((t-e)%n+n)%n+e;return i===e?r:i}function u(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];for(var n=0,i=e;n>e/4).toString(16):([1e7]+-[1e3]+-4e3+-8e3+-1e11).replace(/[018]/g,t)}()}function d(t){return!!t&&/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(t)}function g(t,e){t.forEach((function(t){e[t]&&(e[t]=e[t].bind(e))}))}function m(t,e){return-1!==t.indexOf(e,t.length-e.length)}function v(t,e,r){var n={};for(var i in t)n[i]=e.call(r||this,t[i],i,t);return n}function y(t,e,r){var n={};for(var i in t)e.call(r||this,t[i],i,t)&&(n[i]=t[i]);return n}function x(t){return Array.isArray(t)?t.map(x):"object"==typeof t&&t?v(t,x):t}var b={};function _(t){b[t]||("undefined"!=typeof console&&console.warn(t),b[t]=!0)}function w(t,e,r){return(r.y-t.y)*(e.x-t.x)>(e.y-t.y)*(r.x-t.x)}function T(t){for(var e=0,r=0,n=t.length,i=n-1,a=void 0,o=void 0;r@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,(function(t,r,n,i){var a=n||i;return e[r]=!a||a.toLowerCase(),""})),e["max-age"]){var r=parseInt(e["max-age"],10);isNaN(r)?delete e["max-age"]:e["max-age"]=r}return e}var A=null;function S(t){if(null==A){var e=t.navigator?t.navigator.userAgent:null;A=!!t.safari||!(!e||!(/\b(iPad|iPhone|iPod)\b/.test(e)||e.match("Safari")&&!e.match("Chrome")))}return A}function E(t){try{var e=self[t];return e.setItem("_mapbox_test_",1),e.removeItem("_mapbox_test_"),!0}catch(t){return!1}}var C,L,I,P,z=self.performance&&self.performance.now?self.performance.now.bind(self.performance):Date.now.bind(Date),O=self.requestAnimationFrame||self.mozRequestAnimationFrame||self.webkitRequestAnimationFrame||self.msRequestAnimationFrame,D=self.cancelAnimationFrame||self.mozCancelAnimationFrame||self.webkitCancelAnimationFrame||self.msCancelAnimationFrame,R={now:z,frame:function(t){var e=O(t);return{cancel:function(){return D(e)}}},getImageData:function(t,e){void 0===e&&(e=0);var r=self.document.createElement("canvas"),n=r.getContext("2d");if(!n)throw new Error("failed to create canvas 2d context");return r.width=t.width,r.height=t.height,n.drawImage(t,0,0,t.width,t.height),n.getImageData(-e,-e,t.width+2*e,t.height+2*e)},resolveURL:function(t){return C||(C=self.document.createElement("a")),C.href=t,C.href},hardwareConcurrency:self.navigator.hardwareConcurrency||4,get devicePixelRatio(){return self.devicePixelRatio},get prefersReducedMotion(){return!!self.matchMedia&&(null==L&&(L=self.matchMedia("(prefers-reduced-motion: reduce)")),L.matches)}},F={API_URL:"https://api.mapbox.com",get EVENTS_URL(){return this.API_URL?0===this.API_URL.indexOf("https://api.mapbox.cn")?"https://events.mapbox.cn/events/v2":0===this.API_URL.indexOf("https://api.mapbox.com")?"https://events.mapbox.com/events/v2":null:null},FEEDBACK_URL:"https://apps.mapbox.com/feedback",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,MAX_PARALLEL_IMAGE_REQUESTS:16},B={supported:!1,testSupport:function(t){!N&&P&&(j?U(t):I=t)}},N=!1,j=!1;function U(t){var e=t.createTexture();t.bindTexture(t.TEXTURE_2D,e);try{if(t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,P),t.isContextLost())return;B.supported=!0}catch(t){}t.deleteTexture(e),N=!0}self.document&&((P=self.document.createElement("img")).onload=function(){I&&U(I),I=null,j=!0},P.onerror=function(){N=!0,I=null},P.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=");var V="01",q=function(t,e){this._transformRequestFn=t,this._customAccessToken=e,this._createSkuToken()};function H(t){return 0===t.indexOf("mapbox:")}q.prototype._createSkuToken=function(){var t=function(){for(var t="",e=0;e<10;e++)t+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[Math.floor(62*Math.random())];return{token:["1",V,t].join(""),tokenExpiresAt:Date.now()+432e5}}();this._skuToken=t.token,this._skuTokenExpiresAt=t.tokenExpiresAt},q.prototype._isSkuTokenExpired=function(){return Date.now()>this._skuTokenExpiresAt},q.prototype.transformRequest=function(t,e){return this._transformRequestFn&&this._transformRequestFn(t,e)||{url:t}},q.prototype.normalizeStyleURL=function(t,e){if(!H(t))return t;var r=X(t);return r.path="/styles/v1"+r.path,this._makeAPIURL(r,this._customAccessToken||e)},q.prototype.normalizeGlyphsURL=function(t,e){if(!H(t))return t;var r=X(t);return r.path="/fonts/v1"+r.path,this._makeAPIURL(r,this._customAccessToken||e)},q.prototype.normalizeSourceURL=function(t,e){if(!H(t))return t;var r=X(t);return r.path="/v4/"+r.authority+".json",r.params.push("secure"),this._makeAPIURL(r,this._customAccessToken||e)},q.prototype.normalizeSpriteURL=function(t,e,r,n){var i=X(t);return H(t)?(i.path="/styles/v1"+i.path+"/sprite"+e+r,this._makeAPIURL(i,this._customAccessToken||n)):(i.path+=""+e+r,Z(i))},q.prototype.normalizeTileURL=function(t,e){if(this._isSkuTokenExpired()&&this._createSkuToken(),t&&!H(t))return t;var r=X(t);r.path=r.path.replace(/(\.(png|jpg)\d*)(?=$)/,(R.devicePixelRatio>=2||512===e?"@2x":"")+(B.supported?".webp":"$1")),r.path=r.path.replace(/^.+\/v4\//,"/"),r.path="/v4"+r.path;var n=this._customAccessToken||function(t){for(var e=0,r=t;e=1&&self.localStorage.setItem(e,JSON.stringify(this.eventData))}catch(t){_("Unable to write to LocalStorage")}},K.prototype.processRequests=function(t){},K.prototype.postEvent=function(t,e,r,n){var i=this;if(F.EVENTS_URL){var a=X(F.EVENTS_URL);a.params.push("access_token="+(n||F.ACCESS_TOKEN||""));var o={event:this.type,created:new Date(t).toISOString(),sdkIdentifier:"mapbox-gl-js",sdkVersion:"1.10.1",skuId:V,userId:this.anonId},s=e?u(o,e):o,l={url:Z(a),headers:{"Content-Type":"text/plain"},body:JSON.stringify([s])};this.pendingRequest=xt(l,(function(t){i.pendingRequest=null,r(t),i.saveEventData(),i.processRequests(n)}))}},K.prototype.queueRequest=function(t,e){this.queue.push(t),this.processRequests(e)};var Q,$,tt=function(t){function e(){t.call(this,"map.load"),this.success={},this.skuToken=""}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.postMapLoadEvent=function(t,e,r,n){this.skuToken=r,(F.EVENTS_URL&&n||F.ACCESS_TOKEN&&Array.isArray(t)&&t.some((function(t){return H(t)||Y(t)})))&&this.queueRequest({id:e,timestamp:Date.now()},n)},e.prototype.processRequests=function(t){var e=this;if(!this.pendingRequest&&0!==this.queue.length){var r=this.queue.shift(),n=r.id,i=r.timestamp;n&&this.success[n]||(this.anonId||this.fetchEventData(),d(this.anonId)||(this.anonId=p()),this.postEvent(i,{skuToken:this.skuToken},(function(t){t||n&&(e.success[n]=!0)}),t))}},e}(K),et=new(function(t){function e(e){t.call(this,"appUserTurnstile"),this._customAccessToken=e}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.postTurnstileEvent=function(t,e){F.EVENTS_URL&&F.ACCESS_TOKEN&&Array.isArray(t)&&t.some((function(t){return H(t)||Y(t)}))&&this.queueRequest(Date.now(),e)},e.prototype.processRequests=function(t){var e=this;if(!this.pendingRequest&&0!==this.queue.length){this.anonId&&this.eventData.lastSuccess&&this.eventData.tokenU||this.fetchEventData();var r=J(F.ACCESS_TOKEN),n=r?r.u:F.ACCESS_TOKEN,i=n!==this.eventData.tokenU;d(this.anonId)||(this.anonId=p(),i=!0);var a=this.queue.shift();if(this.eventData.lastSuccess){var o=new Date(this.eventData.lastSuccess),s=new Date(a),l=(a-this.eventData.lastSuccess)/864e5;i=i||l>=1||l<-1||o.getDate()!==s.getDate()}else i=!0;if(!i)return this.processRequests();this.postEvent(a,{"enabled.telemetry":!1},(function(t){t||(e.eventData.lastSuccess=a,e.eventData.tokenU=n)}),t)}},e}(K)),rt=et.postTurnstileEvent.bind(et),nt=new tt,it=nt.postMapLoadEvent.bind(nt),at=500,ot=50;function st(){self.caches&&!Q&&(Q=self.caches.open("mapbox-tiles"))}function lt(t){var e=t.indexOf("?");return e<0?t:t.slice(0,e)}var ct,ut=1/0;function ft(){return null==ct&&(ct=self.OffscreenCanvas&&new self.OffscreenCanvas(1,1).getContext("2d")&&"function"==typeof self.createImageBitmap),ct}var ht={Unknown:"Unknown",Style:"Style",Source:"Source",Tile:"Tile",Glyphs:"Glyphs",SpriteImage:"SpriteImage",SpriteJSON:"SpriteJSON",Image:"Image"};"function"==typeof Object.freeze&&Object.freeze(ht);var pt,dt,gt=function(t){function e(e,r,n){401===r&&Y(n)&&(e+=": you may have provided an invalid Mapbox access token. See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes"),t.call(this,e),this.status=r,this.url=n,this.name=this.constructor.name,this.message=e}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.toString=function(){return this.name+": "+this.message+" ("+this.status+"): "+this.url},e}(Error),mt=k()?function(){return self.worker&&self.worker.referrer}:function(){return("blob:"===self.location.protocol?self.parent:self).location.href},vt=function(t,e){if(!(/^file:/.test(r=t.url)||/^file:/.test(mt())&&!/^\w+:/.test(r))){if(self.fetch&&self.Request&&self.AbortController&&self.Request.prototype.hasOwnProperty("signal"))return function(t,e){var r,n=new self.AbortController,i=new self.Request(t.url,{method:t.method||"GET",body:t.body,credentials:t.credentials,headers:t.headers,referrer:mt(),signal:n.signal}),a=!1,o=!1,s=(r=i.url).indexOf("sku=")>0&&Y(r);"json"===t.type&&i.headers.set("Accept","application/json");var l=function(r,n,a){if(!o){if(r&&"SecurityError"!==r.message&&_(r),n&&a)return c(n);var l=Date.now();self.fetch(i).then((function(r){if(r.ok){var n=s?r.clone():null;return c(r,n,l)}return e(new gt(r.statusText,r.status,t.url))})).catch((function(t){20!==t.code&&e(new Error(t.message))}))}},c=function(r,n,s){("arrayBuffer"===t.type?r.arrayBuffer():"json"===t.type?r.json():r.text()).then((function(t){o||(n&&s&&function(t,e,r){if(st(),Q){var n={status:e.status,statusText:e.statusText,headers:new self.Headers};e.headers.forEach((function(t,e){return n.headers.set(e,t)}));var i=M(e.headers.get("Cache-Control")||"");i["no-store"]||(i["max-age"]&&n.headers.set("Expires",new Date(r+1e3*i["max-age"]).toUTCString()),new Date(n.headers.get("Expires")).getTime()-r<42e4||function(t,e){if(void 0===$)try{new Response(new ReadableStream),$=!0}catch(t){$=!1}$?e(t.body):t.blob().then(e)}(e,(function(e){var r=new self.Response(e,n);st(),Q&&Q.then((function(e){return e.put(lt(t.url),r)})).catch((function(t){return _(t.message)}))})))}}(i,n,s),a=!0,e(null,t,r.headers.get("Cache-Control"),r.headers.get("Expires")))})).catch((function(t){o||e(new Error(t.message))}))};return s?function(t,e){if(st(),!Q)return e(null);var r=lt(t.url);Q.then((function(t){t.match(r).then((function(n){var i=function(t){if(!t)return!1;var e=new Date(t.headers.get("Expires")||0),r=M(t.headers.get("Cache-Control")||"");return e>Date.now()&&!r["no-cache"]}(n);t.delete(r),i&&t.put(r,n.clone()),e(null,n,i)})).catch(e)})).catch(e)}(i,l):l(null,null),{cancel:function(){o=!0,a||n.abort()}}}(t,e);if(k()&&self.worker&&self.worker.actor)return self.worker.actor.send("getResource",t,e,void 0,!0)}var r;return function(t,e){var r=new self.XMLHttpRequest;for(var n in r.open(t.method||"GET",t.url,!0),"arrayBuffer"===t.type&&(r.responseType="arraybuffer"),t.headers)r.setRequestHeader(n,t.headers[n]);return"json"===t.type&&(r.responseType="text",r.setRequestHeader("Accept","application/json")),r.withCredentials="include"===t.credentials,r.onerror=function(){e(new Error(r.statusText))},r.onload=function(){if((r.status>=200&&r.status<300||0===r.status)&&null!==r.response){var n=r.response;if("json"===t.type)try{n=JSON.parse(r.response)}catch(t){return e(t)}e(null,n,r.getResponseHeader("Cache-Control"),r.getResponseHeader("Expires"))}else e(new gt(r.statusText,r.status,t.url))},r.send(t.body),{cancel:function(){return r.abort()}}}(t,e)},yt=function(t,e){return vt(u(t,{type:"arrayBuffer"}),e)},xt=function(t,e){return vt(u(t,{method:"POST"}),e)};pt=[],dt=0;var bt=function(t,e){if(B.supported&&(t.headers||(t.headers={}),t.headers.accept="image/webp,*/*"),dt>=F.MAX_PARALLEL_IMAGE_REQUESTS){var r={requestParameters:t,callback:e,cancelled:!1,cancel:function(){this.cancelled=!0}};return pt.push(r),r}dt++;var n=!1,i=function(){if(!n)for(n=!0,dt--;pt.length&&dt0||this._oneTimeListeners&&this._oneTimeListeners[t]&&this._oneTimeListeners[t].length>0||this._eventedParent&&this._eventedParent.listens(t)},Mt.prototype.setEventedParent=function(t,e){return this._eventedParent=t,this._eventedParentData=e,this};var At={$version:8,$root:{version:{required:!0,type:"enum",values:[8]},name:{type:"string"},metadata:{type:"*"},center:{type:"array",value:"number"},zoom:{type:"number"},bearing:{type:"number",default:0,period:360,units:"degrees"},pitch:{type:"number",default:0,units:"degrees"},light:{type:"light"},sources:{required:!0,type:"sources"},sprite:{type:"string"},glyphs:{type:"string"},transition:{type:"transition"},layers:{required:!0,type:"array",value:"layer"}},sources:{"*":{type:"source"}},source:["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],source_vector:{type:{required:!0,type:"enum",values:{vector:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},attribution:{type:"string"},promoteId:{type:"promoteId"},"*":{type:"*"}},source_raster:{type:{required:!0,type:"enum",values:{raster:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},attribution:{type:"string"},"*":{type:"*"}},source_raster_dem:{type:{required:!0,type:"enum",values:{"raster-dem":{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},attribution:{type:"string"},encoding:{type:"enum",values:{terrarium:{},mapbox:{}},default:"mapbox"},"*":{type:"*"}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{}}},data:{type:"*"},maxzoom:{type:"number",default:18},attribution:{type:"string"},buffer:{type:"number",default:128,maximum:512,minimum:0},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"},clusterProperties:{type:"*"},lineMetrics:{type:"boolean",default:!1},generateId:{type:"boolean",default:!1},promoteId:{type:"promoteId"}},source_video:{type:{required:!0,type:"enum",values:{video:{}}},urls:{required:!0,type:"array",value:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},source_image:{type:{required:!0,type:"enum",values:{image:{}}},url:{required:!0,type:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},layer:{id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},background:{}},required:!0},metadata:{type:"*"},source:{type:"string"},"source-layer":{type:"string"},minzoom:{type:"number",minimum:0,maximum:24},maxzoom:{type:"number",minimum:0,maximum:24},filter:{type:"filter"},layout:{type:"layout"},paint:{type:"paint"}},layout:["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_fill:{"fill-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_circle:{"circle-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_heatmap:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_line:{"line-cap":{type:"enum",values:{butt:{},round:{},square:{}},default:"butt",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-join":{type:"enum",values:{bevel:{},round:{},miter:{}},default:"miter",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number",default:2,requires:[{"line-join":"miter"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number",default:1.05,requires:[{"line-join":"round"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_symbol:{"symbol-placement":{type:"enum",values:{point:{},line:{},"line-center":{}},default:"point",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number",default:250,minimum:1,units:"pixels",requires:[{"symbol-placement":"line"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean",default:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{},"viewport-y":{},source:{}},default:"auto",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean",default:!1,requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-size":{type:"number",default:1,minimum:0,units:"factor of the original icon size",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{type:"enum",values:{none:{},width:{},height:{},both:{}},default:"none",requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-image":{type:"resolvedImage",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{type:"boolean",default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted",default:"",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-font":{type:"array",value:"string",default:["Open Sans Regular","Arial Unicode MS Regular"],requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number",default:16,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number",default:1.2,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-letter-spacing":{type:"number",default:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{},left:{},center:{},right:{}},default:"center",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{type:"number",units:"ems",default:0,requires:["text-field"],"property-type":"data-driven",expression:{interpolated:!0,parameters:["zoom","feature"]}},"text-variable-anchor":{type:"array",value:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["text-field",{"!":"text-variable-anchor"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{type:"number",default:45,units:"degrees",requires:["text-field",{"symbol-placement":["line","line-center"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{},vertical:{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean",default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-offset":{type:"array",value:"number",units:"ems",length:2,default:[0,0],requires:["text-field",{"!":"text-radial-offset"}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean",default:!1,requires:["text-field","icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_raster:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_hillshade:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},filter:{type:"array",value:"*"},filter_operator:{type:"enum",values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{},within:{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"*",minimum:1},expression_name:{type:"enum",values:{let:{group:"Variable binding"},var:{group:"Variable binding"},literal:{group:"Types"},array:{group:"Types"},at:{group:"Lookup"},in:{group:"Lookup"},"index-of":{group:"Lookup"},slice:{group:"Lookup"},case:{group:"Decision"},match:{group:"Decision"},coalesce:{group:"Decision"},step:{group:"Ramps, scales, curves"},interpolate:{group:"Ramps, scales, curves"},"interpolate-hcl":{group:"Ramps, scales, curves"},"interpolate-lab":{group:"Ramps, scales, curves"},ln2:{group:"Math"},pi:{group:"Math"},e:{group:"Math"},typeof:{group:"Types"},string:{group:"Types"},number:{group:"Types"},boolean:{group:"Types"},object:{group:"Types"},collator:{group:"Types"},format:{group:"Types"},image:{group:"Types"},"number-format":{group:"Types"},"to-string":{group:"Types"},"to-number":{group:"Types"},"to-boolean":{group:"Types"},"to-rgba":{group:"Color"},"to-color":{group:"Types"},rgb:{group:"Color"},rgba:{group:"Color"},get:{group:"Lookup"},has:{group:"Lookup"},length:{group:"Lookup"},properties:{group:"Feature data"},"feature-state":{group:"Feature data"},"geometry-type":{group:"Feature data"},id:{group:"Feature data"},zoom:{group:"Zoom"},"heatmap-density":{group:"Heatmap"},"line-progress":{group:"Feature data"},accumulated:{group:"Feature data"},"+":{group:"Math"},"*":{group:"Math"},"-":{group:"Math"},"/":{group:"Math"},"%":{group:"Math"},"^":{group:"Math"},sqrt:{group:"Math"},log10:{group:"Math"},ln:{group:"Math"},log2:{group:"Math"},sin:{group:"Math"},cos:{group:"Math"},tan:{group:"Math"},asin:{group:"Math"},acos:{group:"Math"},atan:{group:"Math"},min:{group:"Math"},max:{group:"Math"},round:{group:"Math"},abs:{group:"Math"},ceil:{group:"Math"},floor:{group:"Math"},distance:{group:"Math"},"==":{group:"Decision"},"!=":{group:"Decision"},">":{group:"Decision"},"<":{group:"Decision"},">=":{group:"Decision"},"<=":{group:"Decision"},all:{group:"Decision"},any:{group:"Decision"},"!":{group:"Decision"},within:{group:"Decision"},"is-supported-script":{group:"String"},upcase:{group:"String"},downcase:{group:"String"},concat:{group:"String"},"resolved-locale":{group:"String"}}},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"number",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"color",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_background:{"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}},"property-type":{"data-driven":{type:"property-type"},"cross-faded":{type:"property-type"},"cross-faded-data-driven":{type:"property-type"},"color-ramp":{type:"property-type"},"data-constant":{type:"property-type"},constant:{type:"property-type"}},promoteId:{"*":{type:"string"}}},St=function(t,e,r,n){this.message=(t?t+": ":"")+r,n&&(this.identifier=n),null!=e&&e.__line__&&(this.line=e.__line__)};function Et(t){var e=t.value;return e?[new St(t.key,e,"constants have been deprecated as of v8")]:[]}function Ct(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];for(var n=0,i=e;n":"value"===t.itemType.kind?"array":"array<"+e+">"}return t.kind}var Yt=[Ot,Dt,Rt,Ft,Bt,Vt,Nt,Ht(jt),qt];function Wt(t,e){if("error"===e.kind)return null;if("array"===t.kind){if("array"===e.kind&&(0===e.N&&"value"===e.itemType.kind||!Wt(t.itemType,e.itemType))&&("number"!=typeof t.N||t.N===e.N))return null}else{if(t.kind===e.kind)return null;if("value"===t.kind)for(var r=0,n=Yt;r255?255:t}function i(t){return n("%"===t[t.length-1]?parseFloat(t)/100*255:parseInt(t))}function a(t){return(e="%"===t[t.length-1]?parseFloat(t)/100:parseFloat(t))<0?0:e>1?1:e;var e}function o(t,e,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?t+(e-t)*r*6:2*r<1?e:3*r<2?t+(e-t)*(2/3-r)*6:t}try{e.parseCSSColor=function(t){var e,s=t.replace(/ /g,"").toLowerCase();if(s in r)return r[s].slice();if("#"===s[0])return 4===s.length?(e=parseInt(s.substr(1),16))>=0&&e<=4095?[(3840&e)>>4|(3840&e)>>8,240&e|(240&e)>>4,15&e|(15&e)<<4,1]:null:7===s.length&&(e=parseInt(s.substr(1),16))>=0&&e<=16777215?[(16711680&e)>>16,(65280&e)>>8,255&e,1]:null;var l=s.indexOf("("),c=s.indexOf(")");if(-1!==l&&c+1===s.length){var u=s.substr(0,l),f=s.substr(l+1,c-(l+1)).split(","),h=1;switch(u){case"rgba":if(4!==f.length)return null;h=a(f.pop());case"rgb":return 3!==f.length?null:[i(f[0]),i(f[1]),i(f[2]),h];case"hsla":if(4!==f.length)return null;h=a(f.pop());case"hsl":if(3!==f.length)return null;var p=(parseFloat(f[0])%360+360)%360/360,d=a(f[1]),g=a(f[2]),m=g<=.5?g*(d+1):g+d-g*d,v=2*g-m;return[n(255*o(v,m,p+1/3)),n(255*o(v,m,p)),n(255*o(v,m,p-1/3)),h];default:return null}}return null}}catch(t){}})).parseCSSColor,Kt=function(t,e,r,n){void 0===n&&(n=1),this.r=t,this.g=e,this.b=r,this.a=n};Kt.parse=function(t){if(t){if(t instanceof Kt)return t;if("string"==typeof t){var e=Jt(t);if(e)return new Kt(e[0]/255*e[3],e[1]/255*e[3],e[2]/255*e[3],e[3])}}},Kt.prototype.toString=function(){var t=this.toArray(),e=t[1],r=t[2],n=t[3];return"rgba("+Math.round(t[0])+","+Math.round(e)+","+Math.round(r)+","+n+")"},Kt.prototype.toArray=function(){var t=this.a;return 0===t?[0,0,0,0]:[255*this.r/t,255*this.g/t,255*this.b/t,t]},Kt.black=new Kt(0,0,0,1),Kt.white=new Kt(1,1,1,1),Kt.transparent=new Kt(0,0,0,0),Kt.red=new Kt(1,0,0,1);var Qt=function(t,e,r){this.sensitivity=t?e?"variant":"case":e?"accent":"base",this.locale=r,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})};Qt.prototype.compare=function(t,e){return this.collator.compare(t,e)},Qt.prototype.resolvedLocale=function(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale};var $t=function(t,e,r,n,i){this.text=t,this.image=e,this.scale=r,this.fontStack=n,this.textColor=i},te=function(t){this.sections=t};te.fromString=function(t){return new te([new $t(t,null,null,null,null)])},te.prototype.isEmpty=function(){return 0===this.sections.length||!this.sections.some((function(t){return 0!==t.text.length||t.image&&0!==t.image.name.length}))},te.factory=function(t){return t instanceof te?t:te.fromString(t)},te.prototype.toString=function(){return 0===this.sections.length?"":this.sections.map((function(t){return t.text})).join("")},te.prototype.serialize=function(){for(var t=["format"],e=0,r=this.sections;e=0&&t<=255&&"number"==typeof e&&e>=0&&e<=255&&"number"==typeof r&&r>=0&&r<=255?void 0===n||"number"==typeof n&&n>=0&&n<=1?null:"Invalid rgba value ["+[t,e,r,n].join(", ")+"]: 'a' must be between 0 and 1.":"Invalid rgba value ["+("number"==typeof n?[t,e,r,n]:[t,e,r]).join(", ")+"]: 'r', 'g', and 'b' must be between 0 and 255."}function ne(t){if(null===t)return!0;if("string"==typeof t)return!0;if("boolean"==typeof t)return!0;if("number"==typeof t)return!0;if(t instanceof Kt)return!0;if(t instanceof Qt)return!0;if(t instanceof te)return!0;if(t instanceof ee)return!0;if(Array.isArray(t)){for(var e=0,r=t;e2){var s=t[1];if("string"!=typeof s||!(s in le)||"object"===s)return e.error('The item type argument of "array" must be one of string, number, boolean',1);a=le[s],n++}else a=jt;if(t.length>3){if(null!==t[2]&&("number"!=typeof t[2]||t[2]<0||t[2]!==Math.floor(t[2])))return e.error('The length argument to "array" must be a positive integer literal',2);o=t[2],n++}r=Ht(a,o)}else r=le[i];for(var l=[];n1)&&e.push(n)}}return e.concat(this.args.map((function(t){return t.serialize()})))};var ue=function(t){this.type=Vt,this.sections=t};ue.parse=function(t,e){if(t.length<2)return e.error("Expected at least one argument.");var r=t[1];if(!Array.isArray(r)&&"object"==typeof r)return e.error("First argument must be an image or text section.");for(var n=[],i=!1,a=1;a<=t.length-1;++a){var o=t[a];if(i&&"object"==typeof o&&!Array.isArray(o)){i=!1;var s=null;if(o["font-scale"]&&!(s=e.parse(o["font-scale"],1,Dt)))return null;var l=null;if(o["text-font"]&&!(l=e.parse(o["text-font"],1,Ht(Rt))))return null;var c=null;if(o["text-color"]&&!(c=e.parse(o["text-color"],1,Bt)))return null;var u=n[n.length-1];u.scale=s,u.font=l,u.textColor=c}else{var f=e.parse(t[a],1,jt);if(!f)return null;var h=f.type.kind;if("string"!==h&&"value"!==h&&"null"!==h&&"resolvedImage"!==h)return e.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");i=!0,n.push({content:f,scale:null,font:null,textColor:null})}}return new ue(n)},ue.prototype.evaluate=function(t){return new te(this.sections.map((function(e){var r=e.content.evaluate(t);return ie(r)===qt?new $t("",r,null,null,null):new $t(ae(r),null,e.scale?e.scale.evaluate(t):null,e.font?e.font.evaluate(t).join(","):null,e.textColor?e.textColor.evaluate(t):null)})))},ue.prototype.eachChild=function(t){for(var e=0,r=this.sections;e-1),r},fe.prototype.eachChild=function(t){t(this.input)},fe.prototype.outputDefined=function(){return!1},fe.prototype.serialize=function(){return["image",this.input.serialize()]};var he={"to-boolean":Ft,"to-color":Bt,"to-number":Dt,"to-string":Rt},pe=function(t,e){this.type=t,this.args=e};pe.parse=function(t,e){if(t.length<2)return e.error("Expected at least one argument.");var r=t[0];if(("to-boolean"===r||"to-string"===r)&&2!==t.length)return e.error("Expected one argument.");for(var n=he[r],i=[],a=1;a4?"Invalid rbga value "+JSON.stringify(e)+": expected an array containing either three or four numeric values.":re(e[0],e[1],e[2],e[3])))return new Kt(e[0]/255,e[1]/255,e[2]/255,e[3])}throw new se(r||"Could not parse color from value '"+("string"==typeof e?e:String(JSON.stringify(e)))+"'")}if("number"===this.type.kind){for(var o=null,s=0,l=this.args;s=e[2]||t[1]<=e[1]||t[3]>=e[3])}function be(t,e){var r=(180+t[0])/360,n=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t[1]*Math.PI/360)))/360,i=Math.pow(2,e.z);return[Math.round(r*i*8192),Math.round(n*i*8192)]}function _e(t,e,r){return e[1]>t[1]!=r[1]>t[1]&&t[0]<(r[0]-e[0])*(t[1]-e[1])/(r[1]-e[1])+e[0]}function we(t,e){for(var r,n,i,a,o,s,l,c=!1,u=0,f=e.length;u0&&s<0||o<0&&s>0}function Me(t,e,r){for(var n=0,i=r;nr[2]){var i=.5*n,a=t[0]-r[0]>i?-n:r[0]-t[0]>i?n:0;0===a&&(a=t[0]-r[2]>i?-n:r[2]-t[0]>i?n:0),t[0]+=a}ye(e,t)}function Ie(t,e,r,n){for(var i=8192*Math.pow(2,n.z),a=[8192*n.x,8192*n.y],o=[],s=0,l=t;s=0)return!1;var r=!0;return t.eachChild((function(t){r&&!Re(t,e)&&(r=!1)})),r}ze.parse=function(t,e){if(2!==t.length)return e.error("'within' expression requires exactly one argument, but found "+(t.length-1)+" instead.");if(ne(t[1])){var r=t[1];if("FeatureCollection"===r.type)for(var n=0;ne))throw new se("Input is not a number.");a=o-1}return 0}Be.prototype.parse=function(t,e,r,n,i){return void 0===i&&(i={}),e?this.concat(e,r,n)._parse(t,i):this._parse(t,i)},Be.prototype._parse=function(t,e){function r(t,e,r){return"assert"===r?new ce(e,[t]):"coerce"===r?new pe(e,[t]):t}if(null!==t&&"string"!=typeof t&&"boolean"!=typeof t&&"number"!=typeof t||(t=["literal",t]),Array.isArray(t)){if(0===t.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');var n=t[0];if("string"!=typeof n)return this.error("Expression name must be a string, but found "+typeof n+' instead. If you wanted a literal array, use ["literal", [...]].',0),null;var i=this.registry[n];if(i){var a=i.parse(t,this);if(!a)return null;if(this.expectedType){var o=this.expectedType,s=a.type;if("string"!==o.kind&&"number"!==o.kind&&"boolean"!==o.kind&&"object"!==o.kind&&"array"!==o.kind||"value"!==s.kind)if("color"!==o.kind&&"formatted"!==o.kind&&"resolvedImage"!==o.kind||"value"!==s.kind&&"string"!==s.kind){if(this.checkSubtype(o,s))return null}else a=r(a,o,e.typeAnnotation||"coerce");else a=r(a,o,e.typeAnnotation||"assert")}if(!(a instanceof oe)&&"resolvedImage"!==a.type.kind&&function t(e){if(e instanceof Fe)return t(e.boundExpression);if(e instanceof me&&"error"===e.name)return!1;if(e instanceof ve)return!1;if(e instanceof ze)return!1;var r=e instanceof pe||e instanceof ce,n=!0;return e.eachChild((function(e){n=r?n&&t(e):n&&e instanceof oe})),!!n&&Oe(e)&&Re(e,["zoom","heatmap-density","line-progress","accumulated","is-supported-script"])}(a)){var l=new ge;try{a=new oe(a.type,a.evaluate(l))}catch(t){return this.error(t.message),null}}return a}return this.error('Unknown expression "'+n+'". If you wanted a literal array, use ["literal", [...]].',0)}return this.error(void 0===t?"'undefined' value invalid. Use null instead.":"object"==typeof t?'Bare objects invalid. Use ["literal", {...}] instead.':"Expected an array, but found "+typeof t+" instead.")},Be.prototype.concat=function(t,e,r){var n="number"==typeof t?this.path.concat(t):this.path,i=r?this.scope.concat(r):this.scope;return new Be(this.registry,n,e||null,i,this.errors)},Be.prototype.error=function(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];var n=""+this.key+e.map((function(t){return"["+t+"]"})).join("");this.errors.push(new Pt(n,t))},Be.prototype.checkSubtype=function(t,e){var r=Wt(t,e);return r&&this.error(r),r};var je=function(t,e,r){this.type=t,this.input=e,this.labels=[],this.outputs=[];for(var n=0,i=r;n=o)return e.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',l);var u=e.parse(s,c,i);if(!u)return null;i=i||u.type,n.push([o,u])}return new je(i,r,n)},je.prototype.evaluate=function(t){var e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);var n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);var i=e.length;return n>=e[i-1]?r[i-1].evaluate(t):r[Ne(e,n)].evaluate(t)},je.prototype.eachChild=function(t){t(this.input);for(var e=0,r=this.outputs;e0&&t.push(this.labels[e]),t.push(this.outputs[e].serialize());return t};var Ve=Object.freeze({__proto__:null,number:Ue,color:function(t,e,r){return new Kt(Ue(t.r,e.r,r),Ue(t.g,e.g,r),Ue(t.b,e.b,r),Ue(t.a,e.a,r))},array:function(t,e,r){return t.map((function(t,n){return Ue(t,e[n],r)}))}}),qe=6/29*3*(6/29),He=Math.PI/180,Ge=180/Math.PI;function Ye(t){return t>.008856451679035631?Math.pow(t,1/3):t/qe+4/29}function We(t){return t>6/29?t*t*t:qe*(t-4/29)}function Xe(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Ze(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Je(t){var e=Ze(t.r),r=Ze(t.g),n=Ze(t.b),i=Ye((.4124564*e+.3575761*r+.1804375*n)/.95047),a=Ye((.2126729*e+.7151522*r+.072175*n)/1);return{l:116*a-16,a:500*(i-a),b:200*(a-Ye((.0193339*e+.119192*r+.9503041*n)/1.08883)),alpha:t.a}}function Ke(t){var e=(t.l+16)/116,r=isNaN(t.a)?e:e+t.a/500,n=isNaN(t.b)?e:e-t.b/200;return e=1*We(e),r=.95047*We(r),n=1.08883*We(n),new Kt(Xe(3.2404542*r-1.5371385*e-.4985314*n),Xe(-.969266*r+1.8760108*e+.041556*n),Xe(.0556434*r-.2040259*e+1.0572252*n),t.alpha)}function Qe(t,e,r){var n=e-t;return t+r*(n>180||n<-180?n-360*Math.round(n/360):n)}var $e={forward:Je,reverse:Ke,interpolate:function(t,e,r){return{l:Ue(t.l,e.l,r),a:Ue(t.a,e.a,r),b:Ue(t.b,e.b,r),alpha:Ue(t.alpha,e.alpha,r)}}},tr={forward:function(t){var e=Je(t),r=e.l,n=e.a,i=e.b,a=Math.atan2(i,n)*Ge;return{h:a<0?a+360:a,c:Math.sqrt(n*n+i*i),l:r,alpha:t.a}},reverse:function(t){var e=t.h*He,r=t.c;return Ke({l:t.l,a:Math.cos(e)*r,b:Math.sin(e)*r,alpha:t.alpha})},interpolate:function(t,e,r){return{h:Qe(t.h,e.h,r),c:Ue(t.c,e.c,r),l:Ue(t.l,e.l,r),alpha:Ue(t.alpha,e.alpha,r)}}},er=Object.freeze({__proto__:null,lab:$e,hcl:tr}),rr=function(t,e,r,n,i){this.type=t,this.operator=e,this.interpolation=r,this.input=n,this.labels=[],this.outputs=[];for(var a=0,o=i;a1})))return e.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);n={name:"cubic-bezier",controlPoints:s}}if(t.length-1<4)return e.error("Expected at least 4 arguments, but found only "+(t.length-1)+".");if((t.length-1)%2!=0)return e.error("Expected an even number of arguments.");if(!(i=e.parse(i,2,Dt)))return null;var l=[],c=null;"interpolate-hcl"===r||"interpolate-lab"===r?c=Bt:e.expectedType&&"value"!==e.expectedType.kind&&(c=e.expectedType);for(var u=0;u=f)return e.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',p);var g=e.parse(h,d,c);if(!g)return null;c=c||g.type,l.push([f,g])}return"number"===c.kind||"color"===c.kind||"array"===c.kind&&"number"===c.itemType.kind&&"number"==typeof c.N?new rr(c,r,n,i,l):e.error("Type "+Gt(c)+" is not interpolatable.")},rr.prototype.evaluate=function(t){var e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);var n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);var i=e.length;if(n>=e[i-1])return r[i-1].evaluate(t);var a=Ne(e,n),o=rr.interpolationFactor(this.interpolation,n,e[a],e[a+1]),s=r[a].evaluate(t),l=r[a+1].evaluate(t);return"interpolate"===this.operator?Ve[this.type.kind.toLowerCase()](s,l,o):"interpolate-hcl"===this.operator?tr.reverse(tr.interpolate(tr.forward(s),tr.forward(l),o)):$e.reverse($e.interpolate($e.forward(s),$e.forward(l),o))},rr.prototype.eachChild=function(t){t(this.input);for(var e=0,r=this.outputs;e=r.length)throw new se("Array index out of bounds: "+e+" > "+(r.length-1)+".");if(e!==Math.floor(e))throw new se("Array index must be an integer, but found "+e+" instead.");return r[e]},or.prototype.eachChild=function(t){t(this.index),t(this.input)},or.prototype.outputDefined=function(){return!1},or.prototype.serialize=function(){return["at",this.index.serialize(),this.input.serialize()]};var sr=function(t,e){this.type=Ft,this.needle=t,this.haystack=e};sr.parse=function(t,e){if(3!==t.length)return e.error("Expected 2 arguments, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1,jt),n=e.parse(t[2],2,jt);return r&&n?Xt(r.type,[Ft,Rt,Dt,Ot,jt])?new sr(r,n):e.error("Expected first argument to be of type boolean, string, number or null, but found "+Gt(r.type)+" instead"):null},sr.prototype.evaluate=function(t){var e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!r)return!1;if(!Zt(e,["boolean","string","number","null"]))throw new se("Expected first argument to be of type boolean, string, number or null, but found "+Gt(ie(e))+" instead.");if(!Zt(r,["string","array"]))throw new se("Expected second argument to be of type array or string, but found "+Gt(ie(r))+" instead.");return r.indexOf(e)>=0},sr.prototype.eachChild=function(t){t(this.needle),t(this.haystack)},sr.prototype.outputDefined=function(){return!0},sr.prototype.serialize=function(){return["in",this.needle.serialize(),this.haystack.serialize()]};var lr=function(t,e,r){this.type=Dt,this.needle=t,this.haystack=e,this.fromIndex=r};lr.parse=function(t,e){if(t.length<=2||t.length>=5)return e.error("Expected 3 or 4 arguments, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1,jt),n=e.parse(t[2],2,jt);if(!r||!n)return null;if(!Xt(r.type,[Ft,Rt,Dt,Ot,jt]))return e.error("Expected first argument to be of type boolean, string, number or null, but found "+Gt(r.type)+" instead");if(4===t.length){var i=e.parse(t[3],3,Dt);return i?new lr(r,n,i):null}return new lr(r,n)},lr.prototype.evaluate=function(t){var e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!Zt(e,["boolean","string","number","null"]))throw new se("Expected first argument to be of type boolean, string, number or null, but found "+Gt(ie(e))+" instead.");if(!Zt(r,["string","array"]))throw new se("Expected second argument to be of type array or string, but found "+Gt(ie(r))+" instead.");if(this.fromIndex){var n=this.fromIndex.evaluate(t);return r.indexOf(e,n)}return r.indexOf(e)},lr.prototype.eachChild=function(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex)},lr.prototype.outputDefined=function(){return!1},lr.prototype.serialize=function(){if(null!=this.fromIndex&&void 0!==this.fromIndex){var t=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),t]}return["index-of",this.needle.serialize(),this.haystack.serialize()]};var cr=function(t,e,r,n,i,a){this.inputType=t,this.type=e,this.input=r,this.cases=n,this.outputs=i,this.otherwise=a};cr.parse=function(t,e){if(t.length<5)return e.error("Expected at least 4 arguments, but found only "+(t.length-1)+".");if(t.length%2!=1)return e.error("Expected an even number of arguments.");var r,n;e.expectedType&&"value"!==e.expectedType.kind&&(n=e.expectedType);for(var i={},a=[],o=2;oNumber.MAX_SAFE_INTEGER)return c.error("Branch labels must be integers no larger than "+Number.MAX_SAFE_INTEGER+".");if("number"==typeof h&&Math.floor(h)!==h)return c.error("Numeric branch labels must be integer values.");if(r){if(c.checkSubtype(r,ie(h)))return null}else r=ie(h);if(void 0!==i[String(h)])return c.error("Branch labels must be unique.");i[String(h)]=a.length}var p=e.parse(l,o,n);if(!p)return null;n=n||p.type,a.push(p)}var d=e.parse(t[1],1,jt);if(!d)return null;var g=e.parse(t[t.length-1],t.length-1,n);return g?"value"!==d.type.kind&&e.concat(1).checkSubtype(r,d.type)?null:new cr(r,n,d,i,a,g):null},cr.prototype.evaluate=function(t){var e=this.input.evaluate(t);return(ie(e)===this.inputType&&this.outputs[this.cases[e]]||this.otherwise).evaluate(t)},cr.prototype.eachChild=function(t){t(this.input),this.outputs.forEach(t),t(this.otherwise)},cr.prototype.outputDefined=function(){return this.outputs.every((function(t){return t.outputDefined()}))&&this.otherwise.outputDefined()},cr.prototype.serialize=function(){for(var t=this,e=["match",this.input.serialize()],r=[],n={},i=0,a=Object.keys(this.cases).sort();i=5)return e.error("Expected 3 or 4 arguments, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1,jt),n=e.parse(t[2],2,Dt);if(!r||!n)return null;if(!Xt(r.type,[Ht(jt),Rt,jt]))return e.error("Expected first argument to be of type array or string, but found "+Gt(r.type)+" instead");if(4===t.length){var i=e.parse(t[3],3,Dt);return i?new fr(r.type,r,n,i):null}return new fr(r.type,r,n)},fr.prototype.evaluate=function(t){var e=this.input.evaluate(t),r=this.beginIndex.evaluate(t);if(!Zt(e,["string","array"]))throw new se("Expected first argument to be of type array or string, but found "+Gt(ie(e))+" instead.");if(this.endIndex){var n=this.endIndex.evaluate(t);return e.slice(r,n)}return e.slice(r)},fr.prototype.eachChild=function(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex)},fr.prototype.outputDefined=function(){return!1},fr.prototype.serialize=function(){if(null!=this.endIndex&&void 0!==this.endIndex){var t=this.endIndex.serialize();return["slice",this.input.serialize(),this.beginIndex.serialize(),t]}return["slice",this.input.serialize(),this.beginIndex.serialize()]};var gr=dr("==",(function(t,e,r){return e===r}),pr),mr=dr("!=",(function(t,e,r){return e!==r}),(function(t,e,r,n){return!pr(0,e,r,n)})),vr=dr("<",(function(t,e,r){return e",(function(t,e,r){return e>r}),(function(t,e,r,n){return n.compare(e,r)>0})),xr=dr("<=",(function(t,e,r){return e<=r}),(function(t,e,r,n){return n.compare(e,r)<=0})),br=dr(">=",(function(t,e,r){return e>=r}),(function(t,e,r,n){return n.compare(e,r)>=0})),_r=function(t,e,r,n,i){this.type=Rt,this.number=t,this.locale=e,this.currency=r,this.minFractionDigits=n,this.maxFractionDigits=i};_r.parse=function(t,e){if(3!==t.length)return e.error("Expected two arguments.");var r=e.parse(t[1],1,Dt);if(!r)return null;var n=t[2];if("object"!=typeof n||Array.isArray(n))return e.error("NumberFormat options argument must be an object.");var i=null;if(n.locale&&!(i=e.parse(n.locale,1,Rt)))return null;var a=null;if(n.currency&&!(a=e.parse(n.currency,1,Rt)))return null;var o=null;if(n["min-fraction-digits"]&&!(o=e.parse(n["min-fraction-digits"],1,Dt)))return null;var s=null;return n["max-fraction-digits"]&&!(s=e.parse(n["max-fraction-digits"],1,Dt))?null:new _r(r,i,a,o,s)},_r.prototype.evaluate=function(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))},_r.prototype.eachChild=function(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits)},_r.prototype.outputDefined=function(){return!1},_r.prototype.serialize=function(){var t={};return this.locale&&(t.locale=this.locale.serialize()),this.currency&&(t.currency=this.currency.serialize()),this.minFractionDigits&&(t["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(t["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),t]};var wr=function(t){this.type=Dt,this.input=t};wr.parse=function(t,e){if(2!==t.length)return e.error("Expected 1 argument, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1);return r?"array"!==r.type.kind&&"string"!==r.type.kind&&"value"!==r.type.kind?e.error("Expected argument of type string or array, but found "+Gt(r.type)+" instead."):new wr(r):null},wr.prototype.evaluate=function(t){var e=this.input.evaluate(t);if("string"==typeof e)return e.length;if(Array.isArray(e))return e.length;throw new se("Expected value to be of type string or array, but found "+Gt(ie(e))+" instead.")},wr.prototype.eachChild=function(t){t(this.input)},wr.prototype.outputDefined=function(){return!1},wr.prototype.serialize=function(){var t=["length"];return this.eachChild((function(e){t.push(e.serialize())})),t};var Tr={"==":gr,"!=":mr,">":yr,"<":vr,">=":br,"<=":xr,array:ce,at:or,boolean:ce,case:ur,coalesce:ir,collator:ve,format:ue,image:fe,in:sr,"index-of":lr,interpolate:rr,"interpolate-hcl":rr,"interpolate-lab":rr,length:wr,let:ar,literal:oe,match:cr,number:ce,"number-format":_r,object:ce,slice:fr,step:je,string:ce,"to-boolean":pe,"to-color":pe,"to-number":pe,"to-string":pe,var:Fe,within:ze};function kr(t,e){var r=e[0],n=e[1],i=e[2],a=e[3];r=r.evaluate(t),n=n.evaluate(t),i=i.evaluate(t);var o=a?a.evaluate(t):1,s=re(r,n,i,o);if(s)throw new se(s);return new Kt(r/255*o,n/255*o,i/255*o,o)}function Mr(t,e){return t in e}function Ar(t,e){var r=e[t];return void 0===r?null:r}function Sr(t){return{type:t}}function Er(t){return{result:"success",value:t}}function Cr(t){return{result:"error",value:t}}function Lr(t){return"data-driven"===t["property-type"]||"cross-faded-data-driven"===t["property-type"]}function Ir(t){return!!t.expression&&t.expression.parameters.indexOf("zoom")>-1}function Pr(t){return!!t.expression&&t.expression.interpolated}function zr(t){return t instanceof Number?"number":t instanceof String?"string":t instanceof Boolean?"boolean":Array.isArray(t)?"array":null===t?"null":typeof t}function Or(t){return"object"==typeof t&&null!==t&&!Array.isArray(t)}function Dr(t){return t}function Rr(t,e,r){return void 0!==t?t:void 0!==e?e:void 0!==r?r:void 0}function Fr(t,e,r,n,i){return Rr(typeof r===i?n[r]:void 0,t.default,e.default)}function Br(t,e,r){if("number"!==zr(r))return Rr(t.default,e.default);var n=t.stops.length;if(1===n)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[n-1][0])return t.stops[n-1][1];var i=Ne(t.stops.map((function(t){return t[0]})),r);return t.stops[i][1]}function Nr(t,e,r){var n=void 0!==t.base?t.base:1;if("number"!==zr(r))return Rr(t.default,e.default);var i=t.stops.length;if(1===i)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[i-1][0])return t.stops[i-1][1];var a=Ne(t.stops.map((function(t){return t[0]})),r),o=function(t,e,r,n){var i=n-r,a=t-r;return 0===i?0:1===e?a/i:(Math.pow(e,a)-1)/(Math.pow(e,i)-1)}(r,n,t.stops[a][0],t.stops[a+1][0]),s=t.stops[a][1],l=t.stops[a+1][1],c=Ve[e.type]||Dr;if(t.colorSpace&&"rgb"!==t.colorSpace){var u=er[t.colorSpace];c=function(t,e){return u.reverse(u.interpolate(u.forward(t),u.forward(e),o))}}return"function"==typeof s.evaluate?{evaluate:function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var r=s.evaluate.apply(void 0,t),n=l.evaluate.apply(void 0,t);if(void 0!==r&&void 0!==n)return c(r,n,o)}}:c(s,l,o)}function jr(t,e,r){return"color"===e.type?r=Kt.parse(r):"formatted"===e.type?r=te.fromString(r.toString()):"resolvedImage"===e.type?r=ee.fromString(r.toString()):zr(r)===e.type||"enum"===e.type&&e.values[r]||(r=void 0),Rr(r,t.default,e.default)}me.register(Tr,{error:[{kind:"error"},[Rt],function(t,e){throw new se(e[0].evaluate(t))}],typeof:[Rt,[jt],function(t,e){return Gt(ie(e[0].evaluate(t)))}],"to-rgba":[Ht(Dt,4),[Bt],function(t,e){return e[0].evaluate(t).toArray()}],rgb:[Bt,[Dt,Dt,Dt],kr],rgba:[Bt,[Dt,Dt,Dt,Dt],kr],has:{type:Ft,overloads:[[[Rt],function(t,e){return Mr(e[0].evaluate(t),t.properties())}],[[Rt,Nt],function(t,e){var r=e[1];return Mr(e[0].evaluate(t),r.evaluate(t))}]]},get:{type:jt,overloads:[[[Rt],function(t,e){return Ar(e[0].evaluate(t),t.properties())}],[[Rt,Nt],function(t,e){var r=e[1];return Ar(e[0].evaluate(t),r.evaluate(t))}]]},"feature-state":[jt,[Rt],function(t,e){return Ar(e[0].evaluate(t),t.featureState||{})}],properties:[Nt,[],function(t){return t.properties()}],"geometry-type":[Rt,[],function(t){return t.geometryType()}],id:[jt,[],function(t){return t.id()}],zoom:[Dt,[],function(t){return t.globals.zoom}],"heatmap-density":[Dt,[],function(t){return t.globals.heatmapDensity||0}],"line-progress":[Dt,[],function(t){return t.globals.lineProgress||0}],accumulated:[jt,[],function(t){return void 0===t.globals.accumulated?null:t.globals.accumulated}],"+":[Dt,Sr(Dt),function(t,e){for(var r=0,n=0,i=e;n":[Ft,[Rt,jt],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i>a}],"filter-id->":[Ft,[jt],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n>i}],"filter-<=":[Ft,[Rt,jt],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i<=a}],"filter-id-<=":[Ft,[jt],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n<=i}],"filter->=":[Ft,[Rt,jt],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i>=a}],"filter-id->=":[Ft,[jt],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n>=i}],"filter-has":[Ft,[jt],function(t,e){return e[0].value in t.properties()}],"filter-has-id":[Ft,[],function(t){return null!==t.id()&&void 0!==t.id()}],"filter-type-in":[Ft,[Ht(Rt)],function(t,e){return e[0].value.indexOf(t.geometryType())>=0}],"filter-id-in":[Ft,[Ht(jt)],function(t,e){return e[0].value.indexOf(t.id())>=0}],"filter-in-small":[Ft,[Rt,Ht(jt)],function(t,e){var r=e[0];return e[1].value.indexOf(t.properties()[r.value])>=0}],"filter-in-large":[Ft,[Rt,Ht(jt)],function(t,e){var r=e[0],n=e[1];return function(t,e,r,n){for(;r<=n;){var i=r+n>>1;if(e[i]===t)return!0;e[i]>t?n=i-1:r=i+1}return!1}(t.properties()[r.value],n.value,0,n.value.length-1)}],all:{type:Ft,overloads:[[[Ft,Ft],function(t,e){var r=e[1];return e[0].evaluate(t)&&r.evaluate(t)}],[Sr(Ft),function(t,e){for(var r=0,n=e;r0&&"string"==typeof t[0]&&t[0]in Tr}function qr(t,e){var r=new Be(Tr,[],e?function(t){var e={color:Bt,string:Rt,number:Dt,enum:Rt,boolean:Ft,formatted:Vt,resolvedImage:qt};return"array"===t.type?Ht(e[t.value]||jt,t.length):e[t.type]}(e):void 0),n=r.parse(t,void 0,void 0,void 0,e&&"string"===e.type?{typeAnnotation:"coerce"}:void 0);return n?Er(new Ur(n,e)):Cr(r.errors)}Ur.prototype.evaluateWithoutErrorHandling=function(t,e,r,n,i,a){return this._evaluator.globals=t,this._evaluator.feature=e,this._evaluator.featureState=r,this._evaluator.canonical=n,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a,this.expression.evaluate(this._evaluator)},Ur.prototype.evaluate=function(t,e,r,n,i,a){this._evaluator.globals=t,this._evaluator.feature=e||null,this._evaluator.featureState=r||null,this._evaluator.canonical=n,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a||null;try{var o=this.expression.evaluate(this._evaluator);if(null==o||"number"==typeof o&&o!=o)return this._defaultValue;if(this._enumValues&&!(o in this._enumValues))throw new se("Expected value to be one of "+Object.keys(this._enumValues).map((function(t){return JSON.stringify(t)})).join(", ")+", but found "+JSON.stringify(o)+" instead.");return o}catch(t){return this._warningHistory[t.message]||(this._warningHistory[t.message]=!0,"undefined"!=typeof console&&console.warn(t.message)),this._defaultValue}};var Hr=function(t,e){this.kind=t,this._styleExpression=e,this.isStateDependent="constant"!==t&&!De(e.expression)};Hr.prototype.evaluateWithoutErrorHandling=function(t,e,r,n,i,a){return this._styleExpression.evaluateWithoutErrorHandling(t,e,r,n,i,a)},Hr.prototype.evaluate=function(t,e,r,n,i,a){return this._styleExpression.evaluate(t,e,r,n,i,a)};var Gr=function(t,e,r,n){this.kind=t,this.zoomStops=r,this._styleExpression=e,this.isStateDependent="camera"!==t&&!De(e.expression),this.interpolationType=n};function Yr(t,e){if("error"===(t=qr(t,e)).result)return t;var r=t.value.expression,n=Oe(r);if(!n&&!Lr(e))return Cr([new Pt("","data expressions not supported")]);var i=Re(r,["zoom"]);if(!i&&!Ir(e))return Cr([new Pt("","zoom expressions not supported")]);var a=function t(e){var r=null;if(e instanceof ar)r=t(e.result);else if(e instanceof ir)for(var n=0,i=e.args;nn.maximum?[new St(e,r,r+" is greater than the maximum value "+n.maximum)]:[]}function Kr(t){var e,r,n,i=t.valueSpec,a=Lt(t.value.type),o={},s="categorical"!==a&&void 0===t.value.property,l=!s,c="array"===zr(t.value.stops)&&"array"===zr(t.value.stops[0])&&"object"===zr(t.value.stops[0][0]),u=Xr({key:t.key,value:t.value,valueSpec:t.styleSpec.function,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{stops:function(t){if("identity"===a)return[new St(t.key,t.value,'identity function may not have a "stops" property')];var e=[],r=t.value;return e=e.concat(Zr({key:t.key,value:r,valueSpec:t.valueSpec,style:t.style,styleSpec:t.styleSpec,arrayElementValidator:f})),"array"===zr(r)&&0===r.length&&e.push(new St(t.key,r,"array must have at least one stop")),e},default:function(t){return bn({key:t.key,value:t.value,valueSpec:i,style:t.style,styleSpec:t.styleSpec})}}});return"identity"===a&&s&&u.push(new St(t.key,t.value,'missing required property "property"')),"identity"===a||t.value.stops||u.push(new St(t.key,t.value,'missing required property "stops"')),"exponential"===a&&t.valueSpec.expression&&!Pr(t.valueSpec)&&u.push(new St(t.key,t.value,"exponential functions not supported")),t.styleSpec.$version>=8&&(l&&!Lr(t.valueSpec)?u.push(new St(t.key,t.value,"property functions not supported")):s&&!Ir(t.valueSpec)&&u.push(new St(t.key,t.value,"zoom functions not supported"))),"categorical"!==a&&!c||void 0!==t.value.property||u.push(new St(t.key,t.value,'"property" property is required')),u;function f(t){var e=[],a=t.value,s=t.key;if("array"!==zr(a))return[new St(s,a,"array expected, "+zr(a)+" found")];if(2!==a.length)return[new St(s,a,"array length 2 expected, length "+a.length+" found")];if(c){if("object"!==zr(a[0]))return[new St(s,a,"object expected, "+zr(a[0])+" found")];if(void 0===a[0].zoom)return[new St(s,a,"object stop key must have zoom")];if(void 0===a[0].value)return[new St(s,a,"object stop key must have value")];if(n&&n>Lt(a[0].zoom))return[new St(s,a[0].zoom,"stop zoom values must appear in ascending order")];Lt(a[0].zoom)!==n&&(n=Lt(a[0].zoom),r=void 0,o={}),e=e.concat(Xr({key:s+"[0]",value:a[0],valueSpec:{zoom:{}},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:Jr,value:h}}))}else e=e.concat(h({key:s+"[0]",value:a[0],valueSpec:{},style:t.style,styleSpec:t.styleSpec},a));return Vr(It(a[1]))?e.concat([new St(s+"[1]",a[1],"expressions are not allowed in function stops.")]):e.concat(bn({key:s+"[1]",value:a[1],valueSpec:i,style:t.style,styleSpec:t.styleSpec}))}function h(t,n){var s=zr(t.value),l=Lt(t.value),c=null!==t.value?t.value:n;if(e){if(s!==e)return[new St(t.key,c,s+" stop domain type must match previous stop domain type "+e)]}else e=s;if("number"!==s&&"string"!==s&&"boolean"!==s)return[new St(t.key,c,"stop domain value must be a number, string, or boolean")];if("number"!==s&&"categorical"!==a){var u="number expected, "+s+" found";return Lr(i)&&void 0===a&&(u+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new St(t.key,c,u)]}return"categorical"!==a||"number"!==s||isFinite(l)&&Math.floor(l)===l?"categorical"!==a&&"number"===s&&void 0!==r&&l=2&&"$id"!==t[1]&&"$type"!==t[1];case"in":return t.length>=3&&("string"!=typeof t[1]||Array.isArray(t[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3!==t.length||Array.isArray(t[1])||Array.isArray(t[2]);case"any":case"all":for(var e=0,r=t.slice(1);ee?1:0}function an(t){if(!t)return!0;var e,r=t[0];return t.length<=1?"any"!==r:"=="===r?on(t[1],t[2],"=="):"!="===r?cn(on(t[1],t[2],"==")):"<"===r||">"===r||"<="===r||">="===r?on(t[1],t[2],r):"any"===r?(e=t.slice(1),["any"].concat(e.map(an))):"all"===r?["all"].concat(t.slice(1).map(an)):"none"===r?["all"].concat(t.slice(1).map(an).map(cn)):"in"===r?sn(t[1],t.slice(2)):"!in"===r?cn(sn(t[1],t.slice(2))):"has"===r?ln(t[1]):"!has"===r?cn(ln(t[1])):"within"!==r||t}function on(t,e,r){switch(t){case"$type":return["filter-type-"+r,e];case"$id":return["filter-id-"+r,e];default:return["filter-"+r,t,e]}}function sn(t,e){if(0===e.length)return!1;switch(t){case"$type":return["filter-type-in",["literal",e]];case"$id":return["filter-id-in",["literal",e]];default:return e.length>200&&!e.some((function(t){return typeof t!=typeof e[0]}))?["filter-in-large",t,["literal",e.sort(nn)]]:["filter-in-small",t,["literal",e]]}}function ln(t){switch(t){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",t]}}function cn(t){return["!",t]}function un(t){return tn(It(t.value))?Qr(Ct({},t,{expressionContext:"filter",valueSpec:{value:"boolean"}})):function t(e){var r=e.value,n=e.key;if("array"!==zr(r))return[new St(n,r,"array expected, "+zr(r)+" found")];var i,a=e.styleSpec,o=[];if(r.length<1)return[new St(n,r,"filter array must have at least 1 element")];switch(o=o.concat($r({key:n+"[0]",value:r[0],valueSpec:a.filter_operator,style:e.style,styleSpec:e.styleSpec})),Lt(r[0])){case"<":case"<=":case">":case">=":r.length>=2&&"$type"===Lt(r[1])&&o.push(new St(n,r,'"$type" cannot be use with operator "'+r[0]+'"'));case"==":case"!=":3!==r.length&&o.push(new St(n,r,'filter array for operator "'+r[0]+'" must have 3 elements'));case"in":case"!in":r.length>=2&&"string"!==(i=zr(r[1]))&&o.push(new St(n+"[1]",r[1],"string expected, "+i+" found"));for(var s=2;s=u[p+0]&&n>=u[p+1])?(o[h]=!0,a.push(c[h])):o[h]=!1}}},In.prototype._forEachCell=function(t,e,r,n,i,a,o,s){for(var l=this._convertToCellCoord(t),c=this._convertToCellCoord(e),u=this._convertToCellCoord(r),f=this._convertToCellCoord(n),h=l;h<=u;h++)for(var p=c;p<=f;p++){var d=this.d*p+h;if((!s||s(this._convertFromCellCoord(h),this._convertFromCellCoord(p),this._convertFromCellCoord(h+1),this._convertFromCellCoord(p+1)))&&i.call(this,t,e,r,n,d,a,o,s))return}},In.prototype._convertFromCellCoord=function(t){return(t-this.padding)/this.scale},In.prototype._convertToCellCoord=function(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))},In.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var t=this.cells,e=3+this.cells.length+1+1,r=0,n=0;n=0)){var u=t[c];l[c]=On[s].shallow.indexOf(c)>=0?u:Nn(u,e)}t instanceof Error&&(l.message=t.message)}if(l.$name)throw new Error("$name property is reserved for worker serialization logic.");return"Object"!==s&&(l.$name=s),l}throw new Error("can't serialize object of type "+typeof t)}function jn(t){if(null==t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||t instanceof Boolean||t instanceof Number||t instanceof String||t instanceof Date||t instanceof RegExp||Fn(t)||Bn(t)||ArrayBuffer.isView(t)||t instanceof Pn)return t;if(Array.isArray(t))return t.map(jn);if("object"==typeof t){var e=t.$name||"Object",r=On[e].klass;if(!r)throw new Error("can't deserialize unregistered class "+e);if(r.deserialize)return r.deserialize(t);for(var n=Object.create(r.prototype),i=0,a=Object.keys(t);i=0?s:jn(s)}}return n}throw new Error("can't deserialize object of type "+typeof t)}var Un=function(){this.first=!0};Un.prototype.update=function(t,e){var r=Math.floor(t);return this.first?(this.first=!1,this.lastIntegerZoom=r,this.lastIntegerZoomTime=0,this.lastZoom=t,this.lastFloorZoom=r,!0):(this.lastFloorZoom>r?(this.lastIntegerZoom=r+1,this.lastIntegerZoomTime=e):this.lastFloorZoom=128&&t<=255},Arabic:function(t){return t>=1536&&t<=1791},"Arabic Supplement":function(t){return t>=1872&&t<=1919},"Arabic Extended-A":function(t){return t>=2208&&t<=2303},"Hangul Jamo":function(t){return t>=4352&&t<=4607},"Unified Canadian Aboriginal Syllabics":function(t){return t>=5120&&t<=5759},Khmer:function(t){return t>=6016&&t<=6143},"Unified Canadian Aboriginal Syllabics Extended":function(t){return t>=6320&&t<=6399},"General Punctuation":function(t){return t>=8192&&t<=8303},"Letterlike Symbols":function(t){return t>=8448&&t<=8527},"Number Forms":function(t){return t>=8528&&t<=8591},"Miscellaneous Technical":function(t){return t>=8960&&t<=9215},"Control Pictures":function(t){return t>=9216&&t<=9279},"Optical Character Recognition":function(t){return t>=9280&&t<=9311},"Enclosed Alphanumerics":function(t){return t>=9312&&t<=9471},"Geometric Shapes":function(t){return t>=9632&&t<=9727},"Miscellaneous Symbols":function(t){return t>=9728&&t<=9983},"Miscellaneous Symbols and Arrows":function(t){return t>=11008&&t<=11263},"CJK Radicals Supplement":function(t){return t>=11904&&t<=12031},"Kangxi Radicals":function(t){return t>=12032&&t<=12255},"Ideographic Description Characters":function(t){return t>=12272&&t<=12287},"CJK Symbols and Punctuation":function(t){return t>=12288&&t<=12351},Hiragana:function(t){return t>=12352&&t<=12447},Katakana:function(t){return t>=12448&&t<=12543},Bopomofo:function(t){return t>=12544&&t<=12591},"Hangul Compatibility Jamo":function(t){return t>=12592&&t<=12687},Kanbun:function(t){return t>=12688&&t<=12703},"Bopomofo Extended":function(t){return t>=12704&&t<=12735},"CJK Strokes":function(t){return t>=12736&&t<=12783},"Katakana Phonetic Extensions":function(t){return t>=12784&&t<=12799},"Enclosed CJK Letters and Months":function(t){return t>=12800&&t<=13055},"CJK Compatibility":function(t){return t>=13056&&t<=13311},"CJK Unified Ideographs Extension A":function(t){return t>=13312&&t<=19903},"Yijing Hexagram Symbols":function(t){return t>=19904&&t<=19967},"CJK Unified Ideographs":function(t){return t>=19968&&t<=40959},"Yi Syllables":function(t){return t>=40960&&t<=42127},"Yi Radicals":function(t){return t>=42128&&t<=42191},"Hangul Jamo Extended-A":function(t){return t>=43360&&t<=43391},"Hangul Syllables":function(t){return t>=44032&&t<=55215},"Hangul Jamo Extended-B":function(t){return t>=55216&&t<=55295},"Private Use Area":function(t){return t>=57344&&t<=63743},"CJK Compatibility Ideographs":function(t){return t>=63744&&t<=64255},"Arabic Presentation Forms-A":function(t){return t>=64336&&t<=65023},"Vertical Forms":function(t){return t>=65040&&t<=65055},"CJK Compatibility Forms":function(t){return t>=65072&&t<=65103},"Small Form Variants":function(t){return t>=65104&&t<=65135},"Arabic Presentation Forms-B":function(t){return t>=65136&&t<=65279},"Halfwidth and Fullwidth Forms":function(t){return t>=65280&&t<=65519}};function qn(t){for(var e=0,r=t;e=65097&&t<=65103)||Vn["CJK Compatibility Ideographs"](t)||Vn["CJK Compatibility"](t)||Vn["CJK Radicals Supplement"](t)||Vn["CJK Strokes"](t)||!(!Vn["CJK Symbols and Punctuation"](t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||Vn["CJK Unified Ideographs Extension A"](t)||Vn["CJK Unified Ideographs"](t)||Vn["Enclosed CJK Letters and Months"](t)||Vn["Hangul Compatibility Jamo"](t)||Vn["Hangul Jamo Extended-A"](t)||Vn["Hangul Jamo Extended-B"](t)||Vn["Hangul Jamo"](t)||Vn["Hangul Syllables"](t)||Vn.Hiragana(t)||Vn["Ideographic Description Characters"](t)||Vn.Kanbun(t)||Vn["Kangxi Radicals"](t)||Vn["Katakana Phonetic Extensions"](t)||Vn.Katakana(t)&&12540!==t||!(!Vn["Halfwidth and Fullwidth Forms"](t)||65288===t||65289===t||65293===t||t>=65306&&t<=65310||65339===t||65341===t||65343===t||t>=65371&&t<=65503||65507===t||t>=65512&&t<=65519)||!(!Vn["Small Form Variants"](t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||Vn["Unified Canadian Aboriginal Syllabics"](t)||Vn["Unified Canadian Aboriginal Syllabics Extended"](t)||Vn["Vertical Forms"](t)||Vn["Yijing Hexagram Symbols"](t)||Vn["Yi Syllables"](t)||Vn["Yi Radicals"](t))))}function Gn(t){return!(Hn(t)||function(t){return!!(Vn["Latin-1 Supplement"](t)&&(167===t||169===t||174===t||177===t||188===t||189===t||190===t||215===t||247===t)||Vn["General Punctuation"](t)&&(8214===t||8224===t||8225===t||8240===t||8241===t||8251===t||8252===t||8258===t||8263===t||8264===t||8265===t||8273===t)||Vn["Letterlike Symbols"](t)||Vn["Number Forms"](t)||Vn["Miscellaneous Technical"](t)&&(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||9003===t||t>=9085&&t<=9114||t>=9150&&t<=9165||9167===t||t>=9169&&t<=9179||t>=9186&&t<=9215)||Vn["Control Pictures"](t)&&9251!==t||Vn["Optical Character Recognition"](t)||Vn["Enclosed Alphanumerics"](t)||Vn["Geometric Shapes"](t)||Vn["Miscellaneous Symbols"](t)&&!(t>=9754&&t<=9759)||Vn["Miscellaneous Symbols and Arrows"](t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||Vn["CJK Symbols and Punctuation"](t)||Vn.Katakana(t)||Vn["Private Use Area"](t)||Vn["CJK Compatibility Forms"](t)||Vn["Small Form Variants"](t)||Vn["Halfwidth and Fullwidth Forms"](t)||8734===t||8756===t||8757===t||t>=9984&&t<=10087||t>=10102&&t<=10131||65532===t||65533===t)}(t))}function Yn(t){return t>=1424&&t<=2303||Vn["Arabic Presentation Forms-A"](t)||Vn["Arabic Presentation Forms-B"](t)}function Wn(t,e){return!(!e&&Yn(t)||t>=2304&&t<=3583||t>=3840&&t<=4255||Vn.Khmer(t))}function Xn(t){for(var e=0,r=t;e-1&&(Jn="error"),Zn&&Zn(t)};function $n(){ti.fire(new Tt("pluginStateChange",{pluginStatus:Jn,pluginURL:Kn}))}var ti=new Mt,ei=function(){return Jn},ri=function(){if("deferred"!==Jn||!Kn)throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");Jn="loading",$n(),Kn&&yt({url:Kn},(function(t){t?Qn(t):(Jn="loaded",$n())}))},ni={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:function(){return"loaded"===Jn||null!=ni.applyArabicShaping},isLoading:function(){return"loading"===Jn},setState:function(t){Jn=t.pluginStatus,Kn=t.pluginURL},isParsed:function(){return null!=ni.applyArabicShaping&&null!=ni.processBidirectionalText&&null!=ni.processStyledBidirectionalText},getPluginURL:function(){return Kn}},ii=function(t,e){this.zoom=t,e?(this.now=e.now,this.fadeDuration=e.fadeDuration,this.zoomHistory=e.zoomHistory,this.transition=e.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new Un,this.transition={})};ii.prototype.isSupportedScript=function(t){return function(t,e){for(var r=0,n=t;rthis.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:e+(1-e)*r}:{fromScale:.5,toScale:1,t:1-(1-r)*e}};var ai=function(t,e){this.property=t,this.value=e,this.expression=function(t,e){if(Or(t))return new Wr(t,e);if(Vr(t)){var r=Yr(t,e);if("error"===r.result)throw new Error(r.value.map((function(t){return t.key+": "+t.message})).join(", "));return r.value}var n=t;return"string"==typeof t&&"color"===e.type&&(n=Kt.parse(t)),{kind:"constant",evaluate:function(){return n}}}(void 0===e?t.specification.default:e,t.specification)};ai.prototype.isDataDriven=function(){return"source"===this.expression.kind||"composite"===this.expression.kind},ai.prototype.possiblyEvaluate=function(t,e,r){return this.property.possiblyEvaluate(this,t,e,r)};var oi=function(t){this.property=t,this.value=new ai(t,void 0)};oi.prototype.transitioned=function(t,e){return new li(this.property,this.value,e,u({},t.transition,this.transition),t.now)},oi.prototype.untransitioned=function(){return new li(this.property,this.value,null,{},0)};var si=function(t){this._properties=t,this._values=Object.create(t.defaultTransitionablePropertyValues)};si.prototype.getValue=function(t){return x(this._values[t].value.value)},si.prototype.setValue=function(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new oi(this._values[t].property)),this._values[t].value=new ai(this._values[t].property,null===e?void 0:x(e))},si.prototype.getTransition=function(t){return x(this._values[t].transition)},si.prototype.setTransition=function(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new oi(this._values[t].property)),this._values[t].transition=x(e)||void 0},si.prototype.serialize=function(){for(var t={},e=0,r=Object.keys(this._values);ethis.end)return this.prior=null,i;if(this.value.isDataDriven())return this.prior=null,i;if(n=1)return 1;var e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)}(o))}return i};var ci=function(t){this._properties=t,this._values=Object.create(t.defaultTransitioningPropertyValues)};ci.prototype.possiblyEvaluate=function(t,e,r){for(var n=new hi(this._properties),i=0,a=Object.keys(this._values);in.zoomHistory.lastIntegerZoom?{from:t,to:e}:{from:r,to:e}},e.prototype.interpolate=function(t){return t},e}(di),mi=function(t){this.specification=t};mi.prototype.possiblyEvaluate=function(t,e,r,n){if(void 0!==t.value){if("constant"===t.expression.kind){var i=t.expression.evaluate(e,null,{},r,n);return this._calculate(i,i,i,e)}return this._calculate(t.expression.evaluate(new ii(Math.floor(e.zoom-1),e)),t.expression.evaluate(new ii(Math.floor(e.zoom),e)),t.expression.evaluate(new ii(Math.floor(e.zoom+1),e)),e)}},mi.prototype._calculate=function(t,e,r,n){return n.zoom>n.zoomHistory.lastIntegerZoom?{from:t,to:e}:{from:r,to:e}},mi.prototype.interpolate=function(t){return t};var vi=function(t){this.specification=t};vi.prototype.possiblyEvaluate=function(t,e,r,n){return!!t.expression.evaluate(e,null,{},r,n)},vi.prototype.interpolate=function(){return!1};var yi=function(t){for(var e in this.properties=t,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[],t){var r=t[e];r.specification.overridable&&this.overridableProperties.push(e);var n=this.defaultPropertyValues[e]=new ai(r,void 0),i=this.defaultTransitionablePropertyValues[e]=new oi(r);this.defaultTransitioningPropertyValues[e]=i.untransitioned(),this.defaultPossiblyEvaluatedValues[e]=n.possiblyEvaluate({})}};Dn("DataDrivenProperty",di),Dn("DataConstantProperty",pi),Dn("CrossFadedDataDrivenProperty",gi),Dn("CrossFadedProperty",mi),Dn("ColorRampProperty",vi);var xi=function(t){function e(e,r){if(t.call(this),this.id=e.id,this.type=e.type,this._featureFilter={filter:function(){return!0},needGeometry:!1},"custom"!==e.type&&(this.metadata=(e=e).metadata,this.minzoom=e.minzoom,this.maxzoom=e.maxzoom,"background"!==e.type&&(this.source=e.source,this.sourceLayer=e["source-layer"],this.filter=e.filter),r.layout&&(this._unevaluatedLayout=new ui(r.layout)),r.paint)){for(var n in this._transitionablePaint=new si(r.paint),e.paint)this.setPaintProperty(n,e.paint[n],{validate:!1});for(var i in e.layout)this.setLayoutProperty(i,e.layout[i],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new hi(r.paint)}}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getCrossfadeParameters=function(){return this._crossfadeParameters},e.prototype.getLayoutProperty=function(t){return"visibility"===t?this.visibility:this._unevaluatedLayout.getValue(t)},e.prototype.setLayoutProperty=function(t,e,r){void 0===r&&(r={}),null!=e&&this._validate(En,"layers."+this.id+".layout."+t,t,e,r)||("visibility"!==t?this._unevaluatedLayout.setValue(t,e):this.visibility=e)},e.prototype.getPaintProperty=function(t){return m(t,"-transition")?this._transitionablePaint.getTransition(t.slice(0,-"-transition".length)):this._transitionablePaint.getValue(t)},e.prototype.setPaintProperty=function(t,e,r){if(void 0===r&&(r={}),null!=e&&this._validate(Sn,"layers."+this.id+".paint."+t,t,e,r))return!1;if(m(t,"-transition"))return this._transitionablePaint.setTransition(t.slice(0,-"-transition".length),e||void 0),!1;var n=this._transitionablePaint._values[t],i="cross-faded-data-driven"===n.property.specification["property-type"],a=n.value.isDataDriven(),o=n.value;this._transitionablePaint.setValue(t,e),this._handleSpecialPaintPropertyUpdate(t);var s=this._transitionablePaint._values[t].value;return s.isDataDriven()||a||i||this._handleOverridablePaintPropertyUpdate(t,o,s)},e.prototype._handleSpecialPaintPropertyUpdate=function(t){},e.prototype._handleOverridablePaintPropertyUpdate=function(t,e,r){return!1},e.prototype.isHidden=function(t){return!!(this.minzoom&&t=this.maxzoom)||"none"===this.visibility},e.prototype.updateTransitions=function(t){this._transitioningPaint=this._transitionablePaint.transitioned(t,this._transitioningPaint)},e.prototype.hasTransition=function(){return this._transitioningPaint.hasTransition()},e.prototype.recalculate=function(t,e){t.getCrossfadeParameters&&(this._crossfadeParameters=t.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(t,void 0,e)),this.paint=this._transitioningPaint.possiblyEvaluate(t,void 0,e)},e.prototype.serialize=function(){var t={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(t.layout=t.layout||{},t.layout.visibility=this.visibility),y(t,(function(t,e){return!(void 0===t||"layout"===e&&!Object.keys(t).length||"paint"===e&&!Object.keys(t).length)}))},e.prototype._validate=function(t,e,r,n,i){return void 0===i&&(i={}),(!i||!1!==i.validate)&&Cn(this,t.call(Mn,{key:e,layerType:this.type,objectKey:r,value:n,styleSpec:At,style:{glyphs:!0,sprite:!0}}))},e.prototype.is3D=function(){return!1},e.prototype.isTileClipped=function(){return!1},e.prototype.hasOffscreenPass=function(){return!1},e.prototype.resize=function(){},e.prototype.isStateDependent=function(){for(var t in this.paint._values){var e=this.paint.get(t);if(e instanceof fi&&Lr(e.property.specification)&&("source"===e.value.kind||"composite"===e.value.kind)&&e.value.isStateDependent)return!0}return!1},e}(Mt),bi={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array},_i=function(t,e){this._structArray=t,this._pos1=e*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8},wi=function(){this.isTransferred=!1,this.capacity=-1,this.resize(0)};function Ti(t,e){void 0===e&&(e=1);var r=0,n=0;return{members:t.map((function(t){var i=bi[t.type].BYTES_PER_ELEMENT,a=r=ki(r,Math.max(e,i)),o=t.components||1;return n=Math.max(n,i),r+=i*o,{name:t.name,type:t.type,components:o,offset:a}})),size:ki(r,Math.max(n,e)),alignment:e}}function ki(t,e){return Math.ceil(t/e)*e}wi.serialize=function(t,e){return t._trim(),e&&(t.isTransferred=!0,e.push(t.arrayBuffer)),{length:t.length,arrayBuffer:t.arrayBuffer}},wi.deserialize=function(t){var e=Object.create(this.prototype);return e.arrayBuffer=t.arrayBuffer,e.length=t.length,e.capacity=t.arrayBuffer.byteLength/e.bytesPerElement,e._refreshViews(),e},wi.prototype._trim=function(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())},wi.prototype.clear=function(){this.length=0},wi.prototype.resize=function(t){this.reserve(t),this.length=t},wi.prototype.reserve=function(t){if(t>this.capacity){this.capacity=Math.max(t,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);var e=this.uint8;this._refreshViews(),e&&this.uint8.set(e)}},wi.prototype._refreshViews=function(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")};var Mi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e){var r=this.length;return this.resize(r+1),this.emplace(r,t,e)},e.prototype.emplace=function(t,e,r){var n=2*t;return this.int16[n+0]=e,this.int16[n+1]=r,t},e}(wi);Mi.prototype.bytesPerElement=4,Dn("StructArrayLayout2i4",Mi);var Ai=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n){var i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)},e.prototype.emplace=function(t,e,r,n,i){var a=4*t;return this.int16[a+0]=e,this.int16[a+1]=r,this.int16[a+2]=n,this.int16[a+3]=i,t},e}(wi);Ai.prototype.bytesPerElement=8,Dn("StructArrayLayout4i8",Ai);var Si=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a){var o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,a)},e.prototype.emplace=function(t,e,r,n,i,a,o){var s=6*t;return this.int16[s+0]=e,this.int16[s+1]=r,this.int16[s+2]=n,this.int16[s+3]=i,this.int16[s+4]=a,this.int16[s+5]=o,t},e}(wi);Si.prototype.bytesPerElement=12,Dn("StructArrayLayout2i4i12",Si);var Ei=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a){var o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,a)},e.prototype.emplace=function(t,e,r,n,i,a,o){var s=4*t,l=8*t;return this.int16[s+0]=e,this.int16[s+1]=r,this.uint8[l+4]=n,this.uint8[l+5]=i,this.uint8[l+6]=a,this.uint8[l+7]=o,t},e}(wi);Ei.prototype.bytesPerElement=8,Dn("StructArrayLayout2i4ub8",Ei);var Ci=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,c){var u=this.length;return this.resize(u+1),this.emplace(u,t,e,r,n,i,a,o,s,l,c)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,c,u){var f=9*t,h=18*t;return this.uint16[f+0]=e,this.uint16[f+1]=r,this.uint16[f+2]=n,this.uint16[f+3]=i,this.uint16[f+4]=a,this.uint16[f+5]=o,this.uint16[f+6]=s,this.uint16[f+7]=l,this.uint8[h+16]=c,this.uint8[h+17]=u,t},e}(wi);Ci.prototype.bytesPerElement=18,Dn("StructArrayLayout8ui2ub18",Ci);var Li=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,c,u,f){var h=this.length;return this.resize(h+1),this.emplace(h,t,e,r,n,i,a,o,s,l,c,u,f)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,c,u,f,h){var p=12*t;return this.int16[p+0]=e,this.int16[p+1]=r,this.int16[p+2]=n,this.int16[p+3]=i,this.uint16[p+4]=a,this.uint16[p+5]=o,this.uint16[p+6]=s,this.uint16[p+7]=l,this.int16[p+8]=c,this.int16[p+9]=u,this.int16[p+10]=f,this.int16[p+11]=h,t},e}(wi);Li.prototype.bytesPerElement=24,Dn("StructArrayLayout4i4ui4i24",Li);var Ii=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=3*t;return this.float32[i+0]=e,this.float32[i+1]=r,this.float32[i+2]=n,t},e}(wi);Ii.prototype.bytesPerElement=12,Dn("StructArrayLayout3f12",Ii);var Pi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t){var e=this.length;return this.resize(e+1),this.emplace(e,t)},e.prototype.emplace=function(t,e){return this.uint32[1*t+0]=e,t},e}(wi);Pi.prototype.bytesPerElement=4,Dn("StructArrayLayout1ul4",Pi);var zi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l){var c=this.length;return this.resize(c+1),this.emplace(c,t,e,r,n,i,a,o,s,l)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,c){var u=10*t,f=5*t;return this.int16[u+0]=e,this.int16[u+1]=r,this.int16[u+2]=n,this.int16[u+3]=i,this.int16[u+4]=a,this.int16[u+5]=o,this.uint32[f+3]=s,this.uint16[u+8]=l,this.uint16[u+9]=c,t},e}(wi);zi.prototype.bytesPerElement=20,Dn("StructArrayLayout6i1ul2ui20",zi);var Oi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a){var o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,a)},e.prototype.emplace=function(t,e,r,n,i,a,o){var s=6*t;return this.int16[s+0]=e,this.int16[s+1]=r,this.int16[s+2]=n,this.int16[s+3]=i,this.int16[s+4]=a,this.int16[s+5]=o,t},e}(wi);Oi.prototype.bytesPerElement=12,Dn("StructArrayLayout2i2i2i12",Oi);var Di=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i){var a=this.length;return this.resize(a+1),this.emplace(a,t,e,r,n,i)},e.prototype.emplace=function(t,e,r,n,i,a){var o=4*t,s=8*t;return this.float32[o+0]=e,this.float32[o+1]=r,this.float32[o+2]=n,this.int16[s+6]=i,this.int16[s+7]=a,t},e}(wi);Di.prototype.bytesPerElement=16,Dn("StructArrayLayout2f1f2i16",Di);var Ri=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n){var i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)},e.prototype.emplace=function(t,e,r,n,i){var a=12*t,o=3*t;return this.uint8[a+0]=e,this.uint8[a+1]=r,this.float32[o+1]=n,this.float32[o+2]=i,t},e}(wi);Ri.prototype.bytesPerElement=12,Dn("StructArrayLayout2ub2f12",Ri);var Fi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=3*t;return this.uint16[i+0]=e,this.uint16[i+1]=r,this.uint16[i+2]=n,t},e}(wi);Fi.prototype.bytesPerElement=6,Dn("StructArrayLayout3ui6",Fi);var Bi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,g,m){var v=this.length;return this.resize(v+1),this.emplace(v,t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,g,m)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,g,m,v){var y=24*t,x=12*t,b=48*t;return this.int16[y+0]=e,this.int16[y+1]=r,this.uint16[y+2]=n,this.uint16[y+3]=i,this.uint32[x+2]=a,this.uint32[x+3]=o,this.uint32[x+4]=s,this.uint16[y+10]=l,this.uint16[y+11]=c,this.uint16[y+12]=u,this.float32[x+7]=f,this.float32[x+8]=h,this.uint8[b+36]=p,this.uint8[b+37]=d,this.uint8[b+38]=g,this.uint32[x+10]=m,this.int16[y+22]=v,t},e}(wi);Bi.prototype.bytesPerElement=48,Dn("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",Bi);var Ni=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,g,m,v,y,x,b,_,w,T,k,M,A,S){var E=this.length;return this.resize(E+1),this.emplace(E,t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,g,m,v,y,x,b,_,w,T,k,M,A,S)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,g,m,v,y,x,b,_,w,T,k,M,A,S,E){var C=34*t,L=17*t;return this.int16[C+0]=e,this.int16[C+1]=r,this.int16[C+2]=n,this.int16[C+3]=i,this.int16[C+4]=a,this.int16[C+5]=o,this.int16[C+6]=s,this.int16[C+7]=l,this.uint16[C+8]=c,this.uint16[C+9]=u,this.uint16[C+10]=f,this.uint16[C+11]=h,this.uint16[C+12]=p,this.uint16[C+13]=d,this.uint16[C+14]=g,this.uint16[C+15]=m,this.uint16[C+16]=v,this.uint16[C+17]=y,this.uint16[C+18]=x,this.uint16[C+19]=b,this.uint16[C+20]=_,this.uint16[C+21]=w,this.uint16[C+22]=T,this.uint32[L+12]=k,this.float32[L+13]=M,this.float32[L+14]=A,this.float32[L+15]=S,this.float32[L+16]=E,t},e}(wi);Ni.prototype.bytesPerElement=68,Dn("StructArrayLayout8i15ui1ul4f68",Ni);var ji=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t){var e=this.length;return this.resize(e+1),this.emplace(e,t)},e.prototype.emplace=function(t,e){return this.float32[1*t+0]=e,t},e}(wi);ji.prototype.bytesPerElement=4,Dn("StructArrayLayout1f4",ji);var Ui=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=3*t;return this.int16[i+0]=e,this.int16[i+1]=r,this.int16[i+2]=n,t},e}(wi);Ui.prototype.bytesPerElement=6,Dn("StructArrayLayout3i6",Ui);var Vi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=4*t;return this.uint32[2*t+0]=e,this.uint16[i+2]=r,this.uint16[i+3]=n,t},e}(wi);Vi.prototype.bytesPerElement=8,Dn("StructArrayLayout1ul2ui8",Vi);var qi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e){var r=this.length;return this.resize(r+1),this.emplace(r,t,e)},e.prototype.emplace=function(t,e,r){var n=2*t;return this.uint16[n+0]=e,this.uint16[n+1]=r,t},e}(wi);qi.prototype.bytesPerElement=4,Dn("StructArrayLayout2ui4",qi);var Hi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t){var e=this.length;return this.resize(e+1),this.emplace(e,t)},e.prototype.emplace=function(t,e){return this.uint16[1*t+0]=e,t},e}(wi);Hi.prototype.bytesPerElement=2,Dn("StructArrayLayout1ui2",Hi);var Gi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e){var r=this.length;return this.resize(r+1),this.emplace(r,t,e)},e.prototype.emplace=function(t,e,r){var n=2*t;return this.float32[n+0]=e,this.float32[n+1]=r,t},e}(wi);Gi.prototype.bytesPerElement=8,Dn("StructArrayLayout2f8",Gi);var Yi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n){var i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)},e.prototype.emplace=function(t,e,r,n,i){var a=4*t;return this.float32[a+0]=e,this.float32[a+1]=r,this.float32[a+2]=n,this.float32[a+3]=i,t},e}(wi);Yi.prototype.bytesPerElement=16,Dn("StructArrayLayout4f16",Yi);var Wi=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e;var r={anchorPointX:{configurable:!0},anchorPointY:{configurable:!0},x1:{configurable:!0},y1:{configurable:!0},x2:{configurable:!0},y2:{configurable:!0},featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0},anchorPoint:{configurable:!0}};return r.anchorPointX.get=function(){return this._structArray.int16[this._pos2+0]},r.anchorPointY.get=function(){return this._structArray.int16[this._pos2+1]},r.x1.get=function(){return this._structArray.int16[this._pos2+2]},r.y1.get=function(){return this._structArray.int16[this._pos2+3]},r.x2.get=function(){return this._structArray.int16[this._pos2+4]},r.y2.get=function(){return this._structArray.int16[this._pos2+5]},r.featureIndex.get=function(){return this._structArray.uint32[this._pos4+3]},r.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+8]},r.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+9]},r.anchorPoint.get=function(){return new i(this.anchorPointX,this.anchorPointY)},Object.defineProperties(e.prototype,r),e}(_i);Wi.prototype.size=20;var Xi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.get=function(t){return new Wi(this,t)},e}(zi);Dn("CollisionBoxArray",Xi);var Zi=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e;var r={anchorX:{configurable:!0},anchorY:{configurable:!0},glyphStartIndex:{configurable:!0},numGlyphs:{configurable:!0},vertexStartIndex:{configurable:!0},lineStartIndex:{configurable:!0},lineLength:{configurable:!0},segment:{configurable:!0},lowerSize:{configurable:!0},upperSize:{configurable:!0},lineOffsetX:{configurable:!0},lineOffsetY:{configurable:!0},writingMode:{configurable:!0},placedOrientation:{configurable:!0},hidden:{configurable:!0},crossTileID:{configurable:!0},associatedIconIndex:{configurable:!0}};return r.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},r.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},r.glyphStartIndex.get=function(){return this._structArray.uint16[this._pos2+2]},r.numGlyphs.get=function(){return this._structArray.uint16[this._pos2+3]},r.vertexStartIndex.get=function(){return this._structArray.uint32[this._pos4+2]},r.lineStartIndex.get=function(){return this._structArray.uint32[this._pos4+3]},r.lineLength.get=function(){return this._structArray.uint32[this._pos4+4]},r.segment.get=function(){return this._structArray.uint16[this._pos2+10]},r.lowerSize.get=function(){return this._structArray.uint16[this._pos2+11]},r.upperSize.get=function(){return this._structArray.uint16[this._pos2+12]},r.lineOffsetX.get=function(){return this._structArray.float32[this._pos4+7]},r.lineOffsetY.get=function(){return this._structArray.float32[this._pos4+8]},r.writingMode.get=function(){return this._structArray.uint8[this._pos1+36]},r.placedOrientation.get=function(){return this._structArray.uint8[this._pos1+37]},r.placedOrientation.set=function(t){this._structArray.uint8[this._pos1+37]=t},r.hidden.get=function(){return this._structArray.uint8[this._pos1+38]},r.hidden.set=function(t){this._structArray.uint8[this._pos1+38]=t},r.crossTileID.get=function(){return this._structArray.uint32[this._pos4+10]},r.crossTileID.set=function(t){this._structArray.uint32[this._pos4+10]=t},r.associatedIconIndex.get=function(){return this._structArray.int16[this._pos2+22]},Object.defineProperties(e.prototype,r),e}(_i);Zi.prototype.size=48;var Ji=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.get=function(t){return new Zi(this,t)},e}(Bi);Dn("PlacedSymbolArray",Ji);var Ki=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e;var r={anchorX:{configurable:!0},anchorY:{configurable:!0},rightJustifiedTextSymbolIndex:{configurable:!0},centerJustifiedTextSymbolIndex:{configurable:!0},leftJustifiedTextSymbolIndex:{configurable:!0},verticalPlacedTextSymbolIndex:{configurable:!0},placedIconSymbolIndex:{configurable:!0},verticalPlacedIconSymbolIndex:{configurable:!0},key:{configurable:!0},textBoxStartIndex:{configurable:!0},textBoxEndIndex:{configurable:!0},verticalTextBoxStartIndex:{configurable:!0},verticalTextBoxEndIndex:{configurable:!0},iconBoxStartIndex:{configurable:!0},iconBoxEndIndex:{configurable:!0},verticalIconBoxStartIndex:{configurable:!0},verticalIconBoxEndIndex:{configurable:!0},featureIndex:{configurable:!0},numHorizontalGlyphVertices:{configurable:!0},numVerticalGlyphVertices:{configurable:!0},numIconVertices:{configurable:!0},numVerticalIconVertices:{configurable:!0},useRuntimeCollisionCircles:{configurable:!0},crossTileID:{configurable:!0},textBoxScale:{configurable:!0},textOffset0:{configurable:!0},textOffset1:{configurable:!0},collisionCircleDiameter:{configurable:!0}};return r.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},r.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},r.rightJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+2]},r.centerJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+3]},r.leftJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+4]},r.verticalPlacedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+5]},r.placedIconSymbolIndex.get=function(){return this._structArray.int16[this._pos2+6]},r.verticalPlacedIconSymbolIndex.get=function(){return this._structArray.int16[this._pos2+7]},r.key.get=function(){return this._structArray.uint16[this._pos2+8]},r.textBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+9]},r.textBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+10]},r.verticalTextBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+11]},r.verticalTextBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+12]},r.iconBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+13]},r.iconBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+14]},r.verticalIconBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+15]},r.verticalIconBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+16]},r.featureIndex.get=function(){return this._structArray.uint16[this._pos2+17]},r.numHorizontalGlyphVertices.get=function(){return this._structArray.uint16[this._pos2+18]},r.numVerticalGlyphVertices.get=function(){return this._structArray.uint16[this._pos2+19]},r.numIconVertices.get=function(){return this._structArray.uint16[this._pos2+20]},r.numVerticalIconVertices.get=function(){return this._structArray.uint16[this._pos2+21]},r.useRuntimeCollisionCircles.get=function(){return this._structArray.uint16[this._pos2+22]},r.crossTileID.get=function(){return this._structArray.uint32[this._pos4+12]},r.crossTileID.set=function(t){this._structArray.uint32[this._pos4+12]=t},r.textBoxScale.get=function(){return this._structArray.float32[this._pos4+13]},r.textOffset0.get=function(){return this._structArray.float32[this._pos4+14]},r.textOffset1.get=function(){return this._structArray.float32[this._pos4+15]},r.collisionCircleDiameter.get=function(){return this._structArray.float32[this._pos4+16]},Object.defineProperties(e.prototype,r),e}(_i);Ki.prototype.size=68;var Qi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.get=function(t){return new Ki(this,t)},e}(Ni);Dn("SymbolInstanceArray",Qi);var $i=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getoffsetX=function(t){return this.float32[1*t+0]},e}(ji);Dn("GlyphOffsetArray",$i);var ta=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getx=function(t){return this.int16[3*t+0]},e.prototype.gety=function(t){return this.int16[3*t+1]},e.prototype.gettileUnitDistanceFromAnchor=function(t){return this.int16[3*t+2]},e}(Ui);Dn("SymbolLineVertexArray",ta);var ea=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e;var r={featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0}};return r.featureIndex.get=function(){return this._structArray.uint32[this._pos4+0]},r.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+2]},r.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+3]},Object.defineProperties(e.prototype,r),e}(_i);ea.prototype.size=8;var ra=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.get=function(t){return new ea(this,t)},e}(Vi);Dn("FeatureIndexArray",ra);var na=Ti([{name:"a_pos",components:2,type:"Int16"}],4).members,ia=function(t){void 0===t&&(t=[]),this.segments=t};function aa(t,e){return 256*(t=l(Math.floor(t),0,255))+l(Math.floor(e),0,255)}ia.prototype.prepareSegment=function(t,e,r,n){var i=this.segments[this.segments.length-1];return t>ia.MAX_VERTEX_ARRAY_LENGTH&&_("Max vertices per segment is "+ia.MAX_VERTEX_ARRAY_LENGTH+": bucket requested "+t),(!i||i.vertexLength+t>ia.MAX_VERTEX_ARRAY_LENGTH||i.sortKey!==n)&&(i={vertexOffset:e.length,primitiveOffset:r.length,vertexLength:0,primitiveLength:0},void 0!==n&&(i.sortKey=n),this.segments.push(i)),i},ia.prototype.get=function(){return this.segments},ia.prototype.destroy=function(){for(var t=0,e=this.segments;t>>16)*o&65535)<<16)&4294967295)<<15|l>>>17))*s+(((l>>>16)*s&65535)<<16)&4294967295)<<13|i>>>19))+((5*(i>>>16)&65535)<<16)&4294967295))+((58964+(a>>>16)&65535)<<16);switch(l=0,r){case 3:l^=(255&t.charCodeAt(c+2))<<16;case 2:l^=(255&t.charCodeAt(c+1))<<8;case 1:i^=l=(65535&(l=(l=(65535&(l^=255&t.charCodeAt(c)))*o+(((l>>>16)*o&65535)<<16)&4294967295)<<15|l>>>17))*s+(((l>>>16)*s&65535)<<16)&4294967295}return i^=t.length,i=2246822507*(65535&(i^=i>>>16))+((2246822507*(i>>>16)&65535)<<16)&4294967295,i=3266489909*(65535&(i^=i>>>13))+((3266489909*(i>>>16)&65535)<<16)&4294967295,(i^=i>>>16)>>>0}})),la=e((function(t){t.exports=function(t,e){for(var r,n=t.length,i=e^n,a=0;n>=4;)r=1540483477*(65535&(r=255&t.charCodeAt(a)|(255&t.charCodeAt(++a))<<8|(255&t.charCodeAt(++a))<<16|(255&t.charCodeAt(++a))<<24))+((1540483477*(r>>>16)&65535)<<16),i=1540483477*(65535&i)+((1540483477*(i>>>16)&65535)<<16)^(r=1540483477*(65535&(r^=r>>>24))+((1540483477*(r>>>16)&65535)<<16)),n-=4,++a;switch(n){case 3:i^=(255&t.charCodeAt(a+2))<<16;case 2:i^=(255&t.charCodeAt(a+1))<<8;case 1:i=1540483477*(65535&(i^=255&t.charCodeAt(a)))+((1540483477*(i>>>16)&65535)<<16)}return i=1540483477*(65535&(i^=i>>>13))+((1540483477*(i>>>16)&65535)<<16),(i^=i>>>15)>>>0}})),ca=sa,ua=la;ca.murmur3=sa,ca.murmur2=ua;var fa=function(){this.ids=[],this.positions=[],this.indexed=!1};fa.prototype.add=function(t,e,r,n){this.ids.push(pa(t)),this.positions.push(e,r,n)},fa.prototype.getPositions=function(t){for(var e=pa(t),r=0,n=this.ids.length-1;r>1;this.ids[i]>=e?n=i:r=i+1}for(var a=[];this.ids[r]===e;)a.push({index:this.positions[3*r],start:this.positions[3*r+1],end:this.positions[3*r+2]}),r++;return a},fa.serialize=function(t,e){var r=new Float64Array(t.ids),n=new Uint32Array(t.positions);return function t(e,r,n,i){for(;n>1],o=n-1,s=i+1;;){do{o++}while(e[o]a);if(o>=s)break;da(e,o,s),da(r,3*o,3*s),da(r,3*o+1,3*s+1),da(r,3*o+2,3*s+2)}s-nOa.max||o.yOa.max)&&(_("Geometry exceeds allowed extent, reduce your vector tile buffer size"),o.x=l(o.x,Oa.min,Oa.max),o.y=l(o.y,Oa.min,Oa.max))}return r}function Ra(t,e,r,n,i){t.emplaceBack(2*e+(n+1)/2,2*r+(i+1)/2)}var Fa=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((function(t){return t.id})),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new Mi,this.indexArray=new Fi,this.segments=new ia,this.programConfigurations=new Ia(na,t.layers,t.zoom),this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id}))};function Ba(t,e){for(var r=0;r1){if(Va(t,e))return!0;for(var n=0;n1?r:r.sub(e)._mult(i)._add(e))}function Ya(t,e){for(var r,n,i,a=!1,o=0;oe.y!=(i=r[l]).y>e.y&&e.x<(i.x-n.x)*(e.y-n.y)/(i.y-n.y)+n.x&&(a=!a);return a}function Wa(t,e){for(var r=!1,n=0,i=t.length-1;ne.y!=o.y>e.y&&e.x<(o.x-a.x)*(e.y-a.y)/(o.y-a.y)+a.x&&(r=!r)}return r}function Xa(t,e,r){var n=r[0],i=r[2];if(t.xi.x&&e.x>i.x||t.yi.y&&e.y>i.y)return!1;var a=w(t,e,r[0]);return a!==w(t,e,r[1])||a!==w(t,e,r[2])||a!==w(t,e,r[3])}function Za(t,e,r){var n=e.paint.get(t).value;return"constant"===n.kind?n.value:r.programConfigurations.get(e.id).getMaxValue(t)}function Ja(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function Ka(t,e,r,n,a){if(!e[0]&&!e[1])return t;var o=i.convert(e)._mult(a);"viewport"===r&&o._rotate(-n);for(var s=[],l=0;l=8192||u<0||u>=8192)){var f=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,t.sortKey),h=f.vertexLength;Ra(this.layoutVertexArray,c,u,-1,-1),Ra(this.layoutVertexArray,c,u,1,-1),Ra(this.layoutVertexArray,c,u,1,1),Ra(this.layoutVertexArray,c,u,-1,1),this.indexArray.emplaceBack(h,h+1,h+2),this.indexArray.emplaceBack(h,h+3,h+2),f.vertexLength+=4,f.primitiveLength+=2}}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,{},n)},Dn("CircleBucket",Fa,{omit:["layers"]});var Qa=new yi({"circle-sort-key":new di(At.layout_circle["circle-sort-key"])}),$a={paint:new yi({"circle-radius":new di(At.paint_circle["circle-radius"]),"circle-color":new di(At.paint_circle["circle-color"]),"circle-blur":new di(At.paint_circle["circle-blur"]),"circle-opacity":new di(At.paint_circle["circle-opacity"]),"circle-translate":new pi(At.paint_circle["circle-translate"]),"circle-translate-anchor":new pi(At.paint_circle["circle-translate-anchor"]),"circle-pitch-scale":new pi(At.paint_circle["circle-pitch-scale"]),"circle-pitch-alignment":new pi(At.paint_circle["circle-pitch-alignment"]),"circle-stroke-width":new di(At.paint_circle["circle-stroke-width"]),"circle-stroke-color":new di(At.paint_circle["circle-stroke-color"]),"circle-stroke-opacity":new di(At.paint_circle["circle-stroke-opacity"])}),layout:Qa},to="undefined"!=typeof Float32Array?Float32Array:Array;function eo(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function ro(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],l=e[5],c=e[6],u=e[7],f=e[8],h=e[9],p=e[10],d=e[11],g=e[12],m=e[13],v=e[14],y=e[15],x=r[0],b=r[1],_=r[2],w=r[3];return t[0]=x*n+b*s+_*f+w*g,t[1]=x*i+b*l+_*h+w*m,t[2]=x*a+b*c+_*p+w*v,t[3]=x*o+b*u+_*d+w*y,t[4]=(x=r[4])*n+(b=r[5])*s+(_=r[6])*f+(w=r[7])*g,t[5]=x*i+b*l+_*h+w*m,t[6]=x*a+b*c+_*p+w*v,t[7]=x*o+b*u+_*d+w*y,t[8]=(x=r[8])*n+(b=r[9])*s+(_=r[10])*f+(w=r[11])*g,t[9]=x*i+b*l+_*h+w*m,t[10]=x*a+b*c+_*p+w*v,t[11]=x*o+b*u+_*d+w*y,t[12]=(x=r[12])*n+(b=r[13])*s+(_=r[14])*f+(w=r[15])*g,t[13]=x*i+b*l+_*h+w*m,t[14]=x*a+b*c+_*p+w*v,t[15]=x*o+b*u+_*d+w*y,t}Math.hypot||(Math.hypot=function(){for(var t=arguments,e=0,r=arguments.length;r--;)e+=t[r]*t[r];return Math.sqrt(e)});var no,io=ro;function ao(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3];return t[0]=r[0]*n+r[4]*i+r[8]*a+r[12]*o,t[1]=r[1]*n+r[5]*i+r[9]*a+r[13]*o,t[2]=r[2]*n+r[6]*i+r[10]*a+r[14]*o,t[3]=r[3]*n+r[7]*i+r[11]*a+r[15]*o,t}no=new to(3),to!=Float32Array&&(no[0]=0,no[1]=0,no[2]=0),function(){var t=new to(4);to!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0)}();var oo=(function(){var t=new to(2);to!=Float32Array&&(t[0]=0,t[1]=0)}(),function(t){function e(e){t.call(this,e,$a)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.createBucket=function(t){return new Fa(t)},e.prototype.queryRadius=function(t){var e=t;return Za("circle-radius",this,e)+Za("circle-stroke-width",this,e)+Ja(this.paint.get("circle-translate"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,i,a,o,s){for(var l=Ka(t,this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),a.angle,o),c=this.paint.get("circle-radius").evaluate(e,r)+this.paint.get("circle-stroke-width").evaluate(e,r),u="map"===this.paint.get("circle-pitch-alignment"),f=u?l:function(t,e){return t.map((function(t){return so(t,e)}))}(l,s),h=u?c*o:c,p=0,d=n;pt.width||i.height>t.height||r.x>t.width-i.width||r.y>t.height-i.height)throw new RangeError("out of range source coordinates for image copy");if(i.width>e.width||i.height>e.height||n.x>e.width-i.width||n.y>e.height-i.height)throw new RangeError("out of range destination coordinates for image copy");for(var o=t.data,s=e.data,l=0;l80*r){n=a=t[0],i=o=t[1];for(var d=r;da&&(a=s),l>o&&(o=l);c=0!==(c=Math.max(a-n,o-i))?1/c:0}return Ao(h,p,r,n,i,c),p}function ko(t,e,r,n,i){var a,o;if(i===Xo(t,e,r,n)>0)for(a=e;a=e;a-=n)o=Go(a,t[a],t[a+1],o);return o&&No(o,o.next)&&(Yo(o),o=o.next),o}function Mo(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!No(n,n.next)&&0!==Bo(n.prev,n,n.next))n=n.next;else{if(Yo(n),(n=e=n.prev)===n.next)break;r=!0}}while(r||n!==e);return e}function Ao(t,e,r,n,i,a,o){if(t){!o&&a&&function(t,e,r,n){var i=t;do{null===i.z&&(i.z=Oo(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,r,n,i,a,o,s,l,c=1;do{for(r=t,t=null,a=null,o=0;r;){for(o++,n=r,s=0,e=0;e0||l>0&&n;)0!==s&&(0===l||!n||r.z<=n.z)?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,l--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;r=n}a.nextZ=null,c*=2}while(o>1)}(i)}(t,n,i,a);for(var s,l,c=t;t.prev!==t.next;)if(s=t.prev,l=t.next,a?Eo(t,n,i,a):So(t))e.push(s.i/r),e.push(t.i/r),e.push(l.i/r),Yo(t),t=l.next,c=l.next;else if((t=l)===c){o?1===o?Ao(t=Co(Mo(t),e,r),e,r,n,i,a,2):2===o&&Lo(t,e,r,n,i,a):Ao(Mo(t),e,r,n,i,a,1);break}}}function So(t){var e=t.prev,r=t,n=t.next;if(Bo(e,r,n)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(Ro(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&Bo(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function Eo(t,e,r,n){var i=t.prev,a=t,o=t.next;if(Bo(i,a,o)>=0)return!1;for(var s=i.x>a.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,l=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,c=Oo(i.x=c&&h&&h.z<=u;){if(f!==t.prev&&f!==t.next&&Ro(i.x,i.y,a.x,a.y,o.x,o.y,f.x,f.y)&&Bo(f.prev,f,f.next)>=0)return!1;if(f=f.prevZ,h!==t.prev&&h!==t.next&&Ro(i.x,i.y,a.x,a.y,o.x,o.y,h.x,h.y)&&Bo(h.prev,h,h.next)>=0)return!1;h=h.nextZ}for(;f&&f.z>=c;){if(f!==t.prev&&f!==t.next&&Ro(i.x,i.y,a.x,a.y,o.x,o.y,f.x,f.y)&&Bo(f.prev,f,f.next)>=0)return!1;f=f.prevZ}for(;h&&h.z<=u;){if(h!==t.prev&&h!==t.next&&Ro(i.x,i.y,a.x,a.y,o.x,o.y,h.x,h.y)&&Bo(h.prev,h,h.next)>=0)return!1;h=h.nextZ}return!0}function Co(t,e,r){var n=t;do{var i=n.prev,a=n.next.next;!No(i,a)&&jo(i,n,n.next,a)&&qo(i,a)&&qo(a,i)&&(e.push(i.i/r),e.push(n.i/r),e.push(a.i/r),Yo(n),Yo(n.next),n=t=a),n=n.next}while(n!==t);return Mo(n)}function Lo(t,e,r,n,i,a){var o=t;do{for(var s=o.next.next;s!==o.prev;){if(o.i!==s.i&&Fo(o,s)){var l=Ho(o,s);return o=Mo(o,o.next),l=Mo(l,l.next),Ao(o,e,r,n,i,a),void Ao(l,e,r,n,i,a)}s=s.next}o=o.next}while(o!==t)}function Io(t,e){return t.x-e.x}function Po(t,e){if(e=function(t,e){var r,n=e,i=t.x,a=t.y,o=-1/0;do{if(a<=n.y&&a>=n.next.y&&n.next.y!==n.y){var s=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=i&&s>o){if(o=s,s===i){if(a===n.y)return n;if(a===n.next.y)return n.next}r=n.x=n.x&&n.x>=u&&i!==n.x&&Ro(ar.x||n.x===r.x&&zo(r,n)))&&(r=n,h=l)),n=n.next}while(n!==c);return r}(t,e)){var r=Ho(e,t);Mo(e,e.next),Mo(r,r.next)}}function zo(t,e){return Bo(t.prev,t,e.prev)<0&&Bo(e.next,t,t.next)<0}function Oo(t,e,r,n,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*i)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*i)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Do(t){var e=t,r=t;do{(e.x=0&&(t-o)*(n-s)-(r-o)*(e-s)>=0&&(r-o)*(a-s)-(i-o)*(n-s)>=0}function Fo(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&jo(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}(t,e)&&(qo(t,e)&&qo(e,t)&&function(t,e){var r=t,n=!1,i=(t.x+e.x)/2,a=(t.y+e.y)/2;do{r.y>a!=r.next.y>a&&r.next.y!==r.y&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==t);return n}(t,e)&&(Bo(t.prev,t,e.prev)||Bo(t,e.prev,e))||No(t,e)&&Bo(t.prev,t,t.next)>0&&Bo(e.prev,e,e.next)>0)}function Bo(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function No(t,e){return t.x===e.x&&t.y===e.y}function jo(t,e,r,n){var i=Vo(Bo(t,e,r)),a=Vo(Bo(t,e,n)),o=Vo(Bo(r,n,t)),s=Vo(Bo(r,n,e));return i!==a&&o!==s||!(0!==i||!Uo(t,r,e))||!(0!==a||!Uo(t,n,e))||!(0!==o||!Uo(r,t,n))||!(0!==s||!Uo(r,e,n))}function Uo(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function Vo(t){return t>0?1:t<0?-1:0}function qo(t,e){return Bo(t.prev,t,t.next)<0?Bo(t,e,t.next)>=0&&Bo(t,t.prev,e)>=0:Bo(t,e,t.prev)<0||Bo(t,t.next,e)<0}function Ho(t,e){var r=new Wo(t.i,t.x,t.y),n=new Wo(e.i,e.x,e.y),i=t.next,a=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function Go(t,e,r,n){var i=new Wo(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function Yo(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Wo(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Xo(t,e,r,n){for(var i=0,a=e,o=r-n;an;){if(i-n>600){var o=i-n+1,s=r-n+1,l=Math.log(o),c=.5*Math.exp(2*l/3),u=.5*Math.sqrt(l*c*(o-c)/o)*(s-o/2<0?-1:1);t(e,r,Math.max(n,Math.floor(r-s*c/o+u)),Math.min(i,Math.floor(r+(o-s)*c/o+u)),a)}var f=e[r],h=n,p=i;for(Jo(e,n,r),a(e[i],f)>0&&Jo(e,n,i);h0;)p--}0===a(e[n],f)?Jo(e,n,p):Jo(e,++p,i),p<=r&&(n=p+1),r<=p&&(i=p-1)}}(t,e,r||0,n||t.length-1,i||Ko)}function Jo(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function Ko(t,e){return te?1:0}function Qo(t,e){var r=t.length;if(r<=1)return[t];for(var n,i,a=[],o=0;o1)for(var l=0;l0&&r.holes.push(n+=t[i-1].length)}return r},_o.default=wo;var rs=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((function(t){return t.id})),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new Mi,this.indexArray=new Fi,this.indexArray2=new qi,this.programConfigurations=new Ia(bo,t.layers,t.zoom),this.segments=new ia,this.segments2=new ia,this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id}))};rs.prototype.populate=function(t,e,r){this.hasPattern=ts("fill",this.layers,e);for(var n=this.layers[0].layout.get("fill-sort-key"),i=[],a=0,o=t;a>3}if(a--,1===n||2===n)o+=t.readSVarint(),s+=t.readSVarint(),1===n&&(e&&l.push(e),e=[]),e.push(new i(o,s));else{if(7!==n)throw new Error("unknown command "+n);e&&e.push(e[0].clone())}}return e&&l.push(e),l},ls.prototype.bbox=function(){var t=this._pbf;t.pos=this._geometry;for(var e=t.readVarint()+t.pos,r=1,n=0,i=0,a=0,o=1/0,s=-1/0,l=1/0,c=-1/0;t.pos>3}if(n--,1===r||2===r)(i+=t.readSVarint())s&&(s=i),(a+=t.readSVarint())c&&(c=a);else if(7!==r)throw new Error("unknown command "+r)}return[o,l,s,c]},ls.prototype.toGeoJSON=function(t,e,r){var n,i,a=this.extent*Math.pow(2,r),o=this.extent*t,s=this.extent*e,l=this.loadGeometry(),c=ls.types[this.type];function u(t){for(var e=0;e>3;e=1===n?t.readString():2===n?t.readFloat():3===n?t.readDouble():4===n?t.readVarint64():5===n?t.readVarint():6===n?t.readSVarint():7===n?t.readBoolean():null}return e}(r))}function ds(t,e,r){if(3===t){var n=new fs(r,r.readVarint()+r.pos);n.length&&(e[n.name]=n)}}hs.prototype.feature=function(t){if(t<0||t>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[t];var e=this._pbf.readVarint()+this._pbf.pos;return new ss(this._pbf,e,this.extent,this._keys,this._values)};var gs={VectorTile:function(t,e){this.layers=t.readFields(ds,{},e)},VectorTileFeature:ss,VectorTileLayer:fs},ms=gs.VectorTileFeature.types,vs=Math.pow(2,13);function ys(t,e,r,n,i,a,o,s){t.emplaceBack(e,r,2*Math.floor(n*vs)+o,i*vs*2,a*vs*2,Math.round(s))}var xs=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((function(t){return t.id})),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new Si,this.indexArray=new Fi,this.programConfigurations=new Ia(os,t.layers,t.zoom),this.segments=new ia,this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id}))};function bs(t,e){return t.x===e.x&&(t.x<0||t.x>8192)||t.y===e.y&&(t.y<0||t.y>8192)}xs.prototype.populate=function(t,e,r){this.features=[],this.hasPattern=ts("fill-extrusion",this.layers,e);for(var n=0,i=t;n8192}))||P.every((function(t){return t.y<0}))||P.every((function(t){return t.y>8192}))))for(var g=0,m=0;m=1){var y=d[m-1];if(!bs(v,y)){f.vertexLength+4>ia.MAX_VERTEX_ARRAY_LENGTH&&(f=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));var x=v.sub(y)._perp()._unit(),b=y.dist(v);g+b>32768&&(g=0),ys(this.layoutVertexArray,v.x,v.y,x.x,x.y,0,0,g),ys(this.layoutVertexArray,v.x,v.y,x.x,x.y,0,1,g),ys(this.layoutVertexArray,y.x,y.y,x.x,x.y,0,0,g+=b),ys(this.layoutVertexArray,y.x,y.y,x.x,x.y,0,1,g);var _=f.vertexLength;this.indexArray.emplaceBack(_,_+2,_+1),this.indexArray.emplaceBack(_+1,_+2,_+3),f.vertexLength+=4,f.primitiveLength+=2}}}}if(f.vertexLength+l>ia.MAX_VERTEX_ARRAY_LENGTH&&(f=this.segments.prepareSegment(l,this.layoutVertexArray,this.indexArray)),"Polygon"===ms[t.type]){for(var w=[],T=[],k=f.vertexLength,M=0,A=s;M=2&&t[l-1].equals(t[l-2]);)l--;for(var c=0;c0;if(T&&v>c){var M=u.dist(p);if(M>2*f){var A=u.sub(u.sub(p)._mult(f/M)._round());this.updateDistance(p,A),this.addCurrentVertex(A,g,0,0,h),p=A}}var S=p&&d,E=S?r:s?"butt":n;if(S&&"round"===E&&(_i&&(E="bevel"),"bevel"===E&&(_>2&&(E="flipbevel"),_100)y=m.mult(-1);else{var C=_*g.add(m).mag()/g.sub(m).mag();y._perp()._mult(C*(k?-1:1))}this.addCurrentVertex(u,y,0,0,h),this.addCurrentVertex(u,y.mult(-1),0,0,h)}else if("bevel"===E||"fakeround"===E){var L=-Math.sqrt(_*_-1),I=k?L:0,P=k?0:L;if(p&&this.addCurrentVertex(u,g,I,P,h),"fakeround"===E)for(var z=Math.round(180*w/Math.PI/20),O=1;O2*f){var j=u.add(d.sub(u)._mult(f/N)._round());this.updateDistance(u,j),this.addCurrentVertex(j,m,0,0,h),u=j}}}}},Cs.prototype.addCurrentVertex=function(t,e,r,n,i,a){void 0===a&&(a=!1);var o=e.y*n-e.x,s=-e.y-e.x*n;this.addHalfVertex(t,e.x+e.y*r,e.y-e.x*r,a,!1,r,i),this.addHalfVertex(t,o,s,a,!0,-n,i),this.distance>Es/2&&0===this.totalDistance&&(this.distance=0,this.addCurrentVertex(t,e,r,n,i,a))},Cs.prototype.addHalfVertex=function(t,e,r,n,i,a,o){var s=.5*this.scaledDistance;this.layoutVertexArray.emplaceBack((t.x<<1)+(n?1:0),(t.y<<1)+(i?1:0),Math.round(63*e)+128,Math.round(63*r)+128,1+(0===a?0:a<0?-1:1)|(63&s)<<2,s>>6);var l=o.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,l),o.primitiveLength++),i?this.e2=l:this.e1=l},Cs.prototype.updateScaledDistance=function(){this.scaledDistance=this.totalDistance>0?(this.clipStart+(this.clipEnd-this.clipStart)*this.distance/this.totalDistance)*(Es-1):this.distance},Cs.prototype.updateDistance=function(t,e){this.distance+=t.dist(e),this.updateScaledDistance()},Dn("LineBucket",Cs,{omit:["layers","patternFeatures"]});var Ls=new yi({"line-cap":new pi(At.layout_line["line-cap"]),"line-join":new di(At.layout_line["line-join"]),"line-miter-limit":new pi(At.layout_line["line-miter-limit"]),"line-round-limit":new pi(At.layout_line["line-round-limit"]),"line-sort-key":new di(At.layout_line["line-sort-key"])}),Is={paint:new yi({"line-opacity":new di(At.paint_line["line-opacity"]),"line-color":new di(At.paint_line["line-color"]),"line-translate":new pi(At.paint_line["line-translate"]),"line-translate-anchor":new pi(At.paint_line["line-translate-anchor"]),"line-width":new di(At.paint_line["line-width"]),"line-gap-width":new di(At.paint_line["line-gap-width"]),"line-offset":new di(At.paint_line["line-offset"]),"line-blur":new di(At.paint_line["line-blur"]),"line-dasharray":new mi(At.paint_line["line-dasharray"]),"line-pattern":new gi(At.paint_line["line-pattern"]),"line-gradient":new vi(At.paint_line["line-gradient"])}),layout:Ls},Ps=new(function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.possiblyEvaluate=function(e,r){return r=new ii(Math.floor(r.zoom),{now:r.now,fadeDuration:r.fadeDuration,zoomHistory:r.zoomHistory,transition:r.transition}),t.prototype.possiblyEvaluate.call(this,e,r)},e.prototype.evaluate=function(e,r,n,i){return r=u({},r,{zoom:Math.floor(r.zoom)}),t.prototype.evaluate.call(this,e,r,n,i)},e}(di))(Is.paint.properties["line-width"].specification);Ps.useIntegerZoom=!0;var zs=function(t){function e(e){t.call(this,e,Is)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._handleSpecialPaintPropertyUpdate=function(t){"line-gradient"===t&&this._updateGradient()},e.prototype._updateGradient=function(){this.gradient=mo(this._transitionablePaint._values["line-gradient"].value.expression,"lineProgress"),this.gradientTexture=null},e.prototype.recalculate=function(e,r){t.prototype.recalculate.call(this,e,r),this.paint._values["line-floorwidth"]=Ps.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,e)},e.prototype.createBucket=function(t){return new Cs(t)},e.prototype.queryRadius=function(t){var e=t,r=Os(Za("line-width",this,e),Za("line-gap-width",this,e)),n=Za("line-offset",this,e);return r/2+Math.abs(n)+Ja(this.paint.get("line-translate"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,a,o,s){var l=Ka(t,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),o.angle,s),c=s/2*Os(this.paint.get("line-width").evaluate(e,r),this.paint.get("line-gap-width").evaluate(e,r)),u=this.paint.get("line-offset").evaluate(e,r);return u&&(n=function(t,e){for(var r=[],n=new i(0,0),a=0;a=3)for(var a=0;a0?e+2*t:t}var Ds=Ti([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),Rs=Ti([{name:"a_projected_pos",components:3,type:"Float32"}],4),Fs=(Ti([{name:"a_fade_opacity",components:1,type:"Uint32"}],4),Ti([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}])),Bs=(Ti([{type:"Int16",name:"anchorPointX"},{type:"Int16",name:"anchorPointY"},{type:"Int16",name:"x1"},{type:"Int16",name:"y1"},{type:"Int16",name:"x2"},{type:"Int16",name:"y2"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]),Ti([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4)),Ns=Ti([{name:"a_pos",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function js(t,e,r){return t.sections.forEach((function(t){t.text=function(t,e,r){var n=e.layout.get("text-transform").evaluate(r,{});return"uppercase"===n?t=t.toLocaleUpperCase():"lowercase"===n&&(t=t.toLocaleLowerCase()),ni.applyArabicShaping&&(t=ni.applyArabicShaping(t)),t}(t.text,e,r)})),t}Ti([{name:"triangle",components:3,type:"Uint16"}]),Ti([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Uint16",name:"glyphStartIndex"},{type:"Uint16",name:"numGlyphs"},{type:"Uint32",name:"vertexStartIndex"},{type:"Uint32",name:"lineStartIndex"},{type:"Uint32",name:"lineLength"},{type:"Uint16",name:"segment"},{type:"Uint16",name:"lowerSize"},{type:"Uint16",name:"upperSize"},{type:"Float32",name:"lineOffsetX"},{type:"Float32",name:"lineOffsetY"},{type:"Uint8",name:"writingMode"},{type:"Uint8",name:"placedOrientation"},{type:"Uint8",name:"hidden"},{type:"Uint32",name:"crossTileID"},{type:"Int16",name:"associatedIconIndex"}]),Ti([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Int16",name:"rightJustifiedTextSymbolIndex"},{type:"Int16",name:"centerJustifiedTextSymbolIndex"},{type:"Int16",name:"leftJustifiedTextSymbolIndex"},{type:"Int16",name:"verticalPlacedTextSymbolIndex"},{type:"Int16",name:"placedIconSymbolIndex"},{type:"Int16",name:"verticalPlacedIconSymbolIndex"},{type:"Uint16",name:"key"},{type:"Uint16",name:"textBoxStartIndex"},{type:"Uint16",name:"textBoxEndIndex"},{type:"Uint16",name:"verticalTextBoxStartIndex"},{type:"Uint16",name:"verticalTextBoxEndIndex"},{type:"Uint16",name:"iconBoxStartIndex"},{type:"Uint16",name:"iconBoxEndIndex"},{type:"Uint16",name:"verticalIconBoxStartIndex"},{type:"Uint16",name:"verticalIconBoxEndIndex"},{type:"Uint16",name:"featureIndex"},{type:"Uint16",name:"numHorizontalGlyphVertices"},{type:"Uint16",name:"numVerticalGlyphVertices"},{type:"Uint16",name:"numIconVertices"},{type:"Uint16",name:"numVerticalIconVertices"},{type:"Uint16",name:"useRuntimeCollisionCircles"},{type:"Uint32",name:"crossTileID"},{type:"Float32",name:"textBoxScale"},{type:"Float32",components:2,name:"textOffset"},{type:"Float32",name:"collisionCircleDiameter"}]),Ti([{type:"Float32",name:"offsetX"}]),Ti([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]);var Us={"!":"\ufe15","#":"\uff03",$:"\uff04","%":"\uff05","&":"\uff06","(":"\ufe35",")":"\ufe36","*":"\uff0a","+":"\uff0b",",":"\ufe10","-":"\ufe32",".":"\u30fb","/":"\uff0f",":":"\ufe13",";":"\ufe14","<":"\ufe3f","=":"\uff1d",">":"\ufe40","?":"\ufe16","@":"\uff20","[":"\ufe47","\\":"\uff3c","]":"\ufe48","^":"\uff3e",_:"\ufe33","`":"\uff40","{":"\ufe37","|":"\u2015","}":"\ufe38","~":"\uff5e","\xa2":"\uffe0","\xa3":"\uffe1","\xa5":"\uffe5","\xa6":"\uffe4","\xac":"\uffe2","\xaf":"\uffe3","\u2013":"\ufe32","\u2014":"\ufe31","\u2018":"\ufe43","\u2019":"\ufe44","\u201c":"\ufe41","\u201d":"\ufe42","\u2026":"\ufe19","\u2027":"\u30fb","\u20a9":"\uffe6","\u3001":"\ufe11","\u3002":"\ufe12","\u3008":"\ufe3f","\u3009":"\ufe40","\u300a":"\ufe3d","\u300b":"\ufe3e","\u300c":"\ufe41","\u300d":"\ufe42","\u300e":"\ufe43","\u300f":"\ufe44","\u3010":"\ufe3b","\u3011":"\ufe3c","\u3014":"\ufe39","\u3015":"\ufe3a","\u3016":"\ufe17","\u3017":"\ufe18","\uff01":"\ufe15","\uff08":"\ufe35","\uff09":"\ufe36","\uff0c":"\ufe10","\uff0d":"\ufe32","\uff0e":"\u30fb","\uff1a":"\ufe13","\uff1b":"\ufe14","\uff1c":"\ufe3f","\uff1e":"\ufe40","\uff1f":"\ufe16","\uff3b":"\ufe47","\uff3d":"\ufe48","\uff3f":"\ufe33","\uff5b":"\ufe37","\uff5c":"\u2015","\uff5d":"\ufe38","\uff5f":"\ufe35","\uff60":"\ufe36","\uff61":"\ufe12","\uff62":"\ufe41","\uff63":"\ufe42"},Vs=function(t,e,r,n,i){var a,o,s=8*i-n-1,l=(1<>1,u=-7,f=r?i-1:0,h=r?-1:1,p=t[e+f];for(f+=h,a=p&(1<<-u)-1,p>>=-u,u+=s;u>0;a=256*a+t[e+f],f+=h,u-=8);for(o=a&(1<<-u)-1,a>>=-u,u+=n;u>0;o=256*o+t[e+f],f+=h,u-=8);if(0===a)a=1-c;else{if(a===l)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),a-=c}return(p?-1:1)*o*Math.pow(2,a-n)},qs=function(t,e,r,n,i,a){var o,s,l,c=8*a-i-1,u=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:a-1,d=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=u):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+f>=1?h/l:h*Math.pow(2,1-f))*l>=2&&(o++,l/=2),o+f>=u?(s=0,o=u):o+f>=1?(s=(e*l-1)*Math.pow(2,i),o+=f):(s=e*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;t[r+p]=255&s,p+=d,s/=256,i-=8);for(o=o<0;t[r+p]=255&o,p+=d,o/=256,c-=8);t[r+p-d]|=128*g},Hs=Gs;function Gs(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}Gs.Varint=0,Gs.Fixed64=1,Gs.Bytes=2,Gs.Fixed32=5;var Ys="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function Ws(t){return t.type===Gs.Bytes?t.readVarint()+t.pos:t.pos+1}function Xs(t,e,r){return r?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function Zs(t,e,r){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));r.realloc(n);for(var i=r.pos-1;i>=t;i--)r.buf[i+n]=r.buf[i]}function Js(t,e){for(var r=0;r>>8,t[r+2]=e>>>16,t[r+3]=e>>>24}function sl(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}function ll(t,e,r){1===t&&r.readMessage(cl,e)}function cl(t,e,r){if(3===t){var n=r.readMessage(ul,{}),i=n.width,a=n.height,o=n.left,s=n.top,l=n.advance;e.push({id:n.id,bitmap:new ho({width:i+6,height:a+6},n.bitmap),metrics:{width:i,height:a,left:o,top:s,advance:l}})}}function ul(t,e,r){1===t?e.id=r.readVarint():2===t?e.bitmap=r.readBytes():3===t?e.width=r.readVarint():4===t?e.height=r.readVarint():5===t?e.left=r.readSVarint():6===t?e.top=r.readSVarint():7===t&&(e.advance=r.readVarint())}function fl(t){for(var e=0,r=0,n=0,i=t;n=0;h--){var p=o[h];if(!(f.w>p.w||f.h>p.h)){if(f.x=p.x,f.y=p.y,l=Math.max(l,f.y+f.h),s=Math.max(s,f.x+f.w),f.w===p.w&&f.h===p.h){var d=o.pop();h>3,a=this.pos;this.type=7&n,t(i,e,this),this.pos===a&&this.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=al(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=sl(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=al(this.buf,this.pos)+4294967296*al(this.buf,this.pos+4);return this.pos+=8,t},readSFixed64:function(){var t=al(this.buf,this.pos)+4294967296*sl(this.buf,this.pos+4);return this.pos+=8,t},readFloat:function(){var t=Vs(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=Vs(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,r,n=this.buf;return e=127&(r=n[this.pos++]),r<128?e:(e|=(127&(r=n[this.pos++]))<<7,r<128?e:(e|=(127&(r=n[this.pos++]))<<14,r<128?e:(e|=(127&(r=n[this.pos++]))<<21,r<128?e:function(t,e,r){var n,i,a=r.buf;if(n=(112&(i=a[r.pos++]))>>4,i<128)return Xs(t,n,e);if(n|=(127&(i=a[r.pos++]))<<3,i<128)return Xs(t,n,e);if(n|=(127&(i=a[r.pos++]))<<10,i<128)return Xs(t,n,e);if(n|=(127&(i=a[r.pos++]))<<17,i<128)return Xs(t,n,e);if(n|=(127&(i=a[r.pos++]))<<24,i<128)return Xs(t,n,e);if(n|=(1&(i=a[r.pos++]))<<31,i<128)return Xs(t,n,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(r=n[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=12&&Ys?function(t,e,r){return Ys.decode(t.subarray(e,r))}(this.buf,e,t):function(t,e,r){for(var n="",i=e;i239?4:l>223?3:l>191?2:1;if(i+u>r)break;1===u?l<128&&(c=l):2===u?128==(192&(a=t[i+1]))&&(c=(31&l)<<6|63&a)<=127&&(c=null):3===u?(o=t[i+2],128==(192&(a=t[i+1]))&&128==(192&o)&&((c=(15&l)<<12|(63&a)<<6|63&o)<=2047||c>=55296&&c<=57343)&&(c=null)):4===u&&(o=t[i+2],s=t[i+3],128==(192&(a=t[i+1]))&&128==(192&o)&&128==(192&s)&&((c=(15&l)<<18|(63&a)<<12|(63&o)<<6|63&s)<=65535||c>=1114112)&&(c=null)),null===c?(c=65533,u=1):c>65535&&(c-=65536,n+=String.fromCharCode(c>>>10&1023|55296),c=56320|1023&c),n+=String.fromCharCode(c),i+=u}return n}(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==Gs.Bytes)return t.push(this.readVarint(e));var r=Ws(this);for(t=t||[];this.pos127;);else if(e===Gs.Bytes)this.pos=this.readVarint()+this.pos;else if(e===Gs.Fixed32)this.pos+=4;else{if(e!==Gs.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e268435455||t<0?function(t,e){var r,n;if(t>=0?(r=t%4294967296|0,n=t/4294967296|0):(n=~(-t/4294967296),4294967295^(r=~(-t%4294967296))?r=r+1|0:(r=0,n=n+1|0)),t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(t,e,r){r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,r.buf[r.pos]=127&(t>>>=7)}(r,0,e),function(t,e){var r=(7&t)<<4;e.buf[e.pos++]|=r|((t>>>=3)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t)))))}(n,e)}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,r){for(var n,i,a=0;a55295&&n<57344){if(!i){n>56319||a+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):i=n;continue}if(n<56320){t[r++]=239,t[r++]=191,t[r++]=189,i=n;continue}n=i-55296<<10|n-56320|65536,i=null}else i&&(t[r++]=239,t[r++]=191,t[r++]=189,i=null);n<128?t[r++]=n:(n<2048?t[r++]=n>>6|192:(n<65536?t[r++]=n>>12|224:(t[r++]=n>>18|240,t[r++]=n>>12&63|128),t[r++]=n>>6&63|128),t[r++]=63&n|128)}return r}(this.buf,t,this.pos);var r=this.pos-e;r>=128&&Zs(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(t){this.realloc(4),qs(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),qs(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r=128&&Zs(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeMessage:function(t,e,r){this.writeTag(t,Gs.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,Js,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,Ks,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,tl,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,Qs,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,$s,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,el,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,rl,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,nl,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,il,e)},writeBytesField:function(t,e){this.writeTag(t,Gs.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,Gs.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,Gs.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,Gs.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,Gs.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,Gs.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,Gs.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,Gs.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,Gs.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,Gs.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}};var hl=function(t,e){var r=e.pixelRatio,n=e.version,i=e.stretchX,a=e.stretchY,o=e.content;this.paddedRect=t,this.pixelRatio=r,this.stretchX=i,this.stretchY=a,this.content=o,this.version=n},pl={tl:{configurable:!0},br:{configurable:!0},tlbr:{configurable:!0},displaySize:{configurable:!0}};pl.tl.get=function(){return[this.paddedRect.x+1,this.paddedRect.y+1]},pl.br.get=function(){return[this.paddedRect.x+this.paddedRect.w-1,this.paddedRect.y+this.paddedRect.h-1]},pl.tlbr.get=function(){return this.tl.concat(this.br)},pl.displaySize.get=function(){return[(this.paddedRect.w-2)/this.pixelRatio,(this.paddedRect.h-2)/this.pixelRatio]},Object.defineProperties(hl.prototype,pl);var dl=function(t,e){var r={},n={};this.haveRenderCallbacks=[];var i=[];this.addImages(t,r,i),this.addImages(e,n,i);var a=fl(i),o=new po({width:a.w||1,height:a.h||1});for(var s in t){var l=t[s],c=r[s].paddedRect;po.copy(l.data,o,{x:0,y:0},{x:c.x+1,y:c.y+1},l.data)}for(var u in e){var f=e[u],h=n[u].paddedRect,p=h.x+1,d=h.y+1,g=f.data.width,m=f.data.height;po.copy(f.data,o,{x:0,y:0},{x:p,y:d},f.data),po.copy(f.data,o,{x:0,y:m-1},{x:p,y:d-1},{width:g,height:1}),po.copy(f.data,o,{x:0,y:0},{x:p,y:d+m},{width:g,height:1}),po.copy(f.data,o,{x:g-1,y:0},{x:p-1,y:d},{width:1,height:m}),po.copy(f.data,o,{x:0,y:0},{x:p+g,y:d},{width:1,height:m})}this.image=o,this.iconPositions=r,this.patternPositions=n};dl.prototype.addImages=function(t,e,r){for(var n in t){var i=t[n],a={x:0,y:0,w:i.data.width+2,h:i.data.height+2};r.push(a),e[n]=new hl(a,i),i.hasRenderCallback&&this.haveRenderCallbacks.push(n)}},dl.prototype.patchUpdatedImages=function(t,e){for(var r in t.dispatchRenderCallbacks(this.haveRenderCallbacks),t.updatedImages)this.patchUpdatedImage(this.iconPositions[r],t.getImage(r),e),this.patchUpdatedImage(this.patternPositions[r],t.getImage(r),e)},dl.prototype.patchUpdatedImage=function(t,e,r){if(t&&e&&t.version!==e.version){t.version=e.version;var n=t.tl;r.update(e.data,void 0,{x:n[0],y:n[1]})}},Dn("ImagePosition",hl),Dn("ImageAtlas",dl);var gl={horizontal:1,vertical:2,horizontalOnly:3},ml=function(){this.scale=1,this.fontStack="",this.imageName=null};ml.forText=function(t,e){var r=new ml;return r.scale=t||1,r.fontStack=e,r},ml.forImage=function(t){var e=new ml;return e.imageName=t,e};var vl=function(){this.text="",this.sectionIndex=[],this.sections=[],this.imageSectionID=null};function yl(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,g){var m,v=vl.fromFeature(t,i);f===gl.vertical&&v.verticalizePunctuation();var y=ni.processBidirectionalText,x=ni.processStyledBidirectionalText;if(y&&1===v.sections.length){m=[];for(var b=0,_=y(v.toString(),Ml(v,c,a,e,n,p,d));b<_.length;b+=1){var w=_[b],T=new vl;T.text=w,T.sections=v.sections;for(var k=0;k0&&B>M&&(M=B)}else{var N=r[S.fontStack],j=N&&N[C];if(j&&j.rect)P=j.rect,I=j.metrics;else{var U=e[S.fontStack],V=U&&U[C];if(!V)continue;I=V.metrics}L=24*(_-S.scale)}D?(t.verticalizable=!0,k.push({glyph:C,imageName:z,x:h,y:p+L,vertical:D,scale:S.scale,fontStack:S.fontStack,sectionIndex:E,metrics:I,rect:P}),h+=O*S.scale+c):(k.push({glyph:C,imageName:z,x:h,y:p+L,vertical:D,scale:S.scale,fontStack:S.fontStack,sectionIndex:E,metrics:I,rect:P}),h+=I.advance*S.scale+c)}0!==k.length&&(d=Math.max(h-c,d),Sl(k,0,k.length-1,m,M)),h=0;var q=a*_+M;T.lineOffset=Math.max(M,w),p+=q,g=Math.max(q,g),++v}else p+=a,++v}var H,G=p- -17,Y=Al(o),W=Y.horizontalAlign,X=Y.verticalAlign;(function(t,e,r,n,i,a,o,s,l){var c,u=(e-r)*i;c=a!==o?-s*n- -17:(-n*l+.5)*o;for(var f=0,h=t;f=0&&n>=t&&xl[this.text.charCodeAt(n)];n--)r--;this.text=this.text.substring(t,r),this.sectionIndex=this.sectionIndex.slice(t,r)},vl.prototype.substring=function(t,e){var r=new vl;return r.text=this.text.substring(t,e),r.sectionIndex=this.sectionIndex.slice(t,e),r.sections=this.sections,r},vl.prototype.toString=function(){return this.text},vl.prototype.getMaxScale=function(){var t=this;return this.sectionIndex.reduce((function(e,r){return Math.max(e,t.sections[r].scale)}),0)},vl.prototype.addTextSection=function(t,e){this.text+=t.text,this.sections.push(ml.forText(t.scale,t.fontStack||e));for(var r=this.sections.length-1,n=0;n=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)};var xl={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},bl={};function _l(t,e,r,n,i,a){if(e.imageName){var o=n[e.imageName];return o?o.displaySize[0]*e.scale*24/a+i:0}var s=r[e.fontStack],l=s&&s[t];return l?l.metrics.advance*e.scale+i:0}function wl(t,e,r,n){var i=Math.pow(t-e,2);return n?t=0,f=0,h=0;h-r/2;){if(--o<0)return!1;s-=t[o].dist(a),a=t[o]}s+=t[o].dist(t[o+1]),o++;for(var l=[],c=0;sn;)c-=l.shift().angleDelta;if(c>i)return!1;o++,s+=u.dist(f)}return!0}function Dl(t){for(var e=0,r=0;rc){var d=(c-l)/p,g=Ue(f.x,h.x,d),m=Ue(f.y,h.y,d),v=new Cl(g,m,h.angleTo(f),u);return v._round(),!o||Ol(t,v,s,o,e)?v:void 0}l+=p}}function Nl(t,e,r,n,i,a,o,s,l){var c=Rl(n,a,o),u=Fl(n,i),f=u*o,h=0===t[0].x||t[0].x===l||0===t[0].y||t[0].y===l;return e-f=0&&_=0&&w=0&&p+u<=f){var T=new Cl(_,w,x,g);T._round(),i&&!Ol(e,T,o,i,a)||d.push(T)}}h+=y}return l||d.length||s||(d=t(e,h/2,n,i,a,o,s,!0,c)),d}(t,h?e/2*s%e:(u/2+2*a)*o*s%e,e,c,r,f,h,!1,l)}function jl(t,e,r,n,a){for(var o=[],s=0;s=n&&h.x>=n||(f.x>=n?f=new i(n,f.y+(n-f.x)/(h.x-f.x)*(h.y-f.y))._round():h.x>=n&&(h=new i(n,f.y+(n-f.x)/(h.x-f.x)*(h.y-f.y))._round()),f.y>=a&&h.y>=a||(f.y>=a?f=new i(f.x+(a-f.y)/(h.y-f.y)*(h.x-f.x),a)._round():h.y>=a&&(h=new i(f.x+(a-f.y)/(h.y-f.y)*(h.x-f.x),a)._round()),c&&f.equals(c[c.length-1])||o.push(c=[f]),c.push(h)))))}return o}function Ul(t,e,r,n){var a=[],o=t.image,s=o.pixelRatio,l=o.paddedRect.w-2,c=o.paddedRect.h-2,u=t.right-t.left,f=t.bottom-t.top,h=o.stretchX||[[0,l]],p=o.stretchY||[[0,c]],d=function(t,e){return t+e[1]-e[0]},g=h.reduce(d,0),m=p.reduce(d,0),v=l-g,y=c-m,x=0,b=g,_=0,w=m,T=0,k=v,M=0,A=y;if(o.content&&n){var S=o.content;x=Vl(h,0,S[0]),_=Vl(p,0,S[1]),b=Vl(h,S[0],S[2]),w=Vl(p,S[1],S[3]),T=S[0]-x,M=S[1]-_,k=S[2]-S[0]-b,A=S[3]-S[1]-w}var E=function(n,a,l,c){var h=Hl(n.stretch-x,b,u,t.left),p=Gl(n.fixed-T,k,n.stretch,g),d=Hl(a.stretch-_,w,f,t.top),v=Gl(a.fixed-M,A,a.stretch,m),y=Hl(l.stretch-x,b,u,t.left),S=Gl(l.fixed-T,k,l.stretch,g),E=Hl(c.stretch-_,w,f,t.top),C=Gl(c.fixed-M,A,c.stretch,m),L=new i(h,d),I=new i(y,d),P=new i(y,E),z=new i(h,E),O=new i(p/s,v/s),D=new i(S/s,C/s),R=e*Math.PI/180;if(R){var F=Math.sin(R),B=Math.cos(R),N=[B,-F,F,B];L._matMult(N),I._matMult(N),z._matMult(N),P._matMult(N)}var j=n.stretch+n.fixed,U=a.stretch+a.fixed;return{tl:L,tr:I,bl:z,br:P,tex:{x:o.paddedRect.x+1+j,y:o.paddedRect.y+1+U,w:l.stretch+l.fixed-j,h:c.stretch+c.fixed-U},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:O,pixelOffsetBR:D,minFontScaleX:k/s/u,minFontScaleY:A/s/f,isSDF:r}};if(n&&(o.stretchX||o.stretchY))for(var C=ql(h,v,g),L=ql(p,y,m),I=0;I0&&(d=Math.max(10,d),this.circleDiameter=d)}else{var g=o.top*s-l,m=o.bottom*s+l,v=o.left*s-l,y=o.right*s+l,x=o.collisionPadding;if(x&&(v-=x[0]*s,g-=x[1]*s,y+=x[2]*s,m+=x[3]*s),u){var b=new i(v,g),_=new i(y,g),w=new i(v,m),T=new i(y,m),k=u*Math.PI/180;b._rotate(k),_._rotate(k),w._rotate(k),T._rotate(k),v=Math.min(b.x,_.x,w.x,T.x),y=Math.max(b.x,_.x,w.x,T.x),g=Math.min(b.y,_.y,w.y,T.y),m=Math.max(b.y,_.y,w.y,T.y)}t.emplaceBack(e.x,e.y,v,g,y,m,r,n,a)}this.boxEndIndex=t.length},Wl=function(t,e){if(void 0===t&&(t=[]),void 0===e&&(e=Xl),this.data=t,this.length=this.data.length,this.compare=e,this.length>0)for(var r=(this.length>>1)-1;r>=0;r--)this._down(r)};function Xl(t,e){return te?1:0}function Zl(t,e,r){void 0===e&&(e=1),void 0===r&&(r=!1);for(var n=1/0,a=1/0,o=-1/0,s=-1/0,l=t[0],c=0;co)&&(o=u.x),(!c||u.y>s)&&(s=u.y)}var f=Math.min(o-n,s-a),h=f/2,p=new Wl([],Jl);if(0===f)return new i(n,a);for(var d=n;dm.d||!m.d)&&(m=y,r&&console.log("found best %d after %d probes",Math.round(1e4*y.d)/1e4,v)),y.max-m.d<=e||(p.push(new Kl(y.p.x-(h=y.h/2),y.p.y-h,h,t)),p.push(new Kl(y.p.x+h,y.p.y-h,h,t)),p.push(new Kl(y.p.x-h,y.p.y+h,h,t)),p.push(new Kl(y.p.x+h,y.p.y+h,h,t)),v+=4)}return r&&(console.log("num probes: "+v),console.log("best distance: "+m.d)),m.p}function Jl(t,e){return e.max-t.max}function Kl(t,e,r,n){this.p=new i(t,e),this.h=r,this.d=function(t,e){for(var r=!1,n=1/0,i=0;it.y!=u.y>t.y&&t.x<(u.x-c.x)*(t.y-c.y)/(u.y-c.y)+c.x&&(r=!r),n=Math.min(n,Ga(t,c,u))}return(r?1:-1)*Math.sqrt(n)}(this.p,n),this.max=this.d+this.h*Math.SQRT2}Wl.prototype.push=function(t){this.data.push(t),this.length++,this._up(this.length-1)},Wl.prototype.pop=function(){if(0!==this.length){var t=this.data[0],e=this.data.pop();return this.length--,this.length>0&&(this.data[0]=e,this._down(0)),t}},Wl.prototype.peek=function(){return this.data[0]},Wl.prototype._up=function(t){for(var e=this.data,r=this.compare,n=e[t];t>0;){var i=t-1>>1,a=e[i];if(r(n,a)>=0)break;e[t]=a,t=i}e[t]=n},Wl.prototype._down=function(t){for(var e=this.data,r=this.compare,n=this.length>>1,i=e[t];t=0)break;e[t]=o,t=a}e[t]=i};var Ql=Number.POSITIVE_INFINITY;function $l(t,e){return e[1]!==Ql?function(t,e,r){var n=0,i=0;switch(e=Math.abs(e),r=Math.abs(r),t){case"top-right":case"top-left":case"top":i=r-7;break;case"bottom-right":case"bottom-left":case"bottom":i=7-r}switch(t){case"top-right":case"bottom-right":case"right":n=-e;break;case"top-left":case"bottom-left":case"left":n=e}return[n,i]}(t,e[0],e[1]):function(t,e){var r=0,n=0;e<0&&(e=0);var i=e/Math.sqrt(2);switch(t){case"top-right":case"top-left":n=i-7;break;case"bottom-right":case"bottom-left":n=7-i;break;case"bottom":n=7-e;break;case"top":n=e-7}switch(t){case"top-right":case"bottom-right":r=-i;break;case"top-left":case"bottom-left":r=i;break;case"left":r=e;break;case"right":r=-e}return[r,n]}(t,e[0])}function tc(t){switch(t){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function ec(t,e,r,n,a,o,s,l,c,u,f,h,p,d,g){var m=function(t,e,r,n,a,o,s,l){for(var c=n.layout.get("text-rotate").evaluate(o,{})*Math.PI/180,u=[],f=0,h=e.positionedLines;f32640&&_(t.layerIds[0]+': Value for "text-size" is >= 255. Reduce your "text-size".'):"composite"===v.kind&&((y=[128*d.compositeTextSizes[0].evaluate(s,{},g),128*d.compositeTextSizes[1].evaluate(s,{},g)])[0]>32640||y[1]>32640)&&_(t.layerIds[0]+': Value for "text-size" is >= 255. Reduce your "text-size".'),t.addSymbols(t.text,m,y,l,o,s,u,e,c.lineStartIndex,c.lineLength,p,g);for(var x=0,b=f;x=0;o--)if(n.dist(a[o])0)&&("constant"!==a.value.kind||a.value.value.length>0),c="constant"!==s.value.kind||!!s.value.value||Object.keys(s.parameters).length>0,u=i.get("symbol-sort-key");if(this.features=[],l||c){for(var f=e.iconDependencies,h=e.glyphDependencies,p=e.availableImages,d=new ii(this.zoom),g=0,m=t;g=0;for(var z=0,O=k.sections;z=0;s--)a[s]={x:e[s].x,y:e[s].y,tileUnitDistanceFromAnchor:i},s>0&&(i+=e[s-1].dist(e[s]));for(var l=0;l0},fc.prototype.hasIconData=function(){return this.icon.segments.get().length>0},fc.prototype.hasDebugData=function(){return this.textCollisionBox&&this.iconCollisionBox},fc.prototype.hasTextCollisionBoxData=function(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0},fc.prototype.hasIconCollisionBoxData=function(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0},fc.prototype.addIndicesForPlacedSymbol=function(t,e){for(var r=t.placedSymbolArray.get(e),n=r.vertexStartIndex+4*r.numGlyphs,i=r.vertexStartIndex;i1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(t),this.sortedAngle=t,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(var r=0,n=this.symbolInstanceIndexes;r=0&&n.indexOf(t)===r&&e.addIndicesForPlacedSymbol(e.text,t)})),i.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,i.verticalPlacedTextSymbolIndex),i.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,i.placedIconSymbolIndex),i.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,i.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}},Dn("SymbolBucket",fc,{omit:["layers","collisionBoxArray","features","compareText"]}),fc.MAX_GLYPHS=65535,fc.addDynamicAttributes=sc;var hc=new yi({"symbol-placement":new pi(At.layout_symbol["symbol-placement"]),"symbol-spacing":new pi(At.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new pi(At.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new di(At.layout_symbol["symbol-sort-key"]),"symbol-z-order":new pi(At.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new pi(At.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new pi(At.layout_symbol["icon-ignore-placement"]),"icon-optional":new pi(At.layout_symbol["icon-optional"]),"icon-rotation-alignment":new pi(At.layout_symbol["icon-rotation-alignment"]),"icon-size":new di(At.layout_symbol["icon-size"]),"icon-text-fit":new pi(At.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new pi(At.layout_symbol["icon-text-fit-padding"]),"icon-image":new di(At.layout_symbol["icon-image"]),"icon-rotate":new di(At.layout_symbol["icon-rotate"]),"icon-padding":new pi(At.layout_symbol["icon-padding"]),"icon-keep-upright":new pi(At.layout_symbol["icon-keep-upright"]),"icon-offset":new di(At.layout_symbol["icon-offset"]),"icon-anchor":new di(At.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new pi(At.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new pi(At.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new pi(At.layout_symbol["text-rotation-alignment"]),"text-field":new di(At.layout_symbol["text-field"]),"text-font":new di(At.layout_symbol["text-font"]),"text-size":new di(At.layout_symbol["text-size"]),"text-max-width":new di(At.layout_symbol["text-max-width"]),"text-line-height":new pi(At.layout_symbol["text-line-height"]),"text-letter-spacing":new di(At.layout_symbol["text-letter-spacing"]),"text-justify":new di(At.layout_symbol["text-justify"]),"text-radial-offset":new di(At.layout_symbol["text-radial-offset"]),"text-variable-anchor":new pi(At.layout_symbol["text-variable-anchor"]),"text-anchor":new di(At.layout_symbol["text-anchor"]),"text-max-angle":new pi(At.layout_symbol["text-max-angle"]),"text-writing-mode":new pi(At.layout_symbol["text-writing-mode"]),"text-rotate":new di(At.layout_symbol["text-rotate"]),"text-padding":new pi(At.layout_symbol["text-padding"]),"text-keep-upright":new pi(At.layout_symbol["text-keep-upright"]),"text-transform":new di(At.layout_symbol["text-transform"]),"text-offset":new di(At.layout_symbol["text-offset"]),"text-allow-overlap":new pi(At.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new pi(At.layout_symbol["text-ignore-placement"]),"text-optional":new pi(At.layout_symbol["text-optional"])}),pc={paint:new yi({"icon-opacity":new di(At.paint_symbol["icon-opacity"]),"icon-color":new di(At.paint_symbol["icon-color"]),"icon-halo-color":new di(At.paint_symbol["icon-halo-color"]),"icon-halo-width":new di(At.paint_symbol["icon-halo-width"]),"icon-halo-blur":new di(At.paint_symbol["icon-halo-blur"]),"icon-translate":new pi(At.paint_symbol["icon-translate"]),"icon-translate-anchor":new pi(At.paint_symbol["icon-translate-anchor"]),"text-opacity":new di(At.paint_symbol["text-opacity"]),"text-color":new di(At.paint_symbol["text-color"],{runtimeType:Bt,getOverride:function(t){return t.textColor},hasOverride:function(t){return!!t.textColor}}),"text-halo-color":new di(At.paint_symbol["text-halo-color"]),"text-halo-width":new di(At.paint_symbol["text-halo-width"]),"text-halo-blur":new di(At.paint_symbol["text-halo-blur"]),"text-translate":new pi(At.paint_symbol["text-translate"]),"text-translate-anchor":new pi(At.paint_symbol["text-translate-anchor"])}),layout:hc},dc=function(t){this.type=t.property.overrides?t.property.overrides.runtimeType:Ot,this.defaultValue=t};dc.prototype.evaluate=function(t){if(t.formattedSection){var e=this.defaultValue.property.overrides;if(e&&e.hasOverride(t.formattedSection))return e.getOverride(t.formattedSection)}return t.feature&&t.featureState?this.defaultValue.evaluate(t.feature,t.featureState):this.defaultValue.property.specification.default},dc.prototype.eachChild=function(t){this.defaultValue.isConstant()||t(this.defaultValue.value._styleExpression.expression)},dc.prototype.outputDefined=function(){return!1},dc.prototype.serialize=function(){return null},Dn("FormatSectionOverride",dc,{omit:["defaultValue"]});var gc=function(t){function e(e){t.call(this,e,pc)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.recalculate=function(e,r){if(t.prototype.recalculate.call(this,e,r),"auto"===this.layout.get("icon-rotation-alignment")&&(this.layout._values["icon-rotation-alignment"]="point"!==this.layout.get("symbol-placement")?"map":"viewport"),"auto"===this.layout.get("text-rotation-alignment")&&(this.layout._values["text-rotation-alignment"]="point"!==this.layout.get("symbol-placement")?"map":"viewport"),"auto"===this.layout.get("text-pitch-alignment")&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")),"auto"===this.layout.get("icon-pitch-alignment")&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment")),"point"===this.layout.get("symbol-placement")){var n=this.layout.get("text-writing-mode");if(n){for(var i=[],a=0,o=n;a",targetMapId:n,sourceMapId:a.mapId})}}},Cc.prototype.receive=function(t){var e=t.data,r=e.id;if(r&&(!e.targetMapId||this.mapId===e.targetMapId))if(""===e.type){delete this.tasks[r];var n=this.cancelCallbacks[r];delete this.cancelCallbacks[r],n&&n()}else k()||e.mustQueue?(this.tasks[r]=e,this.taskQueue.push(r),this.invoker.trigger()):this.processTask(r,e)},Cc.prototype.process=function(){if(this.taskQueue.length){var t=this.taskQueue.shift(),e=this.tasks[t];delete this.tasks[t],this.taskQueue.length&&this.invoker.trigger(),e&&this.processTask(t,e)}},Cc.prototype.processTask=function(t,e){var r=this;if(""===e.type){var n=this.callbacks[t];delete this.callbacks[t],n&&(e.error?n(jn(e.error)):n(null,jn(e.data)))}else{var i=!1,a=S(this.globalScope)?void 0:[],o=e.hasCallback?function(e,n){i=!0,delete r.cancelCallbacks[t],r.target.postMessage({id:t,type:"",sourceMapId:r.mapId,error:e?Nn(e):null,data:Nn(n,a)},a)}:function(t){i=!0},s=null,l=jn(e.data);if(this.parent[e.type])s=this.parent[e.type](e.sourceMapId,l,o);else if(this.parent.getWorkerSource){var c=e.type.split(".");s=this.parent.getWorkerSource(e.sourceMapId,c[0],l.source)[c[1]](l,o)}else o(new Error("Could not find function "+e.type));!i&&s&&s.cancel&&(this.cancelCallbacks[t]=s.cancel)}},Cc.prototype.remove=function(){this.invoker.remove(),this.target.removeEventListener("message",this.receive,!1)};var Ic=function(t,e){t&&(e?this.setSouthWest(t).setNorthEast(e):4===t.length?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1]))};Ic.prototype.setNorthEast=function(t){return this._ne=t instanceof Pc?new Pc(t.lng,t.lat):Pc.convert(t),this},Ic.prototype.setSouthWest=function(t){return this._sw=t instanceof Pc?new Pc(t.lng,t.lat):Pc.convert(t),this},Ic.prototype.extend=function(t){var e,r,n=this._sw,i=this._ne;if(t instanceof Pc)e=t,r=t;else{if(!(t instanceof Ic))return Array.isArray(t)?4===t.length||t.every(Array.isArray)?this.extend(Ic.convert(t)):this.extend(Pc.convert(t)):this;if(r=t._ne,!(e=t._sw)||!r)return this}return n||i?(n.lng=Math.min(e.lng,n.lng),n.lat=Math.min(e.lat,n.lat),i.lng=Math.max(r.lng,i.lng),i.lat=Math.max(r.lat,i.lat)):(this._sw=new Pc(e.lng,e.lat),this._ne=new Pc(r.lng,r.lat)),this},Ic.prototype.getCenter=function(){return new Pc((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},Ic.prototype.getSouthWest=function(){return this._sw},Ic.prototype.getNorthEast=function(){return this._ne},Ic.prototype.getNorthWest=function(){return new Pc(this.getWest(),this.getNorth())},Ic.prototype.getSouthEast=function(){return new Pc(this.getEast(),this.getSouth())},Ic.prototype.getWest=function(){return this._sw.lng},Ic.prototype.getSouth=function(){return this._sw.lat},Ic.prototype.getEast=function(){return this._ne.lng},Ic.prototype.getNorth=function(){return this._ne.lat},Ic.prototype.toArray=function(){return[this._sw.toArray(),this._ne.toArray()]},Ic.prototype.toString=function(){return"LngLatBounds("+this._sw.toString()+", "+this._ne.toString()+")"},Ic.prototype.isEmpty=function(){return!(this._sw&&this._ne)},Ic.prototype.contains=function(t){var e=Pc.convert(t),r=e.lng,n=e.lat,i=this._sw.lng<=r&&r<=this._ne.lng;return this._sw.lng>this._ne.lng&&(i=this._sw.lng>=r&&r>=this._ne.lng),this._sw.lat<=n&&n<=this._ne.lat&&i},Ic.convert=function(t){return!t||t instanceof Ic?t:new Ic(t)};var Pc=function(t,e){if(isNaN(t)||isNaN(e))throw new Error("Invalid LngLat object: ("+t+", "+e+")");if(this.lng=+t,this.lat=+e,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")};Pc.prototype.wrap=function(){return new Pc(c(this.lng,-180,180),this.lat)},Pc.prototype.toArray=function(){return[this.lng,this.lat]},Pc.prototype.toString=function(){return"LngLat("+this.lng+", "+this.lat+")"},Pc.prototype.distanceTo=function(t){var e=Math.PI/180,r=this.lat*e,n=t.lat*e,i=Math.sin(r)*Math.sin(n)+Math.cos(r)*Math.cos(n)*Math.cos((t.lng-this.lng)*e);return 6371008.8*Math.acos(Math.min(i,1))},Pc.prototype.toBounds=function(t){void 0===t&&(t=0);var e=360*t/40075017,r=e/Math.cos(Math.PI/180*this.lat);return new Ic(new Pc(this.lng-r,this.lat-e),new Pc(this.lng+r,this.lat+e))},Pc.convert=function(t){if(t instanceof Pc)return t;if(Array.isArray(t)&&(2===t.length||3===t.length))return new Pc(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&"object"==typeof t&&null!==t)return new Pc(Number("lng"in t?t.lng:t.lon),Number(t.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")};var zc=2*Math.PI*6371008.8;function Oc(t){return zc*Math.cos(t*Math.PI/180)}function Dc(t){return(180+t)/360}function Rc(t){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360)))/360}function Fc(t,e){return t/Oc(e)}function Bc(t){return 360/Math.PI*Math.atan(Math.exp((180-360*t)*Math.PI/180))-90}var Nc=function(t,e,r){void 0===r&&(r=0),this.x=+t,this.y=+e,this.z=+r};Nc.fromLngLat=function(t,e){void 0===e&&(e=0);var r=Pc.convert(t);return new Nc(Dc(r.lng),Rc(r.lat),Fc(e,r.lat))},Nc.prototype.toLngLat=function(){return new Pc(360*this.x-180,Bc(this.y))},Nc.prototype.toAltitude=function(){return this.z*Oc(Bc(this.y))},Nc.prototype.meterInMercatorCoordinateUnits=function(){return 1/zc*(t=Bc(this.y),1/Math.cos(t*Math.PI/180));var t};var jc=function(t,e,r){this.z=t,this.x=e,this.y=r,this.key=qc(0,t,t,e,r)};jc.prototype.equals=function(t){return this.z===t.z&&this.x===t.x&&this.y===t.y},jc.prototype.url=function(t,e){var r,n,i,a,o,s=(n=this.y,i=this.z,a=Lc(256*(r=this.x),256*(n=Math.pow(2,i)-n-1),i),o=Lc(256*(r+1),256*(n+1),i),a[0]+","+a[1]+","+o[0]+","+o[1]),l=function(t,e,r){for(var n,i="",a=t;a>0;a--)i+=(e&(n=1<this.canonical.z?new Vc(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Vc(t,this.wrap,t,this.canonical.x>>e,this.canonical.y>>e)},Vc.prototype.calculateScaledKey=function(t,e){var r=this.canonical.z-t;return t>this.canonical.z?qc(this.wrap*+e,t,this.canonical.z,this.canonical.x,this.canonical.y):qc(this.wrap*+e,t,t,this.canonical.x>>r,this.canonical.y>>r)},Vc.prototype.isChildOf=function(t){if(t.wrap!==this.wrap)return!1;var e=this.canonical.z-t.canonical.z;return 0===t.overscaledZ||t.overscaledZ>e&&t.canonical.y===this.canonical.y>>e},Vc.prototype.children=function(t){if(this.overscaledZ>=t)return[new Vc(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];var e=this.canonical.z+1,r=2*this.canonical.x,n=2*this.canonical.y;return[new Vc(e,this.wrap,e,r,n),new Vc(e,this.wrap,e,r+1,n),new Vc(e,this.wrap,e,r,n+1),new Vc(e,this.wrap,e,r+1,n+1)]},Vc.prototype.isLessThan=function(t){return this.wrapt.wrap)&&(this.overscaledZt.overscaledZ)&&(this.canonical.xt.canonical.x)&&this.canonical.y=this.dim+1||e<-1||e>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return(e+1)*this.stride+(t+1)},Hc.prototype._unpackMapbox=function(t,e,r){return(256*t*256+256*e+r)/10-1e4},Hc.prototype._unpackTerrarium=function(t,e,r){return 256*t+e+r/256-32768},Hc.prototype.getPixels=function(){return new po({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))},Hc.prototype.backfillBorder=function(t,e,r){if(this.dim!==t.dim)throw new Error("dem dimension mismatch");var n=e*this.dim,i=e*this.dim+this.dim,a=r*this.dim,o=r*this.dim+this.dim;switch(e){case-1:n=i-1;break;case 1:i=n+1}switch(r){case-1:a=o-1;break;case 1:o=a+1}for(var s=-e*this.dim,l=-r*this.dim,c=a;c=0&&u[3]>=0&&s.insert(o,u[0],u[1],u[2],u[3])}},Zc.prototype.loadVTLayers=function(){return this.vtLayers||(this.vtLayers=new gs.VectorTile(new Hs(this.rawTileData)).layers,this.sourceLayerCoder=new Gc(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"])),this.vtLayers},Zc.prototype.query=function(t,e,r,n){var a=this;this.loadVTLayers();for(var o=t.params||{},s=8192/t.tileSize/t.scale,l=rn(o.filter),c=t.queryGeometry,u=t.queryPadding*s,f=Kc(c),h=this.grid.query(f.minX-u,f.minY-u,f.maxX+u,f.maxY+u),p=Kc(t.cameraQueryGeometry),d=0,g=this.grid3D.query(p.minX-u,p.minY-u,p.maxX+u,p.maxY+u,(function(e,r,n,a){return function(t,e,r,n,a){for(var o=0,s=t;o=l.x&&a>=l.y)return!0}var c=[new i(e,r),new i(e,a),new i(n,a),new i(n,r)];if(t.length>2)for(var u=0,f=c;u=0)return!0;return!1}(a,f)){var h=this.sourceLayerCoder.decode(r),p=this.vtLayers[h].feature(n);if(i.filter(new ii(this.tileID.overscaledZ),p))for(var d=this.getId(p,h),g=0;gn)i=!1;else if(e)if(this.expirationTimeot&&(t.getActor().send("enforceCacheSizeLimit",at),ut=0)},t.clamp=l,t.clearTileCache=function(t){var e=self.caches.delete("mapbox-tiles");t&&e.catch(t).then((function(){return t()}))},t.clipLine=jl,t.clone=function(t){var e=new to(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e},t.clone$1=x,t.clone$2=function(t){var e=new to(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e},t.collisionCircleLayout=Ns,t.config=F,t.create=function(){var t=new to(16);return to!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t},t.create$1=function(){var t=new to(9);return to!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t},t.create$2=function(){var t=new to(4);return to!=Float32Array&&(t[1]=0,t[2]=0),t[0]=1,t[3]=1,t},t.createCommonjsModule=e,t.createExpression=qr,t.createLayout=Ti,t.createStyleLayer=function(t){return"custom"===t.type?new bc(t):new _c[t.type](t)},t.cross=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2];return t[0]=i*l-a*s,t[1]=a*o-n*l,t[2]=n*s-i*o,t},t.deepEqual=function t(e,r){if(Array.isArray(e)){if(!Array.isArray(r)||e.length!==r.length)return!1;for(var n=0;n0&&(a=1/Math.sqrt(a)),t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a,t},t.number=Ue,t.offscreenCanvasSupported=ft,t.ortho=function(t,e,r,n,i,a,o){var s=1/(e-r),l=1/(n-i),c=1/(a-o);return t[0]=-2*s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*l,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*c,t[11]=0,t[12]=(e+r)*s,t[13]=(i+n)*l,t[14]=(o+a)*c,t[15]=1,t},t.parseGlyphPBF=function(t){return new Hs(t).readFields(ll,[])},t.pbf=Hs,t.performSymbolLayout=function(t,e,r,n,i,a,o){t.createArrays(),t.tilePixelRatio=8192/(512*t.overscaling),t.compareText={},t.iconsNeedLinear=!1;var s=t.layers[0].layout,l=t.layers[0]._unevaluatedLayout._values,c={};if("composite"===t.textSizeData.kind){var u=t.textSizeData,f=u.maxZoom;c.compositeTextSizes=[l["text-size"].possiblyEvaluate(new ii(u.minZoom),o),l["text-size"].possiblyEvaluate(new ii(f),o)]}if("composite"===t.iconSizeData.kind){var h=t.iconSizeData,p=h.maxZoom;c.compositeIconSizes=[l["icon-size"].possiblyEvaluate(new ii(h.minZoom),o),l["icon-size"].possiblyEvaluate(new ii(p),o)]}c.layoutTextSize=l["text-size"].possiblyEvaluate(new ii(t.zoom+1),o),c.layoutIconSize=l["icon-size"].possiblyEvaluate(new ii(t.zoom+1),o),c.textMaxSize=l["text-size"].possiblyEvaluate(new ii(18));for(var d=24*s.get("text-line-height"),g="map"===s.get("text-rotation-alignment")&&"point"!==s.get("symbol-placement"),m=s.get("text-keep-upright"),v=s.get("text-size"),y=function(){var a=b[x],l=s.get("text-font").evaluate(a,{},o).join(","),u=v.evaluate(a,{},o),f=c.layoutTextSize.evaluate(a,{},o),h=c.layoutIconSize.evaluate(a,{},o),p={horizontal:{},vertical:void 0},y=a.text,w=[0,0];if(y){var T=y.toString(),k=24*s.get("text-letter-spacing").evaluate(a,{},o),M=function(t){for(var e=0,r=t;e=8192||f.y<0||f.y>=8192||function(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,g,m,v,y,x,b,w,T,k,M){var A,S,E,C,L,I=t.addToLineVertexArray(e,r),P=0,z=0,O=0,D=0,R=-1,F=-1,B={},N=ca(""),j=0,U=0;if(void 0===s._unevaluatedLayout.getValue("text-radial-offset")?(j=(A=s.layout.get("text-offset").evaluate(b,{},k).map((function(t){return 24*t})))[0],U=A[1]):(j=24*s.layout.get("text-radial-offset").evaluate(b,{},k),U=Ql),t.allowVerticalPlacement&&n.vertical){var V=s.layout.get("text-rotate").evaluate(b,{},k)+90;C=new Yl(l,e,c,u,f,n.vertical,h,p,d,V),o&&(L=new Yl(l,e,c,u,f,o,m,v,d,V))}if(i){var q=s.layout.get("icon-rotate").evaluate(b,{}),H="none"!==s.layout.get("icon-text-fit"),G=Ul(i,q,T,H),Y=o?Ul(o,q,T,H):void 0;E=new Yl(l,e,c,u,f,i,m,v,!1,q),P=4*G.length;var W=t.iconSizeData,X=null;"source"===W.kind?(X=[128*s.layout.get("icon-size").evaluate(b,{})])[0]>32640&&_(t.layerIds[0]+': Value for "icon-size" is >= 255. Reduce your "icon-size".'):"composite"===W.kind&&((X=[128*w.compositeIconSizes[0].evaluate(b,{},k),128*w.compositeIconSizes[1].evaluate(b,{},k)])[0]>32640||X[1]>32640)&&_(t.layerIds[0]+': Value for "icon-size" is >= 255. Reduce your "icon-size".'),t.addSymbols(t.icon,G,X,x,y,b,!1,e,I.lineStartIndex,I.lineLength,-1,k),R=t.icon.placedSymbolArray.length-1,Y&&(z=4*Y.length,t.addSymbols(t.icon,Y,X,x,y,b,gl.vertical,e,I.lineStartIndex,I.lineLength,-1,k),F=t.icon.placedSymbolArray.length-1)}for(var Z in n.horizontal){var J=n.horizontal[Z];if(!S){N=ca(J.text);var K=s.layout.get("text-rotate").evaluate(b,{},k);S=new Yl(l,e,c,u,f,J,h,p,d,K)}var Q=1===J.positionedLines.length;if(O+=ec(t,e,J,a,s,d,b,g,I,n.vertical?gl.horizontal:gl.horizontalOnly,Q?Object.keys(n.horizontal):[Z],B,R,w,k),Q)break}n.vertical&&(D+=ec(t,e,n.vertical,a,s,d,b,g,I,gl.vertical,["vertical"],B,F,w,k));var $=S?S.boxStartIndex:t.collisionBoxArray.length,tt=S?S.boxEndIndex:t.collisionBoxArray.length,et=C?C.boxStartIndex:t.collisionBoxArray.length,rt=C?C.boxEndIndex:t.collisionBoxArray.length,nt=E?E.boxStartIndex:t.collisionBoxArray.length,it=E?E.boxEndIndex:t.collisionBoxArray.length,at=L?L.boxStartIndex:t.collisionBoxArray.length,ot=L?L.boxEndIndex:t.collisionBoxArray.length,st=-1,lt=function(t,e){return t&&t.circleDiameter?Math.max(t.circleDiameter,e):e};st=lt(S,st),st=lt(C,st),st=lt(E,st);var ct=(st=lt(L,st))>-1?1:0;ct&&(st*=M/24),t.glyphOffsetArray.length>=fc.MAX_GLYPHS&&_("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),void 0!==b.sortKey&&t.addToSortKeyRanges(t.symbolInstances.length,b.sortKey),t.symbolInstances.emplaceBack(e.x,e.y,B.right>=0?B.right:-1,B.center>=0?B.center:-1,B.left>=0?B.left:-1,B.vertical||-1,R,F,N,$,tt,et,rt,nt,it,at,ot,c,O,D,P,z,ct,0,h,j,U,st)}(t,f,s,r,n,i,h,t.layers[0],t.collisionBoxArray,e.index,e.sourceLayerIndex,t.index,v,w,M,l,x,T,A,d,e,a,c,u,o)};if("line"===S)for(var I=0,P=jl(e.geometry,0,0,8192,8192);I1){var j=Bl(N,k,r.vertical||g,n,24,y);j&&L(N,j)}}else if("Polygon"===e.type)for(var U=0,V=Qo(e.geometry,0);U=E.maxzoom||"none"!==E.visibility&&(o(S,this.zoom,n),(g[E.id]=E.createBucket({index:u.bucketLayerIDs.length,layers:S,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:b,sourceID:this.source})).populate(_,m,this.tileID.canonical),u.bucketLayerIDs.push(S.map((function(t){return t.id}))))}}}var C=t.mapObject(m.glyphDependencies,(function(t){return Object.keys(t).map(Number)}));Object.keys(C).length?a.send("getGlyphs",{uid:this.uid,stacks:C},(function(t,e){f||(f=t,h=e,P.call(l))})):h={};var L=Object.keys(m.iconDependencies);L.length?a.send("getImages",{icons:L,source:this.source,tileID:this.tileID,type:"icons"},(function(t,e){f||(f=t,p=e,P.call(l))})):p={};var I=Object.keys(m.patternDependencies);function P(){if(f)return s(f);if(h&&p&&d){var e=new i(h),r=new t.ImageAtlas(p,d);for(var a in g){var l=g[a];l instanceof t.SymbolBucket?(o(l.layers,this.zoom,n),t.performSymbolLayout(l,h,e.positions,p,r.iconPositions,this.showCollisionBoxes,this.tileID.canonical)):l.hasPattern&&(l instanceof t.LineBucket||l instanceof t.FillBucket||l instanceof t.FillExtrusionBucket)&&(o(l.layers,this.zoom,n),l.addFeatures(m,this.tileID.canonical,r.patternPositions))}this.status="done",s(null,{buckets:t.values(g).filter((function(t){return!t.isEmpty()})),featureIndex:u,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:e.image,imageAtlas:r,glyphMap:this.returnDependencies?h:null,iconMap:this.returnDependencies?p:null,glyphPositions:this.returnDependencies?e.positions:null})}}I.length?a.send("getImages",{icons:I,source:this.source,tileID:this.tileID,type:"patterns"},(function(t,e){f||(f=t,d=e,P.call(l))})):d={},P.call(this)};var l=function(t,e,r,n){this.actor=t,this.layerIndex=e,this.availableImages=r,this.loadVectorData=n||s,this.loading={},this.loaded={}};l.prototype.loadTile=function(e,r){var n=this,i=e.uid;this.loading||(this.loading={});var o=!!(e&&e.request&&e.request.collectResourceTiming)&&new t.RequestPerformance(e.request),s=this.loading[i]=new a(e);s.abort=this.loadVectorData(e,(function(e,a){if(delete n.loading[i],e||!a)return s.status="done",n.loaded[i]=s,r(e);var l=a.rawData,c={};a.expires&&(c.expires=a.expires),a.cacheControl&&(c.cacheControl=a.cacheControl);var u={};if(o){var f=o.finish();f&&(u.resourceTiming=JSON.parse(JSON.stringify(f)))}s.vectorTile=a.vectorTile,s.parse(a.vectorTile,n.layerIndex,n.availableImages,n.actor,(function(e,n){if(e||!n)return r(e);r(null,t.extend({rawTileData:l.slice(0)},n,c,u))})),n.loaded=n.loaded||{},n.loaded[i]=s}))},l.prototype.reloadTile=function(t,e){var r=this,n=this.loaded,i=t.uid,a=this;if(n&&n[i]){var o=n[i];o.showCollisionBoxes=t.showCollisionBoxes;var s=function(t,n){var i=o.reloadCallback;i&&(delete o.reloadCallback,o.parse(o.vectorTile,a.layerIndex,r.availableImages,a.actor,i)),e(t,n)};"parsing"===o.status?o.reloadCallback=s:"done"===o.status&&(o.vectorTile?o.parse(o.vectorTile,this.layerIndex,this.availableImages,this.actor,s):s())}},l.prototype.abortTile=function(t,e){var r=this.loading,n=t.uid;r&&r[n]&&r[n].abort&&(r[n].abort(),delete r[n]),e()},l.prototype.removeTile=function(t,e){var r=this.loaded,n=t.uid;r&&r[n]&&delete r[n],e()};var c=t.window.ImageBitmap,u=function(){this.loaded={}};function f(t,e){if(0!==t.length){h(t[0],e);for(var r=1;r=0!=!!e&&t.reverse()}u.prototype.loadTile=function(e,r){var n=e.uid,i=e.encoding,a=e.rawImageData,o=c&&a instanceof c?this.getImageData(a):a,s=new t.DEMData(n,o,i);this.loaded=this.loaded||{},this.loaded[n]=s,r(null,s)},u.prototype.getImageData=function(e){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(e.width,e.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext("2d")),this.offscreenCanvas.width=e.width,this.offscreenCanvas.height=e.height,this.offscreenCanvasContext.drawImage(e,0,0,e.width,e.height);var r=this.offscreenCanvasContext.getImageData(-1,-1,e.width+2,e.height+2);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),new t.RGBAImage({width:r.width,height:r.height},r.data)},u.prototype.removeTile=function(t){var e=this.loaded,r=t.uid;e&&e[r]&&delete e[r]};var p=t.vectorTile.VectorTileFeature.prototype.toGeoJSON,d=function(e){this._feature=e,this.extent=t.EXTENT,this.type=e.type,this.properties=e.tags,"id"in e&&!isNaN(e.id)&&(this.id=parseInt(e.id,10))};d.prototype.loadGeometry=function(){if(1===this._feature.type){for(var e=[],r=0,n=this._feature.geometry;r>31}function E(t,e){for(var r=t.loadGeometry(),n=t.type,i=0,a=0,o=r.length,s=0;s>1;!function t(e,r,n,i,a,o){for(;a>i;){if(a-i>600){var s=a-i+1,l=n-i+1,c=Math.log(s),u=.5*Math.exp(2*c/3),f=.5*Math.sqrt(c*u*(s-u)/s)*(l-s/2<0?-1:1);t(e,r,n,Math.max(i,Math.floor(n-l*u/s+f)),Math.min(a,Math.floor(n+(s-l)*u/s+f)),o)}var h=r[2*n+o],p=i,d=a;for(L(e,r,i,n),r[2*a+o]>h&&L(e,r,i,a);ph;)d--}r[2*i+o]===h?L(e,r,i,d):L(e,r,++d,a),d<=n&&(i=d+1),n<=d&&(a=d-1)}}(e,r,s,i,a,o%2),t(e,r,n,i,s-1,o+1),t(e,r,n,s+1,a,o+1)}}(o,s,n,0,o.length-1,0)};D.prototype.range=function(t,e,r,n){return function(t,e,r,n,i,a,o){for(var s,l,c=[0,t.length-1,0],u=[];c.length;){var f=c.pop(),h=c.pop(),p=c.pop();if(h-p<=o)for(var d=p;d<=h;d++)l=e[2*d+1],(s=e[2*d])>=r&&s<=i&&l>=n&&l<=a&&u.push(t[d]);else{var g=Math.floor((p+h)/2);l=e[2*g+1],(s=e[2*g])>=r&&s<=i&&l>=n&&l<=a&&u.push(t[g]);var m=(f+1)%2;(0===f?r<=s:n<=l)&&(c.push(p),c.push(g-1),c.push(m)),(0===f?i>=s:a>=l)&&(c.push(g+1),c.push(h),c.push(m))}}return u}(this.ids,this.coords,t,e,r,n,this.nodeSize)},D.prototype.within=function(t,e,r){return function(t,e,r,n,i,a){for(var o=[0,t.length-1,0],s=[],l=i*i;o.length;){var c=o.pop(),u=o.pop(),f=o.pop();if(u-f<=a)for(var h=f;h<=u;h++)P(e[2*h],e[2*h+1],r,n)<=l&&s.push(t[h]);else{var p=Math.floor((f+u)/2),d=e[2*p],g=e[2*p+1];P(d,g,r,n)<=l&&s.push(t[p]);var m=(c+1)%2;(0===c?r-i<=d:n-i<=g)&&(o.push(f),o.push(p-1),o.push(m)),(0===c?r+i>=d:n+i>=g)&&(o.push(p+1),o.push(u),o.push(m))}}return s}(this.ids,this.coords,t,e,r,this.nodeSize)};var R={minZoom:0,maxZoom:16,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:function(t){return t}},F=function(t){this.options=H(Object.create(R),t),this.trees=new Array(this.options.maxZoom+1)};function B(t,e,r,n,i){return{x:t,y:e,zoom:1/0,id:r,parentId:-1,numPoints:n,properties:i}}function N(t,e){var r=t.geometry.coordinates,n=r[1];return{x:V(r[0]),y:q(n),zoom:1/0,index:e,parentId:-1}}function j(t){return{type:"Feature",id:t.id,properties:U(t),geometry:{type:"Point",coordinates:[(n=t.x,360*(n-.5)),(e=t.y,r=(180-360*e)*Math.PI/180,360*Math.atan(Math.exp(r))/Math.PI-90)]}};var e,r,n}function U(t){var e=t.numPoints,r=e>=1e4?Math.round(e/1e3)+"k":e>=1e3?Math.round(e/100)/10+"k":e;return H(H({},t.properties),{cluster:!0,cluster_id:t.id,point_count:e,point_count_abbreviated:r})}function V(t){return t/360+.5}function q(t){var e=Math.sin(t*Math.PI/180),r=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return r<0?0:r>1?1:r}function H(t,e){for(var r in e)t[r]=e[r];return t}function G(t){return t.x}function Y(t){return t.y}function W(t,e,r,n,i,a){var o=i-r,s=a-n;if(0!==o||0!==s){var l=((t-r)*o+(e-n)*s)/(o*o+s*s);l>1?(r=i,n=a):l>0&&(r+=o*l,n+=s*l)}return(o=t-r)*o+(s=e-n)*s}function X(t,e,r,n){var i={id:void 0===t?null:t,type:e,geometry:r,tags:n,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(t){var e=t.geometry,r=t.type;if("Point"===r||"MultiPoint"===r||"LineString"===r)Z(t,e);else if("Polygon"===r||"MultiLineString"===r)for(var n=0;n0&&(o+=n?(i*c-l*a)/2:Math.sqrt(Math.pow(l-i,2)+Math.pow(c-a,2))),i=l,a=c}var u=e.length-3;e[2]=1,function t(e,r,n,i){for(var a,o=i,s=n-r>>1,l=n-r,c=e[r],u=e[r+1],f=e[n],h=e[n+1],p=r+3;po)a=p,o=d;else if(d===o){var g=Math.abs(p-s);gi&&(a-r>3&&t(e,r,a,i),e[a+2]=o,n-a>3&&t(e,a,n,i))}(e,0,u,r),e[u+2]=1,e.size=Math.abs(o),e.start=0,e.end=e.size}function $(t,e,r,n){for(var i=0;i1?1:r}function rt(t,e,r,n,i,a,o,s){if(n/=e,a>=(r/=e)&&o=n)return null;for(var l=[],c=0;c=r&&d=n)){var g=[];if("Point"===h||"MultiPoint"===h)nt(f,g,r,n,i);else if("LineString"===h)it(f,g,r,n,i,!1,s.lineMetrics);else if("MultiLineString"===h)ot(f,g,r,n,i,!1);else if("Polygon"===h)ot(f,g,r,n,i,!0);else if("MultiPolygon"===h)for(var m=0;m=r&&o<=n&&(e.push(t[a]),e.push(t[a+1]),e.push(t[a+2]))}}function it(t,e,r,n,i,a,o){for(var s,l,c=at(t),u=0===i?lt:ct,f=t.start,h=0;hr&&(l=u(c,p,d,m,v,r),o&&(c.start=f+s*l)):y>n?x=r&&(l=u(c,p,d,m,v,r),b=!0),x>n&&y<=n&&(l=u(c,p,d,m,v,n),b=!0),!a&&b&&(o&&(c.end=f+s*l),e.push(c),c=at(t)),o&&(f+=s)}var _=t.length-3;p=t[_],d=t[_+1],g=t[_+2],(y=0===i?p:d)>=r&&y<=n&&st(c,p,d,g),_=c.length-3,a&&_>=3&&(c[_]!==c[0]||c[_+1]!==c[1])&&st(c,c[0],c[1],c[2]),c.length&&e.push(c)}function at(t){var e=[];return e.size=t.size,e.start=t.start,e.end=t.end,e}function ot(t,e,r,n,i,a){for(var o=0;oo.maxX&&(o.maxX=u),f>o.maxY&&(o.maxY=f)}return o}function gt(t,e,r,n){var i=e.geometry,a=e.type,o=[];if("Point"===a||"MultiPoint"===a)for(var s=0;s0&&e.size<(i?o:n))r.numPoints+=e.length/3;else{for(var s=[],l=0;lo)&&(r.numSimplified++,s.push(e[l]),s.push(e[l+1])),r.numPoints++;i&&function(t,e){for(var r=0,n=0,i=t.length,a=i-2;n0===e)for(n=0,i=t.length;n24)throw new Error("maxZoom should be in the 0-24 range");if(e.promoteId&&e.generateId)throw new Error("promoteId and generateId cannot be used together.");var n=function(t,e){var r=[];if("FeatureCollection"===t.type)for(var n=0;n=n;c--){var u=+Date.now();s=this._cluster(s,c),this.trees[c]=new D(s,G,Y,a,Float32Array),r&&console.log("z%d: %d clusters in %dms",c,s.length,+Date.now()-u)}return r&&console.timeEnd("total time"),this},F.prototype.getClusters=function(t,e){var r=((t[0]+180)%360+360)%360-180,n=Math.max(-90,Math.min(90,t[1])),i=180===t[2]?180:((t[2]+180)%360+360)%360-180,a=Math.max(-90,Math.min(90,t[3]));if(t[2]-t[0]>=360)r=-180,i=180;else if(r>i){var o=this.getClusters([r,n,180,a],e),s=this.getClusters([-180,n,i,a],e);return o.concat(s)}for(var l=this.trees[this._limitZoom(e)],c=[],u=0,f=l.range(V(r),q(a),V(i),q(n));u1?this._map(s,!0):null,d=(o<<5)+(e+1)+this.points.length,g=0,m=c;g>5},F.prototype._getOriginZoom=function(t){return(t-this.points.length)%32},F.prototype._map=function(t,e){if(t.numPoints)return e?H({},t.properties):t.properties;var r=this.points[t.index].properties,n=this.options.map(r);return e&&n===r?H({},n):n},vt.prototype.options={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,debug:0},vt.prototype.splitTile=function(t,e,r,n,i,a,o){for(var s=[t,e,r,n],l=this.options,c=l.debug;s.length;){n=s.pop(),r=s.pop(),e=s.pop(),t=s.pop();var u=1<1&&console.time("creation"),h=this.tiles[f]=dt(t,e,r,n,l),this.tileCoords.push({z:e,x:r,y:n}),c)){c>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",e,r,n,h.numFeatures,h.numPoints,h.numSimplified),console.timeEnd("creation"));var p="z"+e;this.stats[p]=(this.stats[p]||0)+1,this.total++}if(h.source=t,i){if(e===l.maxZoom||e===i)continue;var d=1<1&&console.time("clipping");var g,m,v,y,x,b,_=.5*l.buffer/l.extent,w=.5-_,T=.5+_,k=1+_;g=m=v=y=null,x=rt(t,u,r-_,r+T,0,h.minX,h.maxX,l),b=rt(t,u,r+w,r+k,0,h.minX,h.maxX,l),t=null,x&&(g=rt(x,u,n-_,n+T,1,h.minY,h.maxY,l),m=rt(x,u,n+w,n+k,1,h.minY,h.maxY,l),x=null),b&&(v=rt(b,u,n-_,n+T,1,h.minY,h.maxY,l),y=rt(b,u,n+w,n+k,1,h.minY,h.maxY,l),b=null),c>1&&console.timeEnd("clipping"),s.push(g||[],e+1,2*r,2*n),s.push(m||[],e+1,2*r,2*n+1),s.push(v||[],e+1,2*r+1,2*n),s.push(y||[],e+1,2*r+1,2*n+1)}}},vt.prototype.getTile=function(t,e,r){var n=this.options,i=n.extent,a=n.debug;if(t<0||t>24)return null;var o=1<1&&console.log("drilling down to z%d-%d-%d",t,e,r);for(var l,c=t,u=e,f=r;!l&&c>0;)c--,u=Math.floor(u/2),f=Math.floor(f/2),l=this.tiles[yt(c,u,f)];return l&&l.source?(a>1&&console.log("found parent tile z%d-%d-%d",c,u,f),a>1&&console.time("drilling down"),this.splitTile(l.source,c,u,f,t,e,r),a>1&&console.timeEnd("drilling down"),this.tiles[s]?ht(this.tiles[s],i):null):null};var bt=function(e){function r(t,r,n,i){e.call(this,t,r,n,xt),i&&(this.loadGeoJSON=i)}return e&&(r.__proto__=e),(r.prototype=Object.create(e&&e.prototype)).constructor=r,r.prototype.loadData=function(t,e){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),this._pendingCallback=e,this._pendingLoadDataParams=t,this._state&&"Idle"!==this._state?this._state="NeedsLoadData":(this._state="Coalescing",this._loadData())},r.prototype._loadData=function(){var e=this;if(this._pendingCallback&&this._pendingLoadDataParams){var r=this._pendingCallback,n=this._pendingLoadDataParams;delete this._pendingCallback,delete this._pendingLoadDataParams;var i=!!(n&&n.request&&n.request.collectResourceTiming)&&new t.RequestPerformance(n.request);this.loadGeoJSON(n,(function(a,o){if(a||!o)return r(a);if("object"!=typeof o)return r(new Error("Input data given to '"+n.source+"' is not a valid GeoJSON object."));!function t(e,r){var n,i=e&&e.type;if("FeatureCollection"===i)for(n=0;n=0?0:e.button},r.remove=function(t){t.parentNode&&t.parentNode.removeChild(t)};var h=function(e){function r(){e.call(this),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new t.RGBAImage({width:1,height:1}),this.dirty=!0}return e&&(r.__proto__=e),(r.prototype=Object.create(e&&e.prototype)).constructor=r,r.prototype.isLoaded=function(){return this.loaded},r.prototype.setLoaded=function(t){if(this.loaded!==t&&(this.loaded=t,t)){for(var e=0,r=this.requestors;e=0?1.2:1))}function v(t,e,r,n,i,a,o){for(var s=0;s65535)e(new Error("glyphs > 65535 not supported"));else if(a.ranges[s])e(null,{stack:r,id:i,glyph:o});else{var l=a.requests[s];l||(l=a.requests[s]=[],x.loadGlyphRange(r,s,n.url,n.requestManager,(function(t,e){if(e){for(var r in e)n._doesCharSupportLocalGlyph(+r)||(a.glyphs[+r]=e[+r]);a.ranges[s]=!0}for(var i=0,o=l;i1&&(s=t[++o]);var c=Math.abs(l-s.left),u=Math.abs(l-s.right),f=Math.min(c,u),h=void 0,p=i/r*(n+1);if(s.isDash){var d=n-Math.abs(p);h=Math.sqrt(f*f+d*d)}else h=n-Math.sqrt(f*f+p*p);this.data[a+l]=Math.max(0,Math.min(255,h+128))}},T.prototype.addRegularDash=function(t){for(var e=t.length-1;e>=0;--e){var r=t[e],n=t[e+1];r.zeroLength?t.splice(e,1):n&&n.isDash===r.isDash&&(n.left=r.left,t.splice(e,1))}var i=t[0],a=t[t.length-1];i.isDash===a.isDash&&(i.left=a.left-this.width,a.right=i.right+this.width);for(var o=this.width*this.nextRow,s=0,l=t[s],c=0;c1&&(l=t[++s]);var u=Math.abs(c-l.left),f=Math.abs(c-l.right),h=Math.min(u,f);this.data[o+c]=Math.max(0,Math.min(255,(l.isDash?h:-h)+128))}},T.prototype.addDash=function(e,r){var n=r?7:0,i=2*n+1;if(this.nextRow+i>this.height)return t.warnOnce("LineAtlas out of space"),null;for(var a=0,o=0;o=n&&e.x=i&&e.y0&&(l[new t.OverscaledTileID(e.overscaledZ,a,r.z,i,r.y-1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,e.wrap,r.z,r.x,r.y-1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,s,r.z,o,r.y-1).key]={backfilled:!1}),r.y+10&&(n.resourceTiming=e._resourceTiming,e._resourceTiming=[]),e.fire(new t.Event("data",n))}}))},r.prototype.onAdd=function(t){this.map=t,this.load()},r.prototype.setData=function(e){var r=this;return this._data=e,this.fire(new t.Event("dataloading",{dataType:"source"})),this._updateWorkerData((function(e){if(e)r.fire(new t.ErrorEvent(e));else{var n={dataType:"source",sourceDataType:"content"};r._collectResourceTiming&&r._resourceTiming&&r._resourceTiming.length>0&&(n.resourceTiming=r._resourceTiming,r._resourceTiming=[]),r.fire(new t.Event("data",n))}})),this},r.prototype.getClusterExpansionZoom=function(t,e){return this.actor.send("geojson.getClusterExpansionZoom",{clusterId:t,source:this.id},e),this},r.prototype.getClusterChildren=function(t,e){return this.actor.send("geojson.getClusterChildren",{clusterId:t,source:this.id},e),this},r.prototype.getClusterLeaves=function(t,e,r,n){return this.actor.send("geojson.getClusterLeaves",{source:this.id,clusterId:t,limit:e,offset:r},n),this},r.prototype._updateWorkerData=function(e){var r=this;this._loaded=!1;var n=t.extend({},this.workerOptions),i=this._data;"string"==typeof i?(n.request=this.map._requestManager.transformRequest(t.browser.resolveURL(i),t.ResourceType.Source),n.request.collectResourceTiming=this._collectResourceTiming):n.data=JSON.stringify(i),this.actor.send(this.type+".loadData",n,(function(t,i){r._removed||i&&i.abandoned||(r._loaded=!0,i&&i.resourceTiming&&i.resourceTiming[r.id]&&(r._resourceTiming=i.resourceTiming[r.id].slice(0)),r.actor.send(r.type+".coalesce",{source:n.source},null),e(t))}))},r.prototype.loaded=function(){return this._loaded},r.prototype.loadTile=function(e,r){var n=this,i=e.actor?"reloadTile":"loadTile";e.actor=this.actor,e.request=this.actor.send(i,{type:this.type,uid:e.uid,tileID:e.tileID,zoom:e.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:t.browser.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId},(function(t,a){return delete e.request,e.unloadVectorData(),e.aborted?r(null):t?r(t):(e.loadVectorData(a,n.map.painter,"reloadTile"===i),r(null))}))},r.prototype.abortTile=function(t){t.request&&(t.request.cancel(),delete t.request),t.aborted=!0},r.prototype.unloadTile=function(t){t.unloadVectorData(),this.actor.send("removeTile",{uid:t.uid,type:this.type,source:this.id})},r.prototype.onRemove=function(){this._removed=!0,this.actor.send("removeSource",{type:this.type,source:this.id})},r.prototype.serialize=function(){return t.extend({},this._options,{type:this.type,data:this._data})},r.prototype.hasTransition=function(){return!1},r}(t.Evented),I=t.createLayout([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]),P=function(e){function r(t,r,n,i){e.call(this),this.id=t,this.dispatcher=n,this.coordinates=r.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(i),this.options=r}return e&&(r.__proto__=e),(r.prototype=Object.create(e&&e.prototype)).constructor=r,r.prototype.load=function(e,r){var n=this;this._loaded=!1,this.fire(new t.Event("dataloading",{dataType:"source"})),this.url=this.options.url,t.getImage(this.map._requestManager.transformRequest(this.url,t.ResourceType.Image),(function(i,a){n._loaded=!0,i?n.fire(new t.ErrorEvent(i)):a&&(n.image=a,e&&(n.coordinates=e),r&&r(),n._finishLoading())}))},r.prototype.loaded=function(){return this._loaded},r.prototype.updateImage=function(t){var e=this;return this.image&&t.url?(this.options.url=t.url,this.load(t.coordinates,(function(){e.texture=null})),this):this},r.prototype._finishLoading=function(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new t.Event("data",{dataType:"source",sourceDataType:"metadata"})))},r.prototype.onAdd=function(t){this.map=t,this.load()},r.prototype.setCoordinates=function(e){var r=this;this.coordinates=e;var n=e.map(t.MercatorCoordinate.fromLngLat);this.tileID=function(e){for(var r=1/0,n=1/0,i=-1/0,a=-1/0,o=0,s=e;or.end(0)?this.fire(new t.ErrorEvent(new t.ValidationError("sources."+this.id,null,"Playback for this video can be set only between the "+r.start(0)+" and "+r.end(0)+"-second mark."))):this.video.currentTime=e}},r.prototype.getVideo=function(){return this.video},r.prototype.onAdd=function(t){this.map||(this.map=t,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))},r.prototype.prepare=function(){if(!(0===Object.keys(this.tiles).length||this.video.readyState<2)){var e=this.map.painter.context,r=e.gl;for(var n in this.boundsBuffer||(this.boundsBuffer=e.createVertexBuffer(this._boundsArray,I.members)),this.boundsSegments||(this.boundsSegments=t.SegmentVector.simpleSegment(0,0,4,2)),this.texture?this.video.paused||(this.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE),r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,this.video)):(this.texture=new t.Texture(e,this.video,r.RGBA),this.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE)),this.tiles){var i=this.tiles[n];"loaded"!==i.state&&(i.state="loaded",i.texture=this.texture)}}},r.prototype.serialize=function(){return{type:"video",urls:this.urls,coordinates:this.coordinates}},r.prototype.hasTransition=function(){return this.video&&!this.video.paused},r}(P),O=function(e){function r(r,n,i,a){e.call(this,r,n,i,a),n.coordinates?Array.isArray(n.coordinates)&&4===n.coordinates.length&&!n.coordinates.some((function(t){return!Array.isArray(t)||2!==t.length||t.some((function(t){return"number"!=typeof t}))}))||this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'missing required property "coordinates"'))),n.animate&&"boolean"!=typeof n.animate&&this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'optional "animate" property must be a boolean value'))),n.canvas?"string"==typeof n.canvas||n.canvas instanceof t.window.HTMLCanvasElement||this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'missing required property "canvas"'))),this.options=n,this.animate=void 0===n.animate||n.animate}return e&&(r.__proto__=e),(r.prototype=Object.create(e&&e.prototype)).constructor=r,r.prototype.load=function(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof t.window.HTMLCanvasElement?this.options.canvas:t.window.document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new t.ErrorEvent(new Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())},r.prototype.getCanvas=function(){return this.canvas},r.prototype.onAdd=function(t){this.map=t,this.load(),this.canvas&&this.animate&&this.play()},r.prototype.onRemove=function(){this.pause()},r.prototype.prepare=function(){var e=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,e=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,e=!0),!this._hasInvalidDimensions()&&0!==Object.keys(this.tiles).length){var r=this.map.painter.context,n=r.gl;for(var i in this.boundsBuffer||(this.boundsBuffer=r.createVertexBuffer(this._boundsArray,I.members)),this.boundsSegments||(this.boundsSegments=t.SegmentVector.simpleSegment(0,0,4,2)),this.texture?(e||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new t.Texture(r,this.canvas,n.RGBA,{premultiply:!0}),this.tiles){var a=this.tiles[i];"loaded"!==a.state&&(a.state="loaded",a.texture=this.texture)}}},r.prototype.serialize=function(){return{type:"canvas",coordinates:this.coordinates}},r.prototype.hasTransition=function(){return this._playing},r.prototype._hasInvalidDimensions=function(){for(var t=0,e=[this.canvas.width,this.canvas.height];tthis.max){var o=this._getAndRemoveByKey(this.order[0]);o&&this.onRemove(o)}return this},N.prototype.has=function(t){return t.wrapped().key in this.data},N.prototype.getAndRemove=function(t){return this.has(t)?this._getAndRemoveByKey(t.wrapped().key):null},N.prototype._getAndRemoveByKey=function(t){var e=this.data[t].shift();return e.timeout&&clearTimeout(e.timeout),0===this.data[t].length&&delete this.data[t],this.order.splice(this.order.indexOf(t),1),e.value},N.prototype.getByKey=function(t){var e=this.data[t];return e?e[0].value:null},N.prototype.get=function(t){return this.has(t)?this.data[t.wrapped().key][0].value:null},N.prototype.remove=function(t,e){if(!this.has(t))return this;var r=t.wrapped().key,n=void 0===e?0:this.data[r].indexOf(e),i=this.data[r][n];return this.data[r].splice(n,1),i.timeout&&clearTimeout(i.timeout),0===this.data[r].length&&delete this.data[r],this.onRemove(i.value),this.order.splice(this.order.indexOf(r),1),this},N.prototype.setMaxSize=function(t){for(this.max=t;this.order.length>this.max;){var e=this._getAndRemoveByKey(this.order[0]);e&&this.onRemove(e)}return this},N.prototype.filter=function(t){var e=[];for(var r in this.data)for(var n=0,i=this.data[r];n1||(Math.abs(r)>1&&(1===Math.abs(r+i)?r+=i:1===Math.abs(r-i)&&(r-=i)),e.dem&&t.dem&&(t.dem.backfillBorder(e.dem,r,n),t.neighboringTiles&&t.neighboringTiles[a]&&(t.neighboringTiles[a].backfilled=!0)))}},r.prototype.getTile=function(t){return this.getTileByID(t.key)},r.prototype.getTileByID=function(t){return this._tiles[t]},r.prototype._retainLoadedChildren=function(t,e,r,n){for(var i in this._tiles){var a=this._tiles[i];if(!(n[i]||!a.hasData()||a.tileID.overscaledZ<=e||a.tileID.overscaledZ>r)){for(var o=a.tileID;a&&a.tileID.overscaledZ>e+1;){var s=a.tileID.scaledTo(a.tileID.overscaledZ-1);(a=this._tiles[s.key])&&a.hasData()&&(o=s)}for(var l=o;l.overscaledZ>e;)if(t[(l=l.scaledTo(l.overscaledZ-1)).key]){n[o.key]=o;break}}}},r.prototype.findLoadedParent=function(t,e){if(t.key in this._loadedParentTiles){var r=this._loadedParentTiles[t.key];return r&&r.tileID.overscaledZ>=e?r:null}for(var n=t.overscaledZ-1;n>=e;n--){var i=t.scaledTo(n),a=this._getLoadedTile(i);if(a)return a}},r.prototype._getLoadedTile=function(t){var e=this._tiles[t.key];return e&&e.hasData()?e:this._cache.getByKey(t.wrapped().key)},r.prototype.updateCacheSize=function(t){var e=Math.ceil(t.width/this._source.tileSize)+1,r=Math.ceil(t.height/this._source.tileSize)+1,n=Math.floor(e*r*5),i="number"==typeof this._maxTileCacheSize?Math.min(this._maxTileCacheSize,n):n;this._cache.setMaxSize(i)},r.prototype.handleWrapJump=function(t){var e=Math.round((t-(void 0===this._prevLng?t:this._prevLng))/360);if(this._prevLng=t,e){var r={};for(var n in this._tiles){var i=this._tiles[n];i.tileID=i.tileID.unwrapTo(i.tileID.wrap+e),r[i.tileID.key]=i}for(var a in this._tiles=r,this._timers)clearTimeout(this._timers[a]),delete this._timers[a];for(var o in this._tiles)this._setTileReloadTimer(o,this._tiles[o])}},r.prototype.update=function(e){var n=this;if(this.transform=e,this._sourceLoaded&&!this._paused){var i;this.updateCacheSize(e),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used?this._source.tileID?i=e.getVisibleUnwrappedCoordinates(this._source.tileID).map((function(e){return new t.OverscaledTileID(e.canonical.z,e.wrap,e.canonical.z,e.canonical.x,e.canonical.y)})):(i=e.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}),this._source.hasTile&&(i=i.filter((function(t){return n._source.hasTile(t)})))):i=[];var a=e.coveringZoomLevel(this._source),o=Math.max(a-r.maxOverzooming,this._source.minzoom),s=Math.max(a+r.maxUnderzooming,this._source.minzoom),l=this._updateRetainedTiles(i,a);if(Pt(this._source.type)){for(var c={},u={},f=0,h=Object.keys(l);fthis._source.maxzoom){var m=d.children(this._source.maxzoom)[0],v=this.getTile(m);if(v&&v.hasData()){n[m.key]=m;continue}}else{var y=d.children(this._source.maxzoom);if(n[y[0].key]&&n[y[1].key]&&n[y[2].key]&&n[y[3].key])continue}for(var x=g.wasRequested(),b=d.overscaledZ-1;b>=a;--b){var _=d.scaledTo(b);if(i[_.key])break;if(i[_.key]=!0,!(g=this.getTile(_))&&x&&(g=this._addTile(_)),g&&(n[_.key]=_,x=g.wasRequested(),g.hasData()))break}}}return n},r.prototype._updateLoadedParentTileCache=function(){for(var t in this._loadedParentTiles={},this._tiles){for(var e=[],r=void 0,n=this._tiles[t].tileID;n.overscaledZ>0;){if(n.key in this._loadedParentTiles){r=this._loadedParentTiles[n.key];break}e.push(n.key);var i=n.scaledTo(n.overscaledZ-1);if(r=this._getLoadedTile(i))break;n=i}for(var a=0,o=e;a0||(e.hasData()&&"reloading"!==e.state?this._cache.add(e.tileID,e,e.getExpiryTimeout()):(e.aborted=!0,this._abortTile(e),this._unloadTile(e))))},r.prototype.clearTiles=function(){for(var t in this._shouldReloadOnResume=!1,this._paused=!1,this._tiles)this._removeTile(t);this._cache.reset()},r.prototype.tilesIn=function(e,r,n){var i=this,a=[],o=this.transform;if(!o)return a;for(var s=n?o.getCameraQueryGeometry(e):e,l=e.map((function(t){return o.pointCoordinate(t)})),c=s.map((function(t){return o.pointCoordinate(t)})),u=this.getIds(),f=1/0,h=1/0,p=-1/0,d=-1/0,g=0,m=c;g=0&&v[1].y+m>=0){var y=l.map((function(t){return s.getTilePoint(t)})),x=c.map((function(t){return s.getTilePoint(t)}));a.push({tile:n,tileID:s,queryGeometry:y,cameraQueryGeometry:x,scale:g})}}},x=0;x=t.browser.now())return!0}return!1},r.prototype.setFeatureState=function(t,e,r){this._state.updateState(t=t||"_geojsonTileLayer",e,r)},r.prototype.removeFeatureState=function(t,e,r){this._state.removeFeatureState(t=t||"_geojsonTileLayer",e,r)},r.prototype.getFeatureState=function(t,e){return this._state.getState(t=t||"_geojsonTileLayer",e)},r.prototype.setDependencies=function(t,e,r){var n=this._tiles[t];n&&n.setDependencies(e,r)},r.prototype.reloadTilesForDependencies=function(t,e){for(var r in this._tiles)this._tiles[r].hasDependency(t,e)&&this._reloadTile(r,"reloading");this._cache.filter((function(r){return!r.hasDependency(t,e)}))},r}(t.Evented);function It(t,e){var r=Math.abs(2*t.wrap)-+(t.wrap<0),n=Math.abs(2*e.wrap)-+(e.wrap<0);return t.overscaledZ-e.overscaledZ||n-r||e.canonical.y-t.canonical.y||e.canonical.x-t.canonical.x}function Pt(t){return"raster"===t||"image"===t||"video"===t}function zt(){return new t.window.Worker(Yi.workerUrl)}Lt.maxOverzooming=10,Lt.maxUnderzooming=3;var Ot="mapboxgl_preloaded_worker_pool",Dt=function(){this.active={}};Dt.prototype.acquire=function(t){if(!this.workers)for(this.workers=[];this.workers.length0?(i-o)/s:0;return this.points[a].mult(1-l).add(this.points[r].mult(l))};var Jt=function(t,e,r){var n=this.boxCells=[],i=this.circleCells=[];this.xCellCount=Math.ceil(t/r),this.yCellCount=Math.ceil(e/r);for(var a=0;a=-e[0]&&r<=e[0]&&n>=-e[1]&&n<=e[1]}function re(e,r,n,i,a,o,s,l){var c=i?e.textSizeData:e.iconSizeData,u=t.evaluateSizeForZoom(c,n.transform.zoom),f=[256/n.width*2+1,256/n.height*2+1],h=i?e.text.dynamicLayoutVertexArray:e.icon.dynamicLayoutVertexArray;h.clear();for(var p=e.lineVertexArray,d=i?e.text.placedSymbolArray:e.icon.placedSymbolArray,g=n.transform.width/n.transform.height,m=!1,v=0;vMath.abs(n.x-r.x)*i?{useVertical:!0}:(e===t.WritingMode.vertical?r.yn.x)?{needsFlipping:!0}:null}function ae(e,r,n,i,a,o,s,l,c,u,f,h,p,d){var g,m=r/24,v=e.lineOffsetX*m,y=e.lineOffsetY*m;if(e.numGlyphs>1){var x=e.glyphStartIndex+e.numGlyphs,b=e.lineStartIndex,_=e.lineStartIndex+e.lineLength,w=ne(m,l,v,y,n,f,h,e,c,o,p);if(!w)return{notEnoughRoom:!0};var T=$t(w.first.point,s).point,k=$t(w.last.point,s).point;if(i&&!n){var M=ie(e.writingMode,T,k,d);if(M)return M}g=[w.first];for(var A=e.glyphStartIndex+1;A0?L.point:oe(h,C,S,1,a),P=ie(e.writingMode,S,I,d);if(P)return P}var z=se(m*l.getoffsetX(e.glyphStartIndex),v,y,n,f,h,e.segment,e.lineStartIndex,e.lineStartIndex+e.lineLength,c,o,p);if(!z)return{notEnoughRoom:!0};g=[z]}for(var O=0,D=g;O0?1:-1,g=0;i&&(d*=-1,g=Math.PI),d<0&&(g+=Math.PI);for(var m=d>0?l+s:l+s+1,v=a,y=a,x=0,b=0,_=Math.abs(p),w=[];x+b<=_;){if((m+=d)=c)return null;if(y=v,w.push(v),void 0===(v=h[m])){var T=new t.Point(u.getx(m),u.gety(m)),k=$t(T,f);if(k.signedDistanceFromCamera>0)v=h[m]=k.point;else{var M=m-d;v=oe(0===x?o:new t.Point(u.getx(M),u.gety(M)),T,y,_-x+1,f)}}x+=b,b=y.dist(v)}var A=(_-x)/b,S=v.sub(y),E=S.mult(A)._add(y);E._add(S._unit()._perp()._mult(n*d));var C=g+Math.atan2(v.y-y.y,v.x-y.x);return w.push(E),{point:E,angle:C,path:w}}Jt.prototype.keysLength=function(){return this.boxKeys.length+this.circleKeys.length},Jt.prototype.insert=function(t,e,r,n,i){this._forEachCell(e,r,n,i,this._insertBoxCell,this.boxUid++),this.boxKeys.push(t),this.bboxes.push(e),this.bboxes.push(r),this.bboxes.push(n),this.bboxes.push(i)},Jt.prototype.insertCircle=function(t,e,r,n){this._forEachCell(e-n,r-n,e+n,r+n,this._insertCircleCell,this.circleUid++),this.circleKeys.push(t),this.circles.push(e),this.circles.push(r),this.circles.push(n)},Jt.prototype._insertBoxCell=function(t,e,r,n,i,a){this.boxCells[i].push(a)},Jt.prototype._insertCircleCell=function(t,e,r,n,i,a){this.circleCells[i].push(a)},Jt.prototype._query=function(t,e,r,n,i,a){if(r<0||t>this.width||n<0||e>this.height)return!i&&[];var o=[];if(t<=0&&e<=0&&this.width<=r&&this.height<=n){if(i)return!0;for(var s=0;s0:o},Jt.prototype._queryCircle=function(t,e,r,n,i){var a=t-r,o=t+r,s=e-r,l=e+r;if(o<0||a>this.width||l<0||s>this.height)return!n&&[];var c=[];return this._forEachCell(a,s,o,l,this._queryCellCircle,c,{hitTest:n,circle:{x:t,y:e,radius:r},seenUids:{box:{},circle:{}}},i),n?c.length>0:c},Jt.prototype.query=function(t,e,r,n,i){return this._query(t,e,r,n,!1,i)},Jt.prototype.hitTest=function(t,e,r,n,i){return this._query(t,e,r,n,!0,i)},Jt.prototype.hitTestCircle=function(t,e,r,n){return this._queryCircle(t,e,r,!0,n)},Jt.prototype._queryCell=function(t,e,r,n,i,a,o,s){var l=o.seenUids,c=this.boxCells[i];if(null!==c)for(var u=this.bboxes,f=0,h=c;f=u[d+0]&&n>=u[d+1]&&(!s||s(this.boxKeys[p]))){if(o.hitTest)return a.push(!0),!0;a.push({key:this.boxKeys[p],x1:u[d],y1:u[d+1],x2:u[d+2],y2:u[d+3]})}}}var g=this.circleCells[i];if(null!==g)for(var m=this.circles,v=0,y=g;vo*o+s*s},Jt.prototype._circleAndRectCollide=function(t,e,r,n,i,a,o){var s=(a-n)/2,l=Math.abs(t-(n+s));if(l>s+r)return!1;var c=(o-i)/2,u=Math.abs(e-(i+c));if(u>c+r)return!1;if(l<=s||u<=c)return!0;var f=l-s,h=u-c;return f*f+h*h<=r*r};var le=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function ce(t,e){for(var r=0;r=1;I--)L.push(E.path[I]);for(var P=1;P0){for(var R=L[0].clone(),F=L[0].clone(),B=1;B=M.x&&F.x<=A.x&&R.y>=M.y&&F.y<=A.y?[L]:F.xA.x||F.yA.y?[]:t.clipLine([L],M.x,M.y,A.x,A.y)}for(var N=0,j=D;N=this.screenRightBoundary||n<100||e>this.screenBottomBoundary},fe.prototype.isInsideGrid=function(t,e,r,n){return r>=0&&t=0&&e0?(this.prevPlacement&&this.prevPlacement.variableOffsets[f.crossTileID]&&this.prevPlacement.placements[f.crossTileID]&&this.prevPlacement.placements[f.crossTileID].text&&(g=this.prevPlacement.variableOffsets[f.crossTileID].anchor),this.variableOffsets[f.crossTileID]={textOffset:m,width:r,height:n,anchor:t,textBoxScale:i,prevAnchor:g},this.markUsedJustification(h,t,f,p),h.allowVerticalPlacement&&(this.markUsedOrientation(h,p,f),this.placedOrientations[f.crossTileID]=p),{shift:v,placedGlyphBoxes:y}):void 0},_e.prototype.placeLayerBucketPart=function(e,r,n){var i=this,a=e.parameters,o=a.bucket,s=a.layout,l=a.posMatrix,c=a.textLabelPlaneMatrix,u=a.labelToScreenMatrix,f=a.textPixelRatio,h=a.holdingForFade,p=a.collisionBoxArray,d=a.partiallyEvaluatedTextSize,g=a.collisionGroup,m=s.get("text-optional"),v=s.get("icon-optional"),y=s.get("text-allow-overlap"),x=s.get("icon-allow-overlap"),b="map"===s.get("text-rotation-alignment"),_="map"===s.get("text-pitch-alignment"),w="none"!==s.get("icon-text-fit"),T="viewport-y"===s.get("symbol-z-order"),k=y&&(x||!o.hasIconData()||v),M=x&&(y||!o.hasTextData()||m);!o.collisionArrays&&p&&o.deserializeCollisionBoxes(p);var A=function(e,a){if(!r[e.crossTileID])if(h)i.placements[e.crossTileID]=new ge(!1,!1,!1);else{var p,T=!1,A=!1,S=!0,E=null,C={box:null,offscreen:null},L={box:null,offscreen:null},I=null,P=null,z=0,O=0,D=0;a.textFeatureIndex?z=a.textFeatureIndex:e.useRuntimeCollisionCircles&&(z=e.featureIndex),a.verticalTextFeatureIndex&&(O=a.verticalTextFeatureIndex);var R=a.textBox;if(R){var F=function(r){var n=t.WritingMode.horizontal;if(o.allowVerticalPlacement&&!r&&i.prevPlacement){var a=i.prevPlacement.placedOrientations[e.crossTileID];a&&(i.placedOrientations[e.crossTileID]=a,i.markUsedOrientation(o,n=a,e))}return n},B=function(r,n){if(o.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&a.verticalTextBox)for(var i=0,s=o.writingModes;i0&&(N=N.filter((function(t){return t!==j.anchor}))).unshift(j.anchor)}var U=function(t,r,n){for(var a=t.x2-t.x1,s=t.y2-t.y1,c=e.textBoxScale,u=w&&!x?r:null,h={box:[],offscreen:!1},p=y?2*N.length:N.length,d=0;d=N.length,e,o,n,u);if(m&&(h=m.placedGlyphBoxes)&&h.box&&h.box.length){T=!0,E=m.shift;break}}return h};B((function(){return U(R,a.iconBox,t.WritingMode.horizontal)}),(function(){var r=a.verticalTextBox;return o.allowVerticalPlacement&&!(C&&C.box&&C.box.length)&&e.numVerticalGlyphVertices>0&&r?U(r,a.verticalIconBox,t.WritingMode.vertical):{box:null,offscreen:null}})),C&&(T=C.box,S=C.offscreen);var V=F(C&&C.box);if(!T&&i.prevPlacement){var q=i.prevPlacement.variableOffsets[e.crossTileID];q&&(i.variableOffsets[e.crossTileID]=q,i.markUsedJustification(o,q.anchor,e,V))}}else{var H=function(t,r){var n=i.collisionIndex.placeCollisionBox(t,y,f,l,g.predicate);return n&&n.box&&n.box.length&&(i.markUsedOrientation(o,r,e),i.placedOrientations[e.crossTileID]=r),n};B((function(){return H(R,t.WritingMode.horizontal)}),(function(){var r=a.verticalTextBox;return o.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&r?H(r,t.WritingMode.vertical):{box:null,offscreen:null}})),F(C&&C.box&&C.box.length)}}if(T=(p=C)&&p.box&&p.box.length>0,S=p&&p.offscreen,e.useRuntimeCollisionCircles){var G=o.text.placedSymbolArray.get(e.centerJustifiedTextSymbolIndex),Y=t.evaluateSizeForFeature(o.textSizeData,d,G),W=s.get("text-padding");I=i.collisionIndex.placeCollisionCircles(y,G,o.lineVertexArray,o.glyphOffsetArray,Y,l,c,u,n,_,g.predicate,e.collisionCircleDiameter,W),T=y||I.circles.length>0&&!I.collisionDetected,S=S&&I.offscreen}if(a.iconFeatureIndex&&(D=a.iconFeatureIndex),a.iconBox){var X=function(t){var e=w&&E?be(t,E.x,E.y,b,_,i.transform.angle):t;return i.collisionIndex.placeCollisionBox(e,x,f,l,g.predicate)};A=L&&L.box&&L.box.length&&a.verticalIconBox?(P=X(a.verticalIconBox)).box.length>0:(P=X(a.iconBox)).box.length>0,S=S&&P.offscreen}var Z=m||0===e.numHorizontalGlyphVertices&&0===e.numVerticalGlyphVertices,J=v||0===e.numIconVertices;if(Z||J?J?Z||(A=A&&T):T=A&&T:A=T=A&&T,T&&p&&p.box&&i.collisionIndex.insertCollisionBox(p.box,s.get("text-ignore-placement"),o.bucketInstanceId,L&&L.box&&O?O:z,g.ID),A&&P&&i.collisionIndex.insertCollisionBox(P.box,s.get("icon-ignore-placement"),o.bucketInstanceId,D,g.ID),I&&(T&&i.collisionIndex.insertCollisionCircles(I.circles,s.get("text-ignore-placement"),o.bucketInstanceId,z,g.ID),n)){var K=o.bucketInstanceId,Q=i.collisionCircleArrays[K];void 0===Q&&(Q=i.collisionCircleArrays[K]=new me);for(var $=0;$=0;--E){var C=S[E];A(o.symbolInstances.get(C),o.collisionArrays[C])}else for(var L=e.symbolInstanceStart;L=0&&(e.text.placedSymbolArray.get(l).crossTileID=a>=0&&l!==a?0:n.crossTileID)}},_e.prototype.markUsedOrientation=function(e,r,n){for(var i=r===t.WritingMode.horizontal||r===t.WritingMode.horizontalOnly?r:0,a=r===t.WritingMode.vertical?r:0,o=0,s=[n.leftJustifiedTextSymbolIndex,n.centerJustifiedTextSymbolIndex,n.rightJustifiedTextSymbolIndex];o0,y=i.placedOrientations[a.crossTileID],x=y===t.WritingMode.vertical,b=y===t.WritingMode.horizontal||y===t.WritingMode.horizontalOnly;if(s>0||l>0){var _=Le(m.text);d(e.text,s,x?Ie:_),d(e.text,l,b?Ie:_);var w=m.text.isHidden();[a.rightJustifiedTextSymbolIndex,a.centerJustifiedTextSymbolIndex,a.leftJustifiedTextSymbolIndex].forEach((function(t){t>=0&&(e.text.placedSymbolArray.get(t).hidden=w||x?1:0)})),a.verticalPlacedTextSymbolIndex>=0&&(e.text.placedSymbolArray.get(a.verticalPlacedTextSymbolIndex).hidden=w||b?1:0);var T=i.variableOffsets[a.crossTileID];T&&i.markUsedJustification(e,T.anchor,a,y);var k=i.placedOrientations[a.crossTileID];k&&(i.markUsedJustification(e,"left",a,k),i.markUsedOrientation(e,k,a))}if(v){var M=Le(m.icon),A=!(h&&a.verticalPlacedIconSymbolIndex&&x);a.placedIconSymbolIndex>=0&&(d(e.icon,a.numIconVertices,A?M:Ie),e.icon.placedSymbolArray.get(a.placedIconSymbolIndex).hidden=m.icon.isHidden()),a.verticalPlacedIconSymbolIndex>=0&&(d(e.icon,a.numVerticalIconVertices,A?Ie:M),e.icon.placedSymbolArray.get(a.verticalPlacedIconSymbolIndex).hidden=m.icon.isHidden())}if(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData()){var S=e.collisionArrays[n];if(S){var E=new t.Point(0,0);if(S.textBox||S.verticalTextBox){var C=!0;if(c){var L=i.variableOffsets[g];L?(E=xe(L.anchor,L.width,L.height,L.textOffset,L.textBoxScale),u&&E._rotate(f?i.transform.angle:-i.transform.angle)):C=!1}S.textBox&&we(e.textCollisionBox.collisionVertexArray,m.text.placed,!C||x,E.x,E.y),S.verticalTextBox&&we(e.textCollisionBox.collisionVertexArray,m.text.placed,!C||b,E.x,E.y)}var I=Boolean(!b&&S.verticalIconBox);S.iconBox&&we(e.iconCollisionBox.collisionVertexArray,m.icon.placed,I,h?E.x:0,h?E.y:0),S.verticalIconBox&&we(e.iconCollisionBox.collisionVertexArray,m.icon.placed,!I,h?E.x:0,h?E.y:0)}}},m=0;mt},_e.prototype.setStale=function(){this.stale=!0};var Te=Math.pow(2,25),ke=Math.pow(2,24),Me=Math.pow(2,17),Ae=Math.pow(2,16),Se=Math.pow(2,9),Ee=Math.pow(2,8),Ce=Math.pow(2,1);function Le(t){if(0===t.opacity&&!t.placed)return 0;if(1===t.opacity&&t.placed)return 4294967295;var e=t.placed?1:0,r=Math.floor(127*t.opacity);return r*Te+e*ke+r*Me+e*Ae+r*Se+e*Ee+r*Ce+e}var Ie=0,Pe=function(t){this._sortAcrossTiles="viewport-y"!==t.layout.get("symbol-z-order")&&void 0!==t.layout.get("symbol-sort-key").constantOr(1),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]};Pe.prototype.continuePlacement=function(t,e,r,n,i){for(var a=this._bucketParts;this._currentTileIndex2};this._currentPlacementIndex>=0;){var s=r[e[this._currentPlacementIndex]],l=this.placement.collisionIndex.transform.zoom;if("symbol"===s.type&&(!s.minzoom||s.minzoom<=l)&&(!s.maxzoom||s.maxzoom>l)){if(this._inProgressLayer||(this._inProgressLayer=new Pe(s)),this._inProgressLayer.continuePlacement(n[s.source],this.placement,this._showCollisionBoxes,s,o))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0},ze.prototype.commit=function(t){return this.placement.commit(t),this.placement};var Oe=512/t.EXTENT/2,De=function(t,e,r){this.tileID=t,this.indexedSymbolInstances={},this.bucketInstanceId=r;for(var n=0;nt.overscaledZ)for(var s in o){var l=o[s];l.tileID.isChildOf(t)&&l.findMatches(e.symbolInstances,t,i)}else{var c=o[t.scaledTo(Number(a)).key];c&&c.findMatches(e.symbolInstances,t,i)}}for(var u=0;u1?"@2x":"",l=t.getJSON(r.transformRequest(r.normalizeSpriteURL(e,s,".json"),t.ResourceType.SpriteJSON),(function(t,e){l=null,o||(o=t,i=e,u())})),c=t.getImage(r.transformRequest(r.normalizeSpriteURL(e,s,".png"),t.ResourceType.SpriteImage),(function(t,e){c=null,o||(o=t,a=e,u())}));function u(){if(o)n(o);else if(i&&a){var e=t.browser.getImageData(a),r={};for(var s in i){var l=i[s],c=l.width,u=l.height,f=l.x,h=l.y,p=l.sdf,d=l.pixelRatio,g=l.stretchX,m=l.stretchY,v=l.content,y=new t.RGBAImage({width:c,height:u});t.RGBAImage.copy(e,y,{x:f,y:h},{x:0,y:0},{width:c,height:u}),r[s]={data:y,pixelRatio:d,sdf:p,stretchX:g,stretchY:m,content:v}}n(null,r)}}return{cancel:function(){l&&(l.cancel(),l=null),c&&(c.cancel(),c=null)}}}(e,this.map._requestManager,(function(e,n){if(r._spriteRequest=null,e)r.fire(new t.ErrorEvent(e));else if(n)for(var i in n)r.imageManager.addImage(i,n[i]);r.imageManager.setLoaded(!0),r._availableImages=r.imageManager.listImages(),r.dispatcher.broadcast("setImages",r._availableImages),r.fire(new t.Event("data",{dataType:"style"}))}))},r.prototype._validateLayer=function(e){var r=this.sourceCaches[e.source];if(r){var n=e.sourceLayer;if(n){var i=r.getSource();("geojson"===i.type||i.vectorLayerIds&&-1===i.vectorLayerIds.indexOf(n))&&this.fire(new t.ErrorEvent(new Error('Source layer "'+n+'" does not exist on source "'+i.id+'" as specified by style layer "'+e.id+'"')))}}},r.prototype.loaded=function(){if(!this._loaded)return!1;if(Object.keys(this._updatedSources).length)return!1;for(var t in this.sourceCaches)if(!this.sourceCaches[t].loaded())return!1;return!!this.imageManager.isLoaded()},r.prototype._serializeLayers=function(t){for(var e=[],r=0,n=t;r0)throw new Error("Unimplemented: "+i.map((function(t){return t.command})).join(", ")+".");return n.forEach((function(t){"setTransition"!==t.command&&r[t.command].apply(r,t.args)})),this.stylesheet=e,!0},r.prototype.addImage=function(e,r){if(this.getImage(e))return this.fire(new t.ErrorEvent(new Error("An image with this name already exists.")));this.imageManager.addImage(e,r),this._availableImages=this.imageManager.listImages(),this._changedImages[e]=!0,this._changed=!0,this.fire(new t.Event("data",{dataType:"style"}))},r.prototype.updateImage=function(t,e){this.imageManager.updateImage(t,e)},r.prototype.getImage=function(t){return this.imageManager.getImage(t)},r.prototype.removeImage=function(e){if(!this.getImage(e))return this.fire(new t.ErrorEvent(new Error("No image with this name exists.")));this.imageManager.removeImage(e),this._availableImages=this.imageManager.listImages(),this._changedImages[e]=!0,this._changed=!0,this.fire(new t.Event("data",{dataType:"style"}))},r.prototype.listImages=function(){return this._checkLoaded(),this.imageManager.listImages()},r.prototype.addSource=function(e,r,n){var i=this;if(void 0===n&&(n={}),this._checkLoaded(),void 0!==this.sourceCaches[e])throw new Error("There is already a source with this ID");if(!r.type)throw new Error("The type property must be defined, but the only the following properties were given: "+Object.keys(r).join(", ")+".");if(!(["vector","raster","geojson","video","image"].indexOf(r.type)>=0&&this._validate(t.validateStyle.source,"sources."+e,r,null,n))){this.map&&this.map._collectResourceTiming&&(r.collectResourceTiming=!0);var a=this.sourceCaches[e]=new Lt(e,r,this.dispatcher);a.style=this,a.setEventedParent(this,(function(){return{isSourceLoaded:i.loaded(),source:a.serialize(),sourceId:e}})),a.onAdd(this.map),this._changed=!0}},r.prototype.removeSource=function(e){if(this._checkLoaded(),void 0===this.sourceCaches[e])throw new Error("There is no source with this ID");for(var r in this._layers)if(this._layers[r].source===e)return this.fire(new t.ErrorEvent(new Error('Source "'+e+'" cannot be removed while layer "'+r+'" is using it.')));var n=this.sourceCaches[e];delete this.sourceCaches[e],delete this._updatedSources[e],n.fire(new t.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:e})),n.setEventedParent(null),n.clearTiles(),n.onRemove&&n.onRemove(this.map),this._changed=!0},r.prototype.setGeoJSONSourceData=function(t,e){this._checkLoaded(),this.sourceCaches[t].getSource().setData(e),this._changed=!0},r.prototype.getSource=function(t){return this.sourceCaches[t]&&this.sourceCaches[t].getSource()},r.prototype.addLayer=function(e,r,n){void 0===n&&(n={}),this._checkLoaded();var i=e.id;if(this.getLayer(i))this.fire(new t.ErrorEvent(new Error('Layer with id "'+i+'" already exists on this map')));else{var a;if("custom"===e.type){if(Ne(this,t.validateCustomStyleLayer(e)))return;a=t.createStyleLayer(e)}else{if("object"==typeof e.source&&(this.addSource(i,e.source),e=t.clone$1(e),e=t.extend(e,{source:i})),this._validate(t.validateStyle.layer,"layers."+i,e,{arrayIndex:-1},n))return;a=t.createStyleLayer(e),this._validateLayer(a),a.setEventedParent(this,{layer:{id:i}}),this._serializedLayers[a.id]=a.serialize()}var o=r?this._order.indexOf(r):this._order.length;if(r&&-1===o)this.fire(new t.ErrorEvent(new Error('Layer with id "'+r+'" does not exist on this map.')));else{if(this._order.splice(o,0,i),this._layerOrderChanged=!0,this._layers[i]=a,this._removedLayers[i]&&a.source&&"custom"!==a.type){var s=this._removedLayers[i];delete this._removedLayers[i],s.type!==a.type?this._updatedSources[a.source]="clear":(this._updatedSources[a.source]="reload",this.sourceCaches[a.source].pause())}this._updateLayer(a),a.onAdd&&a.onAdd(this.map)}}},r.prototype.moveLayer=function(e,r){if(this._checkLoaded(),this._changed=!0,this._layers[e]){if(e!==r){var n=this._order.indexOf(e);this._order.splice(n,1);var i=r?this._order.indexOf(r):this._order.length;r&&-1===i?this.fire(new t.ErrorEvent(new Error('Layer with id "'+r+'" does not exist on this map.'))):(this._order.splice(i,0,e),this._layerOrderChanged=!0)}}else this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be moved.")))},r.prototype.removeLayer=function(e){this._checkLoaded();var r=this._layers[e];if(r){r.setEventedParent(null);var n=this._order.indexOf(e);this._order.splice(n,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[e]=r,delete this._layers[e],delete this._serializedLayers[e],delete this._updatedLayers[e],delete this._updatedPaintProps[e],r.onRemove&&r.onRemove(this.map)}else this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be removed.")))},r.prototype.getLayer=function(t){return this._layers[t]},r.prototype.hasLayer=function(t){return t in this._layers},r.prototype.setLayerZoomRange=function(e,r,n){this._checkLoaded();var i=this.getLayer(e);i?i.minzoom===r&&i.maxzoom===n||(null!=r&&(i.minzoom=r),null!=n&&(i.maxzoom=n),this._updateLayer(i)):this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot have zoom extent.")))},r.prototype.setFilter=function(e,r,n){void 0===n&&(n={}),this._checkLoaded();var i=this.getLayer(e);if(i){if(!t.deepEqual(i.filter,r))return null==r?(i.filter=void 0,void this._updateLayer(i)):void(this._validate(t.validateStyle.filter,"layers."+i.id+".filter",r,null,n)||(i.filter=t.clone$1(r),this._updateLayer(i)))}else this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be filtered.")))},r.prototype.getFilter=function(e){return t.clone$1(this.getLayer(e).filter)},r.prototype.setLayoutProperty=function(e,r,n,i){void 0===i&&(i={}),this._checkLoaded();var a=this.getLayer(e);a?t.deepEqual(a.getLayoutProperty(r),n)||(a.setLayoutProperty(r,n,i),this._updateLayer(a)):this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be styled.")))},r.prototype.getLayoutProperty=function(e,r){var n=this.getLayer(e);if(n)return n.getLayoutProperty(r);this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style.")))},r.prototype.setPaintProperty=function(e,r,n,i){void 0===i&&(i={}),this._checkLoaded();var a=this.getLayer(e);a?t.deepEqual(a.getPaintProperty(r),n)||(a.setPaintProperty(r,n,i)&&this._updateLayer(a),this._changed=!0,this._updatedPaintProps[e]=!0):this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be styled.")))},r.prototype.getPaintProperty=function(t,e){return this.getLayer(t).getPaintProperty(e)},r.prototype.setFeatureState=function(e,r){this._checkLoaded();var n=e.source,i=e.sourceLayer,a=this.sourceCaches[n];if(void 0!==a){var o=a.getSource().type;"geojson"===o&&i?this.fire(new t.ErrorEvent(new Error("GeoJSON sources cannot have a sourceLayer parameter."))):"vector"!==o||i?(void 0===e.id&&this.fire(new t.ErrorEvent(new Error("The feature id parameter must be provided."))),a.setFeatureState(i,e.id,r)):this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new t.ErrorEvent(new Error("The source '"+n+"' does not exist in the map's style.")))},r.prototype.removeFeatureState=function(e,r){this._checkLoaded();var n=e.source,i=this.sourceCaches[n];if(void 0!==i){var a=i.getSource().type,o="vector"===a?e.sourceLayer:void 0;"vector"!==a||o?r&&"string"!=typeof e.id&&"number"!=typeof e.id?this.fire(new t.ErrorEvent(new Error("A feature id is requred to remove its specific state property."))):i.removeFeatureState(o,e.id,r):this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new t.ErrorEvent(new Error("The source '"+n+"' does not exist in the map's style.")))},r.prototype.getFeatureState=function(e){this._checkLoaded();var r=e.source,n=e.sourceLayer,i=this.sourceCaches[r];if(void 0!==i){if("vector"!==i.getSource().type||n)return void 0===e.id&&this.fire(new t.ErrorEvent(new Error("The feature id parameter must be provided."))),i.getFeatureState(n,e.id);this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new t.ErrorEvent(new Error("The source '"+r+"' does not exist in the map's style.")))},r.prototype.getTransition=function(){return t.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)},r.prototype.serialize=function(){return t.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,sources:t.mapObject(this.sourceCaches,(function(t){return t.serialize()})),layers:this._serializeLayers(this._order)},(function(t){return void 0!==t}))},r.prototype._updateLayer=function(t){this._updatedLayers[t.id]=!0,t.source&&!this._updatedSources[t.source]&&"raster"!==this.sourceCaches[t.source].getSource().type&&(this._updatedSources[t.source]="reload",this.sourceCaches[t.source].pause()),this._changed=!0},r.prototype._flattenAndSortRenderedFeatures=function(t){for(var e=this,r=function(t){return"fill-extrusion"===e._layers[t].type},n={},i=[],a=this._order.length-1;a>=0;a--){var o=this._order[a];if(r(o)){n[o]=a;for(var s=0,l=t;s=0;p--){var d=this._order[p];if(r(d))for(var g=i.length-1;g>=0;g--){var m=i[g].feature;if(n[m.layer.id] 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}","attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,0.0,1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}"),$e=vr("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}","attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"),tr=vr("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}","attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,0,1);}"),er=vr("#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_FragColor=color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);}"),rr=vr("varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}"),nr=vr("uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}"),ir=vr("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}"),ar=vr("varying vec4 v_color;void main() {gl_FragColor=v_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec4 v_color;\n#pragma mapbox: define highp float base\n#pragma mapbox: define highp float height\n#pragma mapbox: define highp vec4 color\nvoid main() {\n#pragma mapbox: initialize highp float base\n#pragma mapbox: initialize highp float height\n#pragma mapbox: initialize highp vec4 color\nvec3 normal=a_normal_ed.xyz;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}"),or=vr("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0\n? a_pos\n: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}"),sr=vr("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform float u_maxzoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggeration=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/ pow(2.0,(u_zoom-u_maxzoom)*exaggeration+19.2562-u_zoom);gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),lr=vr("uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;\n#define PI 3.141592653589793\nvoid main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}"),cr=vr("uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}"),ur=vr("uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp float v_lineprogress;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,vec2(v_lineprogress,0.5));gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define MAX_LINE_DISTANCE 32767.0\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_lineprogress;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_lineprogress=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0/MAX_LINE_DISTANCE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}"),fr=vr("uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}"),hr=vr("uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}"),pr=vr("uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}"),dr=vr("uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),0.0,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));}"),gr=vr("#define SDF_PX 8.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}"),mr=vr("#define SDF_PX 8.0\n#define SDF 1.0\n#define ICON 0.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}");function vr(t,e){var r=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,n={};return{fragmentSource:t=t.replace(r,(function(t,e,r,i,a){return n[a]=!0,"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nvarying "+r+" "+i+" "+a+";\n#else\nuniform "+r+" "+i+" u_"+a+";\n#endif\n":"\n#ifdef HAS_UNIFORM_u_"+a+"\n "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n"})),vertexSource:e=e.replace(r,(function(t,e,r,i,a){var o="float"===i?"vec2":"vec4",s=a.match(/color/)?"color":o;return n[a]?"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nuniform lowp float u_"+a+"_t;\nattribute "+r+" "+o+" a_"+a+";\nvarying "+r+" "+i+" "+a+";\n#else\nuniform "+r+" "+i+" u_"+a+";\n#endif\n":"vec4"===s?"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+a+" = a_"+a+";\n#else\n "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n":"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+a+" = unpack_mix_"+s+"(a_"+a+", u_"+a+"_t);\n#else\n "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n":"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nuniform lowp float u_"+a+"_t;\nattribute "+r+" "+o+" a_"+a+";\n#else\nuniform "+r+" "+i+" u_"+a+";\n#endif\n":"vec4"===s?"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+r+" "+i+" "+a+" = a_"+a+";\n#else\n "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n":"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+r+" "+i+" "+a+" = unpack_mix_"+s+"(a_"+a+", u_"+a+"_t);\n#else\n "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n"}))}}var yr=Object.freeze({__proto__:null,prelude:Ge,background:Ye,backgroundPattern:We,circle:Xe,clippingMask:Ze,heatmap:Je,heatmapTexture:Ke,collisionBox:Qe,collisionCircle:$e,debug:tr,fill:er,fillOutline:rr,fillOutlinePattern:nr,fillPattern:ir,fillExtrusion:ar,fillExtrusionPattern:or,hillshadePrepare:sr,hillshade:lr,line:cr,lineGradient:ur,linePattern:fr,lineSDF:hr,raster:pr,symbolIcon:dr,symbolSDF:gr,symbolTextAndIcon:mr}),xr=function(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null};xr.prototype.bind=function(t,e,r,n,i,a,o,s){this.context=t;for(var l=this.boundPaintVertexBuffers.length!==n.length,c=0;!l&&c>16,s>>16],u_pixel_coord_lower:[65535&o,65535&s]}}br.prototype.draw=function(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,g){var m,v=t.gl;if(!this.failedToCreate){for(var y in t.program.set(this.program),t.setDepthMode(r),t.setStencilMode(n),t.setColorMode(i),t.setCullFace(a),this.fixedUniforms)this.fixedUniforms[y].set(o[y]);p&&p.setUniforms(t,this.binderUniforms,f,{zoom:h});for(var x=(m={},m[v.LINES]=2,m[v.TRIANGLES]=3,m[v.LINE_STRIP]=1,m)[e],b=0,_=u.get();b<_.length;b+=1){var w=_[b],T=w.vaos||(w.vaos={});(T[s]||(T[s]=new xr)).bind(t,this,l,p?p.getPaintVertexBuffers():[],c,w.vertexOffset,d,g),v.drawElements(e,w.primitiveLength*x,v.UNSIGNED_SHORT,w.primitiveOffset*x*2)}}};var wr=function(e,r,n,i){var a=r.style.light,o=a.properties.get("position"),s=[o.x,o.y,o.z],l=t.create$1();"viewport"===a.properties.get("anchor")&&t.fromRotation(l,-r.transform.angle),t.transformMat3(s,s,l);var c=a.properties.get("color");return{u_matrix:e,u_lightpos:s,u_lightintensity:a.properties.get("intensity"),u_lightcolor:[c.r,c.g,c.b],u_vertical_gradient:+n,u_opacity:i}},Tr=function(e,r,n,i,a,o,s){return t.extend(wr(e,r,n,i),_r(o,r,s),{u_height_factor:-Math.pow(2,a.overscaledZ)/s.tileSize/8})},kr=function(t){return{u_matrix:t}},Mr=function(e,r,n,i){return t.extend(kr(e),_r(n,r,i))},Ar=function(t,e){return{u_matrix:t,u_world:e}},Sr=function(e,r,n,i,a){return t.extend(Mr(e,r,n,i),{u_world:a})},Er=function(e,r,n,i){var a,o,s=e.transform;if("map"===i.paint.get("circle-pitch-alignment")){var l=he(n,1,s.zoom);a=!0,o=[l,l]}else a=!1,o=s.pixelsToGLUnits;return{u_camera_to_center_distance:s.cameraToCenterDistance,u_scale_with_map:+("map"===i.paint.get("circle-pitch-scale")),u_matrix:e.translatePosMatrix(r.posMatrix,n,i.paint.get("circle-translate"),i.paint.get("circle-translate-anchor")),u_pitch_with_map:+a,u_device_pixel_ratio:t.browser.devicePixelRatio,u_extrude_scale:o}},Cr=function(t,e,r){var n=he(r,1,e.zoom),i=Math.pow(2,e.zoom-r.tileID.overscaledZ),a=r.tileID.overscaleFactor();return{u_matrix:t,u_camera_to_center_distance:e.cameraToCenterDistance,u_pixels_to_tile_units:n,u_extrude_scale:[e.pixelsToGLUnits[0]/(n*i),e.pixelsToGLUnits[1]/(n*i)],u_overscale_factor:a}},Lr=function(t,e,r){return{u_matrix:t,u_inv_matrix:e,u_camera_to_center_distance:r.cameraToCenterDistance,u_viewport_size:[r.width,r.height]}},Ir=function(t,e,r){return void 0===r&&(r=1),{u_matrix:t,u_color:e,u_overlay:0,u_overlay_scale:r}},Pr=function(t){return{u_matrix:t}},zr=function(t,e,r,n){return{u_matrix:t,u_extrude_scale:he(e,1,r),u_intensity:n}},Or=function(e,r,n){var i=e.transform;return{u_matrix:Nr(e,r,n),u_ratio:1/he(r,1,i.zoom),u_device_pixel_ratio:t.browser.devicePixelRatio,u_units_to_pixels:[1/i.pixelsToGLUnits[0],1/i.pixelsToGLUnits[1]]}},Dr=function(e,r,n){return t.extend(Or(e,r,n),{u_image:0})},Rr=function(e,r,n,i){var a=e.transform,o=Br(r,a);return{u_matrix:Nr(e,r,n),u_texsize:r.imageAtlasTexture.size,u_ratio:1/he(r,1,a.zoom),u_device_pixel_ratio:t.browser.devicePixelRatio,u_image:0,u_scale:[o,i.fromScale,i.toScale],u_fade:i.t,u_units_to_pixels:[1/a.pixelsToGLUnits[0],1/a.pixelsToGLUnits[1]]}},Fr=function(e,r,n,i,a){var o=e.lineAtlas,s=Br(r,e.transform),l="round"===n.layout.get("line-cap"),c=o.getDash(i.from,l),u=o.getDash(i.to,l),f=c.width*a.fromScale,h=u.width*a.toScale;return t.extend(Or(e,r,n),{u_patternscale_a:[s/f,-c.height/2],u_patternscale_b:[s/h,-u.height/2],u_sdfgamma:o.width/(256*Math.min(f,h)*t.browser.devicePixelRatio)/2,u_image:0,u_tex_y_a:c.y,u_tex_y_b:u.y,u_mix:a.t})};function Br(t,e){return 1/he(t,1,e.tileZoom)}function Nr(t,e,r){return t.translatePosMatrix(e.tileID.posMatrix,e,r.paint.get("line-translate"),r.paint.get("line-translate-anchor"))}var jr=function(t,e,r,n,i){return{u_matrix:t,u_tl_parent:e,u_scale_parent:r,u_buffer_scale:1,u_fade_t:n.mix,u_opacity:n.opacity*i.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:i.paint.get("raster-brightness-min"),u_brightness_high:i.paint.get("raster-brightness-max"),u_saturation_factor:(o=i.paint.get("raster-saturation"),o>0?1-1/(1.001-o):-o),u_contrast_factor:(a=i.paint.get("raster-contrast"),a>0?1/(1-a):1+a),u_spin_weights:Ur(i.paint.get("raster-hue-rotate"))};var a,o};function Ur(t){t*=Math.PI/180;var e=Math.sin(t),r=Math.cos(t);return[(2*r+1)/3,(-Math.sqrt(3)*e-r+1)/3,(Math.sqrt(3)*e-r+1)/3]}var Vr,qr=function(t,e,r,n,i,a,o,s,l,c){var u=i.transform;return{u_is_size_zoom_constant:+("constant"===t||"source"===t),u_is_size_feature_constant:+("constant"===t||"camera"===t),u_size_t:e?e.uSizeT:0,u_size:e?e.uSize:0,u_camera_to_center_distance:u.cameraToCenterDistance,u_pitch:u.pitch/360*2*Math.PI,u_rotate_symbol:+r,u_aspect_ratio:u.width/u.height,u_fade_change:i.options.fadeDuration?i.symbolFadeChange:1,u_matrix:a,u_label_plane_matrix:o,u_coord_matrix:s,u_is_text:+l,u_pitch_with_map:+n,u_texsize:c,u_texture:0}},Hr=function(e,r,n,i,a,o,s,l,c,u,f){var h=a.transform;return t.extend(qr(e,r,n,i,a,o,s,l,c,u),{u_gamma_scale:i?Math.cos(h._pitch)*h.cameraToCenterDistance:1,u_device_pixel_ratio:t.browser.devicePixelRatio,u_is_halo:+f})},Gr=function(e,r,n,i,a,o,s,l,c,u){return t.extend(Hr(e,r,n,i,a,o,s,l,!0,c,!0),{u_texsize_icon:u,u_texture_icon:1})},Yr=function(t,e,r){return{u_matrix:t,u_opacity:e,u_color:r}},Wr=function(e,r,n,i,a,o){return t.extend(function(t,e,r,n){var i=r.imageManager.getPattern(t.from.toString()),a=r.imageManager.getPattern(t.to.toString()),o=r.imageManager.getPixelSize(),s=o.width,l=o.height,c=Math.pow(2,n.tileID.overscaledZ),u=n.tileSize*Math.pow(2,r.transform.tileZoom)/c,f=u*(n.tileID.canonical.x+n.tileID.wrap*c),h=u*n.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:i.tl,u_pattern_br_a:i.br,u_pattern_tl_b:a.tl,u_pattern_br_b:a.br,u_texsize:[s,l],u_mix:e.t,u_pattern_size_a:i.displaySize,u_pattern_size_b:a.displaySize,u_scale_a:e.fromScale,u_scale_b:e.toScale,u_tile_units_to_pixels:1/he(n,1,r.transform.tileZoom),u_pixel_coord_upper:[f>>16,h>>16],u_pixel_coord_lower:[65535&f,65535&h]}}(i,o,n,a),{u_matrix:e,u_opacity:r})},Xr={fillExtrusion:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_lightpos:new t.Uniform3f(e,r.u_lightpos),u_lightintensity:new t.Uniform1f(e,r.u_lightintensity),u_lightcolor:new t.Uniform3f(e,r.u_lightcolor),u_vertical_gradient:new t.Uniform1f(e,r.u_vertical_gradient),u_opacity:new t.Uniform1f(e,r.u_opacity)}},fillExtrusionPattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_lightpos:new t.Uniform3f(e,r.u_lightpos),u_lightintensity:new t.Uniform1f(e,r.u_lightintensity),u_lightcolor:new t.Uniform3f(e,r.u_lightcolor),u_vertical_gradient:new t.Uniform1f(e,r.u_vertical_gradient),u_height_factor:new t.Uniform1f(e,r.u_height_factor),u_image:new t.Uniform1i(e,r.u_image),u_texsize:new t.Uniform2f(e,r.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,r.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,r.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,r.u_scale),u_fade:new t.Uniform1f(e,r.u_fade),u_opacity:new t.Uniform1f(e,r.u_opacity)}},fill:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix)}},fillPattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_image:new t.Uniform1i(e,r.u_image),u_texsize:new t.Uniform2f(e,r.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,r.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,r.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,r.u_scale),u_fade:new t.Uniform1f(e,r.u_fade)}},fillOutline:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_world:new t.Uniform2f(e,r.u_world)}},fillOutlinePattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_world:new t.Uniform2f(e,r.u_world),u_image:new t.Uniform1i(e,r.u_image),u_texsize:new t.Uniform2f(e,r.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,r.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,r.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,r.u_scale),u_fade:new t.Uniform1f(e,r.u_fade)}},circle:function(e,r){return{u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_scale_with_map:new t.Uniform1i(e,r.u_scale_with_map),u_pitch_with_map:new t.Uniform1i(e,r.u_pitch_with_map),u_extrude_scale:new t.Uniform2f(e,r.u_extrude_scale),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_matrix:new t.UniformMatrix4f(e,r.u_matrix)}},collisionBox:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_pixels_to_tile_units:new t.Uniform1f(e,r.u_pixels_to_tile_units),u_extrude_scale:new t.Uniform2f(e,r.u_extrude_scale),u_overscale_factor:new t.Uniform1f(e,r.u_overscale_factor)}},collisionCircle:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_inv_matrix:new t.UniformMatrix4f(e,r.u_inv_matrix),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_viewport_size:new t.Uniform2f(e,r.u_viewport_size)}},debug:function(e,r){return{u_color:new t.UniformColor(e,r.u_color),u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_overlay:new t.Uniform1i(e,r.u_overlay),u_overlay_scale:new t.Uniform1f(e,r.u_overlay_scale)}},clippingMask:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix)}},heatmap:function(e,r){return{u_extrude_scale:new t.Uniform1f(e,r.u_extrude_scale),u_intensity:new t.Uniform1f(e,r.u_intensity),u_matrix:new t.UniformMatrix4f(e,r.u_matrix)}},heatmapTexture:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_world:new t.Uniform2f(e,r.u_world),u_image:new t.Uniform1i(e,r.u_image),u_color_ramp:new t.Uniform1i(e,r.u_color_ramp),u_opacity:new t.Uniform1f(e,r.u_opacity)}},hillshade:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_image:new t.Uniform1i(e,r.u_image),u_latrange:new t.Uniform2f(e,r.u_latrange),u_light:new t.Uniform2f(e,r.u_light),u_shadow:new t.UniformColor(e,r.u_shadow),u_highlight:new t.UniformColor(e,r.u_highlight),u_accent:new t.UniformColor(e,r.u_accent)}},hillshadePrepare:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_image:new t.Uniform1i(e,r.u_image),u_dimension:new t.Uniform2f(e,r.u_dimension),u_zoom:new t.Uniform1f(e,r.u_zoom),u_maxzoom:new t.Uniform1f(e,r.u_maxzoom),u_unpack:new t.Uniform4f(e,r.u_unpack)}},line:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_ratio:new t.Uniform1f(e,r.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,r.u_units_to_pixels)}},lineGradient:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_ratio:new t.Uniform1f(e,r.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,r.u_units_to_pixels),u_image:new t.Uniform1i(e,r.u_image)}},linePattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_texsize:new t.Uniform2f(e,r.u_texsize),u_ratio:new t.Uniform1f(e,r.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_image:new t.Uniform1i(e,r.u_image),u_units_to_pixels:new t.Uniform2f(e,r.u_units_to_pixels),u_scale:new t.Uniform3f(e,r.u_scale),u_fade:new t.Uniform1f(e,r.u_fade)}},lineSDF:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_ratio:new t.Uniform1f(e,r.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,r.u_units_to_pixels),u_patternscale_a:new t.Uniform2f(e,r.u_patternscale_a),u_patternscale_b:new t.Uniform2f(e,r.u_patternscale_b),u_sdfgamma:new t.Uniform1f(e,r.u_sdfgamma),u_image:new t.Uniform1i(e,r.u_image),u_tex_y_a:new t.Uniform1f(e,r.u_tex_y_a),u_tex_y_b:new t.Uniform1f(e,r.u_tex_y_b),u_mix:new t.Uniform1f(e,r.u_mix)}},raster:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_tl_parent:new t.Uniform2f(e,r.u_tl_parent),u_scale_parent:new t.Uniform1f(e,r.u_scale_parent),u_buffer_scale:new t.Uniform1f(e,r.u_buffer_scale),u_fade_t:new t.Uniform1f(e,r.u_fade_t),u_opacity:new t.Uniform1f(e,r.u_opacity),u_image0:new t.Uniform1i(e,r.u_image0),u_image1:new t.Uniform1i(e,r.u_image1),u_brightness_low:new t.Uniform1f(e,r.u_brightness_low),u_brightness_high:new t.Uniform1f(e,r.u_brightness_high),u_saturation_factor:new t.Uniform1f(e,r.u_saturation_factor),u_contrast_factor:new t.Uniform1f(e,r.u_contrast_factor),u_spin_weights:new t.Uniform3f(e,r.u_spin_weights)}},symbolIcon:function(e,r){return{u_is_size_zoom_constant:new t.Uniform1i(e,r.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,r.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,r.u_size_t),u_size:new t.Uniform1f(e,r.u_size),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,r.u_pitch),u_rotate_symbol:new t.Uniform1i(e,r.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,r.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,r.u_fade_change),u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,r.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,r.u_coord_matrix),u_is_text:new t.Uniform1i(e,r.u_is_text),u_pitch_with_map:new t.Uniform1i(e,r.u_pitch_with_map),u_texsize:new t.Uniform2f(e,r.u_texsize),u_texture:new t.Uniform1i(e,r.u_texture)}},symbolSDF:function(e,r){return{u_is_size_zoom_constant:new t.Uniform1i(e,r.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,r.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,r.u_size_t),u_size:new t.Uniform1f(e,r.u_size),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,r.u_pitch),u_rotate_symbol:new t.Uniform1i(e,r.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,r.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,r.u_fade_change),u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,r.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,r.u_coord_matrix),u_is_text:new t.Uniform1i(e,r.u_is_text),u_pitch_with_map:new t.Uniform1i(e,r.u_pitch_with_map),u_texsize:new t.Uniform2f(e,r.u_texsize),u_texture:new t.Uniform1i(e,r.u_texture),u_gamma_scale:new t.Uniform1f(e,r.u_gamma_scale),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_is_halo:new t.Uniform1i(e,r.u_is_halo)}},symbolTextAndIcon:function(e,r){return{u_is_size_zoom_constant:new t.Uniform1i(e,r.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,r.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,r.u_size_t),u_size:new t.Uniform1f(e,r.u_size),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,r.u_pitch),u_rotate_symbol:new t.Uniform1i(e,r.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,r.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,r.u_fade_change),u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,r.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,r.u_coord_matrix),u_is_text:new t.Uniform1i(e,r.u_is_text),u_pitch_with_map:new t.Uniform1i(e,r.u_pitch_with_map),u_texsize:new t.Uniform2f(e,r.u_texsize),u_texsize_icon:new t.Uniform2f(e,r.u_texsize_icon),u_texture:new t.Uniform1i(e,r.u_texture),u_texture_icon:new t.Uniform1i(e,r.u_texture_icon),u_gamma_scale:new t.Uniform1f(e,r.u_gamma_scale),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_is_halo:new t.Uniform1i(e,r.u_is_halo)}},background:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_opacity:new t.Uniform1f(e,r.u_opacity),u_color:new t.UniformColor(e,r.u_color)}},backgroundPattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_opacity:new t.Uniform1f(e,r.u_opacity),u_image:new t.Uniform1i(e,r.u_image),u_pattern_tl_a:new t.Uniform2f(e,r.u_pattern_tl_a),u_pattern_br_a:new t.Uniform2f(e,r.u_pattern_br_a),u_pattern_tl_b:new t.Uniform2f(e,r.u_pattern_tl_b),u_pattern_br_b:new t.Uniform2f(e,r.u_pattern_br_b),u_texsize:new t.Uniform2f(e,r.u_texsize),u_mix:new t.Uniform1f(e,r.u_mix),u_pattern_size_a:new t.Uniform2f(e,r.u_pattern_size_a),u_pattern_size_b:new t.Uniform2f(e,r.u_pattern_size_b),u_scale_a:new t.Uniform1f(e,r.u_scale_a),u_scale_b:new t.Uniform1f(e,r.u_scale_b),u_pixel_coord_upper:new t.Uniform2f(e,r.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,r.u_pixel_coord_lower),u_tile_units_to_pixels:new t.Uniform1f(e,r.u_tile_units_to_pixels)}}};function Zr(e,r,n,i,a,o,s){for(var l=e.context,c=l.gl,u=e.useProgram("collisionBox"),f=[],h=0,p=0,d=0;d0){var _=t.create(),w=y;t.mul(_,v.placementInvProjMatrix,e.transform.glCoordMatrix),t.mul(_,_,v.placementViewportMatrix),f.push({circleArray:b,circleOffset:p,transform:w,invTransform:_}),p=h+=b.length/4}x&&u.draw(l,c.LINES,Mt.disabled,At.disabled,e.colorModeForRenderPass(),Et.disabled,Cr(y,e.transform,m),n.id,x.layoutVertexBuffer,x.indexBuffer,x.segments,null,e.transform.zoom,null,null,x.collisionVertexBuffer)}}if(s&&f.length){var T=e.useProgram("collisionCircle"),k=new t.StructArrayLayout2f1f2i16;k.resize(4*h),k._trim();for(var M=0,A=0,S=f;A=0&&(g[v.associatedIconIndex]={shiftedAnchor:k,angle:M})}else ce(v.numGlyphs,p)}if(f){d.clear();for(var S=e.icon.placedSymbolArray,E=0;E0){var s=t.browser.now(),l=(s-e.timeAdded)/o,c=r?(s-r.timeAdded)/o:-1,u=n.getSource(),f=a.coveringZoomLevel({tileSize:u.tileSize,roundZoom:u.roundZoom}),h=!r||Math.abs(r.tileID.overscaledZ-f)>Math.abs(e.tileID.overscaledZ-f),p=h&&e.refreshedUponExpiration?1:t.clamp(h?l:1-c,0,1);return e.refreshedUponExpiration&&l>=1&&(e.refreshedUponExpiration=!1),r?{opacity:1,mix:1-p}:{opacity:p,mix:0}}return{opacity:1,mix:0}}var ln=new t.Color(1,0,0,1),cn=new t.Color(0,1,0,1),un=new t.Color(0,0,1,1),fn=new t.Color(1,0,1,1),hn=new t.Color(0,1,1,1);function pn(t,e,r,n){gn(t,0,e+r/2,t.transform.width,r,n)}function dn(t,e,r,n){gn(t,e-r/2,0,r,t.transform.height,n)}function gn(e,r,n,i,a,o){var s=e.context,l=s.gl;l.enable(l.SCISSOR_TEST),l.scissor(r*t.browser.devicePixelRatio,n*t.browser.devicePixelRatio,i*t.browser.devicePixelRatio,a*t.browser.devicePixelRatio),s.clear({color:o}),l.disable(l.SCISSOR_TEST)}function mn(e,r,n){var i=e.context,a=i.gl,o=n.posMatrix,s=e.useProgram("debug"),l=Mt.disabled,c=At.disabled,u=e.colorModeForRenderPass();i.activeTexture.set(a.TEXTURE0),e.emptyTexture.bind(a.LINEAR,a.CLAMP_TO_EDGE),s.draw(i,a.LINE_STRIP,l,c,u,Et.disabled,Ir(o,t.Color.red),"$debug",e.debugBuffer,e.tileBorderIndexBuffer,e.debugSegments);var f=r.getTileByID(n.key).latestRawTileData,h=Math.floor((f&&f.byteLength||0)/1024),p=r.getTile(n).tileSize,d=512/Math.min(p,512)*(n.overscaledZ/e.transform.zoom)*.5,g=n.canonical.toString();n.overscaledZ!==n.canonical.z&&(g+=" => "+n.overscaledZ),function(t,e){t.initDebugOverlayCanvas();var r=t.debugOverlayCanvas,n=t.context.gl,i=t.debugOverlayCanvas.getContext("2d");i.clearRect(0,0,r.width,r.height),i.shadowColor="white",i.shadowBlur=2,i.lineWidth=1.5,i.strokeStyle="white",i.textBaseline="top",i.font="bold 36px Open Sans, sans-serif",i.fillText(e,5,5),i.strokeText(e,5,5),t.debugOverlayTexture.update(r),t.debugOverlayTexture.bind(n.LINEAR,n.CLAMP_TO_EDGE)}(e,g+" "+h+"kb"),s.draw(i,a.TRIANGLES,l,c,St.alphaBlended,Et.disabled,Ir(o,t.Color.transparent,d),"$debug",e.debugBuffer,e.quadTriangleIndexBuffer,e.debugSegments)}var vn={symbol:function(e,r,n,i,a){if("translucent"===e.renderPass){var o=At.disabled,s=e.colorModeForRenderPass();n.layout.get("text-variable-anchor")&&function(e,r,n,i,a,o,s){for(var l=r.transform,c="map"===a,u="map"===o,f=0,h=e;f256&&this.clearStencil(),r.setColorMode(St.disabled),r.setDepthMode(Mt.disabled);var i=this.useProgram("clippingMask");this._tileClippingMaskIDs={};for(var a=0,o=e;a256&&this.clearStencil();var t=this.nextStencilID++,e=this.context.gl;return new At({func:e.NOTEQUAL,mask:255},t,255,e.KEEP,e.KEEP,e.REPLACE)},yn.prototype.stencilModeForClipping=function(t){var e=this.context.gl;return new At({func:e.EQUAL,mask:255},this._tileClippingMaskIDs[t.key],0,e.KEEP,e.KEEP,e.REPLACE)},yn.prototype.stencilConfigForOverlap=function(t){var e,r=this.context.gl,n=t.sort((function(t,e){return e.overscaledZ-t.overscaledZ})),i=n[n.length-1].overscaledZ,a=n[0].overscaledZ-i+1;if(a>1){this.currentStencilSource=void 0,this.nextStencilID+a>256&&this.clearStencil();for(var o={},s=0;s=0;this.currentLayer--){var b=this.style._layers[i[this.currentLayer]],_=a[b.source],w=u[b.source];this._renderTileClippingMasks(b,w),this.renderLayer(this,_,b,w)}for(this.renderPass="translucent",this.currentLayer=0;this.currentLayer0?e.pop():null},yn.prototype.isPatternMissing=function(t){if(!t)return!1;if(!t.from||!t.to)return!0;var e=this.imageManager.getPattern(t.from.toString()),r=this.imageManager.getPattern(t.to.toString());return!e||!r},yn.prototype.useProgram=function(t,e){this.cache=this.cache||{};var r=""+t+(e?e.cacheKey:"")+(this._showOverdrawInspector?"/overdraw":"");return this.cache[r]||(this.cache[r]=new br(this.context,yr[t],e,Xr[t],this._showOverdrawInspector)),this.cache[r]},yn.prototype.setCustomLayerDefaults=function(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()},yn.prototype.setBaseState=function(){var t=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(t.FUNC_ADD)},yn.prototype.initDebugOverlayCanvas=function(){null==this.debugOverlayCanvas&&(this.debugOverlayCanvas=t.window.document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new t.Texture(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))},yn.prototype.destroy=function(){this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy()};var xn=function(t,e){this.points=t,this.planes=e};xn.fromInvProjectionMatrix=function(e,r,n){var i=Math.pow(2,n),a=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map((function(r){return t.transformMat4([],r,e)})).map((function(e){return t.scale$1([],e,1/e[3]/r*i)})),o=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map((function(e){var r=t.sub([],a[e[0]],a[e[1]]),n=t.sub([],a[e[2]],a[e[1]]),i=t.normalize([],t.cross([],r,n)),o=-t.dot(i,a[e[1]]);return i.concat(o)}));return new xn(a,o)};var bn=function(e,r){this.min=e,this.max=r,this.center=t.scale$2([],t.add([],this.min,this.max),.5)};bn.prototype.quadrant=function(e){for(var r=[e%2==0,e<2],n=t.clone$2(this.min),i=t.clone$2(this.max),a=0;a=0;if(0===o)return 0;o!==r.length&&(n=!1)}if(n)return 2;for(var l=0;l<3;l++){for(var c=Number.MAX_VALUE,u=-Number.MAX_VALUE,f=0;fthis.max[l]-this.min[l])return 0}return 1};var _n=function(t,e,r,n){if(void 0===t&&(t=0),void 0===e&&(e=0),void 0===r&&(r=0),void 0===n&&(n=0),isNaN(t)||t<0||isNaN(e)||e<0||isNaN(r)||r<0||isNaN(n)||n<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=t,this.bottom=e,this.left=r,this.right=n};_n.prototype.interpolate=function(e,r,n){return null!=r.top&&null!=e.top&&(this.top=t.number(e.top,r.top,n)),null!=r.bottom&&null!=e.bottom&&(this.bottom=t.number(e.bottom,r.bottom,n)),null!=r.left&&null!=e.left&&(this.left=t.number(e.left,r.left,n)),null!=r.right&&null!=e.right&&(this.right=t.number(e.right,r.right,n)),this},_n.prototype.getCenter=function(e,r){var n=t.clamp((this.left+e-this.right)/2,0,e),i=t.clamp((this.top+r-this.bottom)/2,0,r);return new t.Point(n,i)},_n.prototype.equals=function(t){return this.top===t.top&&this.bottom===t.bottom&&this.left===t.left&&this.right===t.right},_n.prototype.clone=function(){return new _n(this.top,this.bottom,this.left,this.right)},_n.prototype.toJSON=function(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}};var wn=function(e,r,n,i,a){this.tileSize=512,this.maxValidLatitude=85.051129,this._renderWorldCopies=void 0===a||a,this._minZoom=e||0,this._maxZoom=r||22,this._minPitch=null==n?0:n,this._maxPitch=null==i?60:i,this.setMaxBounds(),this.width=0,this.height=0,this._center=new t.LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._edgeInsets=new _n,this._posMatrixCache={},this._alignedPosMatrixCache={}},Tn={minZoom:{configurable:!0},maxZoom:{configurable:!0},minPitch:{configurable:!0},maxPitch:{configurable:!0},renderWorldCopies:{configurable:!0},worldSize:{configurable:!0},centerOffset:{configurable:!0},size:{configurable:!0},bearing:{configurable:!0},pitch:{configurable:!0},fov:{configurable:!0},zoom:{configurable:!0},center:{configurable:!0},padding:{configurable:!0},centerPoint:{configurable:!0},unmodified:{configurable:!0},point:{configurable:!0}};wn.prototype.clone=function(){var t=new wn(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies);return t.tileSize=this.tileSize,t.latRange=this.latRange,t.width=this.width,t.height=this.height,t._center=this._center,t.zoom=this.zoom,t.angle=this.angle,t._fov=this._fov,t._pitch=this._pitch,t._unmodified=this._unmodified,t._edgeInsets=this._edgeInsets.clone(),t._calcMatrices(),t},Tn.minZoom.get=function(){return this._minZoom},Tn.minZoom.set=function(t){this._minZoom!==t&&(this._minZoom=t,this.zoom=Math.max(this.zoom,t))},Tn.maxZoom.get=function(){return this._maxZoom},Tn.maxZoom.set=function(t){this._maxZoom!==t&&(this._maxZoom=t,this.zoom=Math.min(this.zoom,t))},Tn.minPitch.get=function(){return this._minPitch},Tn.minPitch.set=function(t){this._minPitch!==t&&(this._minPitch=t,this.pitch=Math.max(this.pitch,t))},Tn.maxPitch.get=function(){return this._maxPitch},Tn.maxPitch.set=function(t){this._maxPitch!==t&&(this._maxPitch=t,this.pitch=Math.min(this.pitch,t))},Tn.renderWorldCopies.get=function(){return this._renderWorldCopies},Tn.renderWorldCopies.set=function(t){void 0===t?t=!0:null===t&&(t=!1),this._renderWorldCopies=t},Tn.worldSize.get=function(){return this.tileSize*this.scale},Tn.centerOffset.get=function(){return this.centerPoint._sub(this.size._div(2))},Tn.size.get=function(){return new t.Point(this.width,this.height)},Tn.bearing.get=function(){return-this.angle/Math.PI*180},Tn.bearing.set=function(e){var r=-t.wrap(e,-180,180)*Math.PI/180;this.angle!==r&&(this._unmodified=!1,this.angle=r,this._calcMatrices(),this.rotationMatrix=t.create$2(),t.rotate(this.rotationMatrix,this.rotationMatrix,this.angle))},Tn.pitch.get=function(){return this._pitch/Math.PI*180},Tn.pitch.set=function(e){var r=t.clamp(e,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==r&&(this._unmodified=!1,this._pitch=r,this._calcMatrices())},Tn.fov.get=function(){return this._fov/Math.PI*180},Tn.fov.set=function(t){t=Math.max(.01,Math.min(60,t)),this._fov!==t&&(this._unmodified=!1,this._fov=t/180*Math.PI,this._calcMatrices())},Tn.zoom.get=function(){return this._zoom},Tn.zoom.set=function(t){var e=Math.min(Math.max(t,this.minZoom),this.maxZoom);this._zoom!==e&&(this._unmodified=!1,this._zoom=e,this.scale=this.zoomScale(e),this.tileZoom=Math.floor(e),this.zoomFraction=e-this.tileZoom,this._constrain(),this._calcMatrices())},Tn.center.get=function(){return this._center},Tn.center.set=function(t){t.lat===this._center.lat&&t.lng===this._center.lng||(this._unmodified=!1,this._center=t,this._constrain(),this._calcMatrices())},Tn.padding.get=function(){return this._edgeInsets.toJSON()},Tn.padding.set=function(t){this._edgeInsets.equals(t)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,t,1),this._calcMatrices())},Tn.centerPoint.get=function(){return this._edgeInsets.getCenter(this.width,this.height)},wn.prototype.isPaddingEqual=function(t){return this._edgeInsets.equals(t)},wn.prototype.interpolatePadding=function(t,e,r){this._unmodified=!1,this._edgeInsets.interpolate(t,e,r),this._constrain(),this._calcMatrices()},wn.prototype.coveringZoomLevel=function(t){var e=(t.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/t.tileSize));return Math.max(0,e)},wn.prototype.getVisibleUnwrappedCoordinates=function(e){var r=[new t.UnwrappedTileID(0,e)];if(this._renderWorldCopies)for(var n=this.pointCoordinate(new t.Point(0,0)),i=this.pointCoordinate(new t.Point(this.width,0)),a=this.pointCoordinate(new t.Point(this.width,this.height)),o=this.pointCoordinate(new t.Point(0,this.height)),s=Math.floor(Math.min(n.x,i.x,a.x,o.x)),l=Math.floor(Math.max(n.x,i.x,a.x,o.x)),c=s-1;c<=l+1;c++)0!==c&&r.push(new t.UnwrappedTileID(c,e));return r},wn.prototype.coveringTiles=function(e){var r=this.coveringZoomLevel(e),n=r;if(void 0!==e.minzoom&&re.maxzoom&&(r=e.maxzoom);var i=t.MercatorCoordinate.fromLngLat(this.center),a=Math.pow(2,r),o=[a*i.x,a*i.y,0],s=xn.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,r),l=e.minzoom||0;this.pitch<=60&&this._edgeInsets.top<.1&&(l=r);var c=function(t){return{aabb:new bn([t*a,0,0],[(t+1)*a,a,0]),zoom:0,x:0,y:0,wrap:t,fullyVisible:!1}},u=[],f=[],h=r,p=e.reparseOverscaled?n:r;if(this._renderWorldCopies)for(var d=1;d<=3;d++)u.push(c(-d)),u.push(c(d));for(u.push(c(0));u.length>0;){var g=u.pop(),m=g.x,v=g.y,y=g.fullyVisible;if(!y){var x=g.aabb.intersects(s);if(0===x)continue;y=2===x}var b=g.aabb.distanceX(o),_=g.aabb.distanceY(o),w=Math.max(Math.abs(b),Math.abs(_));if(g.zoom===h||w>3+(1<=l)f.push({tileID:new t.OverscaledTileID(g.zoom===h?p:g.zoom,g.wrap,g.zoom,m,v),distanceSq:t.sqrLen([o[0]-.5-m,o[1]-.5-v])});else for(var T=0;T<4;T++){var k=(m<<1)+T%2,M=(v<<1)+(T>>1);u.push({aabb:g.aabb.quadrant(T),zoom:g.zoom+1,x:k,y:M,wrap:g.wrap,fullyVisible:y})}}return f.sort((function(t,e){return t.distanceSq-e.distanceSq})).map((function(t){return t.tileID}))},wn.prototype.resize=function(t,e){this.width=t,this.height=e,this.pixelsToGLUnits=[2/t,-2/e],this._constrain(),this._calcMatrices()},Tn.unmodified.get=function(){return this._unmodified},wn.prototype.zoomScale=function(t){return Math.pow(2,t)},wn.prototype.scaleZoom=function(t){return Math.log(t)/Math.LN2},wn.prototype.project=function(e){var r=t.clamp(e.lat,-this.maxValidLatitude,this.maxValidLatitude);return new t.Point(t.mercatorXfromLng(e.lng)*this.worldSize,t.mercatorYfromLat(r)*this.worldSize)},wn.prototype.unproject=function(e){return new t.MercatorCoordinate(e.x/this.worldSize,e.y/this.worldSize).toLngLat()},Tn.point.get=function(){return this.project(this.center)},wn.prototype.setLocationAtPoint=function(e,r){var n=this.pointCoordinate(r),i=this.pointCoordinate(this.centerPoint),a=this.locationCoordinate(e),o=new t.MercatorCoordinate(a.x-(n.x-i.x),a.y-(n.y-i.y));this.center=this.coordinateLocation(o),this._renderWorldCopies&&(this.center=this.center.wrap())},wn.prototype.locationPoint=function(t){return this.coordinatePoint(this.locationCoordinate(t))},wn.prototype.pointLocation=function(t){return this.coordinateLocation(this.pointCoordinate(t))},wn.prototype.locationCoordinate=function(e){return t.MercatorCoordinate.fromLngLat(e)},wn.prototype.coordinateLocation=function(t){return t.toLngLat()},wn.prototype.pointCoordinate=function(e){var r=[e.x,e.y,0,1],n=[e.x,e.y,1,1];t.transformMat4(r,r,this.pixelMatrixInverse),t.transformMat4(n,n,this.pixelMatrixInverse);var i=r[3],a=n[3],o=r[1]/i,s=n[1]/a,l=r[2]/i,c=n[2]/a,u=l===c?0:(0-l)/(c-l);return new t.MercatorCoordinate(t.number(r[0]/i,n[0]/a,u)/this.worldSize,t.number(o,s,u)/this.worldSize)},wn.prototype.coordinatePoint=function(e){var r=[e.x*this.worldSize,e.y*this.worldSize,0,1];return t.transformMat4(r,r,this.pixelMatrix),new t.Point(r[0]/r[3],r[1]/r[3])},wn.prototype.getBounds=function(){return(new t.LngLatBounds).extend(this.pointLocation(new t.Point(0,0))).extend(this.pointLocation(new t.Point(this.width,0))).extend(this.pointLocation(new t.Point(this.width,this.height))).extend(this.pointLocation(new t.Point(0,this.height)))},wn.prototype.getMaxBounds=function(){return this.latRange&&2===this.latRange.length&&this.lngRange&&2===this.lngRange.length?new t.LngLatBounds([this.lngRange[0],this.latRange[0]],[this.lngRange[1],this.latRange[1]]):null},wn.prototype.setMaxBounds=function(t){t?(this.lngRange=[t.getWest(),t.getEast()],this.latRange=[t.getSouth(),t.getNorth()],this._constrain()):(this.lngRange=null,this.latRange=[-this.maxValidLatitude,this.maxValidLatitude])},wn.prototype.calculatePosMatrix=function(e,r){void 0===r&&(r=!1);var n=e.key,i=r?this._alignedPosMatrixCache:this._posMatrixCache;if(i[n])return i[n];var a=e.canonical,o=this.worldSize/this.zoomScale(a.z),s=a.x+Math.pow(2,a.z)*e.wrap,l=t.identity(new Float64Array(16));return t.translate(l,l,[s*o,a.y*o,0]),t.scale(l,l,[o/t.EXTENT,o/t.EXTENT,1]),t.multiply(l,r?this.alignedProjMatrix:this.projMatrix,l),i[n]=new Float32Array(l),i[n]},wn.prototype.customLayerMatrix=function(){return this.mercatorMatrix.slice()},wn.prototype._constrain=function(){if(this.center&&this.width&&this.height&&!this._constraining){this._constraining=!0;var e,r,n,i,a=-90,o=90,s=-180,l=180,c=this.size,u=this._unmodified;if(this.latRange){var f=this.latRange;a=t.mercatorYfromLat(f[1])*this.worldSize,e=(o=t.mercatorYfromLat(f[0])*this.worldSize)-ao&&(i=o-m)}if(this.lngRange){var v=p.x,y=c.x/2;v-yl&&(n=l-y)}void 0===n&&void 0===i||(this.center=this.unproject(new t.Point(void 0!==n?n:p.x,void 0!==i?i:p.y))),this._unmodified=u,this._constraining=!1}},wn.prototype._calcMatrices=function(){if(this.height){var e=this.centerOffset;this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height;var r=Math.PI/2+this._pitch,n=this._fov*(.5+e.y/this.height),i=Math.sin(n)*this.cameraToCenterDistance/Math.sin(t.clamp(Math.PI-r-n,.01,Math.PI-.01)),a=this.point,o=a.x,s=a.y,l=1.01*(Math.cos(Math.PI/2-this._pitch)*i+this.cameraToCenterDistance),c=this.height/50,u=new Float64Array(16);t.perspective(u,this._fov,this.width/this.height,c,l),u[8]=2*-e.x/this.width,u[9]=2*e.y/this.height,t.scale(u,u,[1,-1,1]),t.translate(u,u,[0,0,-this.cameraToCenterDistance]),t.rotateX(u,u,this._pitch),t.rotateZ(u,u,this.angle),t.translate(u,u,[-o,-s,0]),this.mercatorMatrix=t.scale([],u,[this.worldSize,this.worldSize,this.worldSize]),t.scale(u,u,[1,1,t.mercatorZfromAltitude(1,this.center.lat)*this.worldSize,1]),this.projMatrix=u,this.invProjMatrix=t.invert([],this.projMatrix);var f=this.width%2/2,h=this.height%2/2,p=Math.cos(this.angle),d=Math.sin(this.angle),g=o-Math.round(o)+p*f+d*h,m=s-Math.round(s)+p*h+d*f,v=new Float64Array(u);if(t.translate(v,v,[g>.5?g-1:g,m>.5?m-1:m,0]),this.alignedProjMatrix=v,u=t.create(),t.scale(u,u,[this.width/2,-this.height/2,1]),t.translate(u,u,[1,-1,0]),this.labelPlaneMatrix=u,u=t.create(),t.scale(u,u,[1,-1,1]),t.translate(u,u,[-1,-1,0]),t.scale(u,u,[2/this.width,2/this.height,1]),this.glCoordMatrix=u,this.pixelMatrix=t.multiply(new Float64Array(16),this.labelPlaneMatrix,this.projMatrix),!(u=t.invert(new Float64Array(16),this.pixelMatrix)))throw new Error("failed to invert matrix");this.pixelMatrixInverse=u,this._posMatrixCache={},this._alignedPosMatrixCache={}}},wn.prototype.maxPitchScaleFactor=function(){if(!this.pixelMatrixInverse)return 1;var e=this.pointCoordinate(new t.Point(0,0)),r=[e.x*this.worldSize,e.y*this.worldSize,0,1];return t.transformMat4(r,r,this.pixelMatrix)[3]/this.cameraToCenterDistance},wn.prototype.getCameraPoint=function(){var e=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new t.Point(0,e))},wn.prototype.getCameraQueryGeometry=function(e){var r=this.getCameraPoint();if(1===e.length)return[e[0],r];for(var n=r.x,i=r.y,a=r.x,o=r.y,s=0,l=e;s=3&&!t.some((function(t){return isNaN(t)}))){var e=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(t[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+t[2],+t[1]],zoom:+t[0],bearing:e,pitch:+(t[4]||0)}),!0}return!1},kn.prototype._updateHashUnthrottled=function(){var e=this.getHashString();try{t.window.history.replaceState(t.window.history.state,"",e)}catch(t){}};var Mn={linearity:.3,easing:t.bezier(0,0,.3,1)},An=t.extend({deceleration:2500,maxSpeed:1400},Mn),Sn=t.extend({deceleration:20,maxSpeed:1400},Mn),En=t.extend({deceleration:1e3,maxSpeed:360},Mn),Cn=t.extend({deceleration:1e3,maxSpeed:90},Mn),Ln=function(t){this._map=t,this.clear()};function In(t,e){(!t.duration||t.duration0&&r-e[0].time>160;)e.shift()},Ln.prototype._onMoveEnd=function(e){if(this._drainInertiaBuffer(),!(this._inertiaBuffer.length<2)){for(var r={zoom:0,bearing:0,pitch:0,pan:new t.Point(0,0),pinchAround:void 0,around:void 0},n=0,i=this._inertiaBuffer;n=this._clickTolerance||this._map.fire(new zn(t.type,this._map,t))},Rn.prototype.dblclick=function(t){return this._firePreventable(new zn(t.type,this._map,t))},Rn.prototype.mouseover=function(t){this._map.fire(new zn(t.type,this._map,t))},Rn.prototype.mouseout=function(t){this._map.fire(new zn(t.type,this._map,t))},Rn.prototype.touchstart=function(t){return this._firePreventable(new On(t.type,this._map,t))},Rn.prototype.touchmove=function(t){this._map.fire(new On(t.type,this._map,t))},Rn.prototype.touchend=function(t){this._map.fire(new On(t.type,this._map,t))},Rn.prototype.touchcancel=function(t){this._map.fire(new On(t.type,this._map,t))},Rn.prototype._firePreventable=function(t){if(this._map.fire(t),t.defaultPrevented)return{}},Rn.prototype.isEnabled=function(){return!0},Rn.prototype.isActive=function(){return!1},Rn.prototype.enable=function(){},Rn.prototype.disable=function(){};var Fn=function(t){this._map=t};Fn.prototype.reset=function(){this._delayContextMenu=!1,delete this._contextMenuEvent},Fn.prototype.mousemove=function(t){this._map.fire(new zn(t.type,this._map,t))},Fn.prototype.mousedown=function(){this._delayContextMenu=!0},Fn.prototype.mouseup=function(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new zn("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)},Fn.prototype.contextmenu=function(t){this._delayContextMenu?this._contextMenuEvent=t:this._map.fire(new zn(t.type,this._map,t)),this._map.listens("contextmenu")&&t.preventDefault()},Fn.prototype.isEnabled=function(){return!0},Fn.prototype.isActive=function(){return!1},Fn.prototype.enable=function(){},Fn.prototype.disable=function(){};var Bn=function(t,e){this._map=t,this._el=t.getCanvasContainer(),this._container=t.getContainer(),this._clickTolerance=e.clickTolerance||1};function Nn(t,e){for(var r={},n=0;nthis.numTouches)&&(this.aborted=!0),this.aborted||(void 0===this.startTime&&(this.startTime=e.timeStamp),n.length===this.numTouches&&(this.centroid=function(e){for(var r=new t.Point(0,0),n=0,i=e;n30)&&(this.aborted=!0)}}},jn.prototype.touchend=function(t,e,r){if((!this.centroid||t.timeStamp-this.startTime>500)&&(this.aborted=!0),0===r.length){var n=!this.aborted&&this.centroid;if(this.reset(),n)return n}};var Un=function(t){this.singleTap=new jn(t),this.numTaps=t.numTaps,this.reset()};Un.prototype.reset=function(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()},Un.prototype.touchstart=function(t,e,r){this.singleTap.touchstart(t,e,r)},Un.prototype.touchmove=function(t,e,r){this.singleTap.touchmove(t,e,r)},Un.prototype.touchend=function(t,e,r){var n=this.singleTap.touchend(t,e,r);if(n){var i=t.timeStamp-this.lastTime<500,a=!this.lastTap||this.lastTap.dist(n)<30;if(i&&a||this.reset(),this.count++,this.lastTime=t.timeStamp,this.lastTap=n,this.count===this.numTaps)return this.reset(),n}};var Vn=function(){this._zoomIn=new Un({numTouches:1,numTaps:2}),this._zoomOut=new Un({numTouches:2,numTaps:1}),this.reset()};Vn.prototype.reset=function(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()},Vn.prototype.touchstart=function(t,e,r){this._zoomIn.touchstart(t,e,r),this._zoomOut.touchstart(t,e,r)},Vn.prototype.touchmove=function(t,e,r){this._zoomIn.touchmove(t,e,r),this._zoomOut.touchmove(t,e,r)},Vn.prototype.touchend=function(t,e,r){var n=this,i=this._zoomIn.touchend(t,e,r),a=this._zoomOut.touchend(t,e,r);return i?(this._active=!0,t.preventDefault(),setTimeout((function(){return n.reset()}),0),{cameraAnimation:function(e){return e.easeTo({duration:300,zoom:e.getZoom()+1,around:e.unproject(i)},{originalEvent:t})}}):a?(this._active=!0,t.preventDefault(),setTimeout((function(){return n.reset()}),0),{cameraAnimation:function(e){return e.easeTo({duration:300,zoom:e.getZoom()-1,around:e.unproject(a)},{originalEvent:t})}}):void 0},Vn.prototype.touchcancel=function(){this.reset()},Vn.prototype.enable=function(){this._enabled=!0},Vn.prototype.disable=function(){this._enabled=!1,this.reset()},Vn.prototype.isEnabled=function(){return this._enabled},Vn.prototype.isActive=function(){return this._active};var qn=function(t){this.reset(),this._clickTolerance=t.clickTolerance||1};qn.prototype.reset=function(){this._active=!1,this._moved=!1,delete this._lastPoint,delete this._eventButton},qn.prototype._correctButton=function(t,e){return!1},qn.prototype._move=function(t,e){return{}},qn.prototype.mousedown=function(t,e){if(!this._lastPoint){var n=r.mouseButton(t);this._correctButton(t,n)&&(this._lastPoint=e,this._eventButton=n)}},qn.prototype.mousemoveWindow=function(t,e){var r=this._lastPoint;if(r&&(t.preventDefault(),this._moved||!(e.dist(r)0&&(this._active=!0);var i=Nn(n,r),a=new t.Point(0,0),o=new t.Point(0,0),s=0;for(var l in i){var c=i[l],u=this._touches[l];u&&(a._add(c),o._add(c.sub(u)),s++,i[l]=c)}if(this._touches=i,!(sMath.abs(t.x)}var ei=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.reset=function(){t.prototype.reset.call(this),this._valid=void 0,delete this._firstMove,delete this._lastPoints},e.prototype._start=function(t){this._lastPoints=t,ti(t[0].sub(t[1]))&&(this._valid=!1)},e.prototype._move=function(t,e,r){var n=t[0].sub(this._lastPoints[0]),i=t[1].sub(this._lastPoints[1]);if(this._valid=this.gestureBeginsVertically(n,i,r.timeStamp),this._valid)return this._lastPoints=t,this._active=!0,{pitchDelta:(n.y+i.y)/2*-.5}},e.prototype.gestureBeginsVertically=function(t,e,r){if(void 0!==this._valid)return this._valid;var n=t.mag()>=2,i=e.mag()>=2;if(n||i){if(!n||!i)return void 0===this._firstMove&&(this._firstMove=r),r-this._firstMove<100&&void 0;var a=t.y>0==e.y>0;return ti(t)&&ti(e)&&a}},e}(Xn),ri={panStep:100,bearingStep:15,pitchStep:10},ni=function(){var t=ri;this._panStep=t.panStep,this._bearingStep=t.bearingStep,this._pitchStep=t.pitchStep};function ii(t){return t*(2-t)}ni.prototype.reset=function(){this._active=!1},ni.prototype.keydown=function(t){var e=this;if(!(t.altKey||t.ctrlKey||t.metaKey)){var r=0,n=0,i=0,a=0,o=0;switch(t.keyCode){case 61:case 107:case 171:case 187:r=1;break;case 189:case 109:case 173:r=-1;break;case 37:t.shiftKey?n=-1:(t.preventDefault(),a=-1);break;case 39:t.shiftKey?n=1:(t.preventDefault(),a=1);break;case 38:t.shiftKey?i=1:(t.preventDefault(),o=-1);break;case 40:t.shiftKey?i=-1:(t.preventDefault(),o=1);break;default:return}return{cameraAnimation:function(s){var l=s.getZoom();s.easeTo({duration:300,easeId:"keyboardHandler",easing:ii,zoom:r?Math.round(l)+r*(t.shiftKey?2:1):l,bearing:s.getBearing()+n*e._bearingStep,pitch:s.getPitch()+i*e._pitchStep,offset:[-a*e._panStep,-o*e._panStep],center:s.getCenter()},{originalEvent:t})}}}},ni.prototype.enable=function(){this._enabled=!0},ni.prototype.disable=function(){this._enabled=!1,this.reset()},ni.prototype.isEnabled=function(){return this._enabled},ni.prototype.isActive=function(){return this._active};var ai=function(e,r){this._map=e,this._el=e.getCanvasContainer(),this._handler=r,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=1/450,t.bindAll(["_onWheel","_onTimeout","_onScrollFrame","_onScrollFinished"],this)};ai.prototype.setZoomRate=function(t){this._defaultZoomRate=t},ai.prototype.setWheelZoomRate=function(t){this._wheelZoomRate=t},ai.prototype.isEnabled=function(){return!!this._enabled},ai.prototype.isActive=function(){return!!this._active||void 0!==this._finishTimeout},ai.prototype.isZooming=function(){return!!this._zooming},ai.prototype.enable=function(t){this.isEnabled()||(this._enabled=!0,this._aroundCenter=t&&"center"===t.around)},ai.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1)},ai.prototype.wheel=function(e){if(this.isEnabled()){var r=e.deltaMode===t.window.WheelEvent.DOM_DELTA_LINE?40*e.deltaY:e.deltaY,n=t.browser.now(),i=n-(this._lastWheelEventTime||0);this._lastWheelEventTime=n,0!==r&&r%4.000244140625==0?this._type="wheel":0!==r&&Math.abs(r)<4?this._type="trackpad":i>400?(this._type=null,this._lastValue=r,this._timeout=setTimeout(this._onTimeout,40,e)):this._type||(this._type=Math.abs(i*r)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,r+=this._lastValue)),e.shiftKey&&r&&(r/=4),this._type&&(this._lastWheelEvent=e,this._delta-=r,this._active||this._start(e)),e.preventDefault()}},ai.prototype._onTimeout=function(t){this._type="wheel",this._delta-=this._lastValue,this._active||this._start(t)},ai.prototype._start=function(e){if(this._delta){this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);var n=r.mousePos(this._el,e);this._around=t.LngLat.convert(this._aroundCenter?this._map.getCenter():this._map.unproject(n)),this._aroundPoint=this._map.transform.locationPoint(this._around),this._frameId||(this._frameId=!0,this._handler._triggerRenderFrame())}},ai.prototype.renderFrame=function(){return this._onScrollFrame()},ai.prototype._onScrollFrame=function(){var e=this;if(this._frameId&&(this._frameId=null,this.isActive())){var r=this._map.transform;if(0!==this._delta){var n="wheel"===this._type&&Math.abs(this._delta)>4.000244140625?this._wheelZoomRate:this._defaultZoomRate,i=2/(1+Math.exp(-Math.abs(this._delta*n)));this._delta<0&&0!==i&&(i=1/i);var a="number"==typeof this._targetZoom?r.zoomScale(this._targetZoom):r.scale;this._targetZoom=Math.min(r.maxZoom,Math.max(r.minZoom,r.scaleZoom(a*i))),"wheel"===this._type&&(this._startZoom=r.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}var o,s="number"==typeof this._targetZoom?this._targetZoom:r.zoom,l=this._startZoom,c=this._easing,u=!1;if("wheel"===this._type&&l&&c){var f=Math.min((t.browser.now()-this._lastWheelEventTime)/200,1),h=c(f);o=t.number(l,s,h),f<1?this._frameId||(this._frameId=!0):u=!0}else o=s,u=!0;return this._active=!0,u&&(this._active=!1,this._finishTimeout=setTimeout((function(){e._zooming=!1,e._handler._triggerRenderFrame(),delete e._targetZoom,delete e._finishTimeout}),200)),{noInertia:!0,needsRenderFrame:!u,zoomDelta:o-r.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}},ai.prototype._smoothOutEasing=function(e){var r=t.ease;if(this._prevEase){var n=this._prevEase,i=(t.browser.now()-n.start)/n.duration,a=n.easing(i+.01)-n.easing(i),o=.27/Math.sqrt(a*a+1e-4)*.01,s=Math.sqrt(.0729-o*o);r=t.bezier(o,s,.25,1)}return this._prevEase={start:t.browser.now(),duration:e,easing:r},r},ai.prototype.reset=function(){this._active=!1};var oi=function(t,e){this._clickZoom=t,this._tapZoom=e};oi.prototype.enable=function(){this._clickZoom.enable(),this._tapZoom.enable()},oi.prototype.disable=function(){this._clickZoom.disable(),this._tapZoom.disable()},oi.prototype.isEnabled=function(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()},oi.prototype.isActive=function(){return this._clickZoom.isActive()||this._tapZoom.isActive()};var si=function(){this.reset()};si.prototype.reset=function(){this._active=!1},si.prototype.dblclick=function(t,e){return t.preventDefault(),{cameraAnimation:function(r){r.easeTo({duration:300,zoom:r.getZoom()+(t.shiftKey?-1:1),around:r.unproject(e)},{originalEvent:t})}}},si.prototype.enable=function(){this._enabled=!0},si.prototype.disable=function(){this._enabled=!1,this.reset()},si.prototype.isEnabled=function(){return this._enabled},si.prototype.isActive=function(){return this._active};var li=function(){this._tap=new Un({numTouches:1,numTaps:1}),this.reset()};li.prototype.reset=function(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,this._tap.reset()},li.prototype.touchstart=function(t,e,r){this._swipePoint||(this._tapTime&&t.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?r.length>0&&(this._swipePoint=e[0],this._swipeTouch=r[0].identifier):this._tap.touchstart(t,e,r))},li.prototype.touchmove=function(t,e,r){if(this._tapTime){if(this._swipePoint){if(r[0].identifier!==this._swipeTouch)return;var n=e[0],i=n.y-this._swipePoint.y;return this._swipePoint=n,t.preventDefault(),this._active=!0,{zoomDelta:i/128}}}else this._tap.touchmove(t,e,r)},li.prototype.touchend=function(t,e,r){this._tapTime?this._swipePoint&&0===r.length&&this.reset():this._tap.touchend(t,e,r)&&(this._tapTime=t.timeStamp)},li.prototype.touchcancel=function(){this.reset()},li.prototype.enable=function(){this._enabled=!0},li.prototype.disable=function(){this._enabled=!1,this.reset()},li.prototype.isEnabled=function(){return this._enabled},li.prototype.isActive=function(){return this._active};var ci=function(t,e,r){this._el=t,this._mousePan=e,this._touchPan=r};ci.prototype.enable=function(t){this._inertiaOptions=t||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("mapboxgl-touch-drag-pan")},ci.prototype.disable=function(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("mapboxgl-touch-drag-pan")},ci.prototype.isEnabled=function(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()},ci.prototype.isActive=function(){return this._mousePan.isActive()||this._touchPan.isActive()};var ui=function(t,e,r){this._pitchWithRotate=t.pitchWithRotate,this._mouseRotate=e,this._mousePitch=r};ui.prototype.enable=function(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable()},ui.prototype.disable=function(){this._mouseRotate.disable(),this._mousePitch.disable()},ui.prototype.isEnabled=function(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())},ui.prototype.isActive=function(){return this._mouseRotate.isActive()||this._mousePitch.isActive()};var fi=function(t,e,r,n){this._el=t,this._touchZoom=e,this._touchRotate=r,this._tapDragZoom=n,this._rotationDisabled=!1,this._enabled=!0};fi.prototype.enable=function(t){this._touchZoom.enable(t),this._rotationDisabled||this._touchRotate.enable(t),this._tapDragZoom.enable(),this._el.classList.add("mapboxgl-touch-zoom-rotate")},fi.prototype.disable=function(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("mapboxgl-touch-zoom-rotate")},fi.prototype.isEnabled=function(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()},fi.prototype.isActive=function(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()},fi.prototype.disableRotation=function(){this._rotationDisabled=!0,this._touchRotate.disable()},fi.prototype.enableRotation=function(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()};var hi=function(t){return t.zoom||t.drag||t.pitch||t.rotate},pi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e}(t.Event);function di(t){return t.panDelta&&t.panDelta.mag()||t.zoomDelta||t.bearingDelta||t.pitchDelta}var gi=function(e,n){this._map=e,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Ln(e),this._bearingSnap=n.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(n),t.bindAll(["handleEvent","handleWindowEvent"],this);var i=this._el;this._listeners=[[i,"touchstart",{passive:!1}],[i,"touchmove",{passive:!1}],[i,"touchend",void 0],[i,"touchcancel",void 0],[i,"mousedown",void 0],[i,"mousemove",void 0],[i,"mouseup",void 0],[t.window.document,"mousemove",{capture:!0}],[t.window.document,"mouseup",void 0],[i,"mouseover",void 0],[i,"mouseout",void 0],[i,"dblclick",void 0],[i,"click",void 0],[i,"keydown",{capture:!1}],[i,"keyup",void 0],[i,"wheel",{passive:!1}],[i,"contextmenu",void 0],[t.window,"blur",void 0]];for(var a=0,o=this._listeners;aa?Math.min(2,_):Math.max(.5,_),w=Math.pow(m,1-e),T=i.unproject(x.add(b.mult(e*w)).mult(g));i.setLocationAtPoint(i.renderWorldCopies?T.wrap():T,d)}n._fireMoveEvents(r)}),(function(t){n._afterEase(r,t)}),e),this},r.prototype._prepareEase=function(e,r,n){void 0===n&&(n={}),this._moving=!0,r||n.moving||this.fire(new t.Event("movestart",e)),this._zooming&&!n.zooming&&this.fire(new t.Event("zoomstart",e)),this._rotating&&!n.rotating&&this.fire(new t.Event("rotatestart",e)),this._pitching&&!n.pitching&&this.fire(new t.Event("pitchstart",e))},r.prototype._fireMoveEvents=function(e){this.fire(new t.Event("move",e)),this._zooming&&this.fire(new t.Event("zoom",e)),this._rotating&&this.fire(new t.Event("rotate",e)),this._pitching&&this.fire(new t.Event("pitch",e))},r.prototype._afterEase=function(e,r){if(!this._easeId||!r||this._easeId!==r){delete this._easeId;var n=this._zooming,i=this._rotating,a=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,n&&this.fire(new t.Event("zoomend",e)),i&&this.fire(new t.Event("rotateend",e)),a&&this.fire(new t.Event("pitchend",e)),this.fire(new t.Event("moveend",e))}},r.prototype.flyTo=function(e,r){var n=this;if(!e.essential&&t.browser.prefersReducedMotion){var i=t.pick(e,["center","zoom","bearing","pitch","around"]);return this.jumpTo(i,r)}this.stop(),e=t.extend({offset:[0,0],speed:1.2,curve:1.42,easing:t.ease},e);var a=this.transform,o=this.getZoom(),s=this.getBearing(),l=this.getPitch(),c=this.getPadding(),u="zoom"in e?t.clamp(+e.zoom,a.minZoom,a.maxZoom):o,f="bearing"in e?this._normalizeBearing(e.bearing,s):s,h="pitch"in e?+e.pitch:l,p="padding"in e?e.padding:a.padding,d=a.zoomScale(u-o),g=t.Point.convert(e.offset),m=a.centerPoint.add(g),v=a.pointLocation(m),y=t.LngLat.convert(e.center||v);this._normalizeCenter(y);var x=a.project(v),b=a.project(y).sub(x),_=e.curve,w=Math.max(a.width,a.height),T=w/d,k=b.mag();if("minZoom"in e){var M=t.clamp(Math.min(e.minZoom,o,u),a.minZoom,a.maxZoom),A=w/a.zoomScale(M-o);_=Math.sqrt(A/k*2)}var S=_*_;function E(t){var e=(T*T-w*w+(t?-1:1)*S*S*k*k)/(2*(t?T:w)*S*k);return Math.log(Math.sqrt(e*e+1)-e)}function C(t){return(Math.exp(t)-Math.exp(-t))/2}function L(t){return(Math.exp(t)+Math.exp(-t))/2}var I=E(0),P=function(t){return L(I)/L(I+_*t)},z=function(t){return w*((L(I)*(C(e=I+_*t)/L(e))-C(I))/S)/k;var e},O=(E(1)-I)/_;if(Math.abs(k)<1e-6||!isFinite(O)){if(Math.abs(w-T)<1e-6)return this.easeTo(e,r);var D=Te.maxDuration&&(e.duration=0),this._zooming=!0,this._rotating=s!==f,this._pitching=h!==l,this._padding=!a.isPaddingEqual(p),this._prepareEase(r,!1),this._ease((function(e){var i=e*O,d=1/P(i);a.zoom=1===e?u:o+a.scaleZoom(d),n._rotating&&(a.bearing=t.number(s,f,e)),n._pitching&&(a.pitch=t.number(l,h,e)),n._padding&&(a.interpolatePadding(c,p,e),m=a.centerPoint.add(g));var v=1===e?y:a.unproject(x.add(b.mult(z(i))).mult(d));a.setLocationAtPoint(a.renderWorldCopies?v.wrap():v,m),n._fireMoveEvents(r)}),(function(){return n._afterEase(r)}),e),this},r.prototype.isEasing=function(){return!!this._easeFrameId},r.prototype.stop=function(){return this._stop()},r.prototype._stop=function(t,e){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){var r=this._onEaseEnd;delete this._onEaseEnd,r.call(this,e)}if(!t){var n=this.handlers;n&&n.stop()}return this},r.prototype._ease=function(e,r,n){!1===n.animate||0===n.duration?(e(1),r()):(this._easeStart=t.browser.now(),this._easeOptions=n,this._onEaseFrame=e,this._onEaseEnd=r,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))},r.prototype._renderFrameCallback=function(){var e=Math.min((t.browser.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(e)),e<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},r.prototype._normalizeBearing=function(e,r){e=t.wrap(e,-180,180);var n=Math.abs(e-r);return Math.abs(e-360-r)180?-360:r<-180?360:0}},r}(t.Evented),vi=function(e){void 0===e&&(e={}),this.options=e,t.bindAll(["_updateEditLink","_updateData","_updateCompact"],this)};vi.prototype.getDefaultPosition=function(){return"bottom-right"},vi.prototype.onAdd=function(t){var e=this.options&&this.options.compact;return this._map=t,this._container=r.create("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),this._innerContainer=r.create("div","mapboxgl-ctrl-attrib-inner",this._container),e&&this._container.classList.add("mapboxgl-compact"),this._updateAttributions(),this._updateEditLink(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("moveend",this._updateEditLink),void 0===e&&(this._map.on("resize",this._updateCompact),this._updateCompact()),this._container},vi.prototype.onRemove=function(){r.remove(this._container),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("moveend",this._updateEditLink),this._map.off("resize",this._updateCompact),this._map=void 0,this._attribHTML=void 0},vi.prototype._updateEditLink=function(){var e=this._editLink;e||(e=this._editLink=this._container.querySelector(".mapbox-improve-map"));var r=[{key:"owner",value:this.styleOwner},{key:"id",value:this.styleId},{key:"access_token",value:this._map._requestManager._customAccessToken||t.config.ACCESS_TOKEN}];if(e){var n=r.reduce((function(t,e,n){return e.value&&(t+=e.key+"="+e.value+(n=0)return!1;return!0}))).join(" | ");o!==this._attribHTML&&(this._attribHTML=o,t.length?(this._innerContainer.innerHTML=o,this._container.classList.remove("mapboxgl-attrib-empty")):this._container.classList.add("mapboxgl-attrib-empty"),this._editLink=null)}},vi.prototype._updateCompact=function(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add("mapboxgl-compact"):this._container.classList.remove("mapboxgl-compact")};var yi=function(){t.bindAll(["_updateLogo"],this),t.bindAll(["_updateCompact"],this)};yi.prototype.onAdd=function(t){this._map=t,this._container=r.create("div","mapboxgl-ctrl");var e=r.create("a","mapboxgl-ctrl-logo");return e.target="_blank",e.rel="noopener nofollow",e.href="https://www.mapbox.com/",e.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),e.setAttribute("rel","noopener nofollow"),this._container.appendChild(e),this._container.style.display="none",this._map.on("sourcedata",this._updateLogo),this._updateLogo(),this._map.on("resize",this._updateCompact),this._updateCompact(),this._container},yi.prototype.onRemove=function(){r.remove(this._container),this._map.off("sourcedata",this._updateLogo),this._map.off("resize",this._updateCompact)},yi.prototype.getDefaultPosition=function(){return"bottom-left"},yi.prototype._updateLogo=function(t){t&&"metadata"!==t.sourceDataType||(this._container.style.display=this._logoRequired()?"block":"none")},yi.prototype._logoRequired=function(){if(this._map.style){var t=this._map.style.sourceCaches;for(var e in t)if(t[e].getSource().mapbox_logo)return!0;return!1}},yi.prototype._updateCompact=function(){var t=this._container.children;if(t.length){var e=t[0];this._map.getCanvasContainer().offsetWidth<250?e.classList.add("mapboxgl-compact"):e.classList.remove("mapboxgl-compact")}};var xi=function(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1};xi.prototype.add=function(t){var e=++this._id;return this._queue.push({callback:t,id:e,cancelled:!1}),e},xi.prototype.remove=function(t){for(var e=this._currentlyRunning,r=0,n=e?this._queue.concat(e):this._queue;re.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(null!=e.minPitch&&null!=e.maxPitch&&e.minPitch>e.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(null!=e.minPitch&&e.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(null!=e.maxPitch&&e.maxPitch>60)throw new Error("maxPitch must be less than or equal to 60");var i=new wn(e.minZoom,e.maxZoom,e.minPitch,e.maxPitch,e.renderWorldCopies);if(n.call(this,i,e),this._interactive=e.interactive,this._maxTileCacheSize=e.maxTileCacheSize,this._failIfMajorPerformanceCaveat=e.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=e.preserveDrawingBuffer,this._antialias=e.antialias,this._trackResize=e.trackResize,this._bearingSnap=e.bearingSnap,this._refreshExpiredTiles=e.refreshExpiredTiles,this._fadeDuration=e.fadeDuration,this._crossSourceCollisions=e.crossSourceCollisions,this._crossFadingFactor=1,this._collectResourceTiming=e.collectResourceTiming,this._renderTaskQueue=new xi,this._controls=[],this._mapId=t.uniqueId(),this._locale=t.extend({},bi,e.locale),this._requestManager=new t.RequestManager(e.transformRequest,e.accessToken),"string"==typeof e.container){if(this._container=t.window.document.getElementById(e.container),!this._container)throw new Error("Container '"+e.container+"' not found.")}else{if(!(e.container instanceof wi))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=e.container}if(e.maxBounds&&this.setMaxBounds(e.maxBounds),t.bindAll(["_onWindowOnline","_onWindowResize","_contextLost","_contextRestored"],this),this._setupContainer(),this._setupPainter(),void 0===this.painter)throw new Error("Failed to initialize WebGL.");this.on("move",(function(){return r._update(!1)})),this.on("moveend",(function(){return r._update(!1)})),this.on("zoom",(function(){return r._update(!0)})),void 0!==t.window&&(t.window.addEventListener("online",this._onWindowOnline,!1),t.window.addEventListener("resize",this._onWindowResize,!1)),this.handlers=new gi(this,e),this._hash=e.hash&&new kn("string"==typeof e.hash&&e.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:e.center,zoom:e.zoom,bearing:e.bearing,pitch:e.pitch}),e.bounds&&(this.resize(),this.fitBounds(e.bounds,t.extend({},e.fitBoundsOptions,{duration:0})))),this.resize(),this._localIdeographFontFamily=e.localIdeographFontFamily,e.style&&this.setStyle(e.style,{localIdeographFontFamily:e.localIdeographFontFamily}),e.attributionControl&&this.addControl(new vi({customAttribution:e.customAttribution})),this.addControl(new yi,e.logoPosition),this.on("style.load",(function(){r.transform.unmodified&&r.jumpTo(r.style.stylesheet)})),this.on("data",(function(e){r._update("style"===e.dataType),r.fire(new t.Event(e.dataType+"data",e))})),this.on("dataloading",(function(e){r.fire(new t.Event(e.dataType+"dataloading",e))}))}n&&(i.__proto__=n),(i.prototype=Object.create(n&&n.prototype)).constructor=i;var a={showTileBoundaries:{configurable:!0},showPadding:{configurable:!0},showCollisionBoxes:{configurable:!0},showOverdrawInspector:{configurable:!0},repaint:{configurable:!0},vertices:{configurable:!0},version:{configurable:!0}};return i.prototype._getMapId=function(){return this._mapId},i.prototype.addControl=function(e,r){if(void 0===r&&e.getDefaultPosition&&(r=e.getDefaultPosition()),void 0===r&&(r="top-right"),!e||!e.onAdd)return this.fire(new t.ErrorEvent(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));var n=e.onAdd(this);this._controls.push(e);var i=this._controlPositions[r];return-1!==r.indexOf("bottom")?i.insertBefore(n,i.firstChild):i.appendChild(n),this},i.prototype.removeControl=function(e){if(!e||!e.onRemove)return this.fire(new t.ErrorEvent(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));var r=this._controls.indexOf(e);return r>-1&&this._controls.splice(r,1),e.onRemove(this),this},i.prototype.resize=function(e){var r=this._containerDimensions(),n=r[0],i=r[1];this._resizeCanvas(n,i),this.transform.resize(n,i),this.painter.resize(n,i);var a=!this._moving;return a&&(this.stop(),this.fire(new t.Event("movestart",e)).fire(new t.Event("move",e))),this.fire(new t.Event("resize",e)),a&&this.fire(new t.Event("moveend",e)),this},i.prototype.getBounds=function(){return this.transform.getBounds()},i.prototype.getMaxBounds=function(){return this.transform.getMaxBounds()},i.prototype.setMaxBounds=function(e){return this.transform.setMaxBounds(t.LngLatBounds.convert(e)),this._update()},i.prototype.setMinZoom=function(t){if((t=null==t?-2:t)>=-2&&t<=this.transform.maxZoom)return this.transform.minZoom=t,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=t,this._update(),this.getZoom()>t&&this.setZoom(t),this;throw new Error("maxZoom must be greater than the current minZoom")},i.prototype.getMaxZoom=function(){return this.transform.maxZoom},i.prototype.setMinPitch=function(t){if((t=null==t?0:t)<0)throw new Error("minPitch must be greater than or equal to 0");if(t>=0&&t<=this.transform.maxPitch)return this.transform.minPitch=t,this._update(),this.getPitch()60)throw new Error("maxPitch must be less than or equal to 60");if(t>=this.transform.minPitch)return this.transform.maxPitch=t,this._update(),this.getPitch()>t&&this.setPitch(t),this;throw new Error("maxPitch must be greater than the current minPitch")},i.prototype.getMaxPitch=function(){return this.transform.maxPitch},i.prototype.getRenderWorldCopies=function(){return this.transform.renderWorldCopies},i.prototype.setRenderWorldCopies=function(t){return this.transform.renderWorldCopies=t,this._update()},i.prototype.project=function(e){return this.transform.locationPoint(t.LngLat.convert(e))},i.prototype.unproject=function(e){return this.transform.pointLocation(t.Point.convert(e))},i.prototype.isMoving=function(){return this._moving||this.handlers.isMoving()},i.prototype.isZooming=function(){return this._zooming||this.handlers.isZooming()},i.prototype.isRotating=function(){return this._rotating||this.handlers.isRotating()},i.prototype._createDelegatedListener=function(t,e,r){var n,i=this;if("mouseenter"===t||"mouseover"===t){var a=!1;return{layer:e,listener:r,delegates:{mousemove:function(n){var o=i.getLayer(e)?i.queryRenderedFeatures(n.point,{layers:[e]}):[];o.length?a||(a=!0,r.call(i,new zn(t,i,n.originalEvent,{features:o}))):a=!1},mouseout:function(){a=!1}}}}if("mouseleave"===t||"mouseout"===t){var o=!1;return{layer:e,listener:r,delegates:{mousemove:function(n){(i.getLayer(e)?i.queryRenderedFeatures(n.point,{layers:[e]}):[]).length?o=!0:o&&(o=!1,r.call(i,new zn(t,i,n.originalEvent)))},mouseout:function(e){o&&(o=!1,r.call(i,new zn(t,i,e.originalEvent)))}}}}return{layer:e,listener:r,delegates:(n={},n[t]=function(t){var n=i.getLayer(e)?i.queryRenderedFeatures(t.point,{layers:[e]}):[];n.length&&(t.features=n,r.call(i,t),delete t.features)},n)}},i.prototype.on=function(t,e,r){if(void 0===r)return n.prototype.on.call(this,t,e);var i=this._createDelegatedListener(t,e,r);for(var a in this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[t]=this._delegatedListeners[t]||[],this._delegatedListeners[t].push(i),i.delegates)this.on(a,i.delegates[a]);return this},i.prototype.once=function(t,e,r){if(void 0===r)return n.prototype.once.call(this,t,e);var i=this._createDelegatedListener(t,e,r);for(var a in i.delegates)this.once(a,i.delegates[a]);return this},i.prototype.off=function(t,e,r){var i=this;return void 0===r?n.prototype.off.call(this,t,e):(this._delegatedListeners&&this._delegatedListeners[t]&&function(n){for(var a=n[t],o=0;o180;){var s=n.locationPoint(e);if(s.x>=0&&s.y>=0&&s.x<=n.width&&s.y<=n.height)break;e.lng>n.center.lng?e.lng-=360:e.lng+=360}return e}Ci.prototype.down=function(t,e){this.mouseRotate.mousedown(t,e),this.mousePitch&&this.mousePitch.mousedown(t,e),r.disableDrag()},Ci.prototype.move=function(t,e){var r=this.map,n=this.mouseRotate.mousemoveWindow(t,e);if(n&&n.bearingDelta&&r.setBearing(r.getBearing()+n.bearingDelta),this.mousePitch){var i=this.mousePitch.mousemoveWindow(t,e);i&&i.pitchDelta&&r.setPitch(r.getPitch()+i.pitchDelta)}},Ci.prototype.off=function(){var t=this.element;r.removeEventListener(t,"mousedown",this.mousedown),r.removeEventListener(t,"touchstart",this.touchstart,{passive:!1}),r.removeEventListener(t,"touchmove",this.touchmove),r.removeEventListener(t,"touchend",this.touchend),r.removeEventListener(t,"touchcancel",this.reset),this.offTemp()},Ci.prototype.offTemp=function(){r.enableDrag(),r.removeEventListener(t.window,"mousemove",this.mousemove),r.removeEventListener(t.window,"mouseup",this.mouseup)},Ci.prototype.mousedown=function(e){this.down(t.extend({},e,{ctrlKey:!0,preventDefault:function(){return e.preventDefault()}}),r.mousePos(this.element,e)),r.addEventListener(t.window,"mousemove",this.mousemove),r.addEventListener(t.window,"mouseup",this.mouseup)},Ci.prototype.mousemove=function(t){this.move(t,r.mousePos(this.element,t))},Ci.prototype.mouseup=function(t){this.mouseRotate.mouseupWindow(t),this.mousePitch&&this.mousePitch.mouseupWindow(t),this.offTemp()},Ci.prototype.touchstart=function(t){1!==t.targetTouches.length?this.reset():(this._startPos=this._lastPos=r.touchPos(this.element,t.targetTouches)[0],this.down({type:"mousedown",button:0,ctrlKey:!0,preventDefault:function(){return t.preventDefault()}},this._startPos))},Ci.prototype.touchmove=function(t){1!==t.targetTouches.length?this.reset():(this._lastPos=r.touchPos(this.element,t.targetTouches)[0],this.move({preventDefault:function(){return t.preventDefault()}},this._lastPos))},Ci.prototype.touchend=function(t){0===t.targetTouches.length&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)e.getEast()||r.latitudee.getNorth())},n.prototype._setErrorState=function(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting")}},n.prototype._onSuccess=function(e){if(this._map){if(this._isOutOfMapMaxBounds(e))return this._setErrorState(),this.fire(new t.Event("outofmaxbounds",e)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=e,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background")}this.options.showUserLocation&&"OFF"!==this._watchState&&this._updateMarker(e),this.options.trackUserLocation&&"ACTIVE_LOCK"!==this._watchState||this._updateCamera(e),this.options.showUserLocation&&this._dotElement.classList.remove("mapboxgl-user-location-dot-stale"),this.fire(new t.Event("geolocate",e)),this._finish()}},n.prototype._updateCamera=function(e){var r=new t.LngLat(e.coords.longitude,e.coords.latitude),n=e.coords.accuracy,i=this._map.getBearing(),a=t.extend({bearing:i},this.options.fitBoundsOptions);this._map.fitBounds(r.toBounds(n),a,{geolocateSource:!0})},n.prototype._updateMarker=function(e){if(e){var r=new t.LngLat(e.coords.longitude,e.coords.latitude);this._accuracyCircleMarker.setLngLat(r).addTo(this._map),this._userLocationDotMarker.setLngLat(r).addTo(this._map),this._accuracy=e.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},n.prototype._updateCircleRadius=function(){var t=this._map._container.clientHeight/2,e=this._map.unproject([0,t]),r=this._map.unproject([1,t]),n=e.distanceTo(r),i=Math.ceil(2*this._accuracy/n);this._circleElement.style.width=i+"px",this._circleElement.style.height=i+"px"},n.prototype._onZoom=function(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()},n.prototype._onError=function(e){if(this._map){if(this.options.trackUserLocation)if(1===e.code){this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;var r=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=r,this._geolocateButton.setAttribute("aria-label",r),void 0!==this._geolocationWatchID&&this._clearWatch()}else{if(3===e.code&&Fi)return;this._setErrorState()}"OFF"!==this._watchState&&this.options.showUserLocation&&this._dotElement.classList.add("mapboxgl-user-location-dot-stale"),this.fire(new t.Event("error",e)),this._finish()}},n.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},n.prototype._setupUI=function(e){var n=this;if(this._container.addEventListener("contextmenu",(function(t){return t.preventDefault()})),this._geolocateButton=r.create("button","mapboxgl-ctrl-geolocate",this._container),r.create("span","mapboxgl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden",!0),this._geolocateButton.type="button",!1===e){t.warnOnce("Geolocation support is not available so the GeolocateControl will be disabled.");var i=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=i,this._geolocateButton.setAttribute("aria-label",i)}else{var a=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.title=a,this._geolocateButton.setAttribute("aria-label",a)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=r.create("div","mapboxgl-user-location-dot"),this._userLocationDotMarker=new Oi(this._dotElement),this._circleElement=r.create("div","mapboxgl-user-location-accuracy-circle"),this._accuracyCircleMarker=new Oi({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",(function(e){e.geolocateSource||"ACTIVE_LOCK"!==n._watchState||e.originalEvent&&"resize"===e.originalEvent.type||(n._watchState="BACKGROUND",n._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),n._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),n.fire(new t.Event("trackuserlocationend")))}))},n.prototype.trigger=function(){if(!this._setup)return t.warnOnce("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new t.Event("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":Ri--,Fi=!1,this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this.fire(new t.Event("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new t.Event("trackuserlocationstart"))}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"BACKGROUND":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");break;case"BACKGROUND_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error")}if("OFF"===this._watchState&&void 0!==this._geolocationWatchID)this._clearWatch();else if(void 0===this._geolocationWatchID){var e;this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),++Ri>1?(e={maximumAge:6e5,timeout:0},Fi=!0):(e=this.options.positionOptions,Fi=!1),this._geolocationWatchID=t.window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,e)}}else t.window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0},n.prototype._clearWatch=function(){t.window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null)},n}(t.Evented),Ni={maxWidth:100,unit:"metric"},ji=function(e){this.options=t.extend({},Ni,e),t.bindAll(["_onMove","setUnit"],this)};function Ui(t,e,r){var n=r&&r.maxWidth||100,i=t._container.clientHeight/2,a=t.unproject([0,i]),o=t.unproject([n,i]),s=a.distanceTo(o);if(r&&"imperial"===r.unit){var l=3.2808*s;l>5280?Vi(e,n,l/5280,t._getUIString("ScaleControl.Miles")):Vi(e,n,l,t._getUIString("ScaleControl.Feet"))}else r&&"nautical"===r.unit?Vi(e,n,s/1852,t._getUIString("ScaleControl.NauticalMiles")):s>=1e3?Vi(e,n,s/1e3,t._getUIString("ScaleControl.Kilometers")):Vi(e,n,s,t._getUIString("ScaleControl.Meters"))}function Vi(t,e,r,n){var i,a,o,s=(i=r,(a=Math.pow(10,(""+Math.floor(i)).length-1))*(o=(o=i/a)>=10?10:o>=5?5:o>=3?3:o>=2?2:o>=1?1:function(t){var e=Math.pow(10,Math.ceil(-Math.log(t)/Math.LN10));return Math.round(t*e)/e}(o)));t.style.width=e*(s/r)+"px",t.innerHTML=s+" "+n}ji.prototype.getDefaultPosition=function(){return"bottom-left"},ji.prototype._onMove=function(){Ui(this._map,this._container,this.options)},ji.prototype.onAdd=function(t){return this._map=t,this._container=r.create("div","mapboxgl-ctrl mapboxgl-ctrl-scale",t.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container},ji.prototype.onRemove=function(){r.remove(this._container),this._map.off("move",this._onMove),this._map=void 0},ji.prototype.setUnit=function(t){this.options.unit=t,Ui(this._map,this._container,this.options)};var qi=function(e){this._fullscreen=!1,e&&e.container&&(e.container instanceof t.window.HTMLElement?this._container=e.container:t.warnOnce("Full screen control 'container' must be a DOM element.")),t.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in t.window.document?this._fullscreenchange="fullscreenchange":"onmozfullscreenchange"in t.window.document?this._fullscreenchange="mozfullscreenchange":"onwebkitfullscreenchange"in t.window.document?this._fullscreenchange="webkitfullscreenchange":"onmsfullscreenchange"in t.window.document&&(this._fullscreenchange="MSFullscreenChange")};qi.prototype.onAdd=function(e){return this._map=e,this._container||(this._container=this._map.getContainer()),this._controlContainer=r.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display="none",t.warnOnce("This device does not support fullscreen mode.")),this._controlContainer},qi.prototype.onRemove=function(){r.remove(this._controlContainer),this._map=null,t.window.document.removeEventListener(this._fullscreenchange,this._changeIcon)},qi.prototype._checkFullscreenSupport=function(){return!!(t.window.document.fullscreenEnabled||t.window.document.mozFullScreenEnabled||t.window.document.msFullscreenEnabled||t.window.document.webkitFullscreenEnabled)},qi.prototype._setupUI=function(){var e=this._fullscreenButton=r.create("button","mapboxgl-ctrl-fullscreen",this._controlContainer);r.create("span","mapboxgl-ctrl-icon",e).setAttribute("aria-hidden",!0),e.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),t.window.document.addEventListener(this._fullscreenchange,this._changeIcon)},qi.prototype._updateTitle=function(){var t=this._getTitle();this._fullscreenButton.setAttribute("aria-label",t),this._fullscreenButton.title=t},qi.prototype._getTitle=function(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")},qi.prototype._isFullscreen=function(){return this._fullscreen},qi.prototype._changeIcon=function(){(t.window.document.fullscreenElement||t.window.document.mozFullScreenElement||t.window.document.webkitFullscreenElement||t.window.document.msFullscreenElement)===this._container!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("mapboxgl-ctrl-shrink"),this._fullscreenButton.classList.toggle("mapboxgl-ctrl-fullscreen"),this._updateTitle())},qi.prototype._onClickFullscreen=function(){this._isFullscreen()?t.window.document.exitFullscreen?t.window.document.exitFullscreen():t.window.document.mozCancelFullScreen?t.window.document.mozCancelFullScreen():t.window.document.msExitFullscreen?t.window.document.msExitFullscreen():t.window.document.webkitCancelFullScreen&&t.window.document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen()};var Hi={closeButton:!0,closeOnClick:!0,className:"",maxWidth:"240px"},Gi=function(e){function n(r){e.call(this),this.options=t.extend(Object.create(Hi),r),t.bindAll(["_update","_onClose","remove","_onMouseMove","_onMouseUp","_onDrag"],this)}return e&&(n.__proto__=e),(n.prototype=Object.create(e&&e.prototype)).constructor=n,n.prototype.addTo=function(e){return this._map&&this.remove(),this._map=e,this.options.closeOnClick&&this._map.on("click",this._onClose),this.options.closeOnMove&&this._map.on("move",this._onClose),this._map.on("remove",this.remove),this._update(),this._trackPointer?(this._map.on("mousemove",this._onMouseMove),this._map.on("mouseup",this._onMouseUp),this._container&&this._container.classList.add("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")):this._map.on("move",this._update),this.fire(new t.Event("open")),this},n.prototype.isOpen=function(){return!!this._map},n.prototype.remove=function(){return this._content&&r.remove(this._content),this._container&&(r.remove(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("move",this._onClose),this._map.off("click",this._onClose),this._map.off("remove",this.remove),this._map.off("mousemove",this._onMouseMove),this._map.off("mouseup",this._onMouseUp),this._map.off("drag",this._onDrag),delete this._map),this.fire(new t.Event("close")),this},n.prototype.getLngLat=function(){return this._lngLat},n.prototype.setLngLat=function(e){return this._lngLat=t.LngLat.convert(e),this._pos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on("move",this._update),this._map.off("mousemove",this._onMouseMove),this._container&&this._container.classList.remove("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.remove("mapboxgl-track-pointer")),this},n.prototype.trackPointer=function(){return this._trackPointer=!0,this._pos=null,this._update(),this._map&&(this._map.off("move",this._update),this._map.on("mousemove",this._onMouseMove),this._map.on("drag",this._onDrag),this._container&&this._container.classList.add("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")),this},n.prototype.getElement=function(){return this._container},n.prototype.setText=function(e){return this.setDOMContent(t.window.document.createTextNode(e))},n.prototype.setHTML=function(e){var r,n=t.window.document.createDocumentFragment(),i=t.window.document.createElement("body");for(i.innerHTML=e;r=i.firstChild;)n.appendChild(r);return this.setDOMContent(n)},n.prototype.getMaxWidth=function(){return this._container&&this._container.style.maxWidth},n.prototype.setMaxWidth=function(t){return this.options.maxWidth=t,this._update(),this},n.prototype.setDOMContent=function(t){return this._createContent(),this._content.appendChild(t),this._update(),this},n.prototype.addClassName=function(t){this._container&&this._container.classList.add(t)},n.prototype.removeClassName=function(t){this._container&&this._container.classList.remove(t)},n.prototype.toggleClassName=function(t){if(this._container)return this._container.classList.toggle(t)},n.prototype._createContent=function(){this._content&&r.remove(this._content),this._content=r.create("div","mapboxgl-popup-content",this._container),this.options.closeButton&&(this._closeButton=r.create("button","mapboxgl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.setAttribute("aria-label","Close popup"),this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClose))},n.prototype._onMouseUp=function(t){this._update(t.point)},n.prototype._onMouseMove=function(t){this._update(t.point)},n.prototype._onDrag=function(t){this._update(t.point)},n.prototype._update=function(e){var n=this;if(this._map&&(this._lngLat||this._trackPointer)&&this._content&&(this._container||(this._container=r.create("div","mapboxgl-popup",this._map.getContainer()),this._tip=r.create("div","mapboxgl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className&&this.options.className.split(" ").forEach((function(t){return n._container.classList.add(t)})),this._trackPointer&&this._container.classList.add("mapboxgl-popup-track-pointer")),this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._map.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=Li(this._lngLat,this._pos,this._map.transform)),!this._trackPointer||e)){var i=this._pos=this._trackPointer&&e?e:this._map.project(this._lngLat),a=this.options.anchor,o=function e(r){if(r){if("number"==typeof r){var n=Math.round(Math.sqrt(.5*Math.pow(r,2)));return{center:new t.Point(0,0),top:new t.Point(0,r),"top-left":new t.Point(n,n),"top-right":new t.Point(-n,n),bottom:new t.Point(0,-r),"bottom-left":new t.Point(n,-n),"bottom-right":new t.Point(-n,-n),left:new t.Point(r,0),right:new t.Point(-r,0)}}if(r instanceof t.Point||Array.isArray(r)){var i=t.Point.convert(r);return{center:i,top:i,"top-left":i,"top-right":i,bottom:i,"bottom-left":i,"bottom-right":i,left:i,right:i}}return{center:t.Point.convert(r.center||[0,0]),top:t.Point.convert(r.top||[0,0]),"top-left":t.Point.convert(r["top-left"]||[0,0]),"top-right":t.Point.convert(r["top-right"]||[0,0]),bottom:t.Point.convert(r.bottom||[0,0]),"bottom-left":t.Point.convert(r["bottom-left"]||[0,0]),"bottom-right":t.Point.convert(r["bottom-right"]||[0,0]),left:t.Point.convert(r.left||[0,0]),right:t.Point.convert(r.right||[0,0])}}return e(new t.Point(0,0))}(this.options.offset);if(!a){var s,l=this._container.offsetWidth,c=this._container.offsetHeight;s=i.y+o.bottom.ythis._map.transform.height-c?["bottom"]:[],i.xthis._map.transform.width-l/2&&s.push("right"),a=0===s.length?"bottom":s.join("-")}var u=i.add(o[a]).round();r.setTransform(this._container,Ii[a]+" translate("+u.x+"px,"+u.y+"px)"),Pi(this._container,a,"popup")}},n.prototype._onClose=function(){this.remove()},n}(t.Evented),Yi={version:t.version,supported:e,setRTLTextPlugin:t.setRTLTextPlugin,getRTLTextPluginStatus:t.getRTLTextPluginStatus,Map:Mi,NavigationControl:Ei,GeolocateControl:Bi,AttributionControl:vi,ScaleControl:ji,FullscreenControl:qi,Popup:Gi,Marker:Oi,Style:qe,LngLat:t.LngLat,LngLatBounds:t.LngLatBounds,Point:t.Point,MercatorCoordinate:t.MercatorCoordinate,Evented:t.Evented,config:t.config,prewarm:function(){Bt().acquire(Ot)},clearPrewarmedResources:function(){var t=Rt;t&&(t.isPreloaded()&&1===t.numActive()?(t.release(Ot),Rt=null):console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"))},get accessToken(){return t.config.ACCESS_TOKEN},set accessToken(e){t.config.ACCESS_TOKEN=e},get baseApiUrl(){return t.config.API_URL},set baseApiUrl(e){t.config.API_URL=e},get workerCount(){return Dt.workerCount},set workerCount(t){Dt.workerCount=t},get maxParallelImageRequests(){return t.config.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(e){t.config.MAX_PARALLEL_IMAGE_REQUESTS=e},clearStorage:function(e){t.clearTileCache(e)},workerUrl:""};return Yi})),r}))},{}],474:[function(t,e,r){"use strict";e.exports=function(t){for(var e=1<p[1][2]&&(v[0]=-v[0]),p[0][2]>p[2][0]&&(v[1]=-v[1]),p[1][0]>p[0][1]&&(v[2]=-v[2]),!0}},{"./normalize":476,"gl-mat4/clone":278,"gl-mat4/create":280,"gl-mat4/determinant":281,"gl-mat4/invert":293,"gl-mat4/transpose":306,"gl-vec3/cross":365,"gl-vec3/dot":370,"gl-vec3/length":380,"gl-vec3/normalize":387}],476:[function(t,e,r){e.exports=function(t,e){var r=e[15];if(0===r)return!1;for(var n=1/r,i=0;i<16;i++)t[i]=e[i]*n;return!0}},{}],477:[function(t,e,r){var n=t("gl-vec3/lerp"),i=t("mat4-recompose"),a=t("mat4-decompose"),o=t("gl-mat4/determinant"),s=t("quat-slerp"),l=f(),c=f(),u=f();function f(){return{translate:h(),scale:h(1),skew:h(),perspective:[0,0,0,1],quaternion:[0,0,0,1]}}function h(t){return[t||0,t||0,t||0]}e.exports=function(t,e,r,f){if(0===o(e)||0===o(r))return!1;var h=a(e,l.translate,l.scale,l.skew,l.perspective,l.quaternion),p=a(r,c.translate,c.scale,c.skew,c.perspective,c.quaternion);return!(!h||!p)&&(n(u.translate,l.translate,c.translate,f),n(u.skew,l.skew,c.skew,f),n(u.scale,l.scale,c.scale,f),n(u.perspective,l.perspective,c.perspective,f),s(u.quaternion,l.quaternion,c.quaternion,f),i(t,u.translate,u.scale,u.skew,u.perspective,u.quaternion),!0)}},{"gl-mat4/determinant":281,"gl-vec3/lerp":381,"mat4-decompose":475,"mat4-recompose":478,"quat-slerp":527}],478:[function(t,e,r){var n={identity:t("gl-mat4/identity"),translate:t("gl-mat4/translate"),multiply:t("gl-mat4/multiply"),create:t("gl-mat4/create"),scale:t("gl-mat4/scale"),fromRotationTranslation:t("gl-mat4/fromRotationTranslation")},i=(n.create(),n.create());e.exports=function(t,e,r,a,o,s){return n.identity(t),n.fromRotationTranslation(t,s,e),t[3]=o[0],t[7]=o[1],t[11]=o[2],t[15]=o[3],n.identity(i),0!==a[2]&&(i[9]=a[2],n.multiply(t,t,i)),0!==a[1]&&(i[9]=0,i[8]=a[1],n.multiply(t,t,i)),0!==a[0]&&(i[8]=0,i[4]=a[0],n.multiply(t,t,i)),n.scale(t,t,r),t}},{"gl-mat4/create":280,"gl-mat4/fromRotationTranslation":284,"gl-mat4/identity":291,"gl-mat4/multiply":295,"gl-mat4/scale":303,"gl-mat4/translate":305}],479:[function(t,e,r){"use strict";e.exports=Math.log2||function(t){return Math.log(t)*Math.LOG2E}},{}],480:[function(t,e,r){"use strict";var n=t("binary-search-bounds"),i=t("mat4-interpolate"),a=t("gl-mat4/invert"),o=t("gl-mat4/rotateX"),s=t("gl-mat4/rotateY"),l=t("gl-mat4/rotateZ"),c=t("gl-mat4/lookAt"),u=t("gl-mat4/translate"),f=(t("gl-mat4/scale"),t("gl-vec3/normalize")),h=[0,0,0];function p(t){this._components=t.slice(),this._time=[0],this.prevMatrix=t.slice(),this.nextMatrix=t.slice(),this.computedMatrix=t.slice(),this.computedInverse=t.slice(),this.computedEye=[0,0,0],this.computedUp=[0,0,0],this.computedCenter=[0,0,0],this.computedRadius=[0],this._limits=[-1/0,1/0]}e.exports=function(t){return new p((t=t||{}).matrix||[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])};var d=p.prototype;d.recalcMatrix=function(t){var e=this._time,r=n.le(e,t),o=this.computedMatrix;if(!(r<0)){var s=this._components;if(r===e.length-1)for(var l=16*r,c=0;c<16;++c)o[c]=s[l++];else{var u=e[r+1]-e[r],h=(l=16*r,this.prevMatrix),p=!0;for(c=0;c<16;++c)h[c]=s[l++];var d=this.nextMatrix;for(c=0;c<16;++c)d[c]=s[l++],p=p&&h[c]===d[c];if(u<1e-6||p)for(c=0;c<16;++c)o[c]=h[c];else i(o,h,d,(t-e[r])/u)}var g=this.computedUp;g[0]=o[1],g[1]=o[5],g[2]=o[9],f(g,g);var m=this.computedInverse;a(m,o);var v=this.computedEye,y=m[15];v[0]=m[12]/y,v[1]=m[13]/y,v[2]=m[14]/y;var x=this.computedCenter,b=Math.exp(this.computedRadius[0]);for(c=0;c<3;++c)x[c]=v[c]-o[2+4*c]*b}},d.idle=function(t){if(!(t1&&n(t[o[u-2]],t[o[u-1]],c)<=0;)u-=1,o.pop();for(o.push(l),u=s.length;u>1&&n(t[s[u-2]],t[s[u-1]],c)>=0;)u-=1,s.pop();s.push(l)}r=new Array(s.length+o.length-2);for(var f=0,h=(i=0,o.length);i0;--p)r[f++]=s[p];return r};var n=t("robust-orientation")[3]},{"robust-orientation":548}],483:[function(t,e,r){"use strict";e.exports=function(t,e){e||(e=t,t=window);var r=0,i=0,a=0,o={shift:!1,alt:!1,control:!1,meta:!1},s=!1;function l(t){var e=!1;return"altKey"in t&&(e=e||t.altKey!==o.alt,o.alt=!!t.altKey),"shiftKey"in t&&(e=e||t.shiftKey!==o.shift,o.shift=!!t.shiftKey),"ctrlKey"in t&&(e=e||t.ctrlKey!==o.control,o.control=!!t.ctrlKey),"metaKey"in t&&(e=e||t.metaKey!==o.meta,o.meta=!!t.metaKey),e}function c(t,s){var c=n.x(s),u=n.y(s);"buttons"in s&&(t=0|s.buttons),(t!==r||c!==i||u!==a||l(s))&&(r=0|t,i=c||0,a=u||0,e&&e(r,i,a,o))}function u(t){c(0,t)}function f(){(r||i||a||o.shift||o.alt||o.meta||o.control)&&(i=a=0,r=0,o.shift=o.alt=o.control=o.meta=!1,e&&e(0,0,0,o))}function h(t){l(t)&&e&&e(r,i,a,o)}function p(t){0===n.buttons(t)?c(0,t):c(r,t)}function d(t){c(r|n.buttons(t),t)}function g(t){c(r&~n.buttons(t),t)}function m(){s||(s=!0,t.addEventListener("mousemove",p),t.addEventListener("mousedown",d),t.addEventListener("mouseup",g),t.addEventListener("mouseleave",u),t.addEventListener("mouseenter",u),t.addEventListener("mouseout",u),t.addEventListener("mouseover",u),t.addEventListener("blur",f),t.addEventListener("keyup",h),t.addEventListener("keydown",h),t.addEventListener("keypress",h),t!==window&&(window.addEventListener("blur",f),window.addEventListener("keyup",h),window.addEventListener("keydown",h),window.addEventListener("keypress",h)))}m();var v={element:t};return Object.defineProperties(v,{enabled:{get:function(){return s},set:function(e){e?m():function(){if(!s)return;s=!1,t.removeEventListener("mousemove",p),t.removeEventListener("mousedown",d),t.removeEventListener("mouseup",g),t.removeEventListener("mouseleave",u),t.removeEventListener("mouseenter",u),t.removeEventListener("mouseout",u),t.removeEventListener("mouseover",u),t.removeEventListener("blur",f),t.removeEventListener("keyup",h),t.removeEventListener("keydown",h),t.removeEventListener("keypress",h),t!==window&&(window.removeEventListener("blur",f),window.removeEventListener("keyup",h),window.removeEventListener("keydown",h),window.removeEventListener("keypress",h))}()},enumerable:!0},buttons:{get:function(){return r},enumerable:!0},x:{get:function(){return i},enumerable:!0},y:{get:function(){return a},enumerable:!0},mods:{get:function(){return o},enumerable:!0}}),v};var n=t("mouse-event")},{"mouse-event":485}],484:[function(t,e,r){var n={left:0,top:0};e.exports=function(t,e,r){e=e||t.currentTarget||t.srcElement,Array.isArray(r)||(r=[0,0]);var i=t.clientX||0,a=t.clientY||0,o=(s=e,s===window||s===document||s===document.body?n:s.getBoundingClientRect());var s;return r[0]=i-o.left,r[1]=a-o.top,r}},{}],485:[function(t,e,r){"use strict";function n(t){return t.target||t.srcElement||window}r.buttons=function(t){if("object"==typeof t){if("buttons"in t)return t.buttons;if("which"in t){if(2===(e=t.which))return 4;if(3===e)return 2;if(e>0)return 1<=0)return 1< 0");"function"!=typeof t.vertex&&e("Must specify vertex creation function");"function"!=typeof t.cell&&e("Must specify cell creation function");"function"!=typeof t.phase&&e("Must specify phase function");for(var w=t.getters||[],T=new Array(b),k=0;k=0?T[k]=!0:T[k]=!1;return function(t,e,r,b,_,w){var T=w.length,k=_.length;if(k<2)throw new Error("ndarray-extract-contour: Dimension must be at least 2");for(var M="extractContour"+_.join("_"),A=[],S=[],E=[],C=0;C0&&z.push(l(C,_[L-1])+"*"+s(_[L-1])),S.push(d(C,_[L])+"=("+z.join("-")+")|0")}for(C=0;C=0;--C)O.push(s(_[C]));S.push("Q=("+O.join("*")+")|0","P=mallocUint32(Q)","V=mallocUint32(Q)","X=0"),S.push(g(0)+"=0");for(L=1;L<1<0;_=_-1&d)x.push("V[X+"+v(_)+"]");x.push(y(0));for(_=0;_=0;--e)N(e,0);var r=[];for(e=0;e0){",p(_[e]),"=1;"),t(e-1,r|1<<_[e]);for(var n=0;n=0?s.push("0"):e.indexOf(-(l+1))>=0?s.push("s["+l+"]-1"):(s.push("-1"),a.push("1"),o.push("s["+l+"]-2"));var c=".lo("+a.join()+").hi("+o.join()+")";if(0===a.length&&(c=""),i>0){n.push("if(1");for(l=0;l=0||e.indexOf(-(l+1))>=0||n.push("&&s[",l,"]>2");n.push("){grad",i,"(src.pick(",s.join(),")",c);for(l=0;l=0||e.indexOf(-(l+1))>=0||n.push(",dst.pick(",s.join(),",",l,")",c);n.push(");")}for(l=0;l1){dst.set(",s.join(),",",u,",0.5*(src.get(",h.join(),")-src.get(",p.join(),")))}else{dst.set(",s.join(),",",u,",0)};"):n.push("if(s[",u,"]>1){diff(",f,",src.pick(",h.join(),")",c,",src.pick(",p.join(),")",c,");}else{zero(",f,");};");break;case"mirror":0===i?n.push("dst.set(",s.join(),",",u,",0);"):n.push("zero(",f,");");break;case"wrap":var d=s.slice(),g=s.slice();e[l]<0?(d[u]="s["+u+"]-2",g[u]="0"):(d[u]="s["+u+"]-1",g[u]="1"),0===i?n.push("if(s[",u,"]>2){dst.set(",s.join(),",",u,",0.5*(src.get(",d.join(),")-src.get(",g.join(),")))}else{dst.set(",s.join(),",",u,",0)};"):n.push("if(s[",u,"]>2){diff(",f,",src.pick(",d.join(),")",c,",src.pick(",g.join(),")",c,");}else{zero(",f,");};");break;default:throw new Error("ndarray-gradient: Invalid boundary condition")}}i>0&&n.push("};")}for(var s=0;s<1<>",rrshift:">>>"};!function(){for(var t in s){var e=s[t];r[t]=o({args:["array","array","array"],body:{args:["a","b","c"],body:"a=b"+e+"c"},funcName:t}),r[t+"eq"]=o({args:["array","array"],body:{args:["a","b"],body:"a"+e+"=b"},rvalue:!0,funcName:t+"eq"}),r[t+"s"]=o({args:["array","array","scalar"],body:{args:["a","b","s"],body:"a=b"+e+"s"},funcName:t+"s"}),r[t+"seq"]=o({args:["array","scalar"],body:{args:["a","s"],body:"a"+e+"=s"},rvalue:!0,funcName:t+"seq"})}}();var l={not:"!",bnot:"~",neg:"-",recip:"1.0/"};!function(){for(var t in l){var e=l[t];r[t]=o({args:["array","array"],body:{args:["a","b"],body:"a="+e+"b"},funcName:t}),r[t+"eq"]=o({args:["array"],body:{args:["a"],body:"a="+e+"a"},rvalue:!0,count:2,funcName:t+"eq"})}}();var c={and:"&&",or:"||",eq:"===",neq:"!==",lt:"<",gt:">",leq:"<=",geq:">="};!function(){for(var t in c){var e=c[t];r[t]=o({args:["array","array","array"],body:{args:["a","b","c"],body:"a=b"+e+"c"},funcName:t}),r[t+"s"]=o({args:["array","array","scalar"],body:{args:["a","b","s"],body:"a=b"+e+"s"},funcName:t+"s"}),r[t+"eq"]=o({args:["array","array"],body:{args:["a","b"],body:"a=a"+e+"b"},rvalue:!0,count:2,funcName:t+"eq"}),r[t+"seq"]=o({args:["array","scalar"],body:{args:["a","s"],body:"a=a"+e+"s"},rvalue:!0,count:2,funcName:t+"seq"})}}();var u=["abs","acos","asin","atan","ceil","cos","exp","floor","log","round","sin","sqrt","tan"];!function(){for(var t=0;tthis_s){this_s=-a}else if(a>this_s){this_s=a}",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norminf"}),r.norm1=n({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:3}],body:"this_s+=a<0?-a:a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norm1"}),r.sup=n({args:["array"],pre:{body:"this_h=-Infinity",args:[],thisVars:["this_h"],localVars:[]},body:{body:"if(_inline_1_arg0_>this_h)this_h=_inline_1_arg0_",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_h"],localVars:[]},post:{body:"return this_h",args:[],thisVars:["this_h"],localVars:[]}}),r.inf=n({args:["array"],pre:{body:"this_h=Infinity",args:[],thisVars:["this_h"],localVars:[]},body:{body:"if(_inline_1_arg0_this_v){this_v=_inline_1_arg1_;for(var _inline_1_k=0;_inline_1_k<_inline_1_arg0_.length;++_inline_1_k){this_i[_inline_1_k]=_inline_1_arg0_[_inline_1_k]}}}",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2},{name:"_inline_1_arg1_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_i","this_v"],localVars:["_inline_1_k"]},post:{body:"{return this_i}",args:[],thisVars:["this_i"],localVars:[]}}),r.random=o({args:["array"],pre:{args:[],body:"this_f=Math.random",thisVars:["this_f"]},body:{args:["a"],body:"a=this_f()",thisVars:["this_f"]},funcName:"random"}),r.assign=o({args:["array","array"],body:{args:["a","b"],body:"a=b"},funcName:"assign"}),r.assigns=o({args:["array","scalar"],body:{args:["a","b"],body:"a=b"},funcName:"assigns"}),r.equals=n({args:["array","array"],pre:i,body:{args:[{name:"x",lvalue:!1,rvalue:!0,count:1},{name:"y",lvalue:!1,rvalue:!0,count:1}],body:"if(x!==y){return false}",localVars:[],thisVars:[]},post:{args:[],localVars:[],thisVars:[],body:"return true"},funcName:"equals"})},{"cwise-compiler":151}],491:[function(t,e,r){"use strict";var n=t("ndarray"),i=t("./doConvert.js");e.exports=function(t,e){for(var r=[],a=t,o=1;Array.isArray(a);)r.push(a.length),o*=a.length,a=a[0];return 0===r.length?n():(e||(e=n(new Float64Array(o),r)),i(e,t),e)}},{"./doConvert.js":492,ndarray:495}],492:[function(t,e,r){e.exports=t("cwise-compiler")({args:["array","scalar","index"],pre:{body:"{}",args:[],thisVars:[],localVars:[]},body:{body:"{\nvar _inline_1_v=_inline_1_arg1_,_inline_1_i\nfor(_inline_1_i=0;_inline_1_i<_inline_1_arg2_.length-1;++_inline_1_i) {\n_inline_1_v=_inline_1_v[_inline_1_arg2_[_inline_1_i]]\n}\n_inline_1_arg0_=_inline_1_v[_inline_1_arg2_[_inline_1_arg2_.length-1]]\n}",args:[{name:"_inline_1_arg0_",lvalue:!0,rvalue:!1,count:1},{name:"_inline_1_arg1_",lvalue:!1,rvalue:!0,count:1},{name:"_inline_1_arg2_",lvalue:!1,rvalue:!0,count:4}],thisVars:[],localVars:["_inline_1_i","_inline_1_v"]},post:{body:"{}",args:[],thisVars:[],localVars:[]},funcName:"convert",blockSize:64})},{"cwise-compiler":151}],493:[function(t,e,r){"use strict";var n=t("typedarray-pool"),i=32;function a(t){switch(t){case"uint8":return[n.mallocUint8,n.freeUint8];case"uint16":return[n.mallocUint16,n.freeUint16];case"uint32":return[n.mallocUint32,n.freeUint32];case"int8":return[n.mallocInt8,n.freeInt8];case"int16":return[n.mallocInt16,n.freeInt16];case"int32":return[n.mallocInt32,n.freeInt32];case"float32":return[n.mallocFloat,n.freeFloat];case"float64":return[n.mallocDouble,n.freeDouble];default:return null}}function o(t){for(var e=[],r=0;r0?s.push(["d",d,"=s",d,"-d",f,"*n",f].join("")):s.push(["d",d,"=s",d].join("")),f=d),0!==(p=t.length-1-l)&&(h>0?s.push(["e",p,"=s",p,"-e",h,"*n",h,",f",p,"=",c[p],"-f",h,"*n",h].join("")):s.push(["e",p,"=s",p,",f",p,"=",c[p]].join("")),h=p)}r.push("var "+s.join(","));var g=["0","n0-1","data","offset"].concat(o(t.length));r.push(["if(n0<=",i,"){","insertionSort(",g.join(","),")}else{","quickSort(",g.join(","),")}"].join("")),r.push("}return "+n);var m=new Function("insertionSort","quickSort",r.join("\n")),v=function(t,e){var r=["'use strict'"],n=["ndarrayInsertionSort",t.join("d"),e].join(""),i=["left","right","data","offset"].concat(o(t.length)),s=a(e),l=["i,j,cptr,ptr=left*s0+offset"];if(t.length>1){for(var c=[],u=1;u1){r.push("dptr=0;sptr=ptr");for(u=t.length-1;u>=0;--u){0!==(p=t[u])&&r.push(["for(i",p,"=0;i",p,"b){break __l}"].join(""));for(u=t.length-1;u>=1;--u)r.push("sptr+=e"+u,"dptr+=f"+u,"}");r.push("dptr=cptr;sptr=cptr-s0");for(u=t.length-1;u>=0;--u){0!==(p=t[u])&&r.push(["for(i",p,"=0;i",p,"=0;--u){0!==(p=t[u])&&r.push(["for(i",p,"=0;i",p,"scratch)){",h("cptr",f("cptr-s0")),"cptr-=s0","}",h("cptr","scratch"));return r.push("}"),t.length>1&&s&&r.push("free(scratch)"),r.push("} return "+n),s?new Function("malloc","free",r.join("\n"))(s[0],s[1]):new Function(r.join("\n"))()}(t,e),y=function(t,e,r){var n=["'use strict'"],s=["ndarrayQuickSort",t.join("d"),e].join(""),l=["left","right","data","offset"].concat(o(t.length)),c=a(e),u=0;n.push(["function ",s,"(",l.join(","),"){"].join(""));var f=["sixth=((right-left+1)/6)|0","index1=left+sixth","index5=right-sixth","index3=(left+right)>>1","index2=index3-sixth","index4=index3+sixth","el1=index1","el2=index2","el3=index3","el4=index4","el5=index5","less=left+1","great=right-1","pivots_are_equal=true","tmp","tmp0","x","y","z","k","ptr0","ptr1","ptr2","comp_pivot1=0","comp_pivot2=0","comp=0"];if(t.length>1){for(var h=[],p=1;p=0;--a){0!==(o=t[a])&&n.push(["for(i",o,"=0;i",o,"1)for(a=0;a1?n.push("ptr_shift+=d"+o):n.push("ptr0+=d"+o),n.push("}"))}}function y(e,r,i,a){if(1===r.length)n.push("ptr0="+d(r[0]));else{for(var o=0;o1)for(o=0;o=1;--o)i&&n.push("pivot_ptr+=f"+o),r.length>1?n.push("ptr_shift+=e"+o):n.push("ptr0+=e"+o),n.push("}")}function x(){t.length>1&&c&&n.push("free(pivot1)","free(pivot2)")}function b(e,r){var i="el"+e,a="el"+r;if(t.length>1){var o="__l"+ ++u;y(o,[i,a],!1,["comp=",g("ptr0"),"-",g("ptr1"),"\n","if(comp>0){tmp0=",i,";",i,"=",a,";",a,"=tmp0;break ",o,"}\n","if(comp<0){break ",o,"}"].join(""))}else n.push(["if(",g(d(i)),">",g(d(a)),"){tmp0=",i,";",i,"=",a,";",a,"=tmp0}"].join(""))}function _(e,r){t.length>1?v([e,r],!1,m("ptr0",g("ptr1"))):n.push(m(d(e),g(d(r))))}function w(e,r,i){if(t.length>1){var a="__l"+ ++u;y(a,[r],!0,[e,"=",g("ptr0"),"-pivot",i,"[pivot_ptr]\n","if(",e,"!==0){break ",a,"}"].join(""))}else n.push([e,"=",g(d(r)),"-pivot",i].join(""))}function T(e,r){t.length>1?v([e,r],!1,["tmp=",g("ptr0"),"\n",m("ptr0",g("ptr1")),"\n",m("ptr1","tmp")].join("")):n.push(["ptr0=",d(e),"\n","ptr1=",d(r),"\n","tmp=",g("ptr0"),"\n",m("ptr0",g("ptr1")),"\n",m("ptr1","tmp")].join(""))}function k(e,r,i){t.length>1?(v([e,r,i],!1,["tmp=",g("ptr0"),"\n",m("ptr0",g("ptr1")),"\n",m("ptr1",g("ptr2")),"\n",m("ptr2","tmp")].join("")),n.push("++"+r,"--"+i)):n.push(["ptr0=",d(e),"\n","ptr1=",d(r),"\n","ptr2=",d(i),"\n","++",r,"\n","--",i,"\n","tmp=",g("ptr0"),"\n",m("ptr0",g("ptr1")),"\n",m("ptr1",g("ptr2")),"\n",m("ptr2","tmp")].join(""))}function M(t,e){T(t,e),n.push("--"+e)}function A(e,r,i){t.length>1?v([e,r],!0,[m("ptr0",g("ptr1")),"\n",m("ptr1",["pivot",i,"[pivot_ptr]"].join(""))].join("")):n.push(m(d(e),g(d(r))),m(d(r),"pivot"+i))}function S(e,r){n.push(["if((",r,"-",e,")<=",i,"){\n","insertionSort(",e,",",r,",data,offset,",o(t.length).join(","),")\n","}else{\n",s,"(",e,",",r,",data,offset,",o(t.length).join(","),")\n","}"].join(""))}function E(e,r,i){t.length>1?(n.push(["__l",++u,":while(true){"].join("")),v([e],!0,["if(",g("ptr0"),"!==pivot",r,"[pivot_ptr]){break __l",u,"}"].join("")),n.push(i,"}")):n.push(["while(",g(d(e)),"===pivot",r,"){",i,"}"].join(""))}return n.push("var "+f.join(",")),b(1,2),b(4,5),b(1,3),b(2,3),b(1,4),b(3,4),b(2,5),b(2,3),b(4,5),t.length>1?v(["el1","el2","el3","el4","el5","index1","index3","index5"],!0,["pivot1[pivot_ptr]=",g("ptr1"),"\n","pivot2[pivot_ptr]=",g("ptr3"),"\n","pivots_are_equal=pivots_are_equal&&(pivot1[pivot_ptr]===pivot2[pivot_ptr])\n","x=",g("ptr0"),"\n","y=",g("ptr2"),"\n","z=",g("ptr4"),"\n",m("ptr5","x"),"\n",m("ptr6","y"),"\n",m("ptr7","z")].join("")):n.push(["pivot1=",g(d("el2")),"\n","pivot2=",g(d("el4")),"\n","pivots_are_equal=pivot1===pivot2\n","x=",g(d("el1")),"\n","y=",g(d("el3")),"\n","z=",g(d("el5")),"\n",m(d("index1"),"x"),"\n",m(d("index3"),"y"),"\n",m(d("index5"),"z")].join("")),_("index2","left"),_("index4","right"),n.push("if(pivots_are_equal){"),n.push("for(k=less;k<=great;++k){"),w("comp","k",1),n.push("if(comp===0){continue}"),n.push("if(comp<0){"),n.push("if(k!==less){"),T("k","less"),n.push("}"),n.push("++less"),n.push("}else{"),n.push("while(true){"),w("comp","great",1),n.push("if(comp>0){"),n.push("great--"),n.push("}else if(comp<0){"),k("k","less","great"),n.push("break"),n.push("}else{"),M("k","great"),n.push("break"),n.push("}"),n.push("}"),n.push("}"),n.push("}"),n.push("}else{"),n.push("for(k=less;k<=great;++k){"),w("comp_pivot1","k",1),n.push("if(comp_pivot1<0){"),n.push("if(k!==less){"),T("k","less"),n.push("}"),n.push("++less"),n.push("}else{"),w("comp_pivot2","k",2),n.push("if(comp_pivot2>0){"),n.push("while(true){"),w("comp","great",2),n.push("if(comp>0){"),n.push("if(--greatindex5){"),E("less",1,"++less"),E("great",2,"--great"),n.push("for(k=less;k<=great;++k){"),w("comp_pivot1","k",1),n.push("if(comp_pivot1===0){"),n.push("if(k!==less){"),T("k","less"),n.push("}"),n.push("++less"),n.push("}else{"),w("comp_pivot2","k",2),n.push("if(comp_pivot2===0){"),n.push("while(true){"),w("comp","great",2),n.push("if(comp===0){"),n.push("if(--great1&&c?new Function("insertionSort","malloc","free",n.join("\n"))(r,c[0],c[1]):new Function("insertionSort",n.join("\n"))(r)}(t,e,v);return m(v,y)}},{"typedarray-pool":595}],494:[function(t,e,r){"use strict";var n=t("./lib/compile_sort.js"),i={};e.exports=function(t){var e=t.order,r=t.dtype,a=[e,r].join(":"),o=i[a];return o||(i[a]=o=n(e,r)),o(t),t}},{"./lib/compile_sort.js":493}],495:[function(t,e,r){var n=t("iota-array"),i=t("is-buffer"),a="undefined"!=typeof Float64Array;function o(t,e){return t[0]-e[0]}function s(){var t,e=this.stride,r=new Array(e.length);for(t=0;tMath.abs(this.stride[1]))?[1,0]:[0,1]}})"):3===e&&a.push("var s0=Math.abs(this.stride[0]),s1=Math.abs(this.stride[1]),s2=Math.abs(this.stride[2]);if(s0>s1){if(s1>s2){return [2,1,0];}else if(s0>s2){return [1,2,0];}else{return [1,0,2];}}else if(s0>s2){return [2,0,1];}else if(s2>s1){return [0,1,2];}else{return [0,2,1];}}})")):a.push("ORDER})")),a.push("proto.set=function "+r+"_set("+l.join(",")+",v){"),i?a.push("return this.data.set("+u+",v)}"):a.push("return this.data["+u+"]=v}"),a.push("proto.get=function "+r+"_get("+l.join(",")+"){"),i?a.push("return this.data.get("+u+")}"):a.push("return this.data["+u+"]}"),a.push("proto.index=function "+r+"_index(",l.join(),"){return "+u+"}"),a.push("proto.hi=function "+r+"_hi("+l.join(",")+"){return new "+r+"(this.data,"+o.map((function(t){return["(typeof i",t,"!=='number'||i",t,"<0)?this.shape[",t,"]:i",t,"|0"].join("")})).join(",")+","+o.map((function(t){return"this.stride["+t+"]"})).join(",")+",this.offset)}");var p=o.map((function(t){return"a"+t+"=this.shape["+t+"]"})),d=o.map((function(t){return"c"+t+"=this.stride["+t+"]"}));a.push("proto.lo=function "+r+"_lo("+l.join(",")+"){var b=this.offset,d=0,"+p.join(",")+","+d.join(","));for(var g=0;g=0){d=i"+g+"|0;b+=c"+g+"*d;a"+g+"-=d}");a.push("return new "+r+"(this.data,"+o.map((function(t){return"a"+t})).join(",")+","+o.map((function(t){return"c"+t})).join(",")+",b)}"),a.push("proto.step=function "+r+"_step("+l.join(",")+"){var "+o.map((function(t){return"a"+t+"=this.shape["+t+"]"})).join(",")+","+o.map((function(t){return"b"+t+"=this.stride["+t+"]"})).join(",")+",c=this.offset,d=0,ceil=Math.ceil");for(g=0;g=0){c=(c+this.stride["+g+"]*i"+g+")|0}else{a.push(this.shape["+g+"]);b.push(this.stride["+g+"])}");return a.push("var ctor=CTOR_LIST[a.length+1];return ctor(this.data,a,b,c)}"),a.push("return function construct_"+r+"(data,shape,stride,offset){return new "+r+"(data,"+o.map((function(t){return"shape["+t+"]"})).join(",")+","+o.map((function(t){return"stride["+t+"]"})).join(",")+",offset)}"),new Function("CTOR_LIST","ORDER",a.join("\n"))(c[t],s)}var c={float32:[],float64:[],int8:[],int16:[],int32:[],uint8:[],uint16:[],uint32:[],array:[],uint8_clamped:[],bigint64:[],biguint64:[],buffer:[],generic:[]};e.exports=function(t,e,r,n){if(void 0===t)return(0,c.array[0])([]);"number"==typeof t&&(t=[t]),void 0===e&&(e=[t.length]);var o=e.length;if(void 0===r){r=new Array(o);for(var s=o-1,u=1;s>=0;--s)r[s]=u,u*=e[s]}if(void 0===n){n=0;for(s=0;st==t>0?a===-1>>>0?(r+=1,a=0):a+=1:0===a?(a=-1>>>0,r-=1):a-=1;return n.pack(a,r)}},{"double-bits":173}],497:[function(t,e,r){var n=Math.PI,i=c(120);function a(t,e,r,n){return["C",t,e,r,n,r,n]}function o(t,e,r,n,i,a){return["C",t/3+2/3*r,e/3+2/3*n,i/3+2/3*r,a/3+2/3*n,i,a]}function s(t,e,r,a,o,c,u,f,h,p){if(p)T=p[0],k=p[1],_=p[2],w=p[3];else{var d=l(t,e,-o);t=d.x,e=d.y;var g=(t-(f=(d=l(f,h,-o)).x))/2,m=(e-(h=d.y))/2,v=g*g/(r*r)+m*m/(a*a);v>1&&(r*=v=Math.sqrt(v),a*=v);var y=r*r,x=a*a,b=(c==u?-1:1)*Math.sqrt(Math.abs((y*x-y*m*m-x*g*g)/(y*m*m+x*g*g)));b==1/0&&(b=1);var _=b*r*m/a+(t+f)/2,w=b*-a*g/r+(e+h)/2,T=Math.asin(((e-w)/a).toFixed(9)),k=Math.asin(((h-w)/a).toFixed(9));(T=t<_?n-T:T)<0&&(T=2*n+T),(k=f<_?n-k:k)<0&&(k=2*n+k),u&&T>k&&(T-=2*n),!u&&k>T&&(k-=2*n)}if(Math.abs(k-T)>i){var M=k,A=f,S=h;k=T+i*(u&&k>T?1:-1);var E=s(f=_+r*Math.cos(k),h=w+a*Math.sin(k),r,a,o,0,u,A,S,[k,M,_,w])}var C=Math.tan((k-T)/4),L=4/3*r*C,I=4/3*a*C,P=[2*t-(t+L*Math.sin(T)),2*e-(e-I*Math.cos(T)),f+L*Math.sin(k),h-I*Math.cos(k),f,h];if(p)return P;E&&(P=P.concat(E));for(var z=0;z7&&(r.push(v.splice(0,7)),v.unshift("C"));break;case"S":var x=p,b=d;"C"!=e&&"S"!=e||(x+=x-n,b+=b-i),v=["C",x,b,v[1],v[2],v[3],v[4]];break;case"T":"Q"==e||"T"==e?(f=2*p-f,h=2*d-h):(f=p,h=d),v=o(p,d,f,h,v[1],v[2]);break;case"Q":f=v[1],h=v[2],v=o(p,d,v[1],v[2],v[3],v[4]);break;case"L":v=a(p,d,v[1],v[2]);break;case"H":v=a(p,d,v[1],d);break;case"V":v=a(p,d,p,v[1]);break;case"Z":v=a(p,d,l,u)}e=y,p=v[v.length-2],d=v[v.length-1],v.length>4?(n=v[v.length-4],i=v[v.length-3]):(n=p,i=d),r.push(v)}return r}},{}],498:[function(t,e,r){r.vertexNormals=function(t,e,r){for(var n=e.length,i=new Array(n),a=void 0===r?1e-6:r,o=0;oa){var b=i[c],_=1/Math.sqrt(m*y);for(x=0;x<3;++x){var w=(x+1)%3,T=(x+2)%3;b[x]+=_*(v[w]*g[T]-v[T]*g[w])}}}for(o=0;oa)for(_=1/Math.sqrt(k),x=0;x<3;++x)b[x]*=_;else for(x=0;x<3;++x)b[x]=0}return i},r.faceNormals=function(t,e,r){for(var n=t.length,i=new Array(n),a=void 0===r?1e-6:r,o=0;oa?1/Math.sqrt(p):0;for(c=0;c<3;++c)h[c]*=p;i[o]=h}return i}},{}],499:[function(t,e,r){ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ +"use strict";var n=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;function o(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}e.exports=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(e).map((function(t){return e[t]})).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach((function(t){n[t]=t})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var r,s,l=o(t),c=1;c0){var f=Math.sqrt(u+1);t[0]=.5*(o-l)/f,t[1]=.5*(s-n)/f,t[2]=.5*(r-a)/f,t[3]=.5*f}else{var h=Math.max(e,a,c);f=Math.sqrt(2*h-u+1);e>=h?(t[0]=.5*f,t[1]=.5*(i+r)/f,t[2]=.5*(s+n)/f,t[3]=.5*(o-l)/f):a>=h?(t[0]=.5*(r+i)/f,t[1]=.5*f,t[2]=.5*(l+o)/f,t[3]=.5*(s-n)/f):(t[0]=.5*(n+s)/f,t[1]=.5*(o+l)/f,t[2]=.5*f,t[3]=.5*(r-i)/f)}return t}},{}],501:[function(t,e,r){"use strict";e.exports=function(t){var e=(t=t||{}).center||[0,0,0],r=t.rotation||[0,0,0,1],n=t.radius||1;e=[].slice.call(e,0,3),u(r=[].slice.call(r,0,4),r);var i=new f(r,e,Math.log(n));i.setDistanceLimits(t.zoomMin,t.zoomMax),("eye"in t||"up"in t)&&i.lookAt(0,t.eye,t.center,t.up);return i};var n=t("filtered-vector"),i=t("gl-mat4/lookAt"),a=t("gl-mat4/fromQuat"),o=t("gl-mat4/invert"),s=t("./lib/quatFromFrame");function l(t,e,r){return Math.sqrt(Math.pow(t,2)+Math.pow(e,2)+Math.pow(r,2))}function c(t,e,r,n){return Math.sqrt(Math.pow(t,2)+Math.pow(e,2)+Math.pow(r,2)+Math.pow(n,2))}function u(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=c(r,n,i,a);o>1e-6?(t[0]=r/o,t[1]=n/o,t[2]=i/o,t[3]=a/o):(t[0]=t[1]=t[2]=0,t[3]=1)}function f(t,e,r){this.radius=n([r]),this.center=n(e),this.rotation=n(t),this.computedRadius=this.radius.curve(0),this.computedCenter=this.center.curve(0),this.computedRotation=this.rotation.curve(0),this.computedUp=[.1,0,0],this.computedEye=[.1,0,0],this.computedMatrix=[.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],this.recalcMatrix(0)}var h=f.prototype;h.lastT=function(){return Math.max(this.radius.lastT(),this.center.lastT(),this.rotation.lastT())},h.recalcMatrix=function(t){this.radius.curve(t),this.center.curve(t),this.rotation.curve(t);var e=this.computedRotation;u(e,e);var r=this.computedMatrix;a(r,e);var n=this.computedCenter,i=this.computedEye,o=this.computedUp,s=Math.exp(this.computedRadius[0]);i[0]=n[0]+s*r[2],i[1]=n[1]+s*r[6],i[2]=n[2]+s*r[10],o[0]=r[1],o[1]=r[5],o[2]=r[9];for(var l=0;l<3;++l){for(var c=0,f=0;f<3;++f)c+=r[l+4*f]*i[f];r[12+l]=-c}},h.getMatrix=function(t,e){this.recalcMatrix(t);var r=this.computedMatrix;if(e){for(var n=0;n<16;++n)e[n]=r[n];return e}return r},h.idle=function(t){this.center.idle(t),this.radius.idle(t),this.rotation.idle(t)},h.flush=function(t){this.center.flush(t),this.radius.flush(t),this.rotation.flush(t)},h.pan=function(t,e,r,n){e=e||0,r=r||0,n=n||0,this.recalcMatrix(t);var i=this.computedMatrix,a=i[1],o=i[5],s=i[9],c=l(a,o,s);a/=c,o/=c,s/=c;var u=i[0],f=i[4],h=i[8],p=u*a+f*o+h*s,d=l(u-=a*p,f-=o*p,h-=s*p);u/=d,f/=d,h/=d;var g=i[2],m=i[6],v=i[10],y=g*a+m*o+v*s,x=g*u+m*f+v*h,b=l(g-=y*a+x*u,m-=y*o+x*f,v-=y*s+x*h);g/=b,m/=b,v/=b;var _=u*e+a*r,w=f*e+o*r,T=h*e+s*r;this.center.move(t,_,w,T);var k=Math.exp(this.computedRadius[0]);k=Math.max(1e-4,k+n),this.radius.set(t,Math.log(k))},h.rotate=function(t,e,r,n){this.recalcMatrix(t),e=e||0,r=r||0;var i=this.computedMatrix,a=i[0],o=i[4],s=i[8],u=i[1],f=i[5],h=i[9],p=i[2],d=i[6],g=i[10],m=e*a+r*u,v=e*o+r*f,y=e*s+r*h,x=-(d*y-g*v),b=-(g*m-p*y),_=-(p*v-d*m),w=Math.sqrt(Math.max(0,1-Math.pow(x,2)-Math.pow(b,2)-Math.pow(_,2))),T=c(x,b,_,w);T>1e-6?(x/=T,b/=T,_/=T,w/=T):(x=b=_=0,w=1);var k=this.computedRotation,M=k[0],A=k[1],S=k[2],E=k[3],C=M*w+E*x+A*_-S*b,L=A*w+E*b+S*x-M*_,I=S*w+E*_+M*b-A*x,P=E*w-M*x-A*b-S*_;if(n){x=p,b=d,_=g;var z=Math.sin(n)/l(x,b,_);x*=z,b*=z,_*=z,P=P*(w=Math.cos(e))-(C=C*w+P*x+L*_-I*b)*x-(L=L*w+P*b+I*x-C*_)*b-(I=I*w+P*_+C*b-L*x)*_}var O=c(C,L,I,P);O>1e-6?(C/=O,L/=O,I/=O,P/=O):(C=L=I=0,P=1),this.rotation.set(t,C,L,I,P)},h.lookAt=function(t,e,r,n){this.recalcMatrix(t),r=r||this.computedCenter,e=e||this.computedEye,n=n||this.computedUp;var a=this.computedMatrix;i(a,e,r,n);var o=this.computedRotation;s(o,a[0],a[1],a[2],a[4],a[5],a[6],a[8],a[9],a[10]),u(o,o),this.rotation.set(t,o[0],o[1],o[2],o[3]);for(var l=0,c=0;c<3;++c)l+=Math.pow(r[c]-e[c],2);this.radius.set(t,.5*Math.log(Math.max(l,1e-6))),this.center.set(t,r[0],r[1],r[2])},h.translate=function(t,e,r,n){this.center.move(t,e||0,r||0,n||0)},h.setMatrix=function(t,e){var r=this.computedRotation;s(r,e[0],e[1],e[2],e[4],e[5],e[6],e[8],e[9],e[10]),u(r,r),this.rotation.set(t,r[0],r[1],r[2],r[3]);var n=this.computedMatrix;o(n,e);var i=n[15];if(Math.abs(i)>1e-6){var a=n[12]/i,l=n[13]/i,c=n[14]/i;this.recalcMatrix(t);var f=Math.exp(this.computedRadius[0]);this.center.set(t,a-n[2]*f,l-n[6]*f,c-n[10]*f),this.radius.idle(t)}else this.center.idle(t),this.radius.idle(t)},h.setDistance=function(t,e){e>0&&this.radius.set(t,Math.log(e))},h.setDistanceLimits=function(t,e){t=t>0?Math.log(t):-1/0,e=e>0?Math.log(e):1/0,e=Math.max(e,t),this.radius.bounds[0][0]=t,this.radius.bounds[1][0]=e},h.getDistanceLimits=function(t){var e=this.radius.bounds;return t?(t[0]=Math.exp(e[0][0]),t[1]=Math.exp(e[1][0]),t):[Math.exp(e[0][0]),Math.exp(e[1][0])]},h.toJSON=function(){return this.recalcMatrix(this.lastT()),{center:this.computedCenter.slice(),rotation:this.computedRotation.slice(),distance:Math.log(this.computedRadius[0]),zoomMin:this.radius.bounds[0][0],zoomMax:this.radius.bounds[1][0]}},h.fromJSON=function(t){var e=this.lastT(),r=t.center;r&&this.center.set(e,r[0],r[1],r[2]);var n=t.rotation;n&&this.rotation.set(e,n[0],n[1],n[2],n[3]);var i=t.distance;i&&i>0&&this.radius.set(e,Math.log(i)),this.setDistanceLimits(t.zoomMin,t.zoomMax)}},{"./lib/quatFromFrame":500,"filtered-vector":242,"gl-mat4/fromQuat":282,"gl-mat4/invert":293,"gl-mat4/lookAt":294}],502:[function(t,e,r){ +/*! + * pad-left + * + * Copyright (c) 2014-2015, Jon Schlinkert. + * Licensed under the MIT license. + */ +"use strict";var n=t("repeat-string");e.exports=function(t,e,r){return n(r="undefined"!=typeof r?r+"":" ",e)+t}},{"repeat-string":541}],503:[function(t,e,r){"use strict";function n(t,e){if("string"!=typeof t)return[t];var r=[t];"string"==typeof e||Array.isArray(e)?e={brackets:e}:e||(e={});var n=e.brackets?Array.isArray(e.brackets)?e.brackets:[e.brackets]:["{}","[]","()"],i=e.escape||"___",a=!!e.flat;n.forEach((function(t){var e=new RegExp(["\\",t[0],"[^\\",t[0],"\\",t[1],"]*\\",t[1]].join("")),n=[];function a(e,a,o){var s=r.push(e.slice(t[0].length,-t[1].length))-1;return n.push(s),i+s+i}r.forEach((function(t,n){for(var i,o=0;t!=i;)if(i=t,t=t.replace(e,a),o++>1e4)throw Error("References have circular dependency. Please, check them.");r[n]=t})),n=n.reverse(),r=r.map((function(e){return n.forEach((function(r){e=e.replace(new RegExp("(\\"+i+r+"\\"+i+")","g"),t[0]+"$1"+t[1])})),e}))}));var o=new RegExp("\\"+i+"([0-9]+)\\"+i);return a?r:function t(e,r,n){for(var i,a=[],s=0;i=o.exec(e);){if(s++>1e4)throw Error("Circular references in parenthesis");a.push(e.slice(0,i.index)),a.push(t(r[i[1]],r)),e=e.slice(i.index+i[0].length)}return a.push(e),a}(r[0],r)}function i(t,e){if(e&&e.flat){var r,n=e&&e.escape||"___",i=t[0];if(!i)return"";for(var a=new RegExp("\\"+n+"([0-9]+)\\"+n),o=0;i!=r;){if(o++>1e4)throw Error("Circular references in "+t);r=i,i=i.replace(a,s)}return i}return t.reduce((function t(e,r){return Array.isArray(r)&&(r=r.reduce(t,"")),e+r}),"");function s(e,r){if(null==t[r])throw Error("Reference "+r+"is undefined");return t[r]}}function a(t,e){return Array.isArray(t)?i(t,e):n(t,e)}a.parse=n,a.stringify=i,e.exports=a},{}],504:[function(t,e,r){"use strict";var n=t("pick-by-alias");e.exports=function(t){var e;arguments.length>1&&(t=arguments);"string"==typeof t?t=t.split(/\s/).map(parseFloat):"number"==typeof t&&(t=[t]);t.length&&"number"==typeof t[0]?e=1===t.length?{width:t[0],height:t[0],x:0,y:0}:2===t.length?{width:t[0],height:t[1],x:0,y:0}:{x:t[0],y:t[1],width:t[2]-t[0]||0,height:t[3]-t[1]||0}:t&&(t=n(t,{left:"x l left Left",top:"y t top Top",width:"w width W Width",height:"h height W Width",bottom:"b bottom Bottom",right:"r right Right"}),e={x:t.left||0,y:t.top||0},null==t.width?t.right?e.width=t.right-e.x:e.width=0:e.width=t.width,null==t.height?t.bottom?e.height=t.bottom-e.y:e.height=0:e.height=t.height);return e}},{"pick-by-alias":511}],505:[function(t,e,r){e.exports=function(t){var e=[];return t.replace(i,(function(t,r,i){var o=r.toLowerCase();for(i=function(t){var e=t.match(a);return e?e.map(Number):[]}(i),"m"==o&&i.length>2&&(e.push([r].concat(i.splice(0,2))),o="l",r="m"==r?"l":"L");;){if(i.length==n[o])return i.unshift(r),e.push(i);if(i.length2){var l=n.lastIndexOf("/");if(l!==n.length-1){-1===l?(n="",i=0):i=(n=n.slice(0,l)).length-1-n.lastIndexOf("/"),a=s,o=0;continue}}else if(2===n.length||1===n.length){n="",i=0,a=s,o=0;continue}e&&(n.length>0?n+="/..":n="..",i=2)}else n.length>0?n+="/"+t.slice(a+1,s):n=t.slice(a+1,s),i=s-a-1;a=s,o=0}else 46===r&&-1!==o?++o:o=-1}return n}var i={resolve:function(){for(var e,i="",a=!1,o=arguments.length-1;o>=-1&&!a;o--){var s;o>=0?s=arguments[o]:(void 0===e&&(e=t.cwd()),s=e),r(s),0!==s.length&&(i=s+"/"+i,a=47===s.charCodeAt(0))}return i=n(i,!a),a?i.length>0?"/"+i:"/":i.length>0?i:"."},normalize:function(t){if(r(t),0===t.length)return".";var e=47===t.charCodeAt(0),i=47===t.charCodeAt(t.length-1);return 0!==(t=n(t,!e)).length||e||(t="."),t.length>0&&i&&(t+="/"),e?"/"+t:t},isAbsolute:function(t){return r(t),t.length>0&&47===t.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var t,e=0;e0&&(void 0===t?t=n:t+="/"+n)}return void 0===t?".":i.normalize(t)},relative:function(t,e){if(r(t),r(e),t===e)return"";if((t=i.resolve(t))===(e=i.resolve(e)))return"";for(var n=1;nc){if(47===e.charCodeAt(s+f))return e.slice(s+f+1);if(0===f)return e.slice(s+f)}else o>c&&(47===t.charCodeAt(n+f)?u=f:0===f&&(u=0));break}var h=t.charCodeAt(n+f);if(h!==e.charCodeAt(s+f))break;47===h&&(u=f)}var p="";for(f=n+u+1;f<=a;++f)f!==a&&47!==t.charCodeAt(f)||(0===p.length?p+="..":p+="/..");return p.length>0?p+e.slice(s+u):(s+=u,47===e.charCodeAt(s)&&++s,e.slice(s))},_makeLong:function(t){return t},dirname:function(t){if(r(t),0===t.length)return".";for(var e=t.charCodeAt(0),n=47===e,i=-1,a=!0,o=t.length-1;o>=1;--o)if(47===(e=t.charCodeAt(o))){if(!a){i=o;break}}else a=!1;return-1===i?n?"/":".":n&&1===i?"//":t.slice(0,i)},basename:function(t,e){if(void 0!==e&&"string"!=typeof e)throw new TypeError('"ext" argument must be a string');r(t);var n,i=0,a=-1,o=!0;if(void 0!==e&&e.length>0&&e.length<=t.length){if(e.length===t.length&&e===t)return"";var s=e.length-1,l=-1;for(n=t.length-1;n>=0;--n){var c=t.charCodeAt(n);if(47===c){if(!o){i=n+1;break}}else-1===l&&(o=!1,l=n+1),s>=0&&(c===e.charCodeAt(s)?-1==--s&&(a=n):(s=-1,a=l))}return i===a?a=l:-1===a&&(a=t.length),t.slice(i,a)}for(n=t.length-1;n>=0;--n)if(47===t.charCodeAt(n)){if(!o){i=n+1;break}}else-1===a&&(o=!1,a=n+1);return-1===a?"":t.slice(i,a)},extname:function(t){r(t);for(var e=-1,n=0,i=-1,a=!0,o=0,s=t.length-1;s>=0;--s){var l=t.charCodeAt(s);if(47!==l)-1===i&&(a=!1,i=s+1),46===l?-1===e?e=s:1!==o&&(o=1):-1!==e&&(o=-1);else if(!a){n=s+1;break}}return-1===e||-1===i||0===o||1===o&&e===i-1&&e===n+1?"":t.slice(e,i)},format:function(t){if(null===t||"object"!=typeof t)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof t);return function(t,e){var r=e.dir||e.root,n=e.base||(e.name||"")+(e.ext||"");return r?r===e.root?r+n:r+t+n:n}("/",t)},parse:function(t){r(t);var e={root:"",dir:"",base:"",ext:"",name:""};if(0===t.length)return e;var n,i=t.charCodeAt(0),a=47===i;a?(e.root="/",n=1):n=0;for(var o=-1,s=0,l=-1,c=!0,u=t.length-1,f=0;u>=n;--u)if(47!==(i=t.charCodeAt(u)))-1===l&&(c=!1,l=u+1),46===i?-1===o?o=u:1!==f&&(f=1):-1!==o&&(f=-1);else if(!c){s=u+1;break}return-1===o||-1===l||0===f||1===f&&o===l-1&&o===s+1?-1!==l&&(e.base=e.name=0===s&&a?t.slice(1,l):t.slice(s,l)):(0===s&&a?(e.name=t.slice(1,o),e.base=t.slice(1,l)):(e.name=t.slice(s,o),e.base=t.slice(s,l)),e.ext=t.slice(o,l)),s>0?e.dir=t.slice(0,s-1):a&&(e.dir="/"),e},sep:"/",delimiter:":",win32:null,posix:null};i.posix=i,e.exports=i}).call(this)}).call(this,t("_process"))},{_process:526}],508:[function(t,e,r){(function(t){(function(){(function(){var r,n,i,a,o,s;"undefined"!=typeof performance&&null!==performance&&performance.now?e.exports=function(){return performance.now()}:"undefined"!=typeof t&&null!==t&&t.hrtime?(e.exports=function(){return(r()-o)/1e6},n=t.hrtime,a=(r=function(){var t;return 1e9*(t=n())[0]+t[1]})(),s=1e9*t.uptime(),o=a-s):Date.now?(e.exports=function(){return Date.now()-i},i=Date.now()):(e.exports=function(){return(new Date).getTime()-i},i=(new Date).getTime())}).call(this)}).call(this)}).call(this,t("_process"))},{_process:526}],509:[function(t,e,r){"use strict";e.exports=function(t){var e=t.length;if(e<32){for(var r=1,i=0;i0;--o)a=l[o],r=s[o],s[o]=s[a],s[a]=r,l[o]=l[r],l[r]=a,c=(c+r)*o;return n.freeUint32(l),n.freeUint32(s),c},r.unrank=function(t,e,r){switch(t){case 0:return r||[];case 1:return r?(r[0]=0,r):[0];case 2:return r?(e?(r[0]=0,r[1]=1):(r[0]=1,r[1]=0),r):e?[0,1]:[1,0]}var n,i,a,o=1;for((r=r||new Array(t))[0]=0,a=1;a0;--a)e=e-(n=e/o|0)*o|0,o=o/a|0,i=0|r[a],r[a]=0|r[n],r[n]=0|i;return r}},{"invert-permutation":462,"typedarray-pool":595}],511:[function(t,e,r){"use strict";e.exports=function(t,e,r){var n,a,o={};if("string"==typeof e&&(e=i(e)),Array.isArray(e)){var s={};for(a=0;a0){o=a[u][r][0],l=u;break}s=o[1^l];for(var f=0;f<2;++f)for(var h=a[f][r],p=0;p0&&(o=d,s=g,l=f)}return i||o&&c(o,l),s}function f(t,r){var i=a[r][t][0],o=[t];c(i,r);for(var s=i[1^r];;){for(;s!==t;)o.push(s),s=u(o[o.length-2],s,!1);if(a[0][t].length+a[1][t].length===0)break;var l=o[o.length-1],f=t,h=o[1],p=u(l,f,!0);if(n(e[l],e[f],e[h],e[p])<0)break;o.push(t),s=u(l,f)}return o}function h(t,e){return e[1]===e[e.length-1]}for(o=0;o0;){a[0][o].length;var g=f(o,p);h(0,g)?d.push.apply(d,g):(d.length>0&&l.push(d),d=g)}d.length>0&&l.push(d)}return l};var n=t("compare-angle")},{"compare-angle":132}],513:[function(t,e,r){"use strict";e.exports=function(t,e){for(var r=n(t,e.length),i=new Array(e.length),a=new Array(e.length),o=[],s=0;s0;){var c=o.pop();i[c]=!1;var u=r[c];for(s=0;s0}))).length,m=new Array(g),v=new Array(g);for(p=0;p0;){var B=R.pop(),N=E[B];l(N,(function(t,e){return t-e}));var j,U=N.length,V=F[B];if(0===V){var q=d[B];j=[q]}for(p=0;p=0))if(F[H]=1^V,R.push(H),0===V)D(q=d[H])||(q.reverse(),j.push(q))}0===V&&r.push(j)}return r};var n=t("edges-to-adjacency-list"),i=t("planar-dual"),a=t("point-in-big-polygon"),o=t("two-product"),s=t("robust-sum"),l=t("uniq"),c=t("./lib/trim-leaves");function u(t,e){for(var r=new Array(t),n=0;n0&&e[i]===r[0]))return 1;a=t[i-1]}for(var s=1;a;){var l=a.key,c=n(r,l[0],l[1]);if(l[0][0]0))return 0;s=-1,a=a.right}else if(c>0)a=a.left;else{if(!(c<0))return 0;s=1,a=a.right}}return s}}(v.slabs,v.coordinates);return 0===a.length?y:function(t,e){return function(r){return t(r[0],r[1])?0:e(r)}}(l(a),y)};var n=t("robust-orientation")[3],i=t("slab-decomposition"),a=t("interval-tree-1d"),o=t("binary-search-bounds");function s(){return!0}function l(t){for(var e={},r=0;r=-t},pointBetween:function(e,r,n){var i=e[1]-r[1],a=n[0]-r[0],o=e[0]-r[0],s=n[1]-r[1],l=o*a+i*s;return!(l-t)},pointsSameX:function(e,r){return Math.abs(e[0]-r[0])t!=o-i>t&&(a-c)*(i-u)/(o-u)+c-n>t&&(s=!s),a=c,o=u}return s}};return e}},{}],520:[function(t,e,r){var n={toPolygon:function(t,e){function r(e){if(e.length<=0)return t.segments({inverted:!1,regions:[]});function r(e){var r=e.slice(0,e.length-1);return t.segments({inverted:!1,regions:[r]})}for(var n=r(e[0]),i=1;i0}))}function u(t,n){var i=t.seg,a=n.seg,o=i.start,s=i.end,c=a.start,u=a.end;r&&r.checkIntersection(i,a);var f=e.linesIntersect(o,s,c,u);if(!1===f){if(!e.pointsCollinear(o,s,c))return!1;if(e.pointsSame(o,u)||e.pointsSame(s,c))return!1;var h=e.pointsSame(o,c),p=e.pointsSame(s,u);if(h&&p)return n;var d=!h&&e.pointBetween(o,c,u),g=!p&&e.pointBetween(s,c,u);if(h)return g?l(n,s):l(t,u),n;d&&(p||(g?l(n,s):l(t,u)),l(n,o))}else 0===f.alongA&&(-1===f.alongB?l(t,c):0===f.alongB?l(t,f.pt):1===f.alongB&&l(t,u)),0===f.alongB&&(-1===f.alongA?l(n,o):0===f.alongA?l(n,f.pt):1===f.alongA&&l(n,s));return!1}for(var f=[];!a.isEmpty();){var h=a.getHead();if(r&&r.vert(h.pt[0]),h.isStart){r&&r.segmentNew(h.seg,h.primary);var p=c(h),d=p.before?p.before.ev:null,g=p.after?p.after.ev:null;function m(){if(d){var t=u(h,d);if(t)return t}return!!g&&u(h,g)}r&&r.tempStatus(h.seg,!!d&&d.seg,!!g&&g.seg);var v,y=m();if(y){var x;if(t)(x=null===h.seg.myFill.below||h.seg.myFill.above!==h.seg.myFill.below)&&(y.seg.myFill.above=!y.seg.myFill.above);else y.seg.otherFill=h.seg.myFill;r&&r.segmentUpdate(y.seg),h.other.remove(),h.remove()}if(a.getHead()!==h){r&&r.rewind(h.seg);continue}if(t)x=null===h.seg.myFill.below||h.seg.myFill.above!==h.seg.myFill.below,h.seg.myFill.below=g?g.seg.myFill.above:i,h.seg.myFill.above=x?!h.seg.myFill.below:h.seg.myFill.below;else if(null===h.seg.otherFill)v=g?h.primary===g.primary?g.seg.otherFill.above:g.seg.myFill.above:h.primary?o:i,h.seg.otherFill={above:v,below:v};r&&r.status(h.seg,!!d&&d.seg,!!g&&g.seg),h.other.status=p.insert(n.node({ev:h}))}else{var b=h.status;if(null===b)throw new Error("PolyBool: Zero-length segment detected; your epsilon is probably too small or too large");if(s.exists(b.prev)&&s.exists(b.next)&&u(b.prev.ev,b.next.ev),r&&r.statusRemove(b.ev.seg),b.remove(),!h.primary){var _=h.seg.myFill;h.seg.myFill=h.seg.otherFill,h.seg.otherFill=_}f.push(h.seg)}a.getHead().remove()}return r&&r.done(),f}return t?{addRegion:function(t){for(var n,i,a,o=t[t.length-1],l=0;l=c?(k=1,y=c+2*h+d):y=h*(k=-h/c)+d):(k=0,p>=0?(M=0,y=d):-p>=f?(M=1,y=f+2*p+d):y=p*(M=-p/f)+d);else if(M<0)M=0,h>=0?(k=0,y=d):-h>=c?(k=1,y=c+2*h+d):y=h*(k=-h/c)+d;else{var A=1/T;y=(k*=A)*(c*k+u*(M*=A)+2*h)+M*(u*k+f*M+2*p)+d}else k<0?(b=f+p)>(x=u+h)?(_=b-x)>=(w=c-2*u+f)?(k=1,M=0,y=c+2*h+d):y=(k=_/w)*(c*k+u*(M=1-k)+2*h)+M*(u*k+f*M+2*p)+d:(k=0,b<=0?(M=1,y=f+2*p+d):p>=0?(M=0,y=d):y=p*(M=-p/f)+d):M<0?(b=c+h)>(x=u+p)?(_=b-x)>=(w=c-2*u+f)?(M=1,k=0,y=f+2*p+d):y=(k=1-(M=_/w))*(c*k+u*M+2*h)+M*(u*k+f*M+2*p)+d:(M=0,b<=0?(k=1,y=c+2*h+d):h>=0?(k=0,y=d):y=h*(k=-h/c)+d):(_=f+p-u-h)<=0?(k=0,M=1,y=f+2*p+d):_>=(w=c-2*u+f)?(k=1,M=0,y=c+2*h+d):y=(k=_/w)*(c*k+u*(M=1-k)+2*h)+M*(u*k+f*M+2*p)+d;var S=1-k-M;for(l=0;l1)for(var r=1;r0){var c=t[r-1];if(0===n(s,c)&&a(c)!==l){r-=1;continue}}t[r++]=s}}return t.length=r,t}},{"cell-orientation":117,"compare-cell":133,"compare-oriented-cell":134}],534:[function(t,e,r){"use strict";var n=t("array-bounds"),i=t("color-normalize"),a=t("update-diff"),o=t("pick-by-alias"),s=t("object-assign"),l=t("flatten-vertex-data"),c=t("to-float32"),u=c.float32,f=c.fract32;e.exports=function(t,e){"function"==typeof t?(e||(e={}),e.regl=t):e=t;e.length&&(e.positions=e);if(!(t=e.regl).hasExtension("ANGLE_instanced_arrays"))throw Error("regl-error2d: `ANGLE_instanced_arrays` extension should be enabled");var r,c,p,d,g,m,v=t._gl,y={color:"black",capSize:5,lineWidth:1,opacity:1,viewport:null,range:null,offset:0,count:0,bounds:null,positions:[],errors:[]},x=[];return d=t.buffer({usage:"dynamic",type:"uint8",data:new Uint8Array(0)}),c=t.buffer({usage:"dynamic",type:"float",data:new Uint8Array(0)}),p=t.buffer({usage:"dynamic",type:"float",data:new Uint8Array(0)}),g=t.buffer({usage:"dynamic",type:"float",data:new Uint8Array(0)}),m=t.buffer({usage:"static",type:"float",data:h}),T(e),r=t({vert:"\n\t\tprecision highp float;\n\n\t\tattribute vec2 position, positionFract;\n\t\tattribute vec4 error;\n\t\tattribute vec4 color;\n\n\t\tattribute vec2 direction, lineOffset, capOffset;\n\n\t\tuniform vec4 viewport;\n\t\tuniform float lineWidth, capSize;\n\t\tuniform vec2 scale, scaleFract, translate, translateFract;\n\n\t\tvarying vec4 fragColor;\n\n\t\tvoid main() {\n\t\t\tfragColor = color / 255.;\n\n\t\t\tvec2 pixelOffset = lineWidth * lineOffset + (capSize + lineWidth) * capOffset;\n\n\t\t\tvec2 dxy = -step(.5, direction.xy) * error.xz + step(direction.xy, vec2(-.5)) * error.yw;\n\n\t\t\tvec2 position = position + dxy;\n\n\t\t\tvec2 pos = (position + translate) * scale\n\t\t\t\t+ (positionFract + translateFract) * scale\n\t\t\t\t+ (position + translate) * scaleFract\n\t\t\t\t+ (positionFract + translateFract) * scaleFract;\n\n\t\t\tpos += pixelOffset / viewport.zw;\n\n\t\t\tgl_Position = vec4(pos * 2. - 1., 0, 1);\n\t\t}\n\t\t",frag:"\n\t\tprecision highp float;\n\n\t\tvarying vec4 fragColor;\n\n\t\tuniform float opacity;\n\n\t\tvoid main() {\n\t\t\tgl_FragColor = fragColor;\n\t\t\tgl_FragColor.a *= opacity;\n\t\t}\n\t\t",uniforms:{range:t.prop("range"),lineWidth:t.prop("lineWidth"),capSize:t.prop("capSize"),opacity:t.prop("opacity"),scale:t.prop("scale"),translate:t.prop("translate"),scaleFract:t.prop("scaleFract"),translateFract:t.prop("translateFract"),viewport:function(t,e){return[e.viewport.x,e.viewport.y,t.viewportWidth,t.viewportHeight]}},attributes:{color:{buffer:d,offset:function(t,e){return 4*e.offset},divisor:1},position:{buffer:c,offset:function(t,e){return 8*e.offset},divisor:1},positionFract:{buffer:p,offset:function(t,e){return 8*e.offset},divisor:1},error:{buffer:g,offset:function(t,e){return 16*e.offset},divisor:1},direction:{buffer:m,stride:24,offset:0},lineOffset:{buffer:m,stride:24,offset:8},capOffset:{buffer:m,stride:24,offset:16}},primitive:"triangles",blend:{enable:!0,color:[0,0,0,0],equation:{rgb:"add",alpha:"add"},func:{srcRGB:"src alpha",dstRGB:"one minus src alpha",srcAlpha:"one minus dst alpha",dstAlpha:"one"}},depth:{enable:!1},scissor:{enable:!0,box:t.prop("viewport")},viewport:t.prop("viewport"),stencil:!1,instances:t.prop("count"),count:h.length}),s(b,{update:T,draw:_,destroy:k,regl:t,gl:v,canvas:v.canvas,groups:x}),b;function b(t){t?T(t):null===t&&k(),_()}function _(e){if("number"==typeof e)return w(e);e&&!Array.isArray(e)&&(e=[e]),t._refresh(),x.forEach((function(t,r){t&&(e&&(e[r]?t.draw=!0:t.draw=!1),t.draw?w(r):t.draw=!0)}))}function w(t){"number"==typeof t&&(t=x[t]),null!=t&&t&&t.count&&t.color&&t.opacity&&t.positions&&t.positions.length>1&&(t.scaleRatio=[t.scale[0]*t.viewport.width,t.scale[1]*t.viewport.height],r(t),t.after&&t.after(t))}function T(t){if(t){null!=t.length?"number"==typeof t[0]&&(t=[{positions:t}]):Array.isArray(t)||(t=[t]);var e=0,r=0;if(b.groups=x=t.map((function(t,c){var u=x[c];return t?("function"==typeof t?t={after:t}:"number"==typeof t[0]&&(t={positions:t}),t=o(t,{color:"color colors fill",capSize:"capSize cap capsize cap-size",lineWidth:"lineWidth line-width width line thickness",opacity:"opacity alpha",range:"range dataBox",viewport:"viewport viewBox",errors:"errors error",positions:"positions position data points"}),u||(x[c]=u={id:c,scale:null,translate:null,scaleFract:null,translateFract:null,draw:!0},t=s({},y,t)),a(u,t,[{lineWidth:function(t){return.5*+t},capSize:function(t){return.5*+t},opacity:parseFloat,errors:function(t){return t=l(t),r+=t.length,t},positions:function(t,r){return t=l(t,"float64"),r.count=Math.floor(t.length/2),r.bounds=n(t,2),r.offset=e,e+=r.count,t}},{color:function(t,e){var r=e.count;if(t||(t="transparent"),!Array.isArray(t)||"number"==typeof t[0]){var n=t;t=Array(r);for(var a=0;a 0. && baClipping < length(normalWidth * endBotJoin)) {\n\t\t//handle miter clipping\n\t\tbTopCoord -= normalWidth * endTopJoin;\n\t\tbTopCoord += normalize(endTopJoin * normalWidth) * baClipping;\n\t}\n\n\tif (nextReverse) {\n\t\t//make join rectangular\n\t\tvec2 miterShift = normalWidth * endJoinDirection * miterLimit * .5;\n\t\tfloat normalAdjust = 1. - min(miterLimit / endMiterRatio, 1.);\n\t\tbBotCoord = bCoord + miterShift - normalAdjust * normalWidth * currNormal * .5;\n\t\tbTopCoord = bCoord + miterShift + normalAdjust * normalWidth * currNormal * .5;\n\t}\n\telse if (!prevReverse && abClipping > 0. && abClipping < length(normalWidth * startBotJoin)) {\n\t\t//handle miter clipping\n\t\taBotCoord -= normalWidth * startBotJoin;\n\t\taBotCoord += normalize(startBotJoin * normalWidth) * abClipping;\n\t}\n\n\tvec2 aTopPosition = (aTopCoord) * adjustedScale + translate;\n\tvec2 aBotPosition = (aBotCoord) * adjustedScale + translate;\n\n\tvec2 bTopPosition = (bTopCoord) * adjustedScale + translate;\n\tvec2 bBotPosition = (bBotCoord) * adjustedScale + translate;\n\n\t//position is normalized 0..1 coord on the screen\n\tvec2 position = (aTopPosition * lineTop + aBotPosition * lineBot) * lineStart + (bTopPosition * lineTop + bBotPosition * lineBot) * lineEnd;\n\n\tstartCoord = aCoord * scaleRatio + translate * viewport.zw + viewport.xy;\n\tendCoord = bCoord * scaleRatio + translate * viewport.zw + viewport.xy;\n\n\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\n\n\tenableStartMiter = step(dot(currTangent, prevTangent), .5);\n\tenableEndMiter = step(dot(currTangent, nextTangent), .5);\n\n\t//bevel miter cutoffs\n\tif (miterMode == 1.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tvec2 startMiterWidth = vec2(startJoinDirection) * thickness * miterLimit * .5;\n\t\t\tstartCutoff = vec4(aCoord, aCoord);\n\t\t\tstartCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio;\n\t\t\tstartCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tstartCutoff += viewport.xyxy;\n\t\t\tstartCutoff += startMiterWidth.xyxy;\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tvec2 endMiterWidth = vec2(endJoinDirection) * thickness * miterLimit * .5;\n\t\t\tendCutoff = vec4(bCoord, bCoord);\n\t\t\tendCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x) / scaleRatio;\n\t\t\tendCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tendCutoff += viewport.xyxy;\n\t\t\tendCutoff += endMiterWidth.xyxy;\n\t\t}\n\t}\n\n\t//round miter cutoffs\n\telse if (miterMode == 2.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tvec2 startMiterWidth = vec2(startJoinDirection) * thickness * abs(dot(startJoinDirection, currNormal)) * .5;\n\t\t\tstartCutoff = vec4(aCoord, aCoord);\n\t\t\tstartCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio;\n\t\t\tstartCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tstartCutoff += viewport.xyxy;\n\t\t\tstartCutoff += startMiterWidth.xyxy;\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tvec2 endMiterWidth = vec2(endJoinDirection) * thickness * abs(dot(endJoinDirection, currNormal)) * .5;\n\t\t\tendCutoff = vec4(bCoord, bCoord);\n\t\t\tendCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x) / scaleRatio;\n\t\t\tendCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tendCutoff += viewport.xyxy;\n\t\t\tendCutoff += endMiterWidth.xyxy;\n\t\t}\n\t}\n}\n"]),frag:o(["precision highp float;\n#define GLSLIFY 1\n\nuniform sampler2D dashPattern;\nuniform float dashSize, pixelRatio, thickness, opacity, id, miterMode;\n\nvarying vec4 fragColor;\nvarying vec2 tangent;\nvarying vec4 startCutoff, endCutoff;\nvarying vec2 startCoord, endCoord;\nvarying float enableStartMiter, enableEndMiter;\n\nfloat distToLine(vec2 p, vec2 a, vec2 b) {\n\tvec2 diff = b - a;\n\tvec2 perp = normalize(vec2(-diff.y, diff.x));\n\treturn dot(p - a, perp);\n}\n\nvoid main() {\n\tfloat alpha = 1., distToStart, distToEnd;\n\tfloat cutoff = thickness * .5;\n\n\t//bevel miter\n\tif (miterMode == 1.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tdistToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw);\n\t\t\tif (distToStart < -1.) {\n\t\t\t\tdiscard;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\talpha *= min(max(distToStart + 1., 0.), 1.);\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tdistToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw);\n\t\t\tif (distToEnd < -1.) {\n\t\t\t\tdiscard;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\talpha *= min(max(distToEnd + 1., 0.), 1.);\n\t\t}\n\t}\n\n\t// round miter\n\telse if (miterMode == 2.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tdistToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw);\n\t\t\tif (distToStart < 0.) {\n\t\t\t\tfloat radius = length(gl_FragCoord.xy - startCoord);\n\n\t\t\t\tif(radius > cutoff + .5) {\n\t\t\t\t\tdiscard;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\talpha -= smoothstep(cutoff - .5, cutoff + .5, radius);\n\t\t\t}\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tdistToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw);\n\t\t\tif (distToEnd < 0.) {\n\t\t\t\tfloat radius = length(gl_FragCoord.xy - endCoord);\n\n\t\t\t\tif(radius > cutoff + .5) {\n\t\t\t\t\tdiscard;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\talpha -= smoothstep(cutoff - .5, cutoff + .5, radius);\n\t\t\t}\n\t\t}\n\t}\n\n\tfloat t = fract(dot(tangent, gl_FragCoord.xy) / dashSize) * .5 + .25;\n\tfloat dash = texture2D(dashPattern, vec2(t, .5)).r;\n\n\tgl_FragColor = fragColor;\n\tgl_FragColor.a *= alpha * opacity * dash;\n}\n"]),attributes:{lineEnd:{buffer:r,divisor:0,stride:8,offset:0},lineTop:{buffer:r,divisor:0,stride:8,offset:4},aColor:{buffer:t.prop("colorBuffer"),stride:4,offset:0,divisor:1},bColor:{buffer:t.prop("colorBuffer"),stride:4,offset:4,divisor:1},prevCoord:{buffer:t.prop("positionBuffer"),stride:8,offset:0,divisor:1},aCoord:{buffer:t.prop("positionBuffer"),stride:8,offset:8,divisor:1},bCoord:{buffer:t.prop("positionBuffer"),stride:8,offset:16,divisor:1},nextCoord:{buffer:t.prop("positionBuffer"),stride:8,offset:24,divisor:1}}},n))}catch(t){e=i}return{fill:t({primitive:"triangle",elements:function(t,e){return e.triangles},offset:0,vert:o(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec2 position, positionFract;\n\nuniform vec4 color;\nuniform vec2 scale, scaleFract, translate, translateFract;\nuniform float pixelRatio, id;\nuniform vec4 viewport;\nuniform float opacity;\n\nvarying vec4 fragColor;\n\nconst float MAX_LINES = 256.;\n\nvoid main() {\n\tfloat depth = (MAX_LINES - 4. - id) / (MAX_LINES);\n\n\tvec2 position = position * scale + translate\n + positionFract * scale + translateFract\n + position * scaleFract\n + positionFract * scaleFract;\n\n\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\n\n\tfragColor = color / 255.;\n\tfragColor.a *= opacity;\n}\n"]),frag:o(["precision highp float;\n#define GLSLIFY 1\n\nvarying vec4 fragColor;\n\nvoid main() {\n\tgl_FragColor = fragColor;\n}\n"]),uniforms:{scale:t.prop("scale"),color:t.prop("fill"),scaleFract:t.prop("scaleFract"),translateFract:t.prop("translateFract"),translate:t.prop("translate"),opacity:t.prop("opacity"),pixelRatio:t.context("pixelRatio"),id:t.prop("id"),viewport:function(t,e){return[e.viewport.x,e.viewport.y,t.viewportWidth,t.viewportHeight]}},attributes:{position:{buffer:t.prop("positionBuffer"),stride:8,offset:8},positionFract:{buffer:t.prop("positionFractBuffer"),stride:8,offset:8}},blend:n.blend,depth:{enable:!1},scissor:n.scissor,stencil:n.stencil,viewport:n.viewport}),rect:i,miter:e}},m.defaults={dashes:null,join:"miter",miterLimit:1,thickness:10,cap:"square",color:"black",opacity:1,overlay:!1,viewport:null,range:null,close:!1,fill:null},m.prototype.render=function(){for(var t,e=[],r=arguments.length;r--;)e[r]=arguments[r];e.length&&(t=this).update.apply(t,e),this.draw()},m.prototype.draw=function(){for(var t=this,e=[],r=arguments.length;r--;)e[r]=arguments[r];return(e.length?e:this.passes).forEach((function(e,r){var n;if(e&&Array.isArray(e))return(n=t).draw.apply(n,e);"number"==typeof e&&(e=t.passes[e]),e&&e.count>1&&e.opacity&&(t.regl._refresh(),e.fill&&e.triangles&&e.triangles.length>2&&t.shaders.fill(e),e.thickness&&(e.scale[0]*e.viewport.width>m.precisionThreshold||e.scale[1]*e.viewport.height>m.precisionThreshold||"rect"===e.join||!e.join&&(e.thickness<=2||e.count>=m.maxPoints)?t.shaders.rect(e):t.shaders.miter(e)))})),this},m.prototype.update=function(t){var e=this;if(t){null!=t.length?"number"==typeof t[0]&&(t=[{positions:t}]):Array.isArray(t)||(t=[t]);var r=this.regl,o=this.gl;if(t.forEach((function(t,f){var d=e.passes[f];if(void 0!==t)if(null!==t){if("number"==typeof t[0]&&(t={positions:t}),t=s(t,{positions:"positions points data coords",thickness:"thickness lineWidth lineWidths line-width linewidth width stroke-width strokewidth strokeWidth",join:"lineJoin linejoin join type mode",miterLimit:"miterlimit miterLimit",dashes:"dash dashes dasharray dash-array dashArray",color:"color colour stroke colors colours stroke-color strokeColor",fill:"fill fill-color fillColor",opacity:"alpha opacity",overlay:"overlay crease overlap intersect",close:"closed close closed-path closePath",range:"range dataBox",viewport:"viewport viewBox",hole:"holes hole hollow"}),d||(e.passes[f]=d={id:f,scale:null,scaleFract:null,translate:null,translateFract:null,count:0,hole:[],depth:0,dashLength:1,dashTexture:r.texture({channels:1,data:new Uint8Array([255]),width:1,height:1,mag:"linear",min:"linear"}),colorBuffer:r.buffer({usage:"dynamic",type:"uint8",data:new Uint8Array}),positionBuffer:r.buffer({usage:"dynamic",type:"float",data:new Uint8Array}),positionFractBuffer:r.buffer({usage:"dynamic",type:"float",data:new Uint8Array})},t=a({},m.defaults,t)),null!=t.thickness&&(d.thickness=parseFloat(t.thickness)),null!=t.opacity&&(d.opacity=parseFloat(t.opacity)),null!=t.miterLimit&&(d.miterLimit=parseFloat(t.miterLimit)),null!=t.overlay&&(d.overlay=!!t.overlay,ft.length)&&(e=t.length);for(var r=0,n=new Array(e);r 1.0 + delta) {\n\t\tdiscard;\n\t}\n\n\talpha -= smoothstep(1.0 - delta, 1.0 + delta, radius);\n\n\tfloat borderRadius = fragBorderRadius;\n\tfloat ratio = smoothstep(borderRadius - delta, borderRadius + delta, radius);\n\tvec4 color = mix(fragColor, fragBorderColor, ratio);\n\tcolor.a *= alpha * opacity;\n\tgl_FragColor = color;\n}\n"]),l.vert=h(["precision highp float;\n#define GLSLIFY 1\n\nattribute float x, y, xFract, yFract;\nattribute float size, borderSize;\nattribute vec4 colorId, borderColorId;\nattribute float isActive;\n\nuniform vec2 scale, scaleFract, translate, translateFract;\nuniform float pixelRatio;\nuniform bool constPointSize;\nuniform sampler2D palette;\nuniform vec2 paletteSize;\n\nconst float maxSize = 100.;\n\nvarying vec4 fragColor, fragBorderColor;\nvarying float fragBorderRadius, fragWidth;\n\nfloat pointSizeScale = (constPointSize) ? 2. : pixelRatio;\n\nbool isDirect = (paletteSize.x < 1.);\n\nvec4 getColor(vec4 id) {\n return isDirect ? id / 255. : texture2D(palette,\n vec2(\n (id.x + .5) / paletteSize.x,\n (id.y + .5) / paletteSize.y\n )\n );\n}\n\nvoid main() {\n // ignore inactive points\n if (isActive == 0.) return;\n\n vec2 position = vec2(x, y);\n vec2 positionFract = vec2(xFract, yFract);\n\n vec4 color = getColor(colorId);\n vec4 borderColor = getColor(borderColorId);\n\n float size = size * maxSize / 255.;\n float borderSize = borderSize * maxSize / 255.;\n\n gl_PointSize = (size + borderSize) * pointSizeScale;\n\n vec2 pos = (position + translate) * scale\n + (positionFract + translateFract) * scale\n + (position + translate) * scaleFract\n + (positionFract + translateFract) * scaleFract;\n\n gl_Position = vec4(pos * 2. - 1., 0., 1.);\n\n fragBorderRadius = 1. - 2. * borderSize / (size + borderSize);\n fragColor = color;\n fragBorderColor = borderColor.a == 0. || borderSize == 0. ? vec4(color.rgb, 0.) : borderColor;\n fragWidth = 1. / gl_PointSize;\n}\n"]),m&&(l.frag=l.frag.replace("smoothstep","smoothStep"),s.frag=s.frag.replace("smoothstep","smoothStep")),this.drawCircle=t(l)}b.defaults={color:"black",borderColor:"transparent",borderSize:0,size:12,opacity:1,marker:void 0,viewport:null,range:null,pixelSize:null,count:0,offset:0,bounds:null,positions:[],snap:1e4},b.prototype.render=function(){return arguments.length&&this.update.apply(this,arguments),this.draw(),this},b.prototype.draw=function(){for(var t=this,e=arguments.length,r=new Array(e),n=0;nn)?e.tree=u(t,{bounds:f}):n&&n.length&&(e.tree=n),e.tree){var h={primitive:"points",usage:"static",data:e.tree,type:"uint32"};e.elements?e.elements(h):e.elements=o.elements(h)}return i({data:v.float(t),usage:"dynamic"}),a({data:v.fract(t),usage:"dynamic"}),s({data:new Uint8Array(c),type:"uint8",usage:"stream"}),t}},{marker:function(e,r,n){var i=r.activation;if(i.forEach((function(t){return t&&t.destroy&&t.destroy()})),i.length=0,e&&"number"!=typeof e[0]){for(var a=[],s=0,l=Math.min(e.length,r.count);s=0)return a;if(t instanceof Uint8Array||t instanceof Uint8ClampedArray)e=t;else{e=new Uint8Array(t.length);for(var o=0,s=t.length;o4*n&&(this.tooManyColors=!0),this.updatePalette(r),1===i.length?i[0]:i},b.prototype.updatePalette=function(t){if(!this.tooManyColors){var e=this.maxColors,r=this.paletteTexture,n=Math.ceil(.25*t.length/e);if(n>1)for(var i=.25*(t=t.slice()).length%e;i2?(s[0],s[2],n=s[1],i=s[3]):s.length?(n=s[0],i=s[1]):(s.x,n=s.y,s.x+s.width,i=s.y+s.height),l.length>2?(a=l[0],o=l[2],l[1],l[3]):l.length?(a=l[0],o=l[1]):(a=l.x,l.y,o=l.x+l.width,l.y+l.height),[a,n,o,i]}function p(t){if("number"==typeof t)return[t,t,t,t];if(2===t.length)return[t[0],t[1],t[0],t[1]];var e=l(t);return[e.x,e.y,e.x+e.width,e.y+e.height]}e.exports=u,u.prototype.render=function(){for(var t,e=this,r=[],n=arguments.length;n--;)r[n]=arguments[n];return r.length&&(t=this).update.apply(t,r),this.regl.attributes.preserveDrawingBuffer?this.draw():(this.dirty?null==this.planned&&(this.planned=o((function(){e.draw(),e.dirty=!0,e.planned=null}))):(this.draw(),this.dirty=!0,o((function(){e.dirty=!1}))),this)},u.prototype.update=function(){for(var t,e=[],r=arguments.length;r--;)e[r]=arguments[r];if(e.length){for(var n=0;nk))&&(s.lower||!(T>>=e))<<3,(e|=r=(15<(t>>>=r))<<2)|(r=(3<(t>>>=r))<<1)|t>>>r>>1}function s(){function t(t){t:{for(var e=16;268435456>=e;e*=16)if(t<=e){t=e;break t}t=0}return 0<(e=r[o(t)>>2]).length?e.pop():new ArrayBuffer(t)}function e(t){r[o(t.byteLength)>>2].push(t)}var r=a(8,(function(){return[]}));return{alloc:t,free:e,allocType:function(e,r){var n=null;switch(e){case 5120:n=new Int8Array(t(r),0,r);break;case 5121:n=new Uint8Array(t(r),0,r);break;case 5122:n=new Int16Array(t(2*r),0,r);break;case 5123:n=new Uint16Array(t(2*r),0,r);break;case 5124:n=new Int32Array(t(4*r),0,r);break;case 5125:n=new Uint32Array(t(4*r),0,r);break;case 5126:n=new Float32Array(t(4*r),0,r);break;default:return null}return n.length!==r?n.subarray(0,r):n},freeType:function(t){e(t.buffer)}}}function l(t){return!!t&&"object"==typeof t&&Array.isArray(t.shape)&&Array.isArray(t.stride)&&"number"==typeof t.offset&&t.shape.length===t.stride.length&&(Array.isArray(t.data)||X(t.data))}function c(t,e,r,n,i,a){for(var o=0;o(i=s)&&(i=n.buffer.byteLength,5123===f?i>>=1:5125===f&&(i>>=2)),n.vertCount=i,i=o,0>o&&(i=4,1===(o=n.buffer.dimension)&&(i=0),2===o&&(i=1),3===o&&(i=4)),n.primType=i}function o(t){n.elementsCount--,delete s[t.id],t.buffer.destroy(),t.buffer=null}var s={},c=0,u={uint8:5121,uint16:5123};e.oes_element_index_uint&&(u.uint32=5125),i.prototype.bind=function(){this.buffer.bind()};var f=[];return{create:function(t,e){function s(t){if(t)if("number"==typeof t)c(t),f.primType=4,f.vertCount=0|t,f.type=5121;else{var e=null,r=35044,n=-1,i=-1,o=0,h=0;Array.isArray(t)||X(t)||l(t)?e=t:("data"in t&&(e=t.data),"usage"in t&&(r=$[t.usage]),"primitive"in t&&(n=nt[t.primitive]),"count"in t&&(i=0|t.count),"type"in t&&(h=u[t.type]),"length"in t?o=0|t.length:(o=i,5123===h||5122===h?o*=2:5125!==h&&5124!==h||(o*=4))),a(f,e,r,n,i,o,h)}else c(),f.primType=4,f.vertCount=0,f.type=5121;return s}var c=r.create(null,34963,!0),f=new i(c._buffer);return n.elementsCount++,s(t),s._reglType="elements",s._elements=f,s.subdata=function(t,e){return c.subdata(t,e),s},s.destroy=function(){o(f)},s},createStream:function(t){var e=f.pop();return e||(e=new i(r.create(null,34963,!0,!1)._buffer)),a(e,t,35040,-1,-1,0,0),e},destroyStream:function(t){f.push(t)},getElements:function(t){return"function"==typeof t&&t._elements instanceof i?t._elements:null},clear:function(){Z(s).forEach(o)}}}function g(t){for(var e=Y.allocType(5123,t.length),r=0;r>>31<<15,i=(a<<1>>>24)-127,a=a>>13&1023;e[r]=-24>i?n:-14>i?n+(a+1024>>-14-i):15>=i,r.height>>=i,p(r,n[i]),t.mipmask|=1<e;++e)t.images[e]=null;return t}function L(t){for(var e=t.images,r=0;re){for(var r=0;r=--this.refCount&&F(this)}}),o.profile&&(a.getTotalTextureSize=function(){var t=0;return Object.keys(yt).forEach((function(e){t+=yt[e].stats.size})),t}),{create2D:function(e,r){function n(t,e){var r=i.texInfo;I.call(r);var a=C();return"number"==typeof t?A(a,0|t,"number"==typeof e?0|e:0|t):t?(P(r,t),S(a,t)):A(a,1,1),r.genMipmaps&&(a.mipmask=(a.width<<1)-1),i.mipmask=a.mipmask,c(i,a),i.internalformat=a.internalformat,n.width=a.width,n.height=a.height,D(i),E(a,3553),z(r,3553),R(),L(a),o.profile&&(i.stats.size=T(i.internalformat,i.type,a.width,a.height,r.genMipmaps,!1)),n.format=tt[i.internalformat],n.type=et[i.type],n.mag=rt[r.magFilter],n.min=nt[r.minFilter],n.wrapS=it[r.wrapS],n.wrapT=it[r.wrapT],n}var i=new O(3553);return yt[i.id]=i,a.textureCount++,n(e,r),n.subimage=function(t,e,r,a){e|=0,r|=0,a|=0;var o=v();return c(o,i),o.width=0,o.height=0,p(o,t),o.width=o.width||(i.width>>a)-e,o.height=o.height||(i.height>>a)-r,D(i),d(o,3553,e,r,a),R(),k(o),n},n.resize=function(e,r){var a=0|e,s=0|r||a;if(a===i.width&&s===i.height)return n;n.width=i.width=a,n.height=i.height=s,D(i);for(var l=0;i.mipmask>>l;++l){var c=a>>l,u=s>>l;if(!c||!u)break;t.texImage2D(3553,l,i.format,c,u,0,i.format,i.type,null)}return R(),o.profile&&(i.stats.size=T(i.internalformat,i.type,a,s,!1,!1)),n},n._reglType="texture2d",n._texture=i,o.profile&&(n.stats=i.stats),n.destroy=function(){i.decRef()},n},createCube:function(e,r,n,i,s,l){function f(t,e,r,n,i,a){var s,l=h.texInfo;for(I.call(l),s=0;6>s;++s)g[s]=C();if("number"!=typeof t&&t){if("object"==typeof t)if(e)S(g[0],t),S(g[1],e),S(g[2],r),S(g[3],n),S(g[4],i),S(g[5],a);else if(P(l,t),u(h,t),"faces"in t)for(t=t.faces,s=0;6>s;++s)c(g[s],h),S(g[s],t[s]);else for(s=0;6>s;++s)S(g[s],t)}else for(t=0|t||1,s=0;6>s;++s)A(g[s],t,t);for(c(h,g[0]),h.mipmask=l.genMipmaps?(g[0].width<<1)-1:g[0].mipmask,h.internalformat=g[0].internalformat,f.width=g[0].width,f.height=g[0].height,D(h),s=0;6>s;++s)E(g[s],34069+s);for(z(l,34067),R(),o.profile&&(h.stats.size=T(h.internalformat,h.type,f.width,f.height,l.genMipmaps,!0)),f.format=tt[h.internalformat],f.type=et[h.type],f.mag=rt[l.magFilter],f.min=nt[l.minFilter],f.wrapS=it[l.wrapS],f.wrapT=it[l.wrapT],s=0;6>s;++s)L(g[s]);return f}var h=new O(34067);yt[h.id]=h,a.cubeCount++;var g=Array(6);return f(e,r,n,i,s,l),f.subimage=function(t,e,r,n,i){r|=0,n|=0,i|=0;var a=v();return c(a,h),a.width=0,a.height=0,p(a,e),a.width=a.width||(h.width>>i)-r,a.height=a.height||(h.height>>i)-n,D(h),d(a,34069+t,r,n,i),R(),k(a),f},f.resize=function(e){if((e|=0)!==h.width){f.width=h.width=e,f.height=h.height=e,D(h);for(var r=0;6>r;++r)for(var n=0;h.mipmask>>n;++n)t.texImage2D(34069+r,n,h.format,e>>n,e>>n,0,h.format,h.type,null);return R(),o.profile&&(h.stats.size=T(h.internalformat,h.type,f.width,f.height,!1,!0)),f}},f._reglType="textureCube",f._texture=h,o.profile&&(f.stats=h.stats),f.destroy=function(){h.decRef()},f},clear:function(){for(var e=0;er;++r)if(0!=(e.mipmask&1<>r,e.height>>r,0,e.internalformat,e.type,null);else for(var n=0;6>n;++n)t.texImage2D(34069+n,r,e.internalformat,e.width>>r,e.height>>r,0,e.internalformat,e.type,null);z(e.texInfo,e.target)}))}}}function M(t,e,r,n,i,a){function o(t,e,r){this.target=t,this.texture=e,this.renderbuffer=r;var n=t=0;e?(t=e.width,n=e.height):r&&(t=r.width,n=r.height),this.width=t,this.height=n}function s(t){t&&(t.texture&&t.texture._texture.decRef(),t.renderbuffer&&t.renderbuffer._renderbuffer.decRef())}function l(t,e,r){t&&(t.texture?t.texture._texture.refCount+=1:t.renderbuffer._renderbuffer.refCount+=1)}function c(e,r){r&&(r.texture?t.framebufferTexture2D(36160,e,r.target,r.texture._texture.texture,0):t.framebufferRenderbuffer(36160,e,36161,r.renderbuffer._renderbuffer.renderbuffer))}function u(t){var e=3553,r=null,n=null,i=t;return"object"==typeof t&&(i=t.data,"target"in t&&(e=0|t.target)),"texture2d"===(t=i._reglType)||"textureCube"===t?r=i:"renderbuffer"===t&&(n=i,e=36161),new o(e,r,n)}function f(t,e,r,a,s){return r?((t=n.create2D({width:t,height:e,format:a,type:s}))._texture.refCount=0,new o(3553,t,null)):((t=i.create({width:t,height:e,format:a}))._renderbuffer.refCount=0,new o(36161,null,t))}function h(t){return t&&(t.texture||t.renderbuffer)}function p(t,e,r){t&&(t.texture?t.texture.resize(e,r):t.renderbuffer&&t.renderbuffer.resize(e,r),t.width=e,t.height=r)}function d(){this.id=T++,k[this.id]=this,this.framebuffer=t.createFramebuffer(),this.height=this.width=0,this.colorAttachments=[],this.depthStencilAttachment=this.stencilAttachment=this.depthAttachment=null}function g(t){t.colorAttachments.forEach(s),s(t.depthAttachment),s(t.stencilAttachment),s(t.depthStencilAttachment)}function m(e){t.deleteFramebuffer(e.framebuffer),e.framebuffer=null,a.framebufferCount--,delete k[e.id]}function v(e){var n;t.bindFramebuffer(36160,e.framebuffer);var i=e.colorAttachments;for(n=0;ni;++i){for(c=0;ct;++t)r[t].resize(n);return e.width=e.height=n,e},_reglType:"framebufferCube",destroy:function(){r.forEach((function(t){t.destroy()}))}})},clear:function(){Z(k).forEach(m)},restore:function(){x.cur=null,x.next=null,x.dirty=!0,Z(k).forEach((function(e){e.framebuffer=t.createFramebuffer(),v(e)}))}})}function A(){this.w=this.z=this.y=this.x=this.state=0,this.buffer=null,this.size=0,this.normalized=!1,this.type=5126,this.divisor=this.stride=this.offset=0}function S(t,e,r,n,i){function a(){this.id=++c,this.attributes=[];var t=e.oes_vertex_array_object;this.vao=t?t.createVertexArrayOES():null,u[this.id]=this,this.buffers=[]}var o=r.maxAttributes,s=Array(o);for(r=0;rt&&(t=e.stats.uniformsCount)})),t},r.getMaxAttributesCount=function(){var t=0;return h.forEach((function(e){e.stats.attributesCount>t&&(t=e.stats.attributesCount)})),t}),{clear:function(){var e=t.deleteShader.bind(t);Z(c).forEach(e),c={},Z(u).forEach(e),u={},h.forEach((function(e){t.deleteProgram(e.program)})),h.length=0,f={},r.shaderCount=0},program:function(t,e,n,i){var a=f[e];a||(a=f[e]={});var o=a[t];return o&&!i?o:(e=new s(e,t),r.shaderCount++,l(e,n,i),o||(a[t]=e),h.push(e),e)},restore:function(){c={},u={};for(var t=0;t"+e+"?"+i+".constant["+e+"]:0;"})).join(""),"}}else{","if(",s,"(",i,".buffer)){",u,"=",a,".createStream(",34962,",",i,".buffer);","}else{",u,"=",a,".getBuffer(",i,".buffer);","}",f,'="type" in ',i,"?",o.glTypes,"[",i,".type]:",u,".dtype;",l.normalized,"=!!",i,".normalized;"),n("size"),n("offset"),n("stride"),n("divisor"),r("}}"),r.exit("if(",l.isStream,"){",a,".destroyStream(",u,");","}"),l}))})),o}function M(t,e,n,i,o){function s(t){var e=c[t];e&&(h[t]=e)}var l=function(t,e){if("string"==typeof(r=t.static).frag&&"string"==typeof r.vert){if(0>1)",s],");")}function e(){r(l,".drawArraysInstancedANGLE(",[d,g,m,s],");")}p?y?t():(r("if(",p,"){"),t(),r("}else{"),e(),r("}")):e()}function o(){function t(){r(u+".drawElements("+[d,m,v,g+"<<(("+v+"-5121)>>1)"]+");")}function e(){r(u+".drawArrays("+[d,g,m]+");")}p?y?t():(r("if(",p,"){"),t(),r("}else{"),e(),r("}")):e()}var s,l,c=t.shared,u=c.gl,f=c.draw,h=n.draw,p=function(){var i=h.elements,a=e;return i?((i.contextDep&&n.contextDynamic||i.propDep)&&(a=r),i=i.append(t,a)):i=a.def(f,".","elements"),i&&a("if("+i+")"+u+".bindBuffer(34963,"+i+".buffer.buffer);"),i}(),d=i("primitive"),g=i("offset"),m=function(){var i=h.count,a=e;return i?((i.contextDep&&n.contextDynamic||i.propDep)&&(a=r),i=i.append(t,a)):i=a.def(f,".","count"),i}();if("number"==typeof m){if(0===m)return}else r("if(",m,"){"),r.exit("}");K&&(s=i("instances"),l=t.instancing);var v=p+".type",y=h.elements&&R(h.elements);K&&("number"!=typeof s||0<=s)?"string"==typeof s?(r("if(",s,">0){"),a(),r("}else if(",s,"<0){"),o(),r("}")):a():o()}function V(t,e,r,n,i){return i=(e=b()).proc("body",i),K&&(e.instancing=i.def(e.shared.extensions,".angle_instanced_arrays")),t(e,i,r,n),e.compile().body}function H(t,e,r,n){L(t,e),r.useVAO?r.drawVAO?e(t.shared.vao,".setVAO(",r.drawVAO.append(t,e),");"):e(t.shared.vao,".setVAO(",t.shared.vao,".targetVAO);"):(e(t.shared.vao,".setVAO(null);"),N(t,e,r,n.attributes,(function(){return!0}))),j(t,e,r,n.uniforms,(function(){return!0})),U(t,e,e,r)}function G(t,e,r,n){function i(){return!0}t.batchId="a1",L(t,e),N(t,e,r,n.attributes,i),j(t,e,r,n.uniforms,i),U(t,e,e,r)}function Y(t,e,r,n){function i(t){return t.contextDep&&o||t.propDep}function a(t){return!i(t)}L(t,e);var o=r.contextDep,s=e.def(),l=e.def();t.shared.props=l,t.batchId=s;var c=t.scope(),u=t.scope();e(c.entry,"for(",s,"=0;",s,"<","a1",";++",s,"){",l,"=","a0","[",s,"];",u,"}",c.exit),r.needsContext&&A(t,u,r.context),r.needsFramebuffer&&S(t,u,r.framebuffer),C(t,u,r.state,i),r.profile&&i(r.profile)&&I(t,u,r,!1,!0),n?(r.useVAO?r.drawVAO?i(r.drawVAO)?u(t.shared.vao,".setVAO(",r.drawVAO.append(t,u),");"):c(t.shared.vao,".setVAO(",r.drawVAO.append(t,c),");"):c(t.shared.vao,".setVAO(",t.shared.vao,".targetVAO);"):(c(t.shared.vao,".setVAO(null);"),N(t,c,r,n.attributes,a),N(t,u,r,n.attributes,i)),j(t,c,r,n.uniforms,a),j(t,u,r,n.uniforms,i),U(t,c,u,r)):(e=t.global.def("{}"),n=r.shader.progVar.append(t,u),l=u.def(n,".id"),c=u.def(e,"[",l,"]"),u(t.shared.gl,".useProgram(",n,".program);","if(!",c,"){",c,"=",e,"[",l,"]=",t.link((function(e){return V(G,t,r,e,2)})),"(",n,");}",c,".call(this,a0[",s,"],",s,");"))}function W(t,r){function n(e){var n=r.shader[e];n&&i.set(a.shader,"."+e,n.append(t,i))}var i=t.proc("scope",3);t.batchId="a2";var a=t.shared,o=a.current;A(t,i,r.context),r.framebuffer&&r.framebuffer.append(t,i),O(Object.keys(r.state)).forEach((function(e){var n=r.state[e].append(t,i);m(n)?n.forEach((function(r,n){i.set(t.next[e],"["+n+"]",r)})):i.set(a.next,"."+e,n)})),I(t,i,r,!0,!0),["elements","offset","count","instances","primitive"].forEach((function(e){var n=r.draw[e];n&&i.set(a.draw,"."+e,""+n.append(t,i))})),Object.keys(r.uniforms).forEach((function(n){i.set(a.uniforms,"["+e.id(n)+"]",r.uniforms[n].append(t,i))})),Object.keys(r.attributes).forEach((function(e){var n=r.attributes[e].append(t,i),a=t.scopeAttrib(e);Object.keys(new Z).forEach((function(t){i.set(a,"."+t,n[t])}))})),r.scopeVAO&&i.set(a.vao,".targetVAO",r.scopeVAO.append(t,i)),n("vert"),n("frag"),0=--this.refCount&&o(this)},i.profile&&(n.getTotalRenderbufferSize=function(){var t=0;return Object.keys(u).forEach((function(e){t+=u[e].stats.size})),t}),{create:function(e,r){function o(e,r){var n=0,a=0,u=32854;if("object"==typeof e&&e?("shape"in e?(n=0|(a=e.shape)[0],a=0|a[1]):("radius"in e&&(n=a=0|e.radius),"width"in e&&(n=0|e.width),"height"in e&&(a=0|e.height)),"format"in e&&(u=s[e.format])):"number"==typeof e?(n=0|e,a="number"==typeof r?0|r:n):e||(n=a=1),n!==c.width||a!==c.height||u!==c.format)return o.width=c.width=n,o.height=c.height=a,c.format=u,t.bindRenderbuffer(36161,c.renderbuffer),t.renderbufferStorage(36161,u,n,a),i.profile&&(c.stats.size=yt[c.format]*c.width*c.height),o.format=l[c.format],o}var c=new a(t.createRenderbuffer());return u[c.id]=c,n.renderbufferCount++,o(e,r),o.resize=function(e,r){var n=0|e,a=0|r||n;return n===c.width&&a===c.height||(o.width=c.width=n,o.height=c.height=a,t.bindRenderbuffer(36161,c.renderbuffer),t.renderbufferStorage(36161,c.format,n,a),i.profile&&(c.stats.size=yt[c.format]*c.width*c.height)),o},o._reglType="renderbuffer",o._renderbuffer=c,i.profile&&(o.stats=c.stats),o.destroy=function(){c.decRef()},o},clear:function(){Z(u).forEach(o)},restore:function(){Z(u).forEach((function(e){e.renderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(36161,e.renderbuffer),t.renderbufferStorage(36161,e.format,e.width,e.height)})),t.bindRenderbuffer(36161,null)}}},bt=[];bt[6408]=4,bt[6407]=3;var _t=[];_t[5121]=1,_t[5126]=4,_t[36193]=2;var wt=["x","y","z","w"],Tt="blend.func blend.equation stencil.func stencil.opFront stencil.opBack sample.coverage viewport scissor.box polygonOffset.offset".split(" "),kt={0:0,1:1,zero:0,one:1,"src color":768,"one minus src color":769,"src alpha":770,"one minus src alpha":771,"dst color":774,"one minus dst color":775,"dst alpha":772,"one minus dst alpha":773,"constant color":32769,"one minus constant color":32770,"constant alpha":32771,"one minus constant alpha":32772,"src alpha saturate":776},Mt={never:512,less:513,"<":513,equal:514,"=":514,"==":514,"===":514,lequal:515,"<=":515,greater:516,">":516,notequal:517,"!=":517,"!==":517,gequal:518,">=":518,always:519},At={0:0,zero:0,keep:7680,replace:7681,increment:7682,decrement:7683,"increment wrap":34055,"decrement wrap":34056,invert:5386},St={cw:2304,ccw:2305},Et=new D(!1,!1,!1,(function(){}));return function(t){function e(){if(0===J.length)w&&w.update(),tt=null;else{tt=H.next(e),f();for(var t=J.length-1;0<=t;--t){var r=J[t];r&&r(I,null,0)}m.flush(),w&&w.update()}}function r(){!tt&&0=J.length&&n()}}}}function u(){var t=X.viewport,e=X.scissor_box;t[0]=t[1]=e[0]=e[1]=0,I.viewportWidth=I.framebufferWidth=I.drawingBufferWidth=t[2]=e[2]=m.drawingBufferWidth,I.viewportHeight=I.framebufferHeight=I.drawingBufferHeight=t[3]=e[3]=m.drawingBufferHeight}function f(){I.tick+=1,I.time=g(),u(),Y.procs.poll()}function h(){u(),Y.procs.refresh(),w&&w.update()}function g(){return(G()-T)/1e3}if(!(t=i(t)))return null;var m=t.gl,v=m.getContextAttributes();m.isContextLost();var y=function(t,e){function r(e){var r;e=e.toLowerCase();try{r=n[e]=t.getExtension(e)}catch(t){}return!!r}for(var n={},i=0;ie;++e)et(U({framebuffer:t.framebuffer.faces[e]},t),l);else et(t,l);else l(0,t)},prop:q.define.bind(null,1),context:q.define.bind(null,2),this:q.define.bind(null,3),draw:s({}),buffer:function(t){return z.create(t,34962,!1,!1)},elements:function(t){return D.create(t,!1)},texture:F.create2D,cube:F.createCube,renderbuffer:B.create,framebuffer:V.create,framebufferCube:V.createCube,vao:O.createVAO,attributes:v,frame:c,on:function(t,e){var r;switch(t){case"frame":return c(e);case"lost":r=K;break;case"restore":r=Q;break;case"destroy":r=$}return r.push(e),{cancel:function(){for(var t=0;t + * + * Copyright (c) 2014-2015, Jon Schlinkert. + * Licensed under the MIT License. + */ +"use strict";var n,i="";e.exports=function(t,e){if("string"!=typeof t)throw new TypeError("expected a string");if(1===e)return t;if(2===e)return t+t;var r=t.length*e;if(n!==t||"undefined"==typeof n)n=t,i="";else if(i.length>=r)return i.substr(0,r);for(;r>i.length&&e>1;)1&e&&(i+=t),e>>=1,t+=t;return i=(i+=t).substr(0,r)}},{}],542:[function(t,e,r){(function(t){(function(){e.exports=t.performance&&t.performance.now?function(){return performance.now()}:Date.now||function(){return+new Date}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],543:[function(t,e,r){"use strict";e.exports=function(t){for(var e=t.length,r=t[t.length-1],n=e,i=e-2;i>=0;--i){var a=r,o=t[i];(l=o-((r=a+o)-a))&&(t[--n]=r,r=l)}var s=0;for(i=n;i>1;return["sum(",t(e.slice(0,r)),",",t(e.slice(r)),")"].join("")}(e);var n}function u(t){return new Function("sum","scale","prod","compress",["function robustDeterminant",t,"(m){return compress(",c(l(t)),")};return robustDeterminant",t].join(""))(i,a,n,o)}var f=[function(){return[0]},function(t){return[t[0][0]]}];!function(){for(;f.length<6;)f.push(u(f.length));for(var t=[],r=["function robustDeterminant(m){switch(m.length){"],n=0;n<6;++n)t.push("det"+n),r.push("case ",n,":return det",n,"(m);");r.push("}var det=CACHE[m.length];if(!det)det=CACHE[m.length]=gen(m.length);return det(m);}return robustDeterminant"),t.push("CACHE","gen",r.join(""));var i=Function.apply(void 0,t);for(e.exports=i.apply(void 0,f.concat([f,u])),n=0;n>1;return["sum(",l(t.slice(0,e)),",",l(t.slice(e)),")"].join("")}function c(t,e){if("m"===t.charAt(0)){if("w"===e.charAt(0)){var r=t.split("[");return["w",e.substr(1),"m",r[0].substr(1)].join("")}return["prod(",t,",",e,")"].join("")}return c(e,t)}function u(t){if(2===t.length)return[["diff(",c(t[0][0],t[1][1]),",",c(t[1][0],t[0][1]),")"].join("")];for(var e=[],r=0;r0&&r.push(","),r.push("[");for(var o=0;o0&&r.push(","),o===i?r.push("+b[",a,"]"):r.push("+A[",a,"][",o,"]");r.push("]")}r.push("]),")}r.push("det(A)]}return ",e);var s=new Function("det",r.join(""));return s(t<6?n[t]:n)}var a=[function(){return[0]},function(t,e){return[[e[0]],[t[0][0]]]}];!function(){for(;a.length<6;)a.push(i(a.length));for(var t=[],r=["function dispatchLinearSolve(A,b){switch(A.length){"],n=0;n<6;++n)t.push("s"+n),r.push("case ",n,":return s",n,"(A,b);");r.push("}var s=CACHE[A.length];if(!s)s=CACHE[A.length]=g(A.length);return s(A,b)}return dispatchLinearSolve"),t.push("CACHE","g",r.join(""));var o=Function.apply(void 0,t);for(e.exports=o.apply(void 0,a.concat([a,i])),n=0;n<6;++n)e.exports[n]=a[n]}()},{"robust-determinant":544}],548:[function(t,e,r){"use strict";var n=t("two-product"),i=t("robust-sum"),a=t("robust-scale"),o=t("robust-subtract");function s(t,e){for(var r=new Array(t.length-1),n=1;n>1;return["sum(",l(t.slice(0,e)),",",l(t.slice(e)),")"].join("")}function c(t){if(2===t.length)return[["sum(prod(",t[0][0],",",t[1][1],"),prod(-",t[0][1],",",t[1][0],"))"].join("")];for(var e=[],r=0;r0){if(a<=0)return o;n=i+a}else{if(!(i<0))return o;if(a>=0)return o;n=-(i+a)}var s=33306690738754716e-32*n;return o>=s||o<=-s?o:f(t,e,r)},function(t,e,r,n){var i=t[0]-n[0],a=e[0]-n[0],o=r[0]-n[0],s=t[1]-n[1],l=e[1]-n[1],c=r[1]-n[1],u=t[2]-n[2],f=e[2]-n[2],p=r[2]-n[2],d=a*c,g=o*l,m=o*s,v=i*c,y=i*l,x=a*s,b=u*(d-g)+f*(m-v)+p*(y-x),_=7771561172376103e-31*((Math.abs(d)+Math.abs(g))*Math.abs(u)+(Math.abs(m)+Math.abs(v))*Math.abs(f)+(Math.abs(y)+Math.abs(x))*Math.abs(p));return b>_||-b>_?b:h(t,e,r,n)}];function d(t){var e=p[t.length];return e||(e=p[t.length]=u(t.length)),e.apply(void 0,t)}!function(){for(;p.length<=5;)p.push(u(p.length));for(var t=[],r=["slow"],n=0;n<=5;++n)t.push("a"+n),r.push("o"+n);var i=["function getOrientation(",t.join(),"){switch(arguments.length){case 0:case 1:return 0;"];for(n=2;n<=5;++n)i.push("case ",n,":return o",n,"(",t.slice(0,n).join(),");");i.push("}var s=new Array(arguments.length);for(var i=0;i0&&o>0||a<0&&o<0)return!1;var s=n(r,t,e),l=n(i,t,e);if(s>0&&l>0||s<0&&l<0)return!1;if(0===a&&0===o&&0===s&&0===l)return function(t,e,r,n){for(var i=0;i<2;++i){var a=t[i],o=e[i],s=Math.min(a,o),l=Math.max(a,o),c=r[i],u=n[i],f=Math.min(c,u);if(Math.max(c,u)=n?(i=f,(l+=1)=n?(i=f,(l+=1)0?1:0}},{}],555:[function(t,e,r){"use strict";e.exports=function(t){return i(n(t))};var n=t("boundary-cells"),i=t("reduce-simplicial-complex")},{"boundary-cells":100,"reduce-simplicial-complex":533}],556:[function(t,e,r){"use strict";e.exports=function(t,e,r,s){r=r||0,"undefined"==typeof s&&(s=function(t){for(var e=t.length,r=0,n=0;n>1,v=E[2*m+1];","if(v===b){return m}","if(b0&&l.push(","),l.push("[");for(var n=0;n0&&l.push(","),l.push("B(C,E,c[",i[0],"],c[",i[1],"])")}l.push("]")}l.push(");")}}for(a=t+1;a>1;--a){a>1,s=a(t[o],e);s<=0?(0===s&&(i=o),r=o+1):s>0&&(n=o-1)}return i}function u(t,e){for(var r=new Array(t.length),i=0,o=r.length;i=t.length||0!==a(t[m],s)););}return r}function f(t,e){if(e<0)return[];for(var r=[],i=(1<>>u&1&&c.push(i[u]);e.push(c)}return s(e)},r.skeleton=f,r.boundary=function(t){for(var e=[],r=0,n=t.length;r>1:(t>>1)-1}function x(t){for(var e=v(t);;){var r=e,n=2*t+1,i=2*(t+1),a=t;if(n0;){var r=y(t);if(r>=0)if(e0){var t=k[0];return m(0,A-1),A-=1,x(0),t}return-1}function w(t,e){var r=k[t];return c[r]===e?t:(c[r]=-1/0,b(t),_(),c[r]=e,b((A+=1)-1))}function T(t){if(!u[t]){u[t]=!0;var e=s[t],r=l[t];s[r]>=0&&(s[r]=e),l[e]>=0&&(l[e]=r),M[e]>=0&&w(M[e],g(e)),M[r]>=0&&w(M[r],g(r))}}var k=[],M=new Array(a);for(f=0;f>1;f>=0;--f)x(f);for(;;){var S=_();if(S<0||c[S]>r)break;T(S)}var E=[];for(f=0;f=0&&r>=0&&e!==r){var n=M[e],i=M[r];n!==i&&L.push([n,i])}})),i.unique(i.normalize(L)),{positions:E,edges:L}};var n=t("robust-orientation"),i=t("simplicial-complex")},{"robust-orientation":548,"simplicial-complex":560}],563:[function(t,e,r){"use strict";e.exports=function(t,e){var r,a,o,s;if(e[0][0]e[1][0]))return i(e,t);r=e[1],a=e[0]}if(t[0][0]t[1][0]))return-i(t,e);o=t[1],s=t[0]}var l=n(r,a,s),c=n(r,a,o);if(l<0){if(c<=0)return l}else if(l>0){if(c>=0)return l}else if(c)return c;if(l=n(s,o,a),c=n(s,o,r),l<0){if(c<=0)return l}else if(l>0){if(c>=0)return l}else if(c)return c;return a[0]-s[0]};var n=t("robust-orientation");function i(t,e){var r,i,a,o;if(e[0][0]e[1][0])){var s=Math.min(t[0][1],t[1][1]),l=Math.max(t[0][1],t[1][1]),c=Math.min(e[0][1],e[1][1]),u=Math.max(e[0][1],e[1][1]);return lu?s-u:l-u}r=e[1],i=e[0]}t[0][1]0)if(e[0]!==o[1][0])r=t,t=t.right;else{if(l=c(t.right,e))return l;t=t.left}else{if(e[0]!==o[1][0])return t;var l;if(l=c(t.right,e))return l;t=t.left}}return r}function u(t,e,r,n){this.y=t,this.index=e,this.start=r,this.closed=n}function f(t,e,r,n){this.x=t,this.segment=e,this.create=r,this.index=n}s.prototype.castUp=function(t){var e=n.le(this.coordinates,t[0]);if(e<0)return-1;this.slabs[e];var r=c(this.slabs[e],t),i=-1;if(r&&(i=r.value),this.coordinates[e]===t[0]){var s=null;if(r&&(s=r.key),e>0){var u=c(this.slabs[e-1],t);u&&(s?o(u.key,s)>0&&(s=u.key,i=u.value):(i=u.value,s=u.key))}var f=this.horizontal[e];if(f.length>0){var h=n.ge(f,t[1],l);if(h=f.length)return i;p=f[h]}}if(p.start)if(s){var d=a(s[0],s[1],[t[0],p.y]);s[0][0]>s[1][0]&&(d=-d),d>0&&(i=p.index)}else i=p.index;else p.y!==t[1]&&(i=p.index)}}}return i}},{"./lib/order-segments":563,"binary-search-bounds":564,"functional-red-black-tree":247,"robust-orientation":548}],566:[function(t,e,r){"use strict";var n=t("robust-dot-product"),i=t("robust-sum");function a(t,e){var r=i(n(t,e),[e[e.length-1]]);return r[r.length-1]}function o(t,e,r,n){var i=-e/(n-e);i<0?i=0:i>1&&(i=1);for(var a=1-i,o=t.length,s=new Array(o),l=0;l0||i>0&&u<0){var f=o(s,u,l,i);r.push(f),n.push(f.slice())}u<0?n.push(l.slice()):u>0?r.push(l.slice()):(r.push(l.slice()),n.push(l.slice())),i=u}return{positive:r,negative:n}},e.exports.positive=function(t,e){for(var r=[],n=a(t[t.length-1],e),i=t[t.length-1],s=t[0],l=0;l0||n>0&&c<0)&&r.push(o(i,c,s,n)),c>=0&&r.push(s.slice()),n=c}return r},e.exports.negative=function(t,e){for(var r=[],n=a(t[t.length-1],e),i=t[t.length-1],s=t[0],l=0;l0||n>0&&c<0)&&r.push(o(i,c,s,n)),c<=0&&r.push(s.slice()),n=c}return r}},{"robust-dot-product":545,"robust-sum":553}],567:[function(t,e,r){!function(){"use strict";var t={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function e(t){return i(o(t),arguments)}function n(t,r){return e.apply(null,[t].concat(r||[]))}function i(r,n){var i,a,o,s,l,c,u,f,h,p=1,d=r.length,g="";for(a=0;a=0),s.type){case"b":i=parseInt(i,10).toString(2);break;case"c":i=String.fromCharCode(parseInt(i,10));break;case"d":case"i":i=parseInt(i,10);break;case"j":i=JSON.stringify(i,null,s.width?parseInt(s.width):0);break;case"e":i=s.precision?parseFloat(i).toExponential(s.precision):parseFloat(i).toExponential();break;case"f":i=s.precision?parseFloat(i).toFixed(s.precision):parseFloat(i);break;case"g":i=s.precision?String(Number(i.toPrecision(s.precision))):parseFloat(i);break;case"o":i=(parseInt(i,10)>>>0).toString(8);break;case"s":i=String(i),i=s.precision?i.substring(0,s.precision):i;break;case"t":i=String(!!i),i=s.precision?i.substring(0,s.precision):i;break;case"T":i=Object.prototype.toString.call(i).slice(8,-1).toLowerCase(),i=s.precision?i.substring(0,s.precision):i;break;case"u":i=parseInt(i,10)>>>0;break;case"v":i=i.valueOf(),i=s.precision?i.substring(0,s.precision):i;break;case"x":i=(parseInt(i,10)>>>0).toString(16);break;case"X":i=(parseInt(i,10)>>>0).toString(16).toUpperCase()}t.json.test(s.type)?g+=i:(!t.number.test(s.type)||f&&!s.sign?h="":(h=f?"+":"-",i=i.toString().replace(t.sign,"")),c=s.pad_char?"0"===s.pad_char?"0":s.pad_char.charAt(1):" ",u=s.width-(h+i).length,l=s.width&&u>0?c.repeat(u):"",g+=s.align?h+i+l:"0"===c?h+l+i:l+h+i)}return g}var a=Object.create(null);function o(e){if(a[e])return a[e];for(var r,n=e,i=[],o=0;n;){if(null!==(r=t.text.exec(n)))i.push(r[0]);else if(null!==(r=t.modulo.exec(n)))i.push("%");else{if(null===(r=t.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(r[2]){o|=1;var s=[],l=r[2],c=[];if(null===(c=t.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(s.push(c[1]);""!==(l=l.substring(c[0].length));)if(null!==(c=t.key_access.exec(l)))s.push(c[1]);else{if(null===(c=t.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");s.push(c[1])}r[2]=s}else o|=2;if(3===o)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");i.push({placeholder:r[0],param_no:r[1],keys:r[2],sign:r[3],pad_char:r[4],align:r[5],width:r[6],precision:r[7],type:r[8]})}n=n.substring(r[0].length)}return a[e]=i}"undefined"!=typeof r&&(r.sprintf=e,r.vsprintf=n),"undefined"!=typeof window&&(window.sprintf=e,window.vsprintf=n)}()},{}],568:[function(t,e,r){"use strict";var n=t("parenthesis");e.exports=function(t,e,r){if(null==t)throw Error("First argument should be a string");if(null==e)throw Error("Separator should be a string or a RegExp");r?("string"==typeof r||Array.isArray(r))&&(r={ignore:r}):r={},null==r.escape&&(r.escape=!0),null==r.ignore?r.ignore=["[]","()","{}","<>",'""',"''","``","\u201c\u201d","\xab\xbb"]:("string"==typeof r.ignore&&(r.ignore=[r.ignore]),r.ignore=r.ignore.map((function(t){return 1===t.length&&(t+=t),t})));var i=n.parse(t,{flat:!0,brackets:r.ignore}),a=i[0].split(e);if(r.escape){for(var o=[],s=0;s0;){e=c[c.length-1];var p=t[e];if(a[e]=0&&s[e].push(o[g])}a[e]=d}else{if(n[e]===r[e]){var m=[],v=[],y=0;for(d=l.length-1;d>=0;--d){var x=l[d];if(i[x]=!1,m.push(x),v.push(s[x]),y+=s[x].length,o[x]=f.length,x===e){l.length=d;break}}f.push(m);var b=new Array(y);for(d=0;d c)|0 },"),"generic"===e&&a.push("getters:[0],");for(var s=[],l=[],c=0;c>>7){");for(c=0;c<1<<(1<128&&c%128==0){f.length>0&&h.push("}}");var p="vExtra"+f.length;a.push("case ",c>>>7,":",p,"(m&0x7f,",l.join(),");break;"),h=["function ",p,"(m,",l.join(),"){switch(m){"],f.push(h)}h.push("case ",127&c,":");for(var d=new Array(r),g=new Array(r),m=new Array(r),v=new Array(r),y=0,x=0;xx)&&!(c&1<<_)!=!(c&1<0&&(M="+"+m[b]+"*c");var A=d[b].length/y*.5,S=.5+v[b]/y*.5;k.push("d"+b+"-"+S+"-"+A+"*("+d[b].join("+")+M+")/("+g[b].join("+")+")")}h.push("a.push([",k.join(),"]);","break;")}a.push("}},"),f.length>0&&h.push("}}");var E=[];for(c=0;c<1<1&&(i=1),i<-1&&(i=-1),(t*n-e*r<0?-1:1)*Math.acos(i)};r.default=function(t){var e=t.px,r=t.py,l=t.cx,c=t.cy,u=t.rx,f=t.ry,h=t.xAxisRotation,p=void 0===h?0:h,d=t.largeArcFlag,g=void 0===d?0:d,m=t.sweepFlag,v=void 0===m?0:m,y=[];if(0===u||0===f)return[];var x=Math.sin(p*i/360),b=Math.cos(p*i/360),_=b*(e-l)/2+x*(r-c)/2,w=-x*(e-l)/2+b*(r-c)/2;if(0===_&&0===w)return[];u=Math.abs(u),f=Math.abs(f);var T=Math.pow(_,2)/Math.pow(u,2)+Math.pow(w,2)/Math.pow(f,2);T>1&&(u*=Math.sqrt(T),f*=Math.sqrt(T));var k=function(t,e,r,n,a,o,l,c,u,f,h,p){var d=Math.pow(a,2),g=Math.pow(o,2),m=Math.pow(h,2),v=Math.pow(p,2),y=d*g-d*v-g*m;y<0&&(y=0),y/=d*v+g*m;var x=(y=Math.sqrt(y)*(l===c?-1:1))*a/o*p,b=y*-o/a*h,_=f*x-u*b+(t+r)/2,w=u*x+f*b+(e+n)/2,T=(h-x)/a,k=(p-b)/o,M=(-h-x)/a,A=(-p-b)/o,S=s(1,0,T,k),E=s(T,k,M,A);return 0===c&&E>0&&(E-=i),1===c&&E<0&&(E+=i),[_,w,S,E]}(e,r,l,c,u,f,g,v,x,b,_,w),M=n(k,4),A=M[0],S=M[1],E=M[2],C=M[3],L=Math.abs(C)/(i/4);Math.abs(1-L)<1e-7&&(L=1);var I=Math.max(Math.ceil(L),1);C/=I;for(var P=0;Pe[2]&&(e[2]=c[u+0]),c[u+1]>e[3]&&(e[3]=c[u+1]);return e}},{"abs-svg-path":65,assert:73,"is-svg-path":471,"normalize-svg-path":573,"parse-svg-path":505}],573:[function(t,e,r){"use strict";e.exports=function(t){for(var e,r=[],o=0,s=0,l=0,c=0,u=null,f=null,h=0,p=0,d=0,g=t.length;d4?(o=m[m.length-4],s=m[m.length-3]):(o=h,s=p),r.push(m)}return r};var n=t("svg-arc-to-cubic-bezier");function i(t,e,r,n){return["C",t,e,r,n,r,n]}function a(t,e,r,n,i,a){return["C",t/3+2/3*r,e/3+2/3*n,i/3+2/3*r,a/3+2/3*n,i,a]}},{"svg-arc-to-cubic-bezier":571}],574:[function(t,e,r){"use strict";var n,i=t("svg-path-bounds"),a=t("parse-svg-path"),o=t("draw-svg-path"),s=t("is-svg-path"),l=t("bitmap-sdf"),c=document.createElement("canvas"),u=c.getContext("2d");e.exports=function(t,e){if(!s(t))throw Error("Argument should be valid svg path string");e||(e={});var r,f;e.shape?(r=e.shape[0],f=e.shape[1]):(r=c.width=e.w||e.width||200,f=c.height=e.h||e.height||200);var h=Math.min(r,f),p=e.stroke||0,d=e.viewbox||e.viewBox||i(t),g=[r/(d[2]-d[0]),f/(d[3]-d[1])],m=Math.min(g[0]||0,g[1]||0)/2;u.fillStyle="black",u.fillRect(0,0,r,f),u.fillStyle="white",p&&("number"!=typeof p&&(p=1),u.strokeStyle=p>0?"white":"black",u.lineWidth=Math.abs(p));if(u.translate(.5*r,.5*f),u.scale(m,m),function(){if(null!=n)return n;var t=document.createElement("canvas").getContext("2d");if(t.canvas.width=t.canvas.height=1,!window.Path2D)return n=!1;var e=new Path2D("M0,0h1v1h-1v-1Z");t.fillStyle="black",t.fill(e);var r=t.getImageData(0,0,1,1);return n=r&&r.data&&255===r.data[3]}()){var v=new Path2D(t);u.fill(v),p&&u.stroke(v)}else{var y=a(t);o(u,y),u.fill(),p&&u.stroke()}return u.setTransform(1,0,0,1,0,0),l(u,{cutoff:null!=e.cutoff?e.cutoff:.5,radius:null!=e.radius?e.radius:.5*h})}},{"bitmap-sdf":98,"draw-svg-path":174,"is-svg-path":471,"parse-svg-path":505,"svg-path-bounds":572}],575:[function(t,e,r){(function(r){(function(){"use strict";e.exports=function t(e,r,i){i=i||{};var o=a[e];o||(o=a[e]={" ":{data:new Float32Array(0),shape:.2}});var s=o[r];if(!s)if(r.length<=1||!/\d/.test(r))s=o[r]=function(t){for(var e=t.cells,r=t.positions,n=new Float32Array(6*e.length),i=0,a=0,o=0;o0&&(f+=.02);var p=new Float32Array(u),d=0,g=-.5*f;for(h=0;h1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}if(t=L(t,360),e=L(e,100),r=L(r,100),0===e)n=i=a=r;else{var s=r<.5?r*(1+e):r+e-r*e,l=2*r-s;n=o(l,s,t+1/3),i=o(l,s,t),a=o(l,s,t-1/3)}return{r:255*n,g:255*i,b:255*a}}(e.h,l,u),f=!0,h="hsl"),e.hasOwnProperty("a")&&(a=e.a));var p,d,g;return a=C(a),{ok:f,format:e.format||h,r:o(255,s(i.r,0)),g:o(255,s(i.g,0)),b:o(255,s(i.b,0)),a:a}}(e);this._originalInput=e,this._r=u.r,this._g=u.g,this._b=u.b,this._a=u.a,this._roundA=a(100*this._a)/100,this._format=l.format||u.format,this._gradientType=l.gradientType,this._r<1&&(this._r=a(this._r)),this._g<1&&(this._g=a(this._g)),this._b<1&&(this._b=a(this._b)),this._ok=u.ok,this._tc_id=i++}function u(t,e,r){t=L(t,255),e=L(e,255),r=L(r,255);var n,i,a=s(t,e,r),l=o(t,e,r),c=(a+l)/2;if(a==l)n=i=0;else{var u=a-l;switch(i=c>.5?u/(2-a-l):u/(a+l),a){case t:n=(e-r)/u+(e>1)+720)%360;--e;)n.h=(n.h+i)%360,a.push(c(n));return a}function A(t,e){e=e||6;for(var r=c(t).toHsv(),n=r.h,i=r.s,a=r.v,o=[],s=1/e;e--;)o.push(c({h:n,s:i,v:a})),a=(a+s)%1;return o}c.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},getLuminance:function(){var e,r,n,i=this.toRgb();return e=i.r/255,r=i.g/255,n=i.b/255,.2126*(e<=.03928?e/12.92:t.pow((e+.055)/1.055,2.4))+.7152*(r<=.03928?r/12.92:t.pow((r+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:t.pow((n+.055)/1.055,2.4))},setAlpha:function(t){return this._a=C(t),this._roundA=a(100*this._a)/100,this},toHsv:function(){var t=f(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=f(this._r,this._g,this._b),e=a(360*t.h),r=a(100*t.s),n=a(100*t.v);return 1==this._a?"hsv("+e+", "+r+"%, "+n+"%)":"hsva("+e+", "+r+"%, "+n+"%, "+this._roundA+")"},toHsl:function(){var t=u(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=u(this._r,this._g,this._b),e=a(360*t.h),r=a(100*t.s),n=a(100*t.l);return 1==this._a?"hsl("+e+", "+r+"%, "+n+"%)":"hsla("+e+", "+r+"%, "+n+"%, "+this._roundA+")"},toHex:function(t){return h(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(t){return function(t,e,r,n,i){var o=[z(a(t).toString(16)),z(a(e).toString(16)),z(a(r).toString(16)),z(D(n))];if(i&&o[0].charAt(0)==o[0].charAt(1)&&o[1].charAt(0)==o[1].charAt(1)&&o[2].charAt(0)==o[2].charAt(1)&&o[3].charAt(0)==o[3].charAt(1))return o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0)+o[3].charAt(0);return o.join("")}(this._r,this._g,this._b,this._a,t)},toHex8String:function(t){return"#"+this.toHex8(t)},toRgb:function(){return{r:a(this._r),g:a(this._g),b:a(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+a(this._r)+", "+a(this._g)+", "+a(this._b)+")":"rgba("+a(this._r)+", "+a(this._g)+", "+a(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:a(100*L(this._r,255))+"%",g:a(100*L(this._g,255))+"%",b:a(100*L(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+a(100*L(this._r,255))+"%, "+a(100*L(this._g,255))+"%, "+a(100*L(this._b,255))+"%)":"rgba("+a(100*L(this._r,255))+"%, "+a(100*L(this._g,255))+"%, "+a(100*L(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(E[h(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var e="#"+p(this._r,this._g,this._b,this._a),r=e,n=this._gradientType?"GradientType = 1, ":"";if(t){var i=c(t);r="#"+p(i._r,i._g,i._b,i._a)}return"progid:DXImageTransform.Microsoft.gradient("+n+"startColorstr="+e+",endColorstr="+r+")"},toString:function(t){var e=!!t;t=t||this._format;var r=!1,n=this._a<1&&this._a>=0;return e||!n||"hex"!==t&&"hex6"!==t&&"hex3"!==t&&"hex4"!==t&&"hex8"!==t&&"name"!==t?("rgb"===t&&(r=this.toRgbString()),"prgb"===t&&(r=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(r=this.toHexString()),"hex3"===t&&(r=this.toHexString(!0)),"hex4"===t&&(r=this.toHex8String(!0)),"hex8"===t&&(r=this.toHex8String()),"name"===t&&(r=this.toName()),"hsl"===t&&(r=this.toHslString()),"hsv"===t&&(r=this.toHsvString()),r||this.toHexString()):"name"===t&&0===this._a?this.toName():this.toRgbString()},clone:function(){return c(this.toString())},_applyModification:function(t,e){var r=t.apply(null,[this].concat([].slice.call(e)));return this._r=r._r,this._g=r._g,this._b=r._b,this.setAlpha(r._a),this},lighten:function(){return this._applyModification(v,arguments)},brighten:function(){return this._applyModification(y,arguments)},darken:function(){return this._applyModification(x,arguments)},desaturate:function(){return this._applyModification(d,arguments)},saturate:function(){return this._applyModification(g,arguments)},greyscale:function(){return this._applyModification(m,arguments)},spin:function(){return this._applyModification(b,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(M,arguments)},complement:function(){return this._applyCombination(_,arguments)},monochromatic:function(){return this._applyCombination(A,arguments)},splitcomplement:function(){return this._applyCombination(k,arguments)},triad:function(){return this._applyCombination(w,arguments)},tetrad:function(){return this._applyCombination(T,arguments)}},c.fromRatio=function(t,e){if("object"==typeof t){var r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]="a"===n?t[n]:O(t[n]));t=r}return c(t,e)},c.equals=function(t,e){return!(!t||!e)&&c(t).toRgbString()==c(e).toRgbString()},c.random=function(){return c.fromRatio({r:l(),g:l(),b:l()})},c.mix=function(t,e,r){r=0===r?0:r||50;var n=c(t).toRgb(),i=c(e).toRgb(),a=r/100;return c({r:(i.r-n.r)*a+n.r,g:(i.g-n.g)*a+n.g,b:(i.b-n.b)*a+n.b,a:(i.a-n.a)*a+n.a})},c.readability=function(e,r){var n=c(e),i=c(r);return(t.max(n.getLuminance(),i.getLuminance())+.05)/(t.min(n.getLuminance(),i.getLuminance())+.05)},c.isReadable=function(t,e,r){var n,i,a=c.readability(t,e);switch(i=!1,(n=function(t){var e,r;e=((t=t||{level:"AA",size:"small"}).level||"AA").toUpperCase(),r=(t.size||"small").toLowerCase(),"AA"!==e&&"AAA"!==e&&(e="AA");"small"!==r&&"large"!==r&&(r="small");return{level:e,size:r}}(r)).level+n.size){case"AAsmall":case"AAAlarge":i=a>=4.5;break;case"AAlarge":i=a>=3;break;case"AAAsmall":i=a>=7}return i},c.mostReadable=function(t,e,r){var n,i,a,o,s=null,l=0;i=(r=r||{}).includeFallbackColors,a=r.level,o=r.size;for(var u=0;ul&&(l=n,s=c(e[u]));return c.isReadable(t,s,{level:a,size:o})||!i?s:(r.includeFallbackColors=!1,c.mostReadable(t,["#fff","#000"],r))};var S=c.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},E=c.hexNames=function(t){var e={};for(var r in t)t.hasOwnProperty(r)&&(e[t[r]]=r);return e}(S);function C(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function L(e,r){(function(t){return"string"==typeof t&&-1!=t.indexOf(".")&&1===parseFloat(t)})(e)&&(e="100%");var n=function(t){return"string"==typeof t&&-1!=t.indexOf("%")}(e);return e=o(r,s(0,parseFloat(e))),n&&(e=parseInt(e*r,10)/100),t.abs(e-r)<1e-6?1:e%r/parseFloat(r)}function I(t){return o(1,s(0,t))}function P(t){return parseInt(t,16)}function z(t){return 1==t.length?"0"+t:""+t}function O(t){return t<=1&&(t=100*t+"%"),t}function D(e){return t.round(255*parseFloat(e)).toString(16)}function R(t){return P(t)/255}var F,B,N,j=(B="[\\s|\\(]+("+(F="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+F+")[,|\\s]+("+F+")\\s*\\)?",N="[\\s|\\(]+("+F+")[,|\\s]+("+F+")[,|\\s]+("+F+")[,|\\s]+("+F+")\\s*\\)?",{CSS_UNIT:new RegExp(F),rgb:new RegExp("rgb"+B),rgba:new RegExp("rgba"+N),hsl:new RegExp("hsl"+B),hsla:new RegExp("hsla"+N),hsv:new RegExp("hsv"+B),hsva:new RegExp("hsva"+N),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function U(t){return!!j.CSS_UNIT.exec(t)}"undefined"!=typeof e&&e.exports?e.exports=c:window.tinycolor=c}(Math)},{}],577:[function(t,e,r){"use strict";e.exports=i,e.exports.float32=e.exports.float=i,e.exports.fract32=e.exports.fract=function(t){if(t.length){for(var e=i(t),r=0,n=e.length;ro&&(o=t[0]),t[1]s&&(s=t[1])}function c(t){switch(t.type){case"GeometryCollection":t.geometries.forEach(c);break;case"Point":l(t.coordinates);break;case"MultiPoint":t.coordinates.forEach(l)}}for(e in t.arcs.forEach((function(t){for(var e,r=-1,l=t.length;++ro&&(o=e[0]),e[1]s&&(s=e[1])})),t.objects)c(t.objects[e]);return[i,a,o,s]}function i(t,e){var r=e.id,n=e.bbox,i=null==e.properties?{}:e.properties,o=a(t,e);return null==r&&null==n?{type:"Feature",properties:i,geometry:o}:null==n?{type:"Feature",id:r,properties:i,geometry:o}:{type:"Feature",id:r,bbox:n,properties:i,geometry:o}}function a(t,e){var n=r(t.transform),i=t.arcs;function a(t,e){e.length&&e.pop();for(var r=i[t<0?~t:t],a=0,o=r.length;a1)n=l(t,e,r);else for(i=0,n=new Array(a=t.arcs.length);i1)for(var a,s,c=1,u=l(i[0]);cu&&(s=i[0],i[0]=i[c],i[c]=s,u=a);return i})).filter((function(t){return t.length>0}))}}function u(t,e){for(var r=0,n=t.length;r>>1;t[i]=2))throw new Error("n must be \u22652");var r,i=(l=t.bbox||n(t))[0],a=l[1],o=l[2],s=l[3];e={scale:[o-i?(o-i)/(r-1):1,s-a?(s-a)/(r-1):1],translate:[i,a]}}var l,c,u=f(e),h=t.objects,p={};function d(t){return u(t)}function g(t){var e;switch(t.type){case"GeometryCollection":e={type:"GeometryCollection",geometries:t.geometries.map(g)};break;case"Point":e={type:"Point",coordinates:d(t.coordinates)};break;case"MultiPoint":e={type:"MultiPoint",coordinates:t.coordinates.map(d)};break;default:return t}return null!=t.id&&(e.id=t.id),null!=t.bbox&&(e.bbox=t.bbox),null!=t.properties&&(e.properties=t.properties),e}for(c in h)p[c]=g(h[c]);return{type:"Topology",bbox:l,transform:e,objects:p,arcs:t.arcs.map((function(t){var e,r=0,n=1,i=t.length,a=new Array(i);for(a[0]=u(t[0],0);++rMath.max(r,n)?i[2]=1:r>Math.max(e,n)?i[0]=1:i[1]=1;for(var a=0,o=0,l=0;l<3;++l)a+=t[l]*t[l],o+=i[l]*t[l];for(l=0;l<3;++l)i[l]-=o/a*t[l];return s(i,i),i}function h(t,e,r,i,a,o,s,l){this.center=n(r),this.up=n(i),this.right=n(a),this.radius=n([o]),this.angle=n([s,l]),this.angle.bounds=[[-1/0,-Math.PI/2],[1/0,Math.PI/2]],this.setDistanceLimits(t,e),this.computedCenter=this.center.curve(0),this.computedUp=this.up.curve(0),this.computedRight=this.right.curve(0),this.computedRadius=this.radius.curve(0),this.computedAngle=this.angle.curve(0),this.computedToward=[0,0,0],this.computedEye=[0,0,0],this.computedMatrix=new Array(16);for(var c=0;c<16;++c)this.computedMatrix[c]=.5;this.recalcMatrix(0)}var p=h.prototype;p.setDistanceLimits=function(t,e){t=t>0?Math.log(t):-1/0,e=e>0?Math.log(e):1/0,e=Math.max(e,t),this.radius.bounds[0][0]=t,this.radius.bounds[1][0]=e},p.getDistanceLimits=function(t){var e=this.radius.bounds[0];return t?(t[0]=Math.exp(e[0][0]),t[1]=Math.exp(e[1][0]),t):[Math.exp(e[0][0]),Math.exp(e[1][0])]},p.recalcMatrix=function(t){this.center.curve(t),this.up.curve(t),this.right.curve(t),this.radius.curve(t),this.angle.curve(t);for(var e=this.computedUp,r=this.computedRight,n=0,i=0,a=0;a<3;++a)i+=e[a]*r[a],n+=e[a]*e[a];var l=Math.sqrt(n),u=0;for(a=0;a<3;++a)r[a]-=e[a]*i/n,u+=r[a]*r[a],e[a]/=l;var f=Math.sqrt(u);for(a=0;a<3;++a)r[a]/=f;var h=this.computedToward;o(h,e,r),s(h,h);var p=Math.exp(this.computedRadius[0]),d=this.computedAngle[0],g=this.computedAngle[1],m=Math.cos(d),v=Math.sin(d),y=Math.cos(g),x=Math.sin(g),b=this.computedCenter,_=m*y,w=v*y,T=x,k=-m*x,M=-v*x,A=y,S=this.computedEye,E=this.computedMatrix;for(a=0;a<3;++a){var C=_*r[a]+w*h[a]+T*e[a];E[4*a+1]=k*r[a]+M*h[a]+A*e[a],E[4*a+2]=C,E[4*a+3]=0}var L=E[1],I=E[5],P=E[9],z=E[2],O=E[6],D=E[10],R=I*D-P*O,F=P*z-L*D,B=L*O-I*z,N=c(R,F,B);R/=N,F/=N,B/=N,E[0]=R,E[4]=F,E[8]=B;for(a=0;a<3;++a)S[a]=b[a]+E[2+4*a]*p;for(a=0;a<3;++a){u=0;for(var j=0;j<3;++j)u+=E[a+4*j]*S[j];E[12+a]=-u}E[15]=1},p.getMatrix=function(t,e){this.recalcMatrix(t);var r=this.computedMatrix;if(e){for(var n=0;n<16;++n)e[n]=r[n];return e}return r};var d=[0,0,0];p.rotate=function(t,e,r,n){if(this.angle.move(t,e,r),n){this.recalcMatrix(t);var i=this.computedMatrix;d[0]=i[2],d[1]=i[6],d[2]=i[10];for(var o=this.computedUp,s=this.computedRight,l=this.computedToward,c=0;c<3;++c)i[4*c]=o[c],i[4*c+1]=s[c],i[4*c+2]=l[c];a(i,i,n,d);for(c=0;c<3;++c)o[c]=i[4*c],s[c]=i[4*c+1];this.up.set(t,o[0],o[1],o[2]),this.right.set(t,s[0],s[1],s[2])}},p.pan=function(t,e,r,n){e=e||0,r=r||0,n=n||0,this.recalcMatrix(t);var i=this.computedMatrix,a=(Math.exp(this.computedRadius[0]),i[1]),o=i[5],s=i[9],l=c(a,o,s);a/=l,o/=l,s/=l;var u=i[0],f=i[4],h=i[8],p=u*a+f*o+h*s,d=c(u-=a*p,f-=o*p,h-=s*p),g=(u/=d)*e+a*r,m=(f/=d)*e+o*r,v=(h/=d)*e+s*r;this.center.move(t,g,m,v);var y=Math.exp(this.computedRadius[0]);y=Math.max(1e-4,y+n),this.radius.set(t,Math.log(y))},p.translate=function(t,e,r,n){this.center.move(t,e||0,r||0,n||0)},p.setMatrix=function(t,e,r,n){var a=1;"number"==typeof r&&(a=0|r),(a<0||a>3)&&(a=1);var o=(a+2)%3;e||(this.recalcMatrix(t),e=this.computedMatrix);var s=e[a],l=e[a+4],f=e[a+8];if(n){var h=Math.abs(s),p=Math.abs(l),d=Math.abs(f),g=Math.max(h,p,d);h===g?(s=s<0?-1:1,l=f=0):d===g?(f=f<0?-1:1,s=l=0):(l=l<0?-1:1,s=f=0)}else{var m=c(s,l,f);s/=m,l/=m,f/=m}var v,y,x=e[o],b=e[o+4],_=e[o+8],w=x*s+b*l+_*f,T=c(x-=s*w,b-=l*w,_-=f*w),k=l*(_/=T)-f*(b/=T),M=f*(x/=T)-s*_,A=s*b-l*x,S=c(k,M,A);if(k/=S,M/=S,A/=S,this.center.jump(t,H,G,Y),this.radius.idle(t),this.up.jump(t,s,l,f),this.right.jump(t,x,b,_),2===a){var E=e[1],C=e[5],L=e[9],I=E*x+C*b+L*_,P=E*k+C*M+L*A;v=R<0?-Math.PI/2:Math.PI/2,y=Math.atan2(P,I)}else{var z=e[2],O=e[6],D=e[10],R=z*s+O*l+D*f,F=z*x+O*b+D*_,B=z*k+O*M+D*A;v=Math.asin(u(R)),y=Math.atan2(B,F)}this.angle.jump(t,y,v),this.recalcMatrix(t);var N=e[2],j=e[6],U=e[10],V=this.computedMatrix;i(V,e);var q=V[15],H=V[12]/q,G=V[13]/q,Y=V[14]/q,W=Math.exp(this.computedRadius[0]);this.center.jump(t,H-N*W,G-j*W,Y-U*W)},p.lastT=function(){return Math.max(this.center.lastT(),this.up.lastT(),this.right.lastT(),this.radius.lastT(),this.angle.lastT())},p.idle=function(t){this.center.idle(t),this.up.idle(t),this.right.idle(t),this.radius.idle(t),this.angle.idle(t)},p.flush=function(t){this.center.flush(t),this.up.flush(t),this.right.flush(t),this.radius.flush(t),this.angle.flush(t)},p.setDistance=function(t,e){e>0&&this.radius.set(t,Math.log(e))},p.lookAt=function(t,e,r,n){this.recalcMatrix(t),e=e||this.computedEye,r=r||this.computedCenter;var i=(n=n||this.computedUp)[0],a=n[1],o=n[2],s=c(i,a,o);if(!(s<1e-6)){i/=s,a/=s,o/=s;var l=e[0]-r[0],f=e[1]-r[1],h=e[2]-r[2],p=c(l,f,h);if(!(p<1e-6)){l/=p,f/=p,h/=p;var d=this.computedRight,g=d[0],m=d[1],v=d[2],y=i*g+a*m+o*v,x=c(g-=y*i,m-=y*a,v-=y*o);if(!(x<.01&&(x=c(g=a*h-o*f,m=o*l-i*h,v=i*f-a*l))<1e-6)){g/=x,m/=x,v/=x,this.up.set(t,i,a,o),this.right.set(t,g,m,v),this.center.set(t,r[0],r[1],r[2]),this.radius.set(t,Math.log(p));var b=a*v-o*m,_=o*g-i*v,w=i*m-a*g,T=c(b,_,w),k=i*l+a*f+o*h,M=g*l+m*f+v*h,A=(b/=T)*l+(_/=T)*f+(w/=T)*h,S=Math.asin(u(k)),E=Math.atan2(A,M),C=this.angle._state,L=C[C.length-1],I=C[C.length-2];L%=2*Math.PI;var P=Math.abs(L+2*Math.PI-E),z=Math.abs(L-E),O=Math.abs(L-2*Math.PI-E);P":(e.length>100&&(e=e.slice(0,99)+"\u2026"),e=e.replace(i,(function(t){switch(t){case"\n":return"\\n";case"\r":return"\\r";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";default:throw new Error("Unexpected character")}})))}},{"./safe-to-string":586}],588:[function(t,e,r){"use strict";var n=t("../value/is"),i={object:!0,function:!0,undefined:!0};e.exports=function(t){return!!n(t)&&hasOwnProperty.call(i,typeof t)}},{"../value/is":594}],589:[function(t,e,r){"use strict";var n=t("../lib/resolve-exception"),i=t("./is");e.exports=function(t){return i(t)?t:n(t,"%v is not a plain function",arguments[1])}},{"../lib/resolve-exception":585,"./is":590}],590:[function(t,e,r){"use strict";var n=t("../function/is"),i=/^\s*class[\s{/}]/,a=Function.prototype.toString;e.exports=function(t){return!!n(t)&&!i.test(a.call(t))}},{"../function/is":584}],591:[function(t,e,r){"use strict";var n=t("../object/is");e.exports=function(t){if(!n(t))return!1;try{return!!t.constructor&&t.constructor.prototype===t}catch(t){return!1}}},{"../object/is":588}],592:[function(t,e,r){"use strict";var n=t("../value/is"),i=t("../object/is"),a=Object.prototype.toString;e.exports=function(t){if(!n(t))return null;if(i(t)){var e=t.toString;if("function"!=typeof e)return null;if(e===a)return null}try{return""+t}catch(t){return null}}},{"../object/is":588,"../value/is":594}],593:[function(t,e,r){"use strict";var n=t("../lib/resolve-exception"),i=t("./is");e.exports=function(t){return i(t)?t:n(t,"Cannot use %v",arguments[1])}},{"../lib/resolve-exception":585,"./is":594}],594:[function(t,e,r){"use strict";e.exports=function(t){return null!=t}},{}],595:[function(t,e,r){(function(e){(function(){"use strict";var n=t("bit-twiddle"),i=t("dup"),a=t("buffer").Buffer;e.__TYPEDARRAY_POOL||(e.__TYPEDARRAY_POOL={UINT8:i([32,0]),UINT16:i([32,0]),UINT32:i([32,0]),BIGUINT64:i([32,0]),INT8:i([32,0]),INT16:i([32,0]),INT32:i([32,0]),BIGINT64:i([32,0]),FLOAT:i([32,0]),DOUBLE:i([32,0]),DATA:i([32,0]),UINT8C:i([32,0]),BUFFER:i([32,0])});var o="undefined"!=typeof Uint8ClampedArray,s="undefined"!=typeof BigUint64Array,l="undefined"!=typeof BigInt64Array,c=e.__TYPEDARRAY_POOL;c.UINT8C||(c.UINT8C=i([32,0])),c.BIGUINT64||(c.BIGUINT64=i([32,0])),c.BIGINT64||(c.BIGINT64=i([32,0])),c.BUFFER||(c.BUFFER=i([32,0]));var u=c.DATA,f=c.BUFFER;function h(t){if(t){var e=t.length||t.byteLength,r=n.log2(e);u[r].push(t)}}function p(t){t=n.nextPow2(t);var e=n.log2(t),r=u[e];return r.length>0?r.pop():new ArrayBuffer(t)}function d(t){return new Uint8Array(p(t),0,t)}function g(t){return new Uint16Array(p(2*t),0,t)}function m(t){return new Uint32Array(p(4*t),0,t)}function v(t){return new Int8Array(p(t),0,t)}function y(t){return new Int16Array(p(2*t),0,t)}function x(t){return new Int32Array(p(4*t),0,t)}function b(t){return new Float32Array(p(4*t),0,t)}function _(t){return new Float64Array(p(8*t),0,t)}function w(t){return o?new Uint8ClampedArray(p(t),0,t):d(t)}function T(t){return s?new BigUint64Array(p(8*t),0,t):null}function k(t){return l?new BigInt64Array(p(8*t),0,t):null}function M(t){return new DataView(p(t),0,t)}function A(t){t=n.nextPow2(t);var e=n.log2(t),r=f[e];return r.length>0?r.pop():new a(t)}r.free=function(t){if(a.isBuffer(t))f[n.log2(t.length)].push(t);else{if("[object ArrayBuffer]"!==Object.prototype.toString.call(t)&&(t=t.buffer),!t)return;var e=t.length||t.byteLength,r=0|n.log2(e);u[r].push(t)}},r.freeUint8=r.freeUint16=r.freeUint32=r.freeBigUint64=r.freeInt8=r.freeInt16=r.freeInt32=r.freeBigInt64=r.freeFloat32=r.freeFloat=r.freeFloat64=r.freeDouble=r.freeUint8Clamped=r.freeDataView=function(t){h(t.buffer)},r.freeArrayBuffer=h,r.freeBuffer=function(t){f[n.log2(t.length)].push(t)},r.malloc=function(t,e){if(void 0===e||"arraybuffer"===e)return p(t);switch(e){case"uint8":return d(t);case"uint16":return g(t);case"uint32":return m(t);case"int8":return v(t);case"int16":return y(t);case"int32":return x(t);case"float":case"float32":return b(t);case"double":case"float64":return _(t);case"uint8_clamped":return w(t);case"bigint64":return k(t);case"biguint64":return T(t);case"buffer":return A(t);case"data":case"dataview":return M(t);default:return null}return null},r.mallocArrayBuffer=p,r.mallocUint8=d,r.mallocUint16=g,r.mallocUint32=m,r.mallocInt8=v,r.mallocInt16=y,r.mallocInt32=x,r.mallocFloat32=r.mallocFloat=b,r.mallocFloat64=r.mallocDouble=_,r.mallocUint8Clamped=w,r.mallocBigUint64=T,r.mallocBigInt64=k,r.mallocDataView=M,r.mallocBuffer=A,r.clearCache=function(){for(var t=0;t<32;++t)c.UINT8[t].length=0,c.UINT16[t].length=0,c.UINT32[t].length=0,c.INT8[t].length=0,c.INT16[t].length=0,c.INT32[t].length=0,c.FLOAT[t].length=0,c.DOUBLE[t].length=0,c.BIGUINT64[t].length=0,c.BIGINT64[t].length=0,c.UINT8C[t].length=0,u[t].length=0,f[t].length=0}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"bit-twiddle":97,buffer:111,dup:176}],596:[function(t,e,r){"use strict";function n(t){this.roots=new Array(t),this.ranks=new Array(t);for(var e=0;e0&&(a=n.size),n.lineSpacing&&n.lineSpacing>0&&(o=n.lineSpacing),n.styletags&&n.styletags.breaklines&&(s.breaklines=!!n.styletags.breaklines),n.styletags&&n.styletags.bolds&&(s.bolds=!!n.styletags.bolds),n.styletags&&n.styletags.italics&&(s.italics=!!n.styletags.italics),n.styletags&&n.styletags.subscripts&&(s.subscripts=!!n.styletags.subscripts),n.styletags&&n.styletags.superscripts&&(s.superscripts=!!n.styletags.superscripts));return r.font=[n.fontStyle,n.fontVariant,n.fontWeight,a+"px",n.font].filter((function(t){return t})).join(" "),r.textAlign="start",r.textBaseline="alphabetic",r.direction="ltr",h(function(t,e,r,n,a,o){r=r.replace(/\n/g,""),r=!0===o.breaklines?r.replace(/\/g,"\n"):r.replace(/\/g," ");var s="",l=[];for(p=0;p-1?parseInt(t[1+i]):0,l=a>-1?parseInt(r[1+a]):0;s!==l&&(n=n.replace(S(),"?px "),m*=Math.pow(.75,l-s),n=n.replace("?px ",S())),g+=.25*x*(l-s)}if(!0===o.superscripts){var c=t.indexOf("+"),u=r.indexOf("+"),f=c>-1?parseInt(t[1+c]):0,h=u>-1?parseInt(r[1+u]):0;f!==h&&(n=n.replace(S(),"?px "),m*=Math.pow(.75,h-f),n=n.replace("?px ",S())),g-=.25*x*(h-f)}if(!0===o.bolds){var p=t.indexOf("b|")>-1,d=r.indexOf("b|")>-1;!p&&d&&(n=v?n.replace("italic ","italic bold "):"bold "+n),p&&!d&&(n=n.replace("bold ",""))}if(!0===o.italics){var v=t.indexOf("i|")>-1,y=r.indexOf("i|")>-1;!v&&y&&(n="italic "+n),v&&!y&&(n=n.replace("italic ",""))}e.font=n}for(h=0;h",a="",o=i.length,s=a.length,l="+"===e[0]||"-"===e[0],c=0,u=-s;c>-1&&-1!==(c=r.indexOf(i,c))&&-1!==(u=r.indexOf(a,c+o))&&!(u<=c);){for(var f=c;f=u)n[f]=null,r=r.substr(0,f)+" "+r.substr(f+1);else if(null!==n[f]){var h=n[f].indexOf(e[0]);-1===h?n[f]+=e:l&&(n[f]=n[f].substr(0,h+1)+(1+parseInt(n[f][h+1]))+n[f].substr(h+2))}var p=c+o,d=r.substr(p,u-p).indexOf(i);c=-1!==d?d:u+s}return n}function u(t,e){var r=n(t,128);return e?a(r.cells,r.positions,.25):{edges:r.cells,positions:r.positions}}function f(t,e,r,n){var i=u(t,n),a=function(t,e,r){for(var n=e.textAlign||"start",i=e.textBaseline||"alphabetic",a=[1<<30,1<<30],o=[0,0],s=t.length,l=0;l=0?e[a]:i}))},has___:{value:y((function(e){var n=v(e);return n?r in n:t.indexOf(e)>=0}))},set___:{value:y((function(n,i){var a,o=v(n);return o?o[r]=i:(a=t.indexOf(n))>=0?e[a]=i:(a=t.length,e[a]=i,t[a]=n),this}))},delete___:{value:y((function(n){var i,a,o=v(n);return o?r in o&&delete o[r]:!((i=t.indexOf(n))<0)&&(a=t.length-1,t[i]=void 0,e[i]=e[a],t[i]=t[a],t.length=a,e.length=a,!0)}))}})};d.prototype=Object.create(Object.prototype,{get:{value:function(t,e){return this.get___(t,e)},writable:!0,configurable:!0},has:{value:function(t){return this.has___(t)},writable:!0,configurable:!0},set:{value:function(t,e){return this.set___(t,e)},writable:!0,configurable:!0},delete:{value:function(t){return this.delete___(t)},writable:!0,configurable:!0}}),"function"==typeof r?function(){function n(){this instanceof d||x();var e,n=new r,i=void 0,a=!1;return e=t?function(t,e){return n.set(t,e),n.has(t)||(i||(i=new d),i.set(t,e)),this}:function(t,e){if(a)try{n.set(t,e)}catch(r){i||(i=new d),i.set___(t,e)}else n.set(t,e);return this},Object.create(d.prototype,{get___:{value:y((function(t,e){return i?n.has(t)?n.get(t):i.get___(t,e):n.get(t,e)}))},has___:{value:y((function(t){return n.has(t)||!!i&&i.has___(t)}))},set___:{value:y(e)},delete___:{value:y((function(t){var e=!!n.delete(t);return i&&i.delete___(t)||e}))},permitHostObjects___:{value:y((function(t){if(t!==g)throw new Error("bogus call to permitHostObjects___");a=!0}))}})}t&&"undefined"!=typeof Proxy&&(Proxy=void 0),n.prototype=d.prototype,e.exports=n,Object.defineProperty(WeakMap.prototype,"constructor",{value:WeakMap,enumerable:!1,configurable:!0,writable:!0})}():("undefined"!=typeof Proxy&&(Proxy=void 0),e.exports=d)}function g(t){t.permitHostObjects___&&t.permitHostObjects___(g)}function m(t){return!("weakmap:"==t.substr(0,"weakmap:".length)&&"___"===t.substr(t.length-3))}function v(t){if(t!==Object(t))throw new TypeError("Not an object: "+t);var e=t[l];if(e&&e.key===t)return e;if(s(t)){e={key:t};try{return o(t,l,{value:e,writable:!1,enumerable:!1,configurable:!1}),e}catch(t){return}}}function y(t){return t.prototype=null,Object.freeze(t)}function x(){h||"undefined"==typeof console||(h=!0,console.warn("WeakMap should be invoked as new WeakMap(), not WeakMap(). This will be an error in the future."))}}()},{}],603:[function(t,e,r){var n=t("./hidden-store.js");e.exports=function(){var t={};return function(e){if(("object"!=typeof e||null===e)&&"function"!=typeof e)throw new Error("Weakmap-shim: Key must be object");var r=e.valueOf(t);return r&&r.identity===t?r:n(e,t)}}},{"./hidden-store.js":604}],604:[function(t,e,r){e.exports=function(t,e){var r={identity:e},n=t.valueOf;return Object.defineProperty(t,"valueOf",{value:function(t){return t!==e?n.apply(this,arguments):r},writable:!0}),r}},{}],605:[function(t,e,r){var n=t("./create-store.js");e.exports=function(){var t=n();return{get:function(e,r){var n=t(e);return n.hasOwnProperty("value")?n.value:r},set:function(e,r){return t(e).value=r,this},has:function(e){return"value"in t(e)},delete:function(e){return delete t(e).value}}}},{"./create-store.js":603}],606:[function(t,e,r){var n=t("get-canvas-context");e.exports=function(t){return n("webgl",t)}},{"get-canvas-context":249}],607:[function(t,e,r){var n=t("../main"),i=t("object-assign"),a=n.instance();function o(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}o.prototype=new n.baseCalendar,i(o.prototype,{name:"Chinese",jdEpoch:1721425.5,hasYearZero:!1,minMonth:0,firstMonth:0,minDay:1,regionalOptions:{"":{name:"Chinese",epochs:["BEC","EC"],monthNumbers:function(t,e){if("string"==typeof t){var r=t.match(l);return r?r[0]:""}var n=this._validateYear(t),i=t.month(),a=""+this.toChineseMonth(n,i);return e&&a.length<2&&(a="0"+a),this.isIntercalaryMonth(n,i)&&(a+="i"),a},monthNames:function(t){if("string"==typeof t){var e=t.match(c);return e?e[0]:""}var r=this._validateYear(t),n=t.month(),i=["\u4e00\u6708","\u4e8c\u6708","\u4e09\u6708","\u56db\u6708","\u4e94\u6708","\u516d\u6708","\u4e03\u6708","\u516b\u6708","\u4e5d\u6708","\u5341\u6708","\u5341\u4e00\u6708","\u5341\u4e8c\u6708"][this.toChineseMonth(r,n)-1];return this.isIntercalaryMonth(r,n)&&(i="\u95f0"+i),i},monthNamesShort:function(t){if("string"==typeof t){var e=t.match(u);return e?e[0]:""}var r=this._validateYear(t),n=t.month(),i=["\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d","\u4e03","\u516b","\u4e5d","\u5341","\u5341\u4e00","\u5341\u4e8c"][this.toChineseMonth(r,n)-1];return this.isIntercalaryMonth(r,n)&&(i="\u95f0"+i),i},parseMonth:function(t,e){t=this._validateYear(t);var r,n=parseInt(e);if(isNaN(n))"\u95f0"===e[0]&&(r=!0,e=e.substring(1)),"\u6708"===e[e.length-1]&&(e=e.substring(0,e.length-1)),n=1+["\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d","\u4e03","\u516b","\u4e5d","\u5341","\u5341\u4e00","\u5341\u4e8c"].indexOf(e);else{var i=e[e.length-1];r="i"===i||"I"===i}return this.toMonthIndex(t,n,r)},dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:1,isRTL:!1}},_validateYear:function(t,e){if(t.year&&(t=t.year()),"number"!=typeof t||t<1888||t>2111)throw e.replace(/\{0\}/,this.local.name);return t},toMonthIndex:function(t,e,r){var i=this.intercalaryMonth(t);if(r&&e!==i||e<1||e>12)throw n.local.invalidMonth.replace(/\{0\}/,this.local.name);return i?!r&&e<=i?e-1:e:e-1},toChineseMonth:function(t,e){t.year&&(e=(t=t.year()).month());var r=this.intercalaryMonth(t);if(e<0||e>(r?12:11))throw n.local.invalidMonth.replace(/\{0\}/,this.local.name);return r?e>13},isIntercalaryMonth:function(t,e){t.year&&(e=(t=t.year()).month());var r=this.intercalaryMonth(t);return!!r&&r===e},leapYear:function(t){return 0!==this.intercalaryMonth(t)},weekOfYear:function(t,e,r){var i,o=this._validateYear(t,n.local.invalidyear),s=h[o-h[0]],l=s>>9&4095,c=s>>5&15,u=31&s;(i=a.newDate(l,c,u)).add(4-(i.dayOfWeek()||7),"d");var f=this.toJD(t,e,r)-i.toJD();return 1+Math.floor(f/7)},monthsInYear:function(t){return this.leapYear(t)?13:12},daysInMonth:function(t,e){t.year&&(e=t.month(),t=t.year()),t=this._validateYear(t);var r=f[t-f[0]];if(e>(r>>13?12:11))throw n.local.invalidMonth.replace(/\{0\}/,this.local.name);return r&1<<12-e?30:29},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,s,r,n.local.invalidDate);t=this._validateYear(i.year()),e=i.month(),r=i.day();var o=this.isIntercalaryMonth(t,e),s=this.toChineseMonth(t,e),l=function(t,e,r,n,i){var a,o,s;if("object"==typeof t)o=t,a=e||{};else{var l;if(!("number"==typeof t&&t>=1888&&t<=2111))throw new Error("Lunar year outside range 1888-2111");if(!("number"==typeof e&&e>=1&&e<=12))throw new Error("Lunar month outside range 1 - 12");if(!("number"==typeof r&&r>=1&&r<=30))throw new Error("Lunar day outside range 1 - 30");"object"==typeof n?(l=!1,a=n):(l=!!n,a=i||{}),o={year:t,month:e,day:r,isIntercalary:l}}s=o.day-1;var c,u=f[o.year-f[0]],p=u>>13;c=p&&(o.month>p||o.isIntercalary)?o.month:o.month-1;for(var d=0;d>9&4095,(g>>5&15)-1,(31&g)+s);return a.year=m.getFullYear(),a.month=1+m.getMonth(),a.day=m.getDate(),a}(t,s,r,o);return a.toJD(l.year,l.month,l.day)},fromJD:function(t){var e=a.fromJD(t),r=function(t,e,r,n){var i,a;if("object"==typeof t)i=t,a=e||{};else{if(!("number"==typeof t&&t>=1888&&t<=2111))throw new Error("Solar year outside range 1888-2111");if(!("number"==typeof e&&e>=1&&e<=12))throw new Error("Solar month outside range 1 - 12");if(!("number"==typeof r&&r>=1&&r<=31))throw new Error("Solar day outside range 1 - 31");i={year:t,month:e,day:r},a=n||{}}var o=h[i.year-h[0]],s=i.year<<9|i.month<<5|i.day;a.year=s>=o?i.year:i.year-1,o=h[a.year-h[0]];var l,c=new Date(o>>9&4095,(o>>5&15)-1,31&o),u=new Date(i.year,i.month-1,i.day);l=Math.round((u-c)/864e5);var p,d=f[a.year-f[0]];for(p=0;p<13;p++){var g=d&1<<12-p?30:29;if(l>13;!m||p=2&&n<=6},extraInfo:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return{century:o[Math.floor((i.year()-1)/100)+1]||""}},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=i.year()+(i.year()<0?1:0),e=i.month(),(r=i.day())+(e>1?16:0)+(e>2?32*(e-2):0)+400*(t-1)+this.jdEpoch-1},fromJD:function(t){t=Math.floor(t+.5)-Math.floor(this.jdEpoch)-1;var e=Math.floor(t/400)+1;t-=400*(e-1),t+=t>15?16:0;var r=Math.floor(t/32)+1,n=t-32*(r-1)+1;return this.newDate(e<=0?e-1:e,r,n)}});var o={20:"Fruitbat",21:"Anchovy"};n.calendars.discworld=a},{"../main":621,"object-assign":499}],610:[function(t,e,r){var n=t("../main"),i=t("object-assign");function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Ethiopian",jdEpoch:1724220.5,daysPerMonth:[30,30,30,30,30,30,30,30,30,30,30,30,5],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Ethiopian",epochs:["BEE","EE"],monthNames:["Meskerem","Tikemet","Hidar","Tahesas","Tir","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehase","Pagume"],monthNamesShort:["Mes","Tik","Hid","Tah","Tir","Yek","Meg","Mia","Gen","Sen","Ham","Neh","Pag"],dayNames:["Ehud","Segno","Maksegno","Irob","Hamus","Arb","Kidame"],dayNamesShort:["Ehu","Seg","Mak","Iro","Ham","Arb","Kid"],dayNamesMin:["Eh","Se","Ma","Ir","Ha","Ar","Ki"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return(t=e.year()+(e.year()<0?1:0))%4==3||t%4==-1},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear||n.regionalOptions[""].invalidYear),13},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(13===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return(t=i.year())<0&&t++,i.day()+30*(i.month()-1)+365*(t-1)+Math.floor(t/4)+this.jdEpoch-1},fromJD:function(t){var e=Math.floor(t)+.5-this.jdEpoch,r=Math.floor((e-Math.floor((e+366)/1461))/365)+1;r<=0&&r--,e=Math.floor(t)+.5-this.newDate(r,1,1).toJD();var n=Math.floor(e/30)+1,i=e-30*(n-1)+1;return this.newDate(r,n,i)}}),n.calendars.ethiopian=a},{"../main":621,"object-assign":499}],611:[function(t,e,r){var n=t("../main"),i=t("object-assign");function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}function o(t,e){return t-e*Math.floor(t/e)}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Hebrew",jdEpoch:347995.5,daysPerMonth:[30,29,30,29,30,29,30,29,30,29,30,29,29],hasYearZero:!1,minMonth:1,firstMonth:7,minDay:1,regionalOptions:{"":{name:"Hebrew",epochs:["BAM","AM"],monthNames:["Nisan","Iyar","Sivan","Tammuz","Av","Elul","Tishrei","Cheshvan","Kislev","Tevet","Shevat","Adar","Adar II"],monthNamesShort:["Nis","Iya","Siv","Tam","Av","Elu","Tis","Che","Kis","Tev","She","Ada","Ad2"],dayNames:["Yom Rishon","Yom Sheni","Yom Shlishi","Yom Revi'i","Yom Chamishi","Yom Shishi","Yom Shabbat"],dayNamesShort:["Ris","She","Shl","Rev","Cha","Shi","Sha"],dayNamesMin:["Ri","She","Shl","Re","Ch","Shi","Sha"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return this._leapYear(e.year())},_leapYear:function(t){return o(7*(t=t<0?t+1:t)+1,19)<7},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),this._leapYear(t.year?t.year():t)?13:12},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){return t=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year(),this.toJD(-1===t?1:t+1,7,1)-this.toJD(t,7,1)},daysInMonth:function(t,e){return t.year&&(e=t.month(),t=t.year()),this._validate(t,e,this.minDay,n.local.invalidMonth),12===e&&this.leapYear(t)||8===e&&5===o(this.daysInYear(t),10)?30:9===e&&3===o(this.daysInYear(t),10)?29:this.daysPerMonth[e-1]},weekDay:function(t,e,r){return 6!==this.dayOfWeek(t,e,r)},extraInfo:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return{yearType:(this.leapYear(i)?"embolismic":"common")+" "+["deficient","regular","complete"][this.daysInYear(i)%10-3]}},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=i.year(),e=i.month(),r=i.day();var a=t<=0?t+1:t,o=this.jdEpoch+this._delay1(a)+this._delay2(a)+r+1;if(e<7){for(var s=7;s<=this.monthsInYear(t);s++)o+=this.daysInMonth(t,s);for(s=1;s=this.toJD(-1===e?1:e+1,7,1);)e++;for(var r=tthis.toJD(e,r,this.daysInMonth(e,r));)r++;var n=t-this.toJD(e,r,1)+1;return this.newDate(e,r,n)}}),n.calendars.hebrew=a},{"../main":621,"object-assign":499}],612:[function(t,e,r){var n=t("../main"),i=t("object-assign");function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Islamic",jdEpoch:1948439.5,daysPerMonth:[30,29,30,29,30,29,30,29,30,29,30,29],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Islamic",epochs:["BH","AH"],monthNames:["Muharram","Safar","Rabi' al-awwal","Rabi' al-thani","Jumada al-awwal","Jumada al-thani","Rajab","Sha'aban","Ramadan","Shawwal","Dhu al-Qi'dah","Dhu al-Hijjah"],monthNamesShort:["Muh","Saf","Rab1","Rab2","Jum1","Jum2","Raj","Sha'","Ram","Shaw","DhuQ","DhuH"],dayNames:["Yawm al-ahad","Yawm al-ithnayn","Yawm ath-thulaathaa'","Yawm al-arbi'aa'","Yawm al-kham\u012bs","Yawm al-jum'a","Yawm as-sabt"],dayNamesShort:["Aha","Ith","Thu","Arb","Kha","Jum","Sab"],dayNamesMin:["Ah","It","Th","Ar","Kh","Ju","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:6,isRTL:!1}},leapYear:function(t){return(11*this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year()+14)%30<11},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){return this.leapYear(t)?355:354},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=i.year(),e=i.month(),t=t<=0?t+1:t,(r=i.day())+Math.ceil(29.5*(e-1))+354*(t-1)+Math.floor((3+11*t)/30)+this.jdEpoch-1},fromJD:function(t){t=Math.floor(t)+.5;var e=Math.floor((30*(t-this.jdEpoch)+10646)/10631);e=e<=0?e-1:e;var r=Math.min(12,Math.ceil((t-29-this.toJD(e,1,1))/29.5)+1),n=t-this.toJD(e,r,1)+1;return this.newDate(e,r,n)}}),n.calendars.islamic=a},{"../main":621,"object-assign":499}],613:[function(t,e,r){var n=t("../main"),i=t("object-assign");function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Julian",jdEpoch:1721423.5,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Julian",epochs:["BC","AD"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"mm/dd/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return(t=e.year()<0?e.year()+1:e.year())%4==0},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(4-(n.dayOfWeek()||7),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=i.year(),e=i.month(),r=i.day(),t<0&&t++,e<=2&&(t--,e+=12),Math.floor(365.25*(t+4716))+Math.floor(30.6001*(e+1))+r-1524.5},fromJD:function(t){var e=Math.floor(t+.5)+1524,r=Math.floor((e-122.1)/365.25),n=Math.floor(365.25*r),i=Math.floor((e-n)/30.6001),a=i-Math.floor(i<14?1:13),o=r-Math.floor(a>2?4716:4715),s=e-n-Math.floor(30.6001*i);return o<=0&&o--,this.newDate(o,a,s)}}),n.calendars.julian=a},{"../main":621,"object-assign":499}],614:[function(t,e,r){var n=t("../main"),i=t("object-assign");function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}function o(t,e){return t-e*Math.floor(t/e)}function s(t,e){return o(t-1,e)+1}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Mayan",jdEpoch:584282.5,hasYearZero:!0,minMonth:0,firstMonth:0,minDay:0,regionalOptions:{"":{name:"Mayan",epochs:["",""],monthNames:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17"],monthNamesShort:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17"],dayNames:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],dayNamesShort:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],dayNamesMin:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],digits:null,dateFormat:"YYYY.m.d",firstDay:0,isRTL:!1,haabMonths:["Pop","Uo","Zip","Zotz","Tzec","Xul","Yaxkin","Mol","Chen","Yax","Zac","Ceh","Mac","Kankin","Muan","Pax","Kayab","Cumku","Uayeb"],tzolkinMonths:["Imix","Ik","Akbal","Kan","Chicchan","Cimi","Manik","Lamat","Muluc","Oc","Chuen","Eb","Ben","Ix","Men","Cib","Caban","Etznab","Cauac","Ahau"]}},leapYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),!1},formatYear:function(t){t=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year();var e=Math.floor(t/400);return t%=400,t+=t<0?400:0,e+"."+Math.floor(t/20)+"."+t%20},forYear:function(t){if((t=t.split(".")).length<3)throw"Invalid Mayan year";for(var e=0,r=0;r19||r>0&&n<0)throw"Invalid Mayan year";e=20*e+n}return e},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),18},weekOfYear:function(t,e,r){return this._validate(t,e,r,n.local.invalidDate),0},daysInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),360},daysInMonth:function(t,e){return this._validate(t,e,this.minDay,n.local.invalidMonth),20},daysInWeek:function(){return 5},dayOfWeek:function(t,e,r){return this._validate(t,e,r,n.local.invalidDate).day()},weekDay:function(t,e,r){return this._validate(t,e,r,n.local.invalidDate),!0},extraInfo:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate).toJD(),a=this._toHaab(i),o=this._toTzolkin(i);return{haabMonthName:this.local.haabMonths[a[0]-1],haabMonth:a[0],haabDay:a[1],tzolkinDayName:this.local.tzolkinMonths[o[0]-1],tzolkinDay:o[0],tzolkinTrecena:o[1]}},_toHaab:function(t){var e=o((t-=this.jdEpoch)+8+340,365);return[Math.floor(e/20)+1,o(e,20)]},_toTzolkin:function(t){return[s((t-=this.jdEpoch)+20,20),s(t+4,13)]},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return i.day()+20*i.month()+360*i.year()+this.jdEpoch},fromJD:function(t){t=Math.floor(t)+.5-this.jdEpoch;var e=Math.floor(t/360);t%=360,t+=t<0?360:0;var r=Math.floor(t/20),n=t%20;return this.newDate(e,r,n)}}),n.calendars.mayan=a},{"../main":621,"object-assign":499}],615:[function(t,e,r){var n=t("../main"),i=t("object-assign");function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar;var o=n.instance("gregorian");i(a.prototype,{name:"Nanakshahi",jdEpoch:2257673.5,daysPerMonth:[31,31,31,31,31,30,30,30,30,30,30,30],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Nanakshahi",epochs:["BN","AN"],monthNames:["Chet","Vaisakh","Jeth","Harh","Sawan","Bhadon","Assu","Katak","Maghar","Poh","Magh","Phagun"],monthNamesShort:["Che","Vai","Jet","Har","Saw","Bha","Ass","Kat","Mgr","Poh","Mgh","Pha"],dayNames:["Somvaar","Mangalvar","Budhvaar","Veervaar","Shukarvaar","Sanicharvaar","Etvaar"],dayNamesShort:["Som","Mangal","Budh","Veer","Shukar","Sanichar","Et"],dayNamesMin:["So","Ma","Bu","Ve","Sh","Sa","Et"],digits:null,dateFormat:"dd-mm-yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear||n.regionalOptions[""].invalidYear);return o.leapYear(e.year()+(e.year()<1?1:0)+1469)},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(1-(n.dayOfWeek()||7),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidMonth);(t=i.year())<0&&t++;for(var a=i.day(),s=1;s=this.toJD(e+1,1,1);)e++;for(var r=t-Math.floor(this.toJD(e,1,1)+.5)+1,n=1;r>this.daysInMonth(e,n);)r-=this.daysInMonth(e,n),n++;return this.newDate(e,n,r)}}),n.calendars.nanakshahi=a},{"../main":621,"object-assign":499}],616:[function(t,e,r){var n=t("../main"),i=t("object-assign");function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Nepali",jdEpoch:1700709.5,daysPerMonth:[31,31,32,32,31,30,30,29,30,29,30,30],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,daysPerYear:365,regionalOptions:{"":{name:"Nepali",epochs:["BBS","ABS"],monthNames:["Baisakh","Jestha","Ashadh","Shrawan","Bhadra","Ashwin","Kartik","Mangsir","Paush","Mangh","Falgun","Chaitra"],monthNamesShort:["Bai","Je","As","Shra","Bha","Ash","Kar","Mang","Pau","Ma","Fal","Chai"],dayNames:["Aaitabaar","Sombaar","Manglbaar","Budhabaar","Bihibaar","Shukrabaar","Shanibaar"],dayNamesShort:["Aaita","Som","Mangl","Budha","Bihi","Shukra","Shani"],dayNamesMin:["Aai","So","Man","Bu","Bi","Shu","Sha"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:1,isRTL:!1}},leapYear:function(t){return this.daysInYear(t)!==this.daysPerYear},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){if(t=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year(),"undefined"==typeof this.NEPALI_CALENDAR_DATA[t])return this.daysPerYear;for(var e=0,r=this.minMonth;r<=12;r++)e+=this.NEPALI_CALENDAR_DATA[t][r];return e},daysInMonth:function(t,e){return t.year&&(e=t.month(),t=t.year()),this._validate(t,e,this.minDay,n.local.invalidMonth),"undefined"==typeof this.NEPALI_CALENDAR_DATA[t]?this.daysPerMonth[e-1]:this.NEPALI_CALENDAR_DATA[t][e]},weekDay:function(t,e,r){return 6!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=i.year(),e=i.month(),r=i.day();var a=n.instance(),o=0,s=e,l=t;this._createMissingCalendarData(t);var c=t-(s>9||9===s&&r>=this.NEPALI_CALENDAR_DATA[l][0]?56:57);for(9!==e&&(o=r,s--);9!==s;)s<=0&&(s=12,l--),o+=this.NEPALI_CALENDAR_DATA[l][s],s--;return 9===e?(o+=r-this.NEPALI_CALENDAR_DATA[l][0])<0&&(o+=a.daysInYear(c)):o+=this.NEPALI_CALENDAR_DATA[l][9]-this.NEPALI_CALENDAR_DATA[l][0],a.newDate(c,1,1).add(o,"d").toJD()},fromJD:function(t){var e=n.instance().fromJD(t),r=e.year(),i=e.dayOfYear(),a=r+56;this._createMissingCalendarData(a);for(var o=9,s=this.NEPALI_CALENDAR_DATA[a][0],l=this.NEPALI_CALENDAR_DATA[a][o]-s+1;i>l;)++o>12&&(o=1,a++),l+=this.NEPALI_CALENDAR_DATA[a][o];var c=this.NEPALI_CALENDAR_DATA[a][o]-(l-i);return this.newDate(a,o,c)},_createMissingCalendarData:function(t){var e=this.daysPerMonth.slice(0);e.unshift(17);for(var r=t-1;r0?474:473))%2820+474+38)%2816<682},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-(n.dayOfWeek()+1)%7,"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=i.year(),e=i.month(),r=i.day();var a=t-(t>=0?474:473),s=474+o(a,2820);return r+(e<=7?31*(e-1):30*(e-1)+6)+Math.floor((682*s-110)/2816)+365*(s-1)+1029983*Math.floor(a/2820)+this.jdEpoch-1},fromJD:function(t){var e=(t=Math.floor(t)+.5)-this.toJD(475,1,1),r=Math.floor(e/1029983),n=o(e,1029983),i=2820;if(1029982!==n){var a=Math.floor(n/366),s=o(n,366);i=Math.floor((2134*a+2816*s+2815)/1028522)+a+1}var l=i+2820*r+474;l=l<=0?l-1:l;var c=t-this.toJD(l,1,1)+1,u=c<=186?Math.ceil(c/31):Math.ceil((c-6)/30),f=t-this.toJD(l,u,1)+1;return this.newDate(l,u,f)}}),n.calendars.persian=a,n.calendars.jalali=a},{"../main":621,"object-assign":499}],618:[function(t,e,r){var n=t("../main"),i=t("object-assign"),a=n.instance();function o(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}o.prototype=new n.baseCalendar,i(o.prototype,{name:"Taiwan",jdEpoch:2419402.5,yearsOffset:1911,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Taiwan",epochs:["BROC","ROC"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:1,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);t=this._t2gYear(e.year());return a.leapYear(t)},weekOfYear:function(t,e,r){var i=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);t=this._t2gYear(i.year());return a.weekOfYear(t,i.month(),i.day())},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=this._t2gYear(i.year());return a.toJD(t,i.month(),i.day())},fromJD:function(t){var e=a.fromJD(t),r=this._g2tYear(e.year());return this.newDate(r,e.month(),e.day())},_t2gYear:function(t){return t+this.yearsOffset+(t>=-this.yearsOffset&&t<=-1?1:0)},_g2tYear:function(t){return t-this.yearsOffset-(t>=1&&t<=this.yearsOffset?1:0)}}),n.calendars.taiwan=o},{"../main":621,"object-assign":499}],619:[function(t,e,r){var n=t("../main"),i=t("object-assign"),a=n.instance();function o(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}o.prototype=new n.baseCalendar,i(o.prototype,{name:"Thai",jdEpoch:1523098.5,yearsOffset:543,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Thai",epochs:["BBE","BE"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);t=this._t2gYear(e.year());return a.leapYear(t)},weekOfYear:function(t,e,r){var i=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);t=this._t2gYear(i.year());return a.weekOfYear(t,i.month(),i.day())},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=this._t2gYear(i.year());return a.toJD(t,i.month(),i.day())},fromJD:function(t){var e=a.fromJD(t),r=this._g2tYear(e.year());return this.newDate(r,e.month(),e.day())},_t2gYear:function(t){return t-this.yearsOffset-(t>=1&&t<=this.yearsOffset?1:0)},_g2tYear:function(t){return t+this.yearsOffset+(t>=-this.yearsOffset&&t<=-1?1:0)}}),n.calendars.thai=o},{"../main":621,"object-assign":499}],620:[function(t,e,r){var n=t("../main"),i=t("object-assign");function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"UmmAlQura",hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Umm al-Qura",epochs:["BH","AH"],monthNames:["Al-Muharram","Safar","Rabi' al-awwal","Rabi' Al-Thani","Jumada Al-Awwal","Jumada Al-Thani","Rajab","Sha'aban","Ramadan","Shawwal","Dhu al-Qi'dah","Dhu al-Hijjah"],monthNamesShort:["Muh","Saf","Rab1","Rab2","Jum1","Jum2","Raj","Sha'","Ram","Shaw","DhuQ","DhuH"],dayNames:["Yawm al-Ahad","Yawm al-Ithnain","Yawm al-Thal\u0101th\u0101\u2019","Yawm al-Arba\u2018\u0101\u2019","Yawm al-Kham\u012bs","Yawm al-Jum\u2018a","Yawm al-Sabt"],dayNamesMin:["Ah","Ith","Th","Ar","Kh","Ju","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:6,isRTL:!0}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return 355===this.daysInYear(e.year())},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){for(var e=0,r=1;r<=12;r++)e+=this.daysInMonth(t,r);return e},daysInMonth:function(t,e){for(var r=this._validate(t,e,this.minDay,n.local.invalidMonth).toJD()-24e5+.5,i=0,a=0;ar)return o[i]-o[i-1];i++}return 30},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate),a=12*(i.year()-1)+i.month()-15292;return i.day()+o[a-1]-1+24e5-.5},fromJD:function(t){for(var e=t-24e5+.5,r=0,n=0;ne);n++)r++;var i=r+15292,a=Math.floor((i-1)/12),s=a+1,l=i-12*a,c=e-o[r-1]+1;return this.newDate(s,l,c)},isValid:function(t,e,r){var i=n.baseCalendar.prototype.isValid.apply(this,arguments);return i&&(i=(t=null!=t.year?t.year:t)>=1276&&t<=1500),i},_validate:function(t,e,r,i){var a=n.baseCalendar.prototype._validate.apply(this,arguments);if(a.year<1276||a.year>1500)throw i.replace(/\{0\}/,this.local.name);return a}}),n.calendars.ummalqura=a;var o=[20,50,79,109,138,168,197,227,256,286,315,345,374,404,433,463,492,522,551,581,611,641,670,700,729,759,788,818,847,877,906,936,965,995,1024,1054,1083,1113,1142,1172,1201,1231,1260,1290,1320,1350,1379,1409,1438,1468,1497,1527,1556,1586,1615,1645,1674,1704,1733,1763,1792,1822,1851,1881,1910,1940,1969,1999,2028,2058,2087,2117,2146,2176,2205,2235,2264,2294,2323,2353,2383,2413,2442,2472,2501,2531,2560,2590,2619,2649,2678,2708,2737,2767,2796,2826,2855,2885,2914,2944,2973,3003,3032,3062,3091,3121,3150,3180,3209,3239,3268,3298,3327,3357,3386,3416,3446,3476,3505,3535,3564,3594,3623,3653,3682,3712,3741,3771,3800,3830,3859,3889,3918,3948,3977,4007,4036,4066,4095,4125,4155,4185,4214,4244,4273,4303,4332,4362,4391,4421,4450,4480,4509,4539,4568,4598,4627,4657,4686,4716,4745,4775,4804,4834,4863,4893,4922,4952,4981,5011,5040,5070,5099,5129,5158,5188,5218,5248,5277,5307,5336,5366,5395,5425,5454,5484,5513,5543,5572,5602,5631,5661,5690,5720,5749,5779,5808,5838,5867,5897,5926,5956,5985,6015,6044,6074,6103,6133,6162,6192,6221,6251,6281,6311,6340,6370,6399,6429,6458,6488,6517,6547,6576,6606,6635,6665,6694,6724,6753,6783,6812,6842,6871,6901,6930,6960,6989,7019,7048,7078,7107,7137,7166,7196,7225,7255,7284,7314,7344,7374,7403,7433,7462,7492,7521,7551,7580,7610,7639,7669,7698,7728,7757,7787,7816,7846,7875,7905,7934,7964,7993,8023,8053,8083,8112,8142,8171,8201,8230,8260,8289,8319,8348,8378,8407,8437,8466,8496,8525,8555,8584,8614,8643,8673,8702,8732,8761,8791,8821,8850,8880,8909,8938,8968,8997,9027,9056,9086,9115,9145,9175,9205,9234,9264,9293,9322,9352,9381,9410,9440,9470,9499,9529,9559,9589,9618,9648,9677,9706,9736,9765,9794,9824,9853,9883,9913,9943,9972,10002,10032,10061,10090,10120,10149,10178,10208,10237,10267,10297,10326,10356,10386,10415,10445,10474,10504,10533,10562,10592,10621,10651,10680,10710,10740,10770,10799,10829,10858,10888,10917,10947,10976,11005,11035,11064,11094,11124,11153,11183,11213,11242,11272,11301,11331,11360,11389,11419,11448,11478,11507,11537,11567,11596,11626,11655,11685,11715,11744,11774,11803,11832,11862,11891,11921,11950,11980,12010,12039,12069,12099,12128,12158,12187,12216,12246,12275,12304,12334,12364,12393,12423,12453,12483,12512,12542,12571,12600,12630,12659,12688,12718,12747,12777,12807,12837,12866,12896,12926,12955,12984,13014,13043,13072,13102,13131,13161,13191,13220,13250,13280,13310,13339,13368,13398,13427,13456,13486,13515,13545,13574,13604,13634,13664,13693,13723,13752,13782,13811,13840,13870,13899,13929,13958,13988,14018,14047,14077,14107,14136,14166,14195,14224,14254,14283,14313,14342,14372,14401,14431,14461,14490,14520,14550,14579,14609,14638,14667,14697,14726,14756,14785,14815,14844,14874,14904,14933,14963,14993,15021,15051,15081,15110,15140,15169,15199,15228,15258,15287,15317,15347,15377,15406,15436,15465,15494,15524,15553,15582,15612,15641,15671,15701,15731,15760,15790,15820,15849,15878,15908,15937,15966,15996,16025,16055,16085,16114,16144,16174,16204,16233,16262,16292,16321,16350,16380,16409,16439,16468,16498,16528,16558,16587,16617,16646,16676,16705,16734,16764,16793,16823,16852,16882,16912,16941,16971,17001,17030,17060,17089,17118,17148,17177,17207,17236,17266,17295,17325,17355,17384,17414,17444,17473,17502,17532,17561,17591,17620,17650,17679,17709,17738,17768,17798,17827,17857,17886,17916,17945,17975,18004,18034,18063,18093,18122,18152,18181,18211,18241,18270,18300,18330,18359,18388,18418,18447,18476,18506,18535,18565,18595,18625,18654,18684,18714,18743,18772,18802,18831,18860,18890,18919,18949,18979,19008,19038,19068,19098,19127,19156,19186,19215,19244,19274,19303,19333,19362,19392,19422,19452,19481,19511,19540,19570,19599,19628,19658,19687,19717,19746,19776,19806,19836,19865,19895,19924,19954,19983,20012,20042,20071,20101,20130,20160,20190,20219,20249,20279,20308,20338,20367,20396,20426,20455,20485,20514,20544,20573,20603,20633,20662,20692,20721,20751,20780,20810,20839,20869,20898,20928,20957,20987,21016,21046,21076,21105,21135,21164,21194,21223,21253,21282,21312,21341,21371,21400,21430,21459,21489,21519,21548,21578,21607,21637,21666,21696,21725,21754,21784,21813,21843,21873,21902,21932,21962,21991,22021,22050,22080,22109,22138,22168,22197,22227,22256,22286,22316,22346,22375,22405,22434,22464,22493,22522,22552,22581,22611,22640,22670,22700,22730,22759,22789,22818,22848,22877,22906,22936,22965,22994,23024,23054,23083,23113,23143,23173,23202,23232,23261,23290,23320,23349,23379,23408,23438,23467,23497,23527,23556,23586,23616,23645,23674,23704,23733,23763,23792,23822,23851,23881,23910,23940,23970,23999,24029,24058,24088,24117,24147,24176,24206,24235,24265,24294,24324,24353,24383,24413,24442,24472,24501,24531,24560,24590,24619,24648,24678,24707,24737,24767,24796,24826,24856,24885,24915,24944,24974,25003,25032,25062,25091,25121,25150,25180,25210,25240,25269,25299,25328,25358,25387,25416,25446,25475,25505,25534,25564,25594,25624,25653,25683,25712,25742,25771,25800,25830,25859,25888,25918,25948,25977,26007,26037,26067,26096,26126,26155,26184,26214,26243,26272,26302,26332,26361,26391,26421,26451,26480,26510,26539,26568,26598,26627,26656,26686,26715,26745,26775,26805,26834,26864,26893,26923,26952,26982,27011,27041,27070,27099,27129,27159,27188,27218,27248,27277,27307,27336,27366,27395,27425,27454,27484,27513,27542,27572,27602,27631,27661,27691,27720,27750,27779,27809,27838,27868,27897,27926,27956,27985,28015,28045,28074,28104,28134,28163,28193,28222,28252,28281,28310,28340,28369,28399,28428,28458,28488,28517,28547,28577,28607,28636,28665,28695,28724,28754,28783,28813,28843,28872,28901,28931,28960,28990,29019,29049,29078,29108,29137,29167,29196,29226,29255,29285,29315,29345,29375,29404,29434,29463,29492,29522,29551,29580,29610,29640,29669,29699,29729,29759,29788,29818,29847,29876,29906,29935,29964,29994,30023,30053,30082,30112,30141,30171,30200,30230,30259,30289,30318,30348,30378,30408,30437,30467,30496,30526,30555,30585,30614,30644,30673,30703,30732,30762,30791,30821,30850,30880,30909,30939,30968,30998,31027,31057,31086,31116,31145,31175,31204,31234,31263,31293,31322,31352,31381,31411,31441,31471,31500,31530,31559,31589,31618,31648,31676,31706,31736,31766,31795,31825,31854,31884,31913,31943,31972,32002,32031,32061,32090,32120,32150,32180,32209,32239,32268,32298,32327,32357,32386,32416,32445,32475,32504,32534,32563,32593,32622,32652,32681,32711,32740,32770,32799,32829,32858,32888,32917,32947,32976,33006,33035,33065,33094,33124,33153,33183,33213,33243,33272,33302,33331,33361,33390,33420,33450,33479,33509,33539,33568,33598,33627,33657,33686,33716,33745,33775,33804,33834,33863,33893,33922,33952,33981,34011,34040,34069,34099,34128,34158,34187,34217,34247,34277,34306,34336,34365,34395,34424,34454,34483,34512,34542,34571,34601,34631,34660,34690,34719,34749,34778,34808,34837,34867,34896,34926,34955,34985,35015,35044,35074,35103,35133,35162,35192,35222,35251,35280,35310,35340,35370,35399,35429,35458,35488,35517,35547,35576,35605,35635,35665,35694,35723,35753,35782,35811,35841,35871,35901,35930,35960,35989,36019,36048,36078,36107,36136,36166,36195,36225,36254,36284,36314,36343,36373,36403,36433,36462,36492,36521,36551,36580,36610,36639,36669,36698,36728,36757,36786,36816,36845,36875,36904,36934,36963,36993,37022,37052,37081,37111,37141,37170,37200,37229,37259,37288,37318,37347,37377,37406,37436,37465,37495,37524,37554,37584,37613,37643,37672,37701,37731,37760,37790,37819,37849,37878,37908,37938,37967,37997,38027,38056,38085,38115,38144,38174,38203,38233,38262,38292,38322,38351,38381,38410,38440,38469,38499,38528,38558,38587,38617,38646,38676,38705,38735,38764,38794,38823,38853,38882,38912,38941,38971,39001,39030,39059,39089,39118,39148,39178,39208,39237,39267,39297,39326,39355,39385,39414,39444,39473,39503,39532,39562,39592,39621,39650,39680,39709,39739,39768,39798,39827,39857,39886,39916,39946,39975,40005,40035,40064,40094,40123,40153,40182,40212,40241,40271,40300,40330,40359,40389,40418,40448,40477,40507,40536,40566,40595,40625,40655,40685,40714,40744,40773,40803,40832,40862,40892,40921,40951,40980,41009,41039,41068,41098,41127,41157,41186,41216,41245,41275,41304,41334,41364,41393,41422,41452,41481,41511,41540,41570,41599,41629,41658,41688,41718,41748,41777,41807,41836,41865,41894,41924,41953,41983,42012,42042,42072,42102,42131,42161,42190,42220,42249,42279,42308,42337,42367,42397,42426,42456,42485,42515,42545,42574,42604,42633,42662,42692,42721,42751,42780,42810,42839,42869,42899,42929,42958,42988,43017,43046,43076,43105,43135,43164,43194,43223,43253,43283,43312,43342,43371,43401,43430,43460,43489,43519,43548,43578,43607,43637,43666,43696,43726,43755,43785,43814,43844,43873,43903,43932,43962,43991,44021,44050,44080,44109,44139,44169,44198,44228,44258,44287,44317,44346,44375,44405,44434,44464,44493,44523,44553,44582,44612,44641,44671,44700,44730,44759,44788,44818,44847,44877,44906,44936,44966,44996,45025,45055,45084,45114,45143,45172,45202,45231,45261,45290,45320,45350,45380,45409,45439,45468,45498,45527,45556,45586,45615,45644,45674,45704,45733,45763,45793,45823,45852,45882,45911,45940,45970,45999,46028,46058,46088,46117,46147,46177,46206,46236,46265,46295,46324,46354,46383,46413,46442,46472,46501,46531,46560,46590,46620,46649,46679,46708,46738,46767,46797,46826,46856,46885,46915,46944,46974,47003,47033,47063,47092,47122,47151,47181,47210,47240,47269,47298,47328,47357,47387,47417,47446,47476,47506,47535,47565,47594,47624,47653,47682,47712,47741,47771,47800,47830,47860,47890,47919,47949,47978,48008,48037,48066,48096,48125,48155,48184,48214,48244,48273,48303,48333,48362,48392,48421,48450,48480,48509,48538,48568,48598,48627,48657,48687,48717,48746,48776,48805,48834,48864,48893,48922,48952,48982,49011,49041,49071,49100,49130,49160,49189,49218,49248,49277,49306,49336,49365,49395,49425,49455,49484,49514,49543,49573,49602,49632,49661,49690,49720,49749,49779,49809,49838,49868,49898,49927,49957,49986,50016,50045,50075,50104,50133,50163,50192,50222,50252,50281,50311,50340,50370,50400,50429,50459,50488,50518,50547,50576,50606,50635,50665,50694,50724,50754,50784,50813,50843,50872,50902,50931,50960,50990,51019,51049,51078,51108,51138,51167,51197,51227,51256,51286,51315,51345,51374,51403,51433,51462,51492,51522,51552,51582,51611,51641,51670,51699,51729,51758,51787,51816,51846,51876,51906,51936,51965,51995,52025,52054,52083,52113,52142,52171,52200,52230,52260,52290,52319,52349,52379,52408,52438,52467,52497,52526,52555,52585,52614,52644,52673,52703,52733,52762,52792,52822,52851,52881,52910,52939,52969,52998,53028,53057,53087,53116,53146,53176,53205,53235,53264,53294,53324,53353,53383,53412,53441,53471,53500,53530,53559,53589,53619,53648,53678,53708,53737,53767,53796,53825,53855,53884,53913,53943,53973,54003,54032,54062,54092,54121,54151,54180,54209,54239,54268,54297,54327,54357,54387,54416,54446,54476,54505,54535,54564,54593,54623,54652,54681,54711,54741,54770,54800,54830,54859,54889,54919,54948,54977,55007,55036,55066,55095,55125,55154,55184,55213,55243,55273,55302,55332,55361,55391,55420,55450,55479,55508,55538,55567,55597,55627,55657,55686,55716,55745,55775,55804,55834,55863,55892,55922,55951,55981,56011,56040,56070,56100,56129,56159,56188,56218,56247,56276,56306,56335,56365,56394,56424,56454,56483,56513,56543,56572,56601,56631,56660,56690,56719,56749,56778,56808,56837,56867,56897,56926,56956,56985,57015,57044,57074,57103,57133,57162,57192,57221,57251,57280,57310,57340,57369,57399,57429,57458,57487,57517,57546,57576,57605,57634,57664,57694,57723,57753,57783,57813,57842,57871,57901,57930,57959,57989,58018,58048,58077,58107,58137,58167,58196,58226,58255,58285,58314,58343,58373,58402,58432,58461,58491,58521,58551,58580,58610,58639,58669,58698,58727,58757,58786,58816,58845,58875,58905,58934,58964,58994,59023,59053,59082,59111,59141,59170,59200,59229,59259,59288,59318,59348,59377,59407,59436,59466,59495,59525,59554,59584,59613,59643,59672,59702,59731,59761,59791,59820,59850,59879,59909,59939,59968,59997,60027,60056,60086,60115,60145,60174,60204,60234,60264,60293,60323,60352,60381,60411,60440,60469,60499,60528,60558,60588,60618,60648,60677,60707,60736,60765,60795,60824,60853,60883,60912,60942,60972,61002,61031,61061,61090,61120,61149,61179,61208,61237,61267,61296,61326,61356,61385,61415,61445,61474,61504,61533,61563,61592,61621,61651,61680,61710,61739,61769,61799,61828,61858,61888,61917,61947,61976,62006,62035,62064,62094,62123,62153,62182,62212,62242,62271,62301,62331,62360,62390,62419,62448,62478,62507,62537,62566,62596,62625,62655,62685,62715,62744,62774,62803,62832,62862,62891,62921,62950,62980,63009,63039,63069,63099,63128,63157,63187,63216,63246,63275,63305,63334,63363,63393,63423,63453,63482,63512,63541,63571,63600,63630,63659,63689,63718,63747,63777,63807,63836,63866,63895,63925,63955,63984,64014,64043,64073,64102,64131,64161,64190,64220,64249,64279,64309,64339,64368,64398,64427,64457,64486,64515,64545,64574,64603,64633,64663,64692,64722,64752,64782,64811,64841,64870,64899,64929,64958,64987,65017,65047,65076,65106,65136,65166,65195,65225,65254,65283,65313,65342,65371,65401,65431,65460,65490,65520,65549,65579,65608,65638,65667,65697,65726,65755,65785,65815,65844,65874,65903,65933,65963,65992,66022,66051,66081,66110,66140,66169,66199,66228,66258,66287,66317,66346,66376,66405,66435,66465,66494,66524,66553,66583,66612,66641,66671,66700,66730,66760,66789,66819,66849,66878,66908,66937,66967,66996,67025,67055,67084,67114,67143,67173,67203,67233,67262,67292,67321,67351,67380,67409,67439,67468,67497,67527,67557,67587,67617,67646,67676,67705,67735,67764,67793,67823,67852,67882,67911,67941,67971,68e3,68030,68060,68089,68119,68148,68177,68207,68236,68266,68295,68325,68354,68384,68414,68443,68473,68502,68532,68561,68591,68620,68650,68679,68708,68738,68768,68797,68827,68857,68886,68916,68946,68975,69004,69034,69063,69092,69122,69152,69181,69211,69240,69270,69300,69330,69359,69388,69418,69447,69476,69506,69535,69565,69595,69624,69654,69684,69713,69743,69772,69802,69831,69861,69890,69919,69949,69978,70008,70038,70067,70097,70126,70156,70186,70215,70245,70274,70303,70333,70362,70392,70421,70451,70481,70510,70540,70570,70599,70629,70658,70687,70717,70746,70776,70805,70835,70864,70894,70924,70954,70983,71013,71042,71071,71101,71130,71159,71189,71218,71248,71278,71308,71337,71367,71397,71426,71455,71485,71514,71543,71573,71602,71632,71662,71691,71721,71751,71781,71810,71839,71869,71898,71927,71957,71986,72016,72046,72075,72105,72135,72164,72194,72223,72253,72282,72311,72341,72370,72400,72429,72459,72489,72518,72548,72577,72607,72637,72666,72695,72725,72754,72784,72813,72843,72872,72902,72931,72961,72991,73020,73050,73080,73109,73139,73168,73197,73227,73256,73286,73315,73345,73375,73404,73434,73464,73493,73523,73552,73581,73611,73640,73669,73699,73729,73758,73788,73818,73848,73877,73907,73936,73965,73995,74024,74053,74083,74113,74142,74172,74202,74231,74261,74291,74320,74349,74379,74408,74437,74467,74497,74526,74556,74586,74615,74645,74675,74704,74733,74763,74792,74822,74851,74881,74910,74940,74969,74999,75029,75058,75088,75117,75147,75176,75206,75235,75264,75294,75323,75353,75383,75412,75442,75472,75501,75531,75560,75590,75619,75648,75678,75707,75737,75766,75796,75826,75856,75885,75915,75944,75974,76003,76032,76062,76091,76121,76150,76180,76210,76239,76269,76299,76328,76358,76387,76416,76446,76475,76505,76534,76564,76593,76623,76653,76682,76712,76741,76771,76801,76830,76859,76889,76918,76948,76977,77007,77036,77066,77096,77125,77155,77185,77214,77243,77273,77302,77332,77361,77390,77420,77450,77479,77509,77539,77569,77598,77627,77657,77686,77715,77745,77774,77804,77833,77863,77893,77923,77952,77982,78011,78041,78070,78099,78129,78158,78188,78217,78247,78277,78307,78336,78366,78395,78425,78454,78483,78513,78542,78572,78601,78631,78661,78690,78720,78750,78779,78808,78838,78867,78897,78926,78956,78985,79015,79044,79074,79104,79133,79163,79192,79222,79251,79281,79310,79340,79369,79399,79428,79458,79487,79517,79546,79576,79606,79635,79665,79695,79724,79753,79783,79812,79841,79871,79900,79930,79960,79990]},{"../main":621,"object-assign":499}],621:[function(t,e,r){var n=t("object-assign");function i(){this.regionalOptions=[],this.regionalOptions[""]={invalidCalendar:"Calendar {0} not found",invalidDate:"Invalid {0} date",invalidMonth:"Invalid {0} month",invalidYear:"Invalid {0} year",differentCalendars:"Cannot mix {0} and {1} dates"},this.local=this.regionalOptions[""],this.calendars={},this._localCals={}}function a(t,e,r,n){if(this._calendar=t,this._year=e,this._month=r,this._day=n,0===this._calendar._validateLevel&&!this._calendar.isValid(this._year,this._month,this._day))throw(c.local.invalidDate||c.regionalOptions[""].invalidDate).replace(/\{0\}/,this._calendar.local.name)}function o(t,e){return"000000".substring(0,e-(t=""+t).length)+t}function s(){this.shortYearCutoff="+10"}function l(t){this.local=this.regionalOptions[t]||this.regionalOptions[""]}n(i.prototype,{instance:function(t,e){t=(t||"gregorian").toLowerCase(),e=e||"";var r=this._localCals[t+"-"+e];if(!r&&this.calendars[t]&&(r=new this.calendars[t](e),this._localCals[t+"-"+e]=r),!r)throw(this.local.invalidCalendar||this.regionalOptions[""].invalidCalendar).replace(/\{0\}/,t);return r},newDate:function(t,e,r,n,i){return(n=(null!=t&&t.year?t.calendar():"string"==typeof n?this.instance(n,i):n)||this.instance()).newDate(t,e,r)},substituteDigits:function(t){return function(e){return(e+"").replace(/[0-9]/g,(function(e){return t[e]}))}},substituteChineseDigits:function(t,e){return function(r){for(var n="",i=0;r>0;){var a=r%10;n=(0===a?"":t[a]+e[i])+n,i++,r=Math.floor(r/10)}return 0===n.indexOf(t[1]+e[1])&&(n=n.substr(1)),n||t[0]}}}),n(a.prototype,{newDate:function(t,e,r){return this._calendar.newDate(null==t?this:t,e,r)},year:function(t){return 0===arguments.length?this._year:this.set(t,"y")},month:function(t){return 0===arguments.length?this._month:this.set(t,"m")},day:function(t){return 0===arguments.length?this._day:this.set(t,"d")},date:function(t,e,r){if(!this._calendar.isValid(t,e,r))throw(c.local.invalidDate||c.regionalOptions[""].invalidDate).replace(/\{0\}/,this._calendar.local.name);return this._year=t,this._month=e,this._day=r,this},leapYear:function(){return this._calendar.leapYear(this)},epoch:function(){return this._calendar.epoch(this)},formatYear:function(){return this._calendar.formatYear(this)},monthOfYear:function(){return this._calendar.monthOfYear(this)},weekOfYear:function(){return this._calendar.weekOfYear(this)},daysInYear:function(){return this._calendar.daysInYear(this)},dayOfYear:function(){return this._calendar.dayOfYear(this)},daysInMonth:function(){return this._calendar.daysInMonth(this)},dayOfWeek:function(){return this._calendar.dayOfWeek(this)},weekDay:function(){return this._calendar.weekDay(this)},extraInfo:function(){return this._calendar.extraInfo(this)},add:function(t,e){return this._calendar.add(this,t,e)},set:function(t,e){return this._calendar.set(this,t,e)},compareTo:function(t){if(this._calendar.name!==t._calendar.name)throw(c.local.differentCalendars||c.regionalOptions[""].differentCalendars).replace(/\{0\}/,this._calendar.local.name).replace(/\{1\}/,t._calendar.local.name);var e=this._year!==t._year?this._year-t._year:this._month!==t._month?this.monthOfYear()-t.monthOfYear():this._day-t._day;return 0===e?0:e<0?-1:1},calendar:function(){return this._calendar},toJD:function(){return this._calendar.toJD(this)},fromJD:function(t){return this._calendar.fromJD(t)},toJSDate:function(){return this._calendar.toJSDate(this)},fromJSDate:function(t){return this._calendar.fromJSDate(t)},toString:function(){return(this.year()<0?"-":"")+o(Math.abs(this.year()),4)+"-"+o(this.month(),2)+"-"+o(this.day(),2)}}),n(s.prototype,{_validateLevel:0,newDate:function(t,e,r){return null==t?this.today():(t.year&&(this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[""].invalidDate),r=t.day(),e=t.month(),t=t.year()),new a(this,t,e,r))},today:function(){return this.fromJSDate(new Date)},epoch:function(t){return this._validate(t,this.minMonth,this.minDay,c.local.invalidYear||c.regionalOptions[""].invalidYear).year()<0?this.local.epochs[0]:this.local.epochs[1]},formatYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,c.local.invalidYear||c.regionalOptions[""].invalidYear);return(e.year()<0?"-":"")+o(Math.abs(e.year()),4)},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,c.local.invalidYear||c.regionalOptions[""].invalidYear),12},monthOfYear:function(t,e){var r=this._validate(t,e,this.minDay,c.local.invalidMonth||c.regionalOptions[""].invalidMonth);return(r.month()+this.monthsInYear(r)-this.firstMonth)%this.monthsInYear(r)+this.minMonth},fromMonthOfYear:function(t,e){var r=(e+this.firstMonth-2*this.minMonth)%this.monthsInYear(t)+this.minMonth;return this._validate(t,r,this.minDay,c.local.invalidMonth||c.regionalOptions[""].invalidMonth),r},daysInYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,c.local.invalidYear||c.regionalOptions[""].invalidYear);return this.leapYear(e)?366:365},dayOfYear:function(t,e,r){var n=this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[""].invalidDate);return n.toJD()-this.newDate(n.year(),this.fromMonthOfYear(n.year(),this.minMonth),this.minDay).toJD()+1},daysInWeek:function(){return 7},dayOfWeek:function(t,e,r){var n=this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[""].invalidDate);return(Math.floor(this.toJD(n))+2)%this.daysInWeek()},extraInfo:function(t,e,r){return this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[""].invalidDate),{}},add:function(t,e,r){return this._validate(t,this.minMonth,this.minDay,c.local.invalidDate||c.regionalOptions[""].invalidDate),this._correctAdd(t,this._add(t,e,r),e,r)},_add:function(t,e,r){if(this._validateLevel++,"d"===r||"w"===r){var n=t.toJD()+e*("w"===r?this.daysInWeek():1),i=t.calendar().fromJD(n);return this._validateLevel--,[i.year(),i.month(),i.day()]}try{var a=t.year()+("y"===r?e:0),o=t.monthOfYear()+("m"===r?e:0);i=t.day();"y"===r?(t.month()!==this.fromMonthOfYear(a,o)&&(o=this.newDate(a,t.month(),this.minDay).monthOfYear()),o=Math.min(o,this.monthsInYear(a)),i=Math.min(i,this.daysInMonth(a,this.fromMonthOfYear(a,o)))):"m"===r&&(!function(t){for(;oe-1+t.minMonth;)a++,o-=e,e=t.monthsInYear(a)}(this),i=Math.min(i,this.daysInMonth(a,this.fromMonthOfYear(a,o))));var s=[a,this.fromMonthOfYear(a,o),i];return this._validateLevel--,s}catch(t){throw this._validateLevel--,t}},_correctAdd:function(t,e,r,n){if(!(this.hasYearZero||"y"!==n&&"m"!==n||0!==e[0]&&t.year()>0==e[0]>0)){var i={y:[1,1,"y"],m:[1,this.monthsInYear(-1),"m"],w:[this.daysInWeek(),this.daysInYear(-1),"d"],d:[1,this.daysInYear(-1),"d"]}[n],a=r<0?-1:1;e=this._add(t,r*i[0]+a*i[1],i[2])}return t.date(e[0],e[1],e[2])},set:function(t,e,r){this._validate(t,this.minMonth,this.minDay,c.local.invalidDate||c.regionalOptions[""].invalidDate);var n="y"===r?e:t.year(),i="m"===r?e:t.month(),a="d"===r?e:t.day();return"y"!==r&&"m"!==r||(a=Math.min(a,this.daysInMonth(n,i))),t.date(n,i,a)},isValid:function(t,e,r){this._validateLevel++;var n=this.hasYearZero||0!==t;if(n){var i=this.newDate(t,e,this.minDay);n=e>=this.minMonth&&e-this.minMonth=this.minDay&&r-this.minDay13.5?13:1),c=i-(l>2.5?4716:4715);return c<=0&&c--,this.newDate(c,l,s)},toJSDate:function(t,e,r){var n=this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[""].invalidDate),i=new Date(n.year(),n.month()-1,n.day());return i.setHours(0),i.setMinutes(0),i.setSeconds(0),i.setMilliseconds(0),i.setHours(i.getHours()>12?i.getHours()+2:0),i},fromJSDate:function(t){return this.newDate(t.getFullYear(),t.getMonth()+1,t.getDate())}});var c=e.exports=new i;c.cdate=a,c.baseCalendar=s,c.calendars.gregorian=l},{"object-assign":499}],622:[function(t,e,r){var n=t("object-assign"),i=t("./main");n(i.regionalOptions[""],{invalidArguments:"Invalid arguments",invalidFormat:"Cannot format a date from another calendar",missingNumberAt:"Missing number at position {0}",unknownNameAt:"Unknown name at position {0}",unexpectedLiteralAt:"Unexpected literal at position {0}",unexpectedText:"Additional text found at end"}),i.local=i.regionalOptions[""],n(i.cdate.prototype,{formatDate:function(t,e){return"string"!=typeof t&&(e=t,t=""),this._calendar.formatDate(t||"",this,e)}}),n(i.baseCalendar.prototype,{UNIX_EPOCH:i.instance().newDate(1970,1,1).toJD(),SECS_PER_DAY:86400,TICKS_EPOCH:i.instance().jdEpoch,TICKS_PER_DAY:864e9,ATOM:"yyyy-mm-dd",COOKIE:"D, dd M yyyy",FULL:"DD, MM d, yyyy",ISO_8601:"yyyy-mm-dd",JULIAN:"J",RFC_822:"D, d M yy",RFC_850:"DD, dd-M-yy",RFC_1036:"D, d M yy",RFC_1123:"D, d M yyyy",RFC_2822:"D, d M yyyy",RSS:"D, d M yy",TICKS:"!",TIMESTAMP:"@",W3C:"yyyy-mm-dd",formatDate:function(t,e,r){if("string"!=typeof t&&(r=e,e=t,t=""),!e)return"";if(e.calendar()!==this)throw i.local.invalidFormat||i.regionalOptions[""].invalidFormat;t=t||this.local.dateFormat;for(var n,a,o,s,l=(r=r||{}).dayNamesShort||this.local.dayNamesShort,c=r.dayNames||this.local.dayNames,u=r.monthNumbers||this.local.monthNumbers,f=r.monthNamesShort||this.local.monthNamesShort,h=r.monthNames||this.local.monthNames,p=(r.calculateWeek||this.local.calculateWeek,function(e,r){for(var n=1;w+n1}),d=function(t,e,r,n){var i=""+e;if(p(t,n))for(;i.length1},x=function(t,r){var n=y(t,r),a=[2,3,n?4:2,n?4:2,10,11,20]["oyYJ@!".indexOf(t)+1],o=new RegExp("^-?\\d{1,"+a+"}"),s=e.substring(M).match(o);if(!s)throw(i.local.missingNumberAt||i.regionalOptions[""].missingNumberAt).replace(/\{0\}/,M);return M+=s[0].length,parseInt(s[0],10)},b=this,_=function(){if("function"==typeof l){y("m");var t=l.call(b,e.substring(M));return M+=t.length,t}return x("m")},w=function(t,r,n,a){for(var o=y(t,a)?n:r,s=0;s-1){p=1,d=g;for(var E=this.daysInMonth(h,p);d>E;E=this.daysInMonth(h,p))p++,d-=E}return f>-1?this.fromJD(f):this.newDate(h,p,d)},determineDate:function(t,e,r,n,i){r&&"object"!=typeof r&&(i=n,n=r,r=null),"string"!=typeof n&&(i=n,n="");var a=this;return e=e?e.newDate():null,t=null==t?e:"string"==typeof t?function(t){try{return a.parseDate(n,t,i)}catch(t){}for(var e=((t=t.toLowerCase()).match(/^c/)&&r?r.newDate():null)||a.today(),o=/([+-]?[0-9]+)\s*(d|w|m|y)?/g,s=o.exec(t);s;)e.add(parseInt(s[1],10),s[2]||"d"),s=o.exec(t);return e}(t):"number"==typeof t?isNaN(t)||t===1/0||t===-1/0?e:a.today().add(t,"d"):a.newDate(t)}})},{"./main":621,"object-assign":499}],623:[function(t,e,r){e.exports=t("cwise-compiler")({args:["array",{offset:[1],array:0},"scalar","scalar","index"],pre:{body:"{}",args:[],thisVars:[],localVars:[]},post:{body:"{}",args:[],thisVars:[],localVars:[]},body:{body:"{\n var _inline_1_da = _inline_1_arg0_ - _inline_1_arg3_\n var _inline_1_db = _inline_1_arg1_ - _inline_1_arg3_\n if((_inline_1_da >= 0) !== (_inline_1_db >= 0)) {\n _inline_1_arg2_.push(_inline_1_arg4_[0] + 0.5 + 0.5 * (_inline_1_da + _inline_1_db) / (_inline_1_da - _inline_1_db))\n }\n }",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:1},{name:"_inline_1_arg1_",lvalue:!1,rvalue:!0,count:1},{name:"_inline_1_arg2_",lvalue:!1,rvalue:!0,count:1},{name:"_inline_1_arg3_",lvalue:!1,rvalue:!0,count:2},{name:"_inline_1_arg4_",lvalue:!1,rvalue:!0,count:1}],thisVars:[],localVars:["_inline_1_da","_inline_1_db"]},funcName:"zeroCrossings"})},{"cwise-compiler":151}],624:[function(t,e,r){"use strict";e.exports=function(t,e){var r=[];return e=+e||0,n(t.hi(t.shape[0]-1),r,e),r};var n=t("./lib/zc-core")},{"./lib/zc-core":623}],625:[function(t,e,r){"use strict";e.exports=[{path:"",backoff:0},{path:"M-2.4,-3V3L0.6,0Z",backoff:.6},{path:"M-3.7,-2.5V2.5L1.3,0Z",backoff:1.3},{path:"M-4.45,-3L-1.65,-0.2V0.2L-4.45,3L1.55,0Z",backoff:1.55},{path:"M-2.2,-2.2L-0.2,-0.2V0.2L-2.2,2.2L-1.4,3L1.6,0L-1.4,-3Z",backoff:1.6},{path:"M-4.4,-2.1L-0.6,-0.2V0.2L-4.4,2.1L-4,3L2,0L-4,-3Z",backoff:2},{path:"M2,0A2,2 0 1,1 0,-2A2,2 0 0,1 2,0Z",backoff:0,noRotate:!0},{path:"M2,2V-2H-2V2Z",backoff:0,noRotate:!0}]},{}],626:[function(t,e,r){"use strict";var n=t("./arrow_paths"),i=t("../../plots/font_attributes"),a=t("../../plots/cartesian/constants"),o=t("../../plot_api/plot_template").templatedArray;t("../../constants/axis_placeable_objects");e.exports=o("annotation",{visible:{valType:"boolean",dflt:!0,editType:"calc+arraydraw"},text:{valType:"string",editType:"calc+arraydraw"},textangle:{valType:"angle",dflt:0,editType:"calc+arraydraw"},font:i({editType:"calc+arraydraw",colorEditType:"arraydraw"}),width:{valType:"number",min:1,dflt:null,editType:"calc+arraydraw"},height:{valType:"number",min:1,dflt:null,editType:"calc+arraydraw"},opacity:{valType:"number",min:0,max:1,dflt:1,editType:"arraydraw"},align:{valType:"enumerated",values:["left","center","right"],dflt:"center",editType:"arraydraw"},valign:{valType:"enumerated",values:["top","middle","bottom"],dflt:"middle",editType:"arraydraw"},bgcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"arraydraw"},bordercolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"arraydraw"},borderpad:{valType:"number",min:0,dflt:1,editType:"calc+arraydraw"},borderwidth:{valType:"number",min:0,dflt:1,editType:"calc+arraydraw"},showarrow:{valType:"boolean",dflt:!0,editType:"calc+arraydraw"},arrowcolor:{valType:"color",editType:"arraydraw"},arrowhead:{valType:"integer",min:0,max:n.length,dflt:1,editType:"arraydraw"},startarrowhead:{valType:"integer",min:0,max:n.length,dflt:1,editType:"arraydraw"},arrowside:{valType:"flaglist",flags:["end","start"],extras:["none"],dflt:"end",editType:"arraydraw"},arrowsize:{valType:"number",min:.3,dflt:1,editType:"calc+arraydraw"},startarrowsize:{valType:"number",min:.3,dflt:1,editType:"calc+arraydraw"},arrowwidth:{valType:"number",min:.1,editType:"calc+arraydraw"},standoff:{valType:"number",min:0,dflt:0,editType:"calc+arraydraw"},startstandoff:{valType:"number",min:0,dflt:0,editType:"calc+arraydraw"},ax:{valType:"any",editType:"calc+arraydraw"},ay:{valType:"any",editType:"calc+arraydraw"},axref:{valType:"enumerated",dflt:"pixel",values:["pixel",a.idRegex.x.toString()],editType:"calc"},ayref:{valType:"enumerated",dflt:"pixel",values:["pixel",a.idRegex.y.toString()],editType:"calc"},xref:{valType:"enumerated",values:["paper",a.idRegex.x.toString()],editType:"calc"},x:{valType:"any",editType:"calc+arraydraw"},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"auto",editType:"calc+arraydraw"},xshift:{valType:"number",dflt:0,editType:"calc+arraydraw"},yref:{valType:"enumerated",values:["paper",a.idRegex.y.toString()],editType:"calc"},y:{valType:"any",editType:"calc+arraydraw"},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"auto",editType:"calc+arraydraw"},yshift:{valType:"number",dflt:0,editType:"calc+arraydraw"},clicktoshow:{valType:"enumerated",values:[!1,"onoff","onout"],dflt:!1,editType:"arraydraw"},xclick:{valType:"any",editType:"arraydraw"},yclick:{valType:"any",editType:"arraydraw"},hovertext:{valType:"string",editType:"arraydraw"},hoverlabel:{bgcolor:{valType:"color",editType:"arraydraw"},bordercolor:{valType:"color",editType:"arraydraw"},font:i({editType:"arraydraw"}),editType:"arraydraw"},captureevents:{valType:"boolean",editType:"arraydraw"},editType:"calc",_deprecated:{ref:{valType:"string",editType:"calc"}}})},{"../../constants/axis_placeable_objects":746,"../../plot_api/plot_template":817,"../../plots/cartesian/constants":834,"../../plots/font_attributes":856,"./arrow_paths":625}],627:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../plots/cartesian/axes"),a=t("./draw").draw;function o(t){var e=t._fullLayout;n.filterVisible(e.annotations).forEach((function(e){var r=i.getFromId(t,e.xref),n=i.getFromId(t,e.yref),a=i.getRefType(e.xref),o=i.getRefType(e.yref);e._extremes={},"range"===a&&s(e,r),"range"===o&&s(e,n)}))}function s(t,e){var r,n=e._id,a=n.charAt(0),o=t[a],s=t["a"+a],l=t[a+"ref"],c=t["a"+a+"ref"],u=t["_"+a+"padplus"],f=t["_"+a+"padminus"],h={x:1,y:-1}[a]*t[a+"shift"],p=3*t.arrowsize*t.arrowwidth||0,d=p+h,g=p-h,m=3*t.startarrowsize*t.arrowwidth||0,v=m+h,y=m-h;if(c===l){var x=i.findExtremes(e,[e.r2c(o)],{ppadplus:d,ppadminus:g}),b=i.findExtremes(e,[e.r2c(s)],{ppadplus:Math.max(u,v),ppadminus:Math.max(f,y)});r={min:[x.min[0],b.min[0]],max:[x.max[0],b.max[0]]}}else v=s?v+s:v,y=s?y-s:y,r=i.findExtremes(e,[e.r2c(o)],{ppadplus:Math.max(u,d,v),ppadminus:Math.max(f,g,y)});t._extremes[n]=r}e.exports=function(t){var e=t._fullLayout;if(n.filterVisible(e.annotations).length&&t._fullData.length)return n.syncOrAsync([a,o],t)}},{"../../lib":778,"../../plots/cartesian/axes":828,"./draw":632}],628:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../registry"),a=t("../../plot_api/plot_template").arrayEditor;function o(t,e){var r,n,i,a,o,l,c,u=t._fullLayout.annotations,f=[],h=[],p=[],d=(e||[]).length;for(r=0;r0||r.explicitOff.length>0},onClick:function(t,e){var r,s,l=o(t,e),c=l.on,u=l.off.concat(l.explicitOff),f={},h=t._fullLayout.annotations;if(!c.length&&!u.length)return;for(r=0;r2/3?"right":"center"),{center:0,middle:0,left:.5,bottom:-.5,right:-.5,top:.5}[e]}for(var W=!1,X=["x","y"],Z=0;Z1)&&(nt===rt?((pt=it.r2fraction(e["a"+et]))<0||pt>1)&&(W=!0):W=!0),J=it._offset+it.r2p(e[et]),$=.5}else{var dt="domain"===ht;"x"===et?(Q=e[et],J=dt?it._offset+it._length*Q:J=T.l+T.w*Q):(Q=1-e[et],J=dt?it._offset+it._length*Q:J=T.t+T.h*Q),$=e.showarrow?.5:Q}if(e.showarrow){ft.head=J;var gt=e["a"+et];if(tt=ot*H(.5,e.xanchor)-st*H(.5,e.yanchor),nt===rt){var mt=l.getRefType(nt);"domain"===mt?("y"===et&&(gt=1-gt),ft.tail=it._offset+it._length*gt):"paper"===mt?"y"===et?(gt=1-gt,ft.tail=T.t+T.h*gt):ft.tail=T.l+T.w*gt:ft.tail=it._offset+it.r2p(gt),K=tt}else ft.tail=J+gt,K=tt+gt;ft.text=ft.tail+tt;var vt=w["x"===et?"width":"height"];if("paper"===rt&&(ft.head=o.constrain(ft.head,1,vt-1)),"pixel"===nt){var yt=-Math.max(ft.tail-3,ft.text),xt=Math.min(ft.tail+3,ft.text)-vt;yt>0?(ft.tail+=yt,ft.text+=yt):xt>0&&(ft.tail-=xt,ft.text-=xt)}ft.tail+=ut,ft.head+=ut}else K=tt=lt*H($,ct),ft.text=J+tt;ft.text+=ut,tt+=ut,K+=ut,e["_"+et+"padplus"]=lt/2+K,e["_"+et+"padminus"]=lt/2-K,e["_"+et+"size"]=lt,e["_"+et+"shift"]=tt}if(W)R.remove();else{var bt=0,_t=0;if("left"!==e.align&&(bt=(M-b)*("center"===e.align?.5:1)),"top"!==e.valign&&(_t=(D-_)*("middle"===e.valign?.5:1)),f)n.select("svg").attr({x:N+bt-1,y:N+_t}).call(u.setClipUrl,U?C:null,t);else{var wt=N+_t-g.top,Tt=N+bt-g.left;G.call(h.positionText,Tt,wt).call(u.setClipUrl,U?C:null,t)}V.select("rect").call(u.setRect,N,N,M,D),j.call(u.setRect,F/2,F/2,B-F,q-F),R.call(u.setTranslate,Math.round(L.x.text-B/2),Math.round(L.y.text-q/2)),z.attr({transform:"rotate("+I+","+L.x.text+","+L.y.text+")"});var kt,Mt=function(r,n){P.selectAll(".annotation-arrow-g").remove();var l=L.x.head,f=L.y.head,h=L.x.tail+r,p=L.y.tail+n,g=L.x.text+r,b=L.y.text+n,_=o.rotationXYMatrix(I,g,b),w=o.apply2DTransform(_),M=o.apply2DTransform2(_),C=+j.attr("width"),O=+j.attr("height"),D=g-.5*C,F=D+C,B=b-.5*O,N=B+O,U=[[D,B,D,N],[D,N,F,N],[F,N,F,B],[F,B,D,B]].map(M);if(!U.reduce((function(t,e){return t^!!o.segmentsIntersect(l,f,l+1e6,f+1e6,e[0],e[1],e[2],e[3])}),!1)){U.forEach((function(t){var e=o.segmentsIntersect(h,p,l,f,t[0],t[1],t[2],t[3]);e&&(h=e.x,p=e.y)}));var V=e.arrowwidth,q=e.arrowcolor,H=e.arrowside,G=P.append("g").style({opacity:c.opacity(q)}).classed("annotation-arrow-g",!0),Y=G.append("path").attr("d","M"+h+","+p+"L"+l+","+f).style("stroke-width",V+"px").call(c.stroke,c.rgb(q));if(m(Y,H,e),k.annotationPosition&&Y.node().parentNode&&!a){var W=l,X=f;if(e.standoff){var Z=Math.sqrt(Math.pow(l-h,2)+Math.pow(f-p,2));W+=e.standoff*(h-l)/Z,X+=e.standoff*(p-f)/Z}var J,K,Q=G.append("path").classed("annotation-arrow",!0).classed("anndrag",!0).classed("cursor-move",!0).attr({d:"M3,3H-3V-3H3ZM0,0L"+(h-W)+","+(p-X),transform:s(W,X)}).style("stroke-width",V+6+"px").call(c.stroke,"rgba(0,0,0,0)").call(c.fill,"rgba(0,0,0,0)");d.init({element:Q.node(),gd:t,prepFn:function(){var t=u.getTranslate(R);J=t.x,K=t.y,v&&v.autorange&&A(v._name+".autorange",!0),x&&x.autorange&&A(x._name+".autorange",!0)},moveFn:function(t,r){var n=w(J,K),i=n[0]+t,a=n[1]+r;R.call(u.setTranslate,i,a),S("x",y(v,t,"x",T,e)),S("y",y(x,r,"y",T,e)),e.axref===e.xref&&S("ax",y(v,t,"ax",T,e)),e.ayref===e.yref&&S("ay",y(x,r,"ay",T,e)),G.attr("transform",s(t,r)),z.attr({transform:"rotate("+I+","+i+","+a+")"})},doneFn:function(){i.call("_guiRelayout",t,E());var e=document.querySelector(".js-notes-box-panel");e&&e.redraw(e.selectedObj)}})}}};if(e.showarrow&&Mt(0,0),O)d.init({element:R.node(),gd:t,prepFn:function(){kt=z.attr("transform")},moveFn:function(t,r){var n="pointer";if(e.showarrow)e.axref===e.xref?S("ax",y(v,t,"ax",T,e)):S("ax",e.ax+t),e.ayref===e.yref?S("ay",y(x,r,"ay",T.w,e)):S("ay",e.ay+r),Mt(t,r);else{if(a)return;var i,o;if(v)i=y(v,t,"x",T,e);else{var l=e._xsize/T.w,c=e.x+(e._xshift-e.xshift)/T.w-l/2;i=d.align(c+t/T.w,l,0,1,e.xanchor)}if(x)o=y(x,r,"y",T,e);else{var u=e._ysize/T.h,f=e.y-(e._yshift+e.yshift)/T.h-u/2;o=d.align(f-r/T.h,u,0,1,e.yanchor)}S("x",i),S("y",o),v&&x||(n=d.getCursor(v?.5:i,x?.5:o,e.xanchor,e.yanchor))}z.attr({transform:s(t,r)+kt}),p(R,n)},clickFn:function(r,n){e.captureevents&&t.emit("plotly_clickannotation",Y(n))},doneFn:function(){p(R),i.call("_guiRelayout",t,E());var e=document.querySelector(".js-notes-box-panel");e&&e.redraw(e.selectedObj)}})}}}e.exports={draw:function(t){var e=t._fullLayout;e._infolayer.selectAll(".annotation").remove();for(var r=0;r=0,x=e.indexOf("end")>=0,b=d.backoff*m+r.standoff,_=g.backoff*v+r.startstandoff;if("line"===p.nodeName){o={x:+t.attr("x1"),y:+t.attr("y1")},u={x:+t.attr("x2"),y:+t.attr("y2")};var w=o.x-u.x,T=o.y-u.y;if(h=(f=Math.atan2(T,w))+Math.PI,b&&_&&b+_>Math.sqrt(w*w+T*T))return void O();if(b){if(b*b>w*w+T*T)return void O();var k=b*Math.cos(f),M=b*Math.sin(f);u.x+=k,u.y+=M,t.attr({x2:u.x,y2:u.y})}if(_){if(_*_>w*w+T*T)return void O();var A=_*Math.cos(f),S=_*Math.sin(f);o.x-=A,o.y-=S,t.attr({x1:o.x,y1:o.y})}}else if("path"===p.nodeName){var E=p.getTotalLength(),C="";if(E1){c=!0;break}}c?t.fullLayout._infolayer.select(".annotation-"+t.id+'[data-index="'+s+'"]').remove():(l._pdata=i(t.glplot.cameraParams,[e.xaxis.r2l(l.x)*r[0],e.yaxis.r2l(l.y)*r[1],e.zaxis.r2l(l.z)*r[2]]),n(t.graphDiv,l,s,t.id,l._xa,l._ya))}}},{"../../plots/gl3d/project":879,"../annotations/draw":632}],639:[function(t,e,r){"use strict";var n=t("../../registry"),i=t("../../lib");e.exports={moduleType:"component",name:"annotations3d",schema:{subplots:{scene:{annotations:t("./attributes")}}},layoutAttributes:t("./attributes"),handleDefaults:t("./defaults"),includeBasePlot:function(t,e){var r=n.subplotsRegistry.gl3d;if(!r)return;for(var a=r.attrRegex,o=Object.keys(t),s=0;s=0))return t;if(3===o)n[o]>1&&(n[o]=1);else if(n[o]>=1)return t}var s=Math.round(255*n[0])+", "+Math.round(255*n[1])+", "+Math.round(255*n[2]);return a?"rgba("+s+", "+n[3]+")":"rgb("+s+")"}a.tinyRGB=function(t){var e=t.toRgb();return"rgb("+Math.round(e.r)+", "+Math.round(e.g)+", "+Math.round(e.b)+")"},a.rgb=function(t){return a.tinyRGB(n(t))},a.opacity=function(t){return t?n(t).getAlpha():0},a.addOpacity=function(t,e){var r=n(t).toRgb();return"rgba("+Math.round(r.r)+", "+Math.round(r.g)+", "+Math.round(r.b)+", "+e+")"},a.combine=function(t,e){var r=n(t).toRgb();if(1===r.a)return n(t).toRgbString();var i=n(e||l).toRgb(),a=1===i.a?i:{r:255*(1-i.a)+i.r*i.a,g:255*(1-i.a)+i.g*i.a,b:255*(1-i.a)+i.b*i.a},o={r:a.r*(1-r.a)+r.r*r.a,g:a.g*(1-r.a)+r.g*r.a,b:a.b*(1-r.a)+r.b*r.a};return n(o).toRgbString()},a.contrast=function(t,e,r){var i=n(t);return 1!==i.getAlpha()&&(i=n(a.combine(t,l))),(i.isDark()?e?i.lighten(e):l:r?i.darken(r):s).toString()},a.stroke=function(t,e){var r=n(e);t.style({stroke:a.tinyRGB(r),"stroke-opacity":r.getAlpha()})},a.fill=function(t,e){var r=n(e);t.style({fill:a.tinyRGB(r),"fill-opacity":r.getAlpha()})},a.clean=function(t){if(t&&"object"==typeof t){var e,r,n,i,o=Object.keys(t);for(e=0;e0?n>=l:n<=l));i++)n>u&&n0?n>=l:n<=l));i++)n>r[0]&&n1){var J=Math.pow(10,Math.floor(Math.log(Z)/Math.LN10));W*=J*c.roundUp(Z/J,[2,5,10]),(Math.abs(L.start)/L.size+1e-6)%1<2e-6&&(Y.tick0=0)}Y.dtick=W}Y.domain=[q+j,q+F-j],Y.setScale(),t.attr("transform",u(Math.round(l.l),Math.round(l.t)));var K,Q=t.select("."+M.cbtitleunshift).attr("transform",u(-Math.round(l.l),-Math.round(l.t))),$=t.select("."+M.cbaxis),tt=0;function et(n,i){var a={propContainer:Y,propName:e._propPrefix+"title",traceIndex:e._traceIndex,_meta:e._meta,placeholder:o._dfltTitle.colorbar,containerGroup:t.select("."+M.cbtitle)},s="h"===n.charAt(0)?n.substr(1):"h"+n;t.selectAll("."+s+",."+s+"-math-group").remove(),g.draw(r,n,f(a,i||{}))}return c.syncOrAsync([a.previousPromises,function(){if(-1!==["top","bottom"].indexOf(A)){var t,r=l.l+(e.x+B)*l.w,n=Y.title.font.size;t="top"===A?(1-(q+F-j))*l.h+l.t+3+.75*n:(1-(q+j))*l.h+l.t-3-.25*n,et(Y._id+"title",{attributes:{x:r,y:t,"text-anchor":"start"}})}},function(){if(-1!==["top","bottom"].indexOf(A)){var a=t.select("."+M.cbtitle),o=a.select("text"),f=[-e.outlinewidth/2,e.outlinewidth/2],h=a.select(".h"+Y._id+"title-math-group").node(),d=15.6;if(o.node()&&(d=parseInt(o.node().style.fontSize,10)*w),h?(tt=p.bBox(h).height)>d&&(f[1]-=(tt-d)/2):o.node()&&!o.classed(M.jsPlaceholder)&&(tt=p.bBox(o.node()).height),tt){if(tt+=5,"top"===A)Y.domain[1]-=tt/l.h,f[1]*=-1;else{Y.domain[0]+=tt/l.h;var g=m.lineCount(o);f[1]+=(1-g)*d}a.attr("transform",u(f[0],f[1])),Y.setScale()}}t.selectAll("."+M.cbfills+",."+M.cblines).attr("transform",u(0,Math.round(l.h*(1-Y.domain[1])))),$.attr("transform",u(0,Math.round(-l.t)));var y=t.select("."+M.cbfills).selectAll("rect."+M.cbfill).attr("style","").data(P);y.enter().append("rect").classed(M.cbfill,!0).style("stroke","none"),y.exit().remove();var x=S.map(Y.c2p).map(Math.round).sort((function(t,e){return t-e}));y.each((function(t,a){var o=[0===a?S[0]:(P[a]+P[a-1])/2,a===P.length-1?S[1]:(P[a]+P[a+1])/2].map(Y.c2p).map(Math.round);o[1]=c.constrain(o[1]+(o[1]>o[0])?1:-1,x[0],x[1]);var s=n.select(this).attr({x:U,width:Math.max(O,2),y:n.min(o),height:Math.max(n.max(o)-n.min(o),2)});if(e._fillgradient)p.gradient(s,r,e._id,"vertical",e._fillgradient,"fill");else{var l=C(t).replace("e-","");s.attr("fill",i(l).toHexString())}}));var b=t.select("."+M.cblines).selectAll("path."+M.cbline).data(v.color&&v.width?z:[]);b.enter().append("path").classed(M.cbline,!0),b.exit().remove(),b.each((function(t){n.select(this).attr("d","M"+U+","+(Math.round(Y.c2p(t))+v.width/2%1)+"h"+O).call(p.lineGroupStyle,v.width,E(t),v.dash)})),$.selectAll("g."+Y._id+"tick,path").remove();var _=U+O+(e.outlinewidth||0)/2-("outside"===e.ticks?1:0),T=s.calcTicks(Y),k=s.getTickSigns(Y)[2];return s.drawTicks(r,Y,{vals:"inside"===Y.ticks?s.clipEnds(Y,T):T,layer:$,path:s.makeTickPath(Y,_,k),transFn:s.makeTransTickFn(Y)}),s.drawLabels(r,Y,{vals:T,layer:$,transFn:s.makeTransTickLabelFn(Y),labelFns:s.makeLabelFns(Y,_)})},function(){if(-1===["top","bottom"].indexOf(A)){var t=Y.title.font.size,e=Y._offset+Y._length/2,i=l.l+(Y.position||0)*l.w+("right"===Y.side?10+t*(Y.showticklabels?1:.5):-10-t*(Y.showticklabels?.5:0));et("h"+Y._id+"title",{avoid:{selection:n.select(r).selectAll("g."+Y._id+"tick"),side:A,offsetLeft:l.l,offsetTop:0,maxShift:o.width},attributes:{x:i,y:e,"text-anchor":"middle"},transform:{rotate:"-90",offset:0}})}},a.previousPromises,function(){var n=O+e.outlinewidth/2;if(-1===Y.ticklabelposition.indexOf("inside")&&(n+=p.bBox($.node()).width),(K=Q.select("text")).node()&&!K.classed(M.jsPlaceholder)){var i,o=Q.select(".h"+Y._id+"title-math-group").node();i=o&&-1!==["top","bottom"].indexOf(A)?p.bBox(o).width:p.bBox(Q.node()).right-U-l.l,n=Math.max(n,i)}var s=2*e.xpad+n+e.borderwidth+e.outlinewidth/2,c=H-G;t.select("."+M.cbbg).attr({x:U-e.xpad-(e.borderwidth+e.outlinewidth)/2,y:G-N,width:Math.max(s,2),height:Math.max(c+2*N,2)}).call(d.fill,e.bgcolor).call(d.stroke,e.bordercolor).style("stroke-width",e.borderwidth),t.selectAll("."+M.cboutline).attr({x:U,y:G+e.ypad+("top"===A?tt:0),width:Math.max(O,2),height:Math.max(c-2*e.ypad-tt,2)}).call(d.stroke,e.outlinecolor).style({fill:"none","stroke-width":e.outlinewidth});var f=({center:.5,right:1}[e.xanchor]||0)*s;t.attr("transform",u(l.l-f,l.t));var h={},g=T[e.yanchor],m=k[e.yanchor];"pixels"===e.lenmode?(h.y=e.y,h.t=c*g,h.b=c*m):(h.t=h.b=0,h.yt=e.y+e.len*g,h.yb=e.y-e.len*m);var v=T[e.xanchor],y=k[e.xanchor];if("pixels"===e.thicknessmode)h.x=e.x,h.l=s*v,h.r=s*y;else{var x=s-O;h.l=x*v,h.r=x*y,h.xl=e.x-e.thickness*v,h.xr=e.x+e.thickness*y}a.autoMargin(r,e._id,h)}],r)}(r,e,t);v&&v.then&&(t._promises||[]).push(v),t._context.edits.colorbarPosition&&function(t,e,r){var n,i,a,s=r._fullLayout._size;l.init({element:t.node(),gd:r,prepFn:function(){n=t.attr("transform"),h(t)},moveFn:function(r,o){t.attr("transform",n+u(r,o)),i=l.align(e._xLeftFrac+r/s.w,e._thickFrac,0,1,e.xanchor),a=l.align(e._yBottomFrac-o/s.h,e._lenFrac,0,1,e.yanchor);var c=l.getCursor(i,a,e.xanchor,e.yanchor);h(t,c)},doneFn:function(){if(h(t),void 0!==i&&void 0!==a){var n={};n[e._propPrefix+"x"]=i,n[e._propPrefix+"y"]=a,void 0!==e._traceIndex?o.call("_guiRestyle",r,n,e._traceIndex):o.call("_guiRelayout",r,n)}}})}(r,e,t)})),e.exit().each((function(e){a.autoMargin(t,e._id)})).remove(),e.order()}}},{"../../constants/alignment":745,"../../lib":778,"../../lib/extend":768,"../../lib/setcursor":799,"../../lib/svg_text_utils":803,"../../plots/cartesian/axes":828,"../../plots/cartesian/axis_defaults":830,"../../plots/cartesian/layout_attributes":842,"../../plots/cartesian/position_defaults":845,"../../plots/plots":891,"../../registry":911,"../color":643,"../colorscale/helpers":654,"../dragelement":662,"../drawing":665,"../titles":738,"./constants":645,d3:169,tinycolor2:576}],648:[function(t,e,r){"use strict";var n=t("../../lib");e.exports=function(t){return n.isPlainObject(t.colorbar)}},{"../../lib":778}],649:[function(t,e,r){"use strict";e.exports={moduleType:"component",name:"colorbar",attributes:t("./attributes"),supplyDefaults:t("./defaults"),draw:t("./draw").draw,hasColorbar:t("./has_colorbar")}},{"./attributes":644,"./defaults":646,"./draw":647,"./has_colorbar":648}],650:[function(t,e,r){"use strict";var n=t("../colorbar/attributes"),i=t("../../lib/regex").counter,a=t("./scales.js").scales;Object.keys(a);function o(t){return"`"+t+"`"}e.exports=function(t,e){t=t||"";var r,s=(e=e||{}).cLetter||"c",l=("onlyIfNumerical"in e?e.onlyIfNumerical:Boolean(t),"noScale"in e?e.noScale:"marker.line"===t),c="showScaleDflt"in e?e.showScaleDflt:"z"===s,u="string"==typeof e.colorscaleDflt?a[e.colorscaleDflt]:null,f=e.editTypeOverride||"",h=t?t+".":"";"colorAttr"in e?(r=e.colorAttr,e.colorAttr):o(h+(r={z:"z",c:"color"}[s]));var p=s+"auto",d=s+"min",g=s+"max",m=s+"mid",v=(o(h+p),o(h+d),o(h+g),{});v[d]=v[g]=void 0;var y={};y[p]=!1;var x={};return"color"===r&&(x.color={valType:"color",arrayOk:!0,editType:f||"style"},e.anim&&(x.color.anim=!0)),x[p]={valType:"boolean",dflt:!0,editType:"calc",impliedEdits:v},x[d]={valType:"number",dflt:null,editType:f||"plot",impliedEdits:y},x[g]={valType:"number",dflt:null,editType:f||"plot",impliedEdits:y},x[m]={valType:"number",dflt:null,editType:"calc",impliedEdits:v},x.colorscale={valType:"colorscale",editType:"calc",dflt:u,impliedEdits:{autocolorscale:!1}},x.autocolorscale={valType:"boolean",dflt:!1!==e.autoColorDflt,editType:"calc",impliedEdits:{colorscale:void 0}},x.reversescale={valType:"boolean",dflt:!1,editType:"plot"},l||(x.showscale={valType:"boolean",dflt:c,editType:"calc"},x.colorbar=n),e.noColorAxis||(x.coloraxis={valType:"subplotid",regex:i("coloraxis"),dflt:null,editType:"calc"}),x}},{"../../lib/regex":795,"../colorbar/attributes":644,"./scales.js":658}],651:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("../../lib"),a=t("./helpers").extractOpts;e.exports=function(t,e,r){var o,s=t._fullLayout,l=r.vals,c=r.containerStr,u=c?i.nestedProperty(e,c).get():e,f=a(u),h=!1!==f.auto,p=f.min,d=f.max,g=f.mid,m=function(){return i.aggNums(Math.min,null,l)},v=function(){return i.aggNums(Math.max,null,l)};(void 0===p?p=m():h&&(p=u._colorAx&&n(p)?Math.min(p,m()):m()),void 0===d?d=v():h&&(d=u._colorAx&&n(d)?Math.max(d,v()):v()),h&&void 0!==g&&(d-g>g-p?p=g-(d-g):d-g=0?s.colorscale.sequential:s.colorscale.sequentialminus,f._sync("colorscale",o))}},{"../../lib":778,"./helpers":654,"fast-isnumeric":241}],652:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./helpers").hasColorscale,a=t("./helpers").extractOpts;e.exports=function(t,e){function r(t,e){var r=t["_"+e];void 0!==r&&(t[e]=r)}function o(t,i){var o=i.container?n.nestedProperty(t,i.container).get():t;if(o)if(o.coloraxis)o._colorAx=e[o.coloraxis];else{var s=a(o),l=s.auto;(l||void 0===s.min)&&r(o,i.min),(l||void 0===s.max)&&r(o,i.max),s.autocolorscale&&r(o,"colorscale")}}for(var s=0;s=0;n--,i++){var a=t[n];r[i]=[1-a[0],a[1]]}return r}function d(t,e){e=e||{};for(var r=t.domain,o=t.range,l=o.length,c=new Array(l),u=0;u4/3-s?o:s}},{}],660:[function(t,e,r){"use strict";var n=t("../../lib"),i=[["sw-resize","s-resize","se-resize"],["w-resize","move","e-resize"],["nw-resize","n-resize","ne-resize"]];e.exports=function(t,e,r,a){return t="left"===r?0:"center"===r?1:"right"===r?2:n.constrain(Math.floor(3*t),0,2),e="bottom"===a?0:"middle"===a?1:"top"===a?2:n.constrain(Math.floor(3*e),0,2),i[e][t]}},{"../../lib":778}],661:[function(t,e,r){"use strict";r.selectMode=function(t){return"lasso"===t||"select"===t},r.drawMode=function(t){return"drawclosedpath"===t||"drawopenpath"===t||"drawline"===t||"drawrect"===t||"drawcircle"===t},r.openMode=function(t){return"drawline"===t||"drawopenpath"===t},r.rectMode=function(t){return"select"===t||"drawline"===t||"drawrect"===t||"drawcircle"===t},r.freeMode=function(t){return"lasso"===t||"drawclosedpath"===t||"drawopenpath"===t},r.selectingOrDrawing=function(t){return r.freeMode(t)||r.rectMode(t)}},{}],662:[function(t,e,r){"use strict";var n=t("mouse-event-offset"),i=t("has-hover"),a=t("has-passive-events"),o=t("../../lib").removeElement,s=t("../../plots/cartesian/constants"),l=e.exports={};l.align=t("./align"),l.getCursor=t("./cursor");var c=t("./unhover");function u(){var t=document.createElement("div");t.className="dragcover";var e=t.style;return e.position="fixed",e.left=0,e.right=0,e.top=0,e.bottom=0,e.zIndex=999999999,e.background="none",document.body.appendChild(t),t}function f(t){return n(t.changedTouches?t.changedTouches[0]:t,document.body)}l.unhover=c.wrapped,l.unhoverRaw=c.raw,l.init=function(t){var e,r,n,c,h,p,d,g,m=t.gd,v=1,y=m._context.doubleClickDelay,x=t.element;m._mouseDownTime||(m._mouseDownTime=0),x.style.pointerEvents="all",x.onmousedown=_,a?(x._ontouchstart&&x.removeEventListener("touchstart",x._ontouchstart),x._ontouchstart=_,x.addEventListener("touchstart",_,{passive:!1})):x.ontouchstart=_;var b=t.clampFn||function(t,e,r){return Math.abs(t)y&&(v=Math.max(v-1,1)),m._dragged)t.doneFn&&t.doneFn();else if(t.clickFn&&t.clickFn(v,p),!g){var r;try{r=new MouseEvent("click",e)}catch(t){var n=f(e);(r=document.createEvent("MouseEvents")).initMouseEvent("click",e.bubbles,e.cancelable,e.view,e.detail,e.screenX,e.screenY,n[0],n[1],e.ctrlKey,e.altKey,e.shiftKey,e.metaKey,e.button,e.relatedTarget)}d.dispatchEvent(r)}m._dragging=!1,m._dragged=!1}else m._dragged=!1}},l.coverSlip=u},{"../../lib":778,"../../plots/cartesian/constants":834,"./align":659,"./cursor":660,"./unhover":663,"has-hover":440,"has-passive-events":441,"mouse-event-offset":484}],663:[function(t,e,r){"use strict";var n=t("../../lib/events"),i=t("../../lib/throttle"),a=t("../../lib/dom").getGraphDiv,o=t("../fx/constants"),s=e.exports={};s.wrapped=function(t,e,r){(t=a(t))._fullLayout&&i.clear(t._fullLayout._uid+o.HOVERID),s.raw(t,e,r)},s.raw=function(t,e){var r=t._fullLayout,i=t._hoverdata;e||(e={}),e.target&&!1===n.triggerHandler(t,"plotly_beforehover",e)||(r._hoverlayer.selectAll("g").remove(),r._hoverlayer.selectAll("line").remove(),r._hoverlayer.selectAll("circle").remove(),t._hoverdata=void 0,e.target&&i&&t.emit("plotly_unhover",{event:e,points:i}))}},{"../../lib/dom":766,"../../lib/events":767,"../../lib/throttle":804,"../fx/constants":677}],664:[function(t,e,r){"use strict";r.dash={valType:"string",values:["solid","dot","dash","longdash","dashdot","longdashdot"],dflt:"solid",editType:"style"}},{}],665:[function(t,e,r){"use strict";var n=t("d3"),i=t("fast-isnumeric"),a=t("tinycolor2"),o=t("../../registry"),s=t("../color"),l=t("../colorscale"),c=t("../../lib"),u=c.strTranslate,f=t("../../lib/svg_text_utils"),h=t("../../constants/xmlns_namespaces"),p=t("../../constants/alignment").LINE_SPACING,d=t("../../constants/interactions").DESELECTDIM,g=t("../../traces/scatter/subtypes"),m=t("../../traces/scatter/make_bubble_size_func"),v=t("../../components/fx/helpers").appendArrayPointValue,y=e.exports={};y.font=function(t,e,r,n){c.isPlainObject(e)&&(n=e.color,r=e.size,e=e.family),e&&t.style("font-family",e),r+1&&t.style("font-size",r+"px"),n&&t.call(s.fill,n)},y.setPosition=function(t,e,r){t.attr("x",e).attr("y",r)},y.setSize=function(t,e,r){t.attr("width",e).attr("height",r)},y.setRect=function(t,e,r,n,i){t.call(y.setPosition,e,r).call(y.setSize,n,i)},y.translatePoint=function(t,e,r,n){var a=r.c2p(t.x),o=n.c2p(t.y);return!!(i(a)&&i(o)&&e.node())&&("text"===e.node().nodeName?e.attr("x",a).attr("y",o):e.attr("transform",u(a,o)),!0)},y.translatePoints=function(t,e,r){t.each((function(t){var i=n.select(this);y.translatePoint(t,i,e,r)}))},y.hideOutsideRangePoint=function(t,e,r,n,i,a){e.attr("display",r.isPtWithinRange(t,i)&&n.isPtWithinRange(t,a)?null:"none")},y.hideOutsideRangePoints=function(t,e){if(e._hasClipOnAxisFalse){var r=e.xaxis,i=e.yaxis;t.each((function(e){var a=e[0].trace,s=a.xcalendar,l=a.ycalendar,c=o.traceIs(a,"bar-like")?".bartext":".point,.textpoint";t.selectAll(c).each((function(t){y.hideOutsideRangePoint(t,n.select(this),r,i,s,l)}))}))}},y.crispRound=function(t,e,r){return e&&i(e)?t._context.staticPlot?e:e<1?1:Math.round(e):r||0},y.singleLineStyle=function(t,e,r,n,i){e.style("fill","none");var a=(((t||[])[0]||{}).trace||{}).line||{},o=r||a.width||0,l=i||a.dash||"";s.stroke(e,n||a.color),y.dashLine(e,l,o)},y.lineGroupStyle=function(t,e,r,i){t.style("fill","none").each((function(t){var a=(((t||[])[0]||{}).trace||{}).line||{},o=e||a.width||0,l=i||a.dash||"";n.select(this).call(s.stroke,r||a.color).call(y.dashLine,l,o)}))},y.dashLine=function(t,e,r){r=+r||0,e=y.dashStyle(e,r),t.style({"stroke-dasharray":e,"stroke-width":r+"px"})},y.dashStyle=function(t,e){e=+e||1;var r=Math.max(e,3);return"solid"===t?t="":"dot"===t?t=r+"px,"+r+"px":"dash"===t?t=3*r+"px,"+3*r+"px":"longdash"===t?t=5*r+"px,"+5*r+"px":"dashdot"===t?t=3*r+"px,"+r+"px,"+r+"px,"+r+"px":"longdashdot"===t&&(t=5*r+"px,"+2*r+"px,"+r+"px,"+2*r+"px"),t},y.singleFillStyle=function(t){var e=(((n.select(t.node()).data()[0]||[])[0]||{}).trace||{}).fillcolor;e&&t.call(s.fill,e)},y.fillGroupStyle=function(t){t.style("stroke-width",0).each((function(t){var e=n.select(this);t[0].trace&&e.call(s.fill,t[0].trace.fillcolor)}))};var x=t("./symbol_defs");y.symbolNames=[],y.symbolFuncs=[],y.symbolNeedLines={},y.symbolNoDot={},y.symbolNoFill={},y.symbolList=[],Object.keys(x).forEach((function(t){var e=x[t],r=e.n;y.symbolList.push(r,String(r),t,r+100,String(r+100),t+"-open"),y.symbolNames[r]=t,y.symbolFuncs[r]=e.f,e.needLine&&(y.symbolNeedLines[r]=!0),e.noDot?y.symbolNoDot[r]=!0:y.symbolList.push(r+200,String(r+200),t+"-dot",r+300,String(r+300),t+"-open-dot"),e.noFill&&(y.symbolNoFill[r]=!0)}));var b=y.symbolNames.length;function _(t,e){var r=t%100;return y.symbolFuncs[r](e)+(t>=200?"M0,0.5L0.5,0L0,-0.5L-0.5,0Z":"")}y.symbolNumber=function(t){if(i(t))t=+t;else if("string"==typeof t){var e=0;t.indexOf("-open")>0&&(e=100,t=t.replace("-open","")),t.indexOf("-dot")>0&&(e+=200,t=t.replace("-dot","")),(t=y.symbolNames.indexOf(t))>=0&&(t+=e)}return t%100>=b||t>=400?0:Math.floor(Math.max(t,0))};var w={x1:1,x2:0,y1:0,y2:0},T={x1:0,x2:0,y1:1,y2:0},k=n.format("~.1f"),M={radial:{node:"radialGradient"},radialreversed:{node:"radialGradient",reversed:!0},horizontal:{node:"linearGradient",attrs:w},horizontalreversed:{node:"linearGradient",attrs:w,reversed:!0},vertical:{node:"linearGradient",attrs:T},verticalreversed:{node:"linearGradient",attrs:T,reversed:!0}};y.gradient=function(t,e,r,i,o,l){for(var u=o.length,f=M[i],h=new Array(u),p=0;p"+v(t);d._gradientUrlQueryParts[y]=1},y.initGradients=function(t){var e=t._fullLayout;c.ensureSingle(e._defs,"g","gradients").selectAll("linearGradient,radialGradient").remove(),e._gradientUrlQueryParts={}},y.pointStyle=function(t,e,r){if(t.size()){var i=y.makePointStyleFns(e);t.each((function(t){y.singlePointStyle(t,n.select(this),e,i,r)}))}},y.singlePointStyle=function(t,e,r,n,i){var a=r.marker,o=a.line;if(e.style("opacity",n.selectedOpacityFn?n.selectedOpacityFn(t):void 0===t.mo?a.opacity:t.mo),n.ms2mrc){var l;l="various"===t.ms||"various"===a.size?3:n.ms2mrc(t.ms),t.mrc=l,n.selectedSizeFn&&(l=t.mrc=n.selectedSizeFn(t));var u=y.symbolNumber(t.mx||a.symbol)||0;t.om=u%200>=100,e.attr("d",_(u,l))}var f,h,p,d=!1;if(t.so)p=o.outlierwidth,h=o.outliercolor,f=a.outliercolor;else{var g=(o||{}).width;p=(t.mlw+1||g+1||(t.trace?(t.trace.marker.line||{}).width:0)+1)-1||0,h="mlc"in t?t.mlcc=n.lineScale(t.mlc):c.isArrayOrTypedArray(o.color)?s.defaultLine:o.color,c.isArrayOrTypedArray(a.color)&&(f=s.defaultLine,d=!0),f="mc"in t?t.mcc=n.markerScale(t.mc):a.color||"rgba(0,0,0,0)",n.selectedColorFn&&(f=n.selectedColorFn(t))}if(t.om)e.call(s.stroke,f).style({"stroke-width":(p||1)+"px",fill:"none"});else{e.style("stroke-width",(t.isBlank?0:p)+"px");var m=a.gradient,v=t.mgt;if(v?d=!0:v=m&&m.type,Array.isArray(v)&&(v=v[0],M[v]||(v=0)),v&&"none"!==v){var x=t.mgc;x?d=!0:x=m.color;var b=r.uid;d&&(b+="-"+t.i),y.gradient(e,i,b,v,[[0,x],[1,f]],"fill")}else s.fill(e,f);p&&s.stroke(e,h)}},y.makePointStyleFns=function(t){var e={},r=t.marker;return e.markerScale=y.tryColorscale(r,""),e.lineScale=y.tryColorscale(r,"line"),o.traceIs(t,"symbols")&&(e.ms2mrc=g.isBubble(t)?m(t):function(){return(r.size||6)/2}),t.selectedpoints&&c.extendFlat(e,y.makeSelectedPointStyleFns(t)),e},y.makeSelectedPointStyleFns=function(t){var e={},r=t.selected||{},n=t.unselected||{},i=t.marker||{},a=r.marker||{},s=n.marker||{},l=i.opacity,u=a.opacity,f=s.opacity,h=void 0!==u,p=void 0!==f;(c.isArrayOrTypedArray(l)||h||p)&&(e.selectedOpacityFn=function(t){var e=void 0===t.mo?i.opacity:t.mo;return t.selected?h?u:e:p?f:d*e});var g=i.color,m=a.color,v=s.color;(m||v)&&(e.selectedColorFn=function(t){var e=t.mcc||g;return t.selected?m||e:v||e});var y=i.size,x=a.size,b=s.size,_=void 0!==x,w=void 0!==b;return o.traceIs(t,"symbols")&&(_||w)&&(e.selectedSizeFn=function(t){var e=t.mrc||y/2;return t.selected?_?x/2:e:w?b/2:e}),e},y.makeSelectedTextStyleFns=function(t){var e={},r=t.selected||{},n=t.unselected||{},i=t.textfont||{},a=r.textfont||{},o=n.textfont||{},l=i.color,c=a.color,u=o.color;return e.selectedTextColorFn=function(t){var e=t.tc||l;return t.selected?c||e:u||(c?e:s.addOpacity(e,d))},e},y.selectedPointStyle=function(t,e){if(t.size()&&e.selectedpoints){var r=y.makeSelectedPointStyleFns(e),i=e.marker||{},a=[];r.selectedOpacityFn&&a.push((function(t,e){t.style("opacity",r.selectedOpacityFn(e))})),r.selectedColorFn&&a.push((function(t,e){s.fill(t,r.selectedColorFn(e))})),r.selectedSizeFn&&a.push((function(t,e){var n=e.mx||i.symbol||0,a=r.selectedSizeFn(e);t.attr("d",_(y.symbolNumber(n),a)),e.mrc2=a})),a.length&&t.each((function(t){for(var e=n.select(this),r=0;r0?r:0}y.textPointStyle=function(t,e,r){if(t.size()){var i;if(e.selectedpoints){var a=y.makeSelectedTextStyleFns(e);i=a.selectedTextColorFn}var o=e.texttemplate,s=r._fullLayout;t.each((function(t){var a=n.select(this),l=o?c.extractOption(t,e,"txt","texttemplate"):c.extractOption(t,e,"tx","text");if(l||0===l){if(o){var u=e._module.formatLabels?e._module.formatLabels(t,e,s):{},h={};v(h,e,t.i);var p=e._meta||{};l=c.texttemplateString(l,u,s._d3locale,h,t,p)}var d=t.tp||e.textposition,g=E(t,e),m=i?i(t):t.tc||e.textfont.color;a.call(y.font,t.tf||e.textfont.family,g,m).text(l).call(f.convertToTspans,r).call(S,d,g,t.mrc)}else a.remove()}))}},y.selectedTextStyle=function(t,e){if(t.size()&&e.selectedpoints){var r=y.makeSelectedTextStyleFns(e);t.each((function(t){var i=n.select(this),a=r.selectedTextColorFn(t),o=t.tp||e.textposition,l=E(t,e);s.fill(i,a),S(i,o,l,t.mrc2||t.mrc)}))}};function C(t,e,r,i){var a=t[0]-e[0],o=t[1]-e[1],s=r[0]-e[0],l=r[1]-e[1],c=Math.pow(a*a+o*o,.25),u=Math.pow(s*s+l*l,.25),f=(u*u*a-c*c*s)*i,h=(u*u*o-c*c*l)*i,p=3*u*(c+u),d=3*c*(c+u);return[[n.round(e[0]+(p&&f/p),2),n.round(e[1]+(p&&h/p),2)],[n.round(e[0]-(d&&f/d),2),n.round(e[1]-(d&&h/d),2)]]}y.smoothopen=function(t,e){if(t.length<3)return"M"+t.join("L");var r,n="M"+t[0],i=[];for(r=1;r=1e4&&(y.savedBBoxes={},P=0),r&&(y.savedBBoxes[r]=m),P++,c.extendFlat({},m)},y.setClipUrl=function(t,e,r){t.attr("clip-path",O(e,r))},y.getTranslate=function(t){var e=(t[t.attr?"attr":"getAttribute"]("transform")||"").replace(/.*\btranslate\((-?\d*\.?\d*)[^-\d]*(-?\d*\.?\d*)[^\d].*/,(function(t,e,r){return[e,r].join(" ")})).split(" ");return{x:+e[0]||0,y:+e[1]||0}},y.setTranslate=function(t,e,r){var n=t.attr?"attr":"getAttribute",i=t.attr?"attr":"setAttribute",a=t[n]("transform")||"";return e=e||0,r=r||0,a=a.replace(/(\btranslate\(.*?\);?)/,"").trim(),a=(a+=u(e,r)).trim(),t[i]("transform",a),a},y.getScale=function(t){var e=(t[t.attr?"attr":"getAttribute"]("transform")||"").replace(/.*\bscale\((\d*\.?\d*)[^\d]*(\d*\.?\d*)[^\d].*/,(function(t,e,r){return[e,r].join(" ")})).split(" ");return{x:+e[0]||1,y:+e[1]||1}},y.setScale=function(t,e,r){var n=t.attr?"attr":"getAttribute",i=t.attr?"attr":"setAttribute",a=t[n]("transform")||"";return e=e||1,r=r||1,a=a.replace(/(\bscale\(.*?\);?)/,"").trim(),a=(a+="scale("+e+","+r+")").trim(),t[i]("transform",a),a};var D=/\s*sc.*/;y.setPointGroupScale=function(t,e,r){if(e=e||1,r=r||1,t){var n=1===e&&1===r?"":"scale("+e+","+r+")";t.each((function(){var t=(this.getAttribute("transform")||"").replace(D,"");t=(t+=n).trim(),this.setAttribute("transform",t)}))}};var R=/translate\([^)]*\)\s*$/;y.setTextPointsScale=function(t,e,r){t&&t.each((function(){var t,i=n.select(this),a=i.select("text");if(a.node()){var o=parseFloat(a.attr("x")||0),s=parseFloat(a.attr("y")||0),l=(i.attr("transform")||"").match(R);t=1===e&&1===r?[]:[u(o,s),"scale("+e+","+r+")",u(-o,-s)],l&&t.push(l),i.attr("transform",t.join(""))}}))}},{"../../components/fx/helpers":679,"../../constants/alignment":745,"../../constants/interactions":752,"../../constants/xmlns_namespaces":754,"../../lib":778,"../../lib/svg_text_utils":803,"../../registry":911,"../../traces/scatter/make_bubble_size_func":1204,"../../traces/scatter/subtypes":1212,"../color":643,"../colorscale":655,"./symbol_defs":666,d3:169,"fast-isnumeric":241,tinycolor2:576}],666:[function(t,e,r){"use strict";var n=t("d3");e.exports={circle:{n:0,f:function(t){var e=n.round(t,2);return"M"+e+",0A"+e+","+e+" 0 1,1 0,-"+e+"A"+e+","+e+" 0 0,1 "+e+",0Z"}},square:{n:1,f:function(t){var e=n.round(t,2);return"M"+e+","+e+"H-"+e+"V-"+e+"H"+e+"Z"}},diamond:{n:2,f:function(t){var e=n.round(1.3*t,2);return"M"+e+",0L0,"+e+"L-"+e+",0L0,-"+e+"Z"}},cross:{n:3,f:function(t){var e=n.round(.4*t,2),r=n.round(1.2*t,2);return"M"+r+","+e+"H"+e+"V"+r+"H-"+e+"V"+e+"H-"+r+"V-"+e+"H-"+e+"V-"+r+"H"+e+"V-"+e+"H"+r+"Z"}},x:{n:4,f:function(t){var e=n.round(.8*t/Math.sqrt(2),2),r="l"+e+","+e,i="l"+e+",-"+e,a="l-"+e+",-"+e,o="l-"+e+","+e;return"M0,"+e+r+i+a+i+a+o+a+o+r+o+r+"Z"}},"triangle-up":{n:5,f:function(t){var e=n.round(2*t/Math.sqrt(3),2);return"M-"+e+","+n.round(t/2,2)+"H"+e+"L0,-"+n.round(t,2)+"Z"}},"triangle-down":{n:6,f:function(t){var e=n.round(2*t/Math.sqrt(3),2);return"M-"+e+",-"+n.round(t/2,2)+"H"+e+"L0,"+n.round(t,2)+"Z"}},"triangle-left":{n:7,f:function(t){var e=n.round(2*t/Math.sqrt(3),2);return"M"+n.round(t/2,2)+",-"+e+"V"+e+"L-"+n.round(t,2)+",0Z"}},"triangle-right":{n:8,f:function(t){var e=n.round(2*t/Math.sqrt(3),2);return"M-"+n.round(t/2,2)+",-"+e+"V"+e+"L"+n.round(t,2)+",0Z"}},"triangle-ne":{n:9,f:function(t){var e=n.round(.6*t,2),r=n.round(1.2*t,2);return"M-"+r+",-"+e+"H"+e+"V"+r+"Z"}},"triangle-se":{n:10,f:function(t){var e=n.round(.6*t,2),r=n.round(1.2*t,2);return"M"+e+",-"+r+"V"+e+"H-"+r+"Z"}},"triangle-sw":{n:11,f:function(t){var e=n.round(.6*t,2),r=n.round(1.2*t,2);return"M"+r+","+e+"H-"+e+"V-"+r+"Z"}},"triangle-nw":{n:12,f:function(t){var e=n.round(.6*t,2),r=n.round(1.2*t,2);return"M-"+e+","+r+"V-"+e+"H"+r+"Z"}},pentagon:{n:13,f:function(t){var e=n.round(.951*t,2),r=n.round(.588*t,2),i=n.round(-t,2),a=n.round(-.309*t,2);return"M"+e+","+a+"L"+r+","+n.round(.809*t,2)+"H-"+r+"L-"+e+","+a+"L0,"+i+"Z"}},hexagon:{n:14,f:function(t){var e=n.round(t,2),r=n.round(t/2,2),i=n.round(t*Math.sqrt(3)/2,2);return"M"+i+",-"+r+"V"+r+"L0,"+e+"L-"+i+","+r+"V-"+r+"L0,-"+e+"Z"}},hexagon2:{n:15,f:function(t){var e=n.round(t,2),r=n.round(t/2,2),i=n.round(t*Math.sqrt(3)/2,2);return"M-"+r+","+i+"H"+r+"L"+e+",0L"+r+",-"+i+"H-"+r+"L-"+e+",0Z"}},octagon:{n:16,f:function(t){var e=n.round(.924*t,2),r=n.round(.383*t,2);return"M-"+r+",-"+e+"H"+r+"L"+e+",-"+r+"V"+r+"L"+r+","+e+"H-"+r+"L-"+e+","+r+"V-"+r+"Z"}},star:{n:17,f:function(t){var e=1.4*t,r=n.round(.225*e,2),i=n.round(.951*e,2),a=n.round(.363*e,2),o=n.round(.588*e,2),s=n.round(-e,2),l=n.round(-.309*e,2),c=n.round(.118*e,2),u=n.round(.809*e,2);return"M"+r+","+l+"H"+i+"L"+a+","+c+"L"+o+","+u+"L0,"+n.round(.382*e,2)+"L-"+o+","+u+"L-"+a+","+c+"L-"+i+","+l+"H-"+r+"L0,"+s+"Z"}},hexagram:{n:18,f:function(t){var e=n.round(.66*t,2),r=n.round(.38*t,2),i=n.round(.76*t,2);return"M-"+i+",0l-"+r+",-"+e+"h"+i+"l"+r+",-"+e+"l"+r+","+e+"h"+i+"l-"+r+","+e+"l"+r+","+e+"h-"+i+"l-"+r+","+e+"l-"+r+",-"+e+"h-"+i+"Z"}},"star-triangle-up":{n:19,f:function(t){var e=n.round(t*Math.sqrt(3)*.8,2),r=n.round(.8*t,2),i=n.round(1.6*t,2),a=n.round(4*t,2),o="A "+a+","+a+" 0 0 1 ";return"M-"+e+","+r+o+e+","+r+o+"0,-"+i+o+"-"+e+","+r+"Z"}},"star-triangle-down":{n:20,f:function(t){var e=n.round(t*Math.sqrt(3)*.8,2),r=n.round(.8*t,2),i=n.round(1.6*t,2),a=n.round(4*t,2),o="A "+a+","+a+" 0 0 1 ";return"M"+e+",-"+r+o+"-"+e+",-"+r+o+"0,"+i+o+e+",-"+r+"Z"}},"star-square":{n:21,f:function(t){var e=n.round(1.1*t,2),r=n.round(2*t,2),i="A "+r+","+r+" 0 0 1 ";return"M-"+e+",-"+e+i+"-"+e+","+e+i+e+","+e+i+e+",-"+e+i+"-"+e+",-"+e+"Z"}},"star-diamond":{n:22,f:function(t){var e=n.round(1.4*t,2),r=n.round(1.9*t,2),i="A "+r+","+r+" 0 0 1 ";return"M-"+e+",0"+i+"0,"+e+i+e+",0"+i+"0,-"+e+i+"-"+e+",0Z"}},"diamond-tall":{n:23,f:function(t){var e=n.round(.7*t,2),r=n.round(1.4*t,2);return"M0,"+r+"L"+e+",0L0,-"+r+"L-"+e+",0Z"}},"diamond-wide":{n:24,f:function(t){var e=n.round(1.4*t,2),r=n.round(.7*t,2);return"M0,"+r+"L"+e+",0L0,-"+r+"L-"+e+",0Z"}},hourglass:{n:25,f:function(t){var e=n.round(t,2);return"M"+e+","+e+"H-"+e+"L"+e+",-"+e+"H-"+e+"Z"},noDot:!0},bowtie:{n:26,f:function(t){var e=n.round(t,2);return"M"+e+","+e+"V-"+e+"L-"+e+","+e+"V-"+e+"Z"},noDot:!0},"circle-cross":{n:27,f:function(t){var e=n.round(t,2);return"M0,"+e+"V-"+e+"M"+e+",0H-"+e+"M"+e+",0A"+e+","+e+" 0 1,1 0,-"+e+"A"+e+","+e+" 0 0,1 "+e+",0Z"},needLine:!0,noDot:!0},"circle-x":{n:28,f:function(t){var e=n.round(t,2),r=n.round(t/Math.sqrt(2),2);return"M"+r+","+r+"L-"+r+",-"+r+"M"+r+",-"+r+"L-"+r+","+r+"M"+e+",0A"+e+","+e+" 0 1,1 0,-"+e+"A"+e+","+e+" 0 0,1 "+e+",0Z"},needLine:!0,noDot:!0},"square-cross":{n:29,f:function(t){var e=n.round(t,2);return"M0,"+e+"V-"+e+"M"+e+",0H-"+e+"M"+e+","+e+"H-"+e+"V-"+e+"H"+e+"Z"},needLine:!0,noDot:!0},"square-x":{n:30,f:function(t){var e=n.round(t,2);return"M"+e+","+e+"L-"+e+",-"+e+"M"+e+",-"+e+"L-"+e+","+e+"M"+e+","+e+"H-"+e+"V-"+e+"H"+e+"Z"},needLine:!0,noDot:!0},"diamond-cross":{n:31,f:function(t){var e=n.round(1.3*t,2);return"M"+e+",0L0,"+e+"L-"+e+",0L0,-"+e+"ZM0,-"+e+"V"+e+"M-"+e+",0H"+e},needLine:!0,noDot:!0},"diamond-x":{n:32,f:function(t){var e=n.round(1.3*t,2),r=n.round(.65*t,2);return"M"+e+",0L0,"+e+"L-"+e+",0L0,-"+e+"ZM-"+r+",-"+r+"L"+r+","+r+"M-"+r+","+r+"L"+r+",-"+r},needLine:!0,noDot:!0},"cross-thin":{n:33,f:function(t){var e=n.round(1.4*t,2);return"M0,"+e+"V-"+e+"M"+e+",0H-"+e},needLine:!0,noDot:!0,noFill:!0},"x-thin":{n:34,f:function(t){var e=n.round(t,2);return"M"+e+","+e+"L-"+e+",-"+e+"M"+e+",-"+e+"L-"+e+","+e},needLine:!0,noDot:!0,noFill:!0},asterisk:{n:35,f:function(t){var e=n.round(1.2*t,2),r=n.round(.85*t,2);return"M0,"+e+"V-"+e+"M"+e+",0H-"+e+"M"+r+","+r+"L-"+r+",-"+r+"M"+r+",-"+r+"L-"+r+","+r},needLine:!0,noDot:!0,noFill:!0},hash:{n:36,f:function(t){var e=n.round(t/2,2),r=n.round(t,2);return"M"+e+","+r+"V-"+r+"m-"+r+",0V"+r+"M"+r+","+e+"H-"+r+"m0,-"+r+"H"+r},needLine:!0,noFill:!0},"y-up":{n:37,f:function(t){var e=n.round(1.2*t,2),r=n.round(1.6*t,2),i=n.round(.8*t,2);return"M-"+e+","+i+"L0,0M"+e+","+i+"L0,0M0,-"+r+"L0,0"},needLine:!0,noDot:!0,noFill:!0},"y-down":{n:38,f:function(t){var e=n.round(1.2*t,2),r=n.round(1.6*t,2),i=n.round(.8*t,2);return"M-"+e+",-"+i+"L0,0M"+e+",-"+i+"L0,0M0,"+r+"L0,0"},needLine:!0,noDot:!0,noFill:!0},"y-left":{n:39,f:function(t){var e=n.round(1.2*t,2),r=n.round(1.6*t,2),i=n.round(.8*t,2);return"M"+i+","+e+"L0,0M"+i+",-"+e+"L0,0M-"+r+",0L0,0"},needLine:!0,noDot:!0,noFill:!0},"y-right":{n:40,f:function(t){var e=n.round(1.2*t,2),r=n.round(1.6*t,2),i=n.round(.8*t,2);return"M-"+i+","+e+"L0,0M-"+i+",-"+e+"L0,0M"+r+",0L0,0"},needLine:!0,noDot:!0,noFill:!0},"line-ew":{n:41,f:function(t){var e=n.round(1.4*t,2);return"M"+e+",0H-"+e},needLine:!0,noDot:!0,noFill:!0},"line-ns":{n:42,f:function(t){var e=n.round(1.4*t,2);return"M0,"+e+"V-"+e},needLine:!0,noDot:!0,noFill:!0},"line-ne":{n:43,f:function(t){var e=n.round(t,2);return"M"+e+",-"+e+"L-"+e+","+e},needLine:!0,noDot:!0,noFill:!0},"line-nw":{n:44,f:function(t){var e=n.round(t,2);return"M"+e+","+e+"L-"+e+",-"+e},needLine:!0,noDot:!0,noFill:!0},"arrow-up":{n:45,f:function(t){var e=n.round(t,2);return"M0,0L-"+e+","+n.round(2*t,2)+"H"+e+"Z"},noDot:!0},"arrow-down":{n:46,f:function(t){var e=n.round(t,2);return"M0,0L-"+e+",-"+n.round(2*t,2)+"H"+e+"Z"},noDot:!0},"arrow-left":{n:47,f:function(t){var e=n.round(2*t,2),r=n.round(t,2);return"M0,0L"+e+",-"+r+"V"+r+"Z"},noDot:!0},"arrow-right":{n:48,f:function(t){var e=n.round(2*t,2),r=n.round(t,2);return"M0,0L-"+e+",-"+r+"V"+r+"Z"},noDot:!0},"arrow-bar-up":{n:49,f:function(t){var e=n.round(t,2);return"M-"+e+",0H"+e+"M0,0L-"+e+","+n.round(2*t,2)+"H"+e+"Z"},needLine:!0,noDot:!0},"arrow-bar-down":{n:50,f:function(t){var e=n.round(t,2);return"M-"+e+",0H"+e+"M0,0L-"+e+",-"+n.round(2*t,2)+"H"+e+"Z"},needLine:!0,noDot:!0},"arrow-bar-left":{n:51,f:function(t){var e=n.round(2*t,2),r=n.round(t,2);return"M0,-"+r+"V"+r+"M0,0L"+e+",-"+r+"V"+r+"Z"},needLine:!0,noDot:!0},"arrow-bar-right":{n:52,f:function(t){var e=n.round(2*t,2),r=n.round(t,2);return"M0,-"+r+"V"+r+"M0,0L-"+e+",-"+r+"V"+r+"Z"},needLine:!0,noDot:!0}}},{d3:169}],667:[function(t,e,r){"use strict";e.exports={visible:{valType:"boolean",editType:"calc"},type:{valType:"enumerated",values:["percent","constant","sqrt","data"],editType:"calc"},symmetric:{valType:"boolean",editType:"calc"},array:{valType:"data_array",editType:"calc"},arrayminus:{valType:"data_array",editType:"calc"},value:{valType:"number",min:0,dflt:10,editType:"calc"},valueminus:{valType:"number",min:0,dflt:10,editType:"calc"},traceref:{valType:"integer",min:0,dflt:0,editType:"style"},tracerefminus:{valType:"integer",min:0,dflt:0,editType:"style"},copy_ystyle:{valType:"boolean",editType:"plot"},copy_zstyle:{valType:"boolean",editType:"style"},color:{valType:"color",editType:"style"},thickness:{valType:"number",min:0,dflt:2,editType:"style"},width:{valType:"number",min:0,editType:"plot"},editType:"calc",_deprecated:{opacity:{valType:"number",editType:"style"}}}},{}],668:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("../../registry"),a=t("../../plots/cartesian/axes"),o=t("../../lib"),s=t("./compute_error");function l(t,e,r,i){var l=e["error_"+i]||{},c=[];if(l.visible&&-1!==["linear","log"].indexOf(r.type)){for(var u=s(l),f=0;f0;e.each((function(e){var f,h=e[0].trace,p=h.error_x||{},d=h.error_y||{};h.ids&&(f=function(t){return t.id});var g=o.hasMarkers(h)&&h.marker.maxdisplayed>0;d.visible||p.visible||(e=[]);var m=n.select(this).selectAll("g.errorbar").data(e,f);if(m.exit().remove(),e.length){p.visible||m.selectAll("path.xerror").remove(),d.visible||m.selectAll("path.yerror").remove(),m.style("opacity",1);var v=m.enter().append("g").classed("errorbar",!0);u&&v.style("opacity",0).transition().duration(s.duration).style("opacity",1),a.setClipUrl(m,r.layerClipId,t),m.each((function(t){var e=n.select(this),r=function(t,e,r){var n={x:e.c2p(t.x),y:r.c2p(t.y)};void 0!==t.yh&&(n.yh=r.c2p(t.yh),n.ys=r.c2p(t.ys),i(n.ys)||(n.noYS=!0,n.ys=r.c2p(t.ys,!0)));void 0!==t.xh&&(n.xh=e.c2p(t.xh),n.xs=e.c2p(t.xs),i(n.xs)||(n.noXS=!0,n.xs=e.c2p(t.xs,!0)));return n}(t,l,c);if(!g||t.vis){var a,o=e.select("path.yerror");if(d.visible&&i(r.x)&&i(r.yh)&&i(r.ys)){var f=d.width;a="M"+(r.x-f)+","+r.yh+"h"+2*f+"m-"+f+",0V"+r.ys,r.noYS||(a+="m-"+f+",0h"+2*f),!o.size()?o=e.append("path").style("vector-effect","non-scaling-stroke").classed("yerror",!0):u&&(o=o.transition().duration(s.duration).ease(s.easing)),o.attr("d",a)}else o.remove();var h=e.select("path.xerror");if(p.visible&&i(r.y)&&i(r.xh)&&i(r.xs)){var m=(p.copy_ystyle?d:p).width;a="M"+r.xh+","+(r.y-m)+"v"+2*m+"m0,-"+m+"H"+r.xs,r.noXS||(a+="m0,-"+m+"v"+2*m),!h.size()?h=e.append("path").style("vector-effect","non-scaling-stroke").classed("xerror",!0):u&&(h=h.transition().duration(s.duration).ease(s.easing)),h.attr("d",a)}else h.remove()}}))}}))}},{"../../traces/scatter/subtypes":1212,"../drawing":665,d3:169,"fast-isnumeric":241}],673:[function(t,e,r){"use strict";var n=t("d3"),i=t("../color");e.exports=function(t){t.each((function(t){var e=t[0].trace,r=e.error_y||{},a=e.error_x||{},o=n.select(this);o.selectAll("path.yerror").style("stroke-width",r.thickness+"px").call(i.stroke,r.color),a.copy_ystyle&&(a=r),o.selectAll("path.xerror").style("stroke-width",a.thickness+"px").call(i.stroke,a.color)}))}},{"../color":643,d3:169}],674:[function(t,e,r){"use strict";var n=t("../../plots/font_attributes"),i=t("./layout_attributes").hoverlabel,a=t("../../lib/extend").extendFlat;e.exports={hoverlabel:{bgcolor:a({},i.bgcolor,{arrayOk:!0}),bordercolor:a({},i.bordercolor,{arrayOk:!0}),font:n({arrayOk:!0,editType:"none"}),align:a({},i.align,{arrayOk:!0}),namelength:a({},i.namelength,{arrayOk:!0}),editType:"none"}}},{"../../lib/extend":768,"../../plots/font_attributes":856,"./layout_attributes":684}],675:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../registry");function a(t,e,r,i){i=i||n.identity,Array.isArray(t)&&(e[0][r]=i(t))}e.exports=function(t){var e=t.calcdata,r=t._fullLayout;function o(t){return function(e){return n.coerceHoverinfo({hoverinfo:e},{_module:t._module},r)}}for(var s=0;s=0&&r.indexb[0]._length||tt<0||tt>_[0]._length)return d.unhoverRaw(t,e)}if(e.pointerX=$+b[0]._offset,e.pointerY=tt+_[0]._offset,C="xval"in e?v.flat(s,e.xval):v.p2c(b,$),I="yval"in e?v.flat(s,e.yval):v.p2c(_,tt),!i(C[0])||!i(I[0]))return o.warn("Fx.hover failed",e,t),d.unhoverRaw(t,e)}var nt=1/0;function it(t,r){for(F=0;FY&&(Z.splice(0,Y),nt=Z[0].distance),g&&0!==X&&0===Z.length){G.distance=X,G.index=!1;var f=N._module.hoverPoints(G,q,H,"closest",l._hoverlayer);if(f&&(f=f.filter((function(t){return t.spikeDistance<=X}))),f&&f.length){var h,d=f.filter((function(t){return t.xa.showspikes&&"hovered data"!==t.xa.spikesnap}));if(d.length){var m=d[0];i(m.x0)&&i(m.y0)&&(h=ot(m),(!K.vLinePoint||K.vLinePoint.spikeDistance>h.spikeDistance)&&(K.vLinePoint=h))}var y=f.filter((function(t){return t.ya.showspikes&&"hovered data"!==t.ya.spikesnap}));if(y.length){var x=y[0];i(x.x0)&&i(x.y0)&&(h=ot(x),(!K.hLinePoint||K.hLinePoint.spikeDistance>h.spikeDistance)&&(K.hLinePoint=h))}}}}}function at(t,e){for(var r,n=null,i=1/0,a=0;a1||Z.length>1)||"closest"===S&&Q&&Z.length>1,At=p.combine(l.plot_bgcolor||p.background,l.paper_bgcolor),St={hovermode:S,rotateLabels:Mt,bgColor:At,container:l._hoverlayer,outerContainer:l._paperdiv,commonLabelOpts:l.hoverlabel,hoverdistance:l.hoverdistance},Et=L(Z,St,t);v.isUnifiedHover(S)||(!function(t,e,r){var n,i,a,o,s,l,c,u=0,f=1,h=t.size(),p=new Array(h),d=0;function g(t){var e=t[0],r=t[t.length-1];if(i=e.pmin-e.pos-e.dp+e.size,a=r.pos+r.dp+r.size-e.pmax,i>.01){for(s=t.length-1;s>=0;s--)t[s].dp+=i;n=!1}if(!(a<.01)){if(i<-.01){for(s=t.length-1;s>=0;s--)t[s].dp-=a;n=!1}if(n){var c=0;for(o=0;oe.pmax&&c++;for(o=t.length-1;o>=0&&!(c<=0);o--)(l=t[o]).pos>e.pmax-1&&(l.del=!0,c--);for(o=0;o=0;s--)t[s].dp-=a;for(o=t.length-1;o>=0&&!(c<=0);o--)(l=t[o]).pos+l.dp+l.size>e.pmax&&(l.del=!0,c--)}}}t.each((function(t){var n=t[e],i="x"===n._id.charAt(0),a=n.range;0===d&&a&&a[0]>a[1]!==i&&(f=-1),p[d++]=[{datum:t,traceIndex:t.trace.index,dp:0,pos:t.pos,posref:t.posref,size:t.by*(i?T:1)/2,pmin:0,pmax:i?r.width:r.height}]})),p.sort((function(t,e){return t[0].posref-e[0].posref||f*(e[0].traceIndex-t[0].traceIndex)}));for(;!n&&u<=h;){for(u++,n=!0,o=0;o.01&&y.pmin===x.pmin&&y.pmax===x.pmax){for(s=v.length-1;s>=0;s--)v[s].dp+=i;for(m.push.apply(m,v),p.splice(o+1,1),c=0,s=m.length-1;s>=0;s--)c+=m[s].dp;for(a=c/m.length,s=m.length-1;s>=0;s--)m[s].dp-=a;n=!1}else o++}p.forEach(g)}for(o=p.length-1;o>=0;o--){var b=p[o];for(s=b.length-1;s>=0;s--){var _=b[s],w=_.datum;w.offset=_.dp,w.del=_.del}}}(Et,Mt?"xa":"ya",l),P(Et,Mt,l._invScaleX,l._invScaleY));if(e.target&&e.target.tagName){var Ct=m.getComponentMethod("annotations","hasClickToShow")(t,_t);f(n.select(e.target),Ct?"pointer":"")}if(!e.target||a||!function(t,e,r){if(!r||r.length!==t._hoverdata.length)return!0;for(var n=r.length-1;n>=0;n--){var i=r[n],a=t._hoverdata[n];if(i.curveNumber!==a.curveNumber||String(i.pointNumber)!==String(a.pointNumber)||String(i.pointNumbers)!==String(a.pointNumbers))return!0}return!1}(t,0,bt))return;bt&&t.emit("plotly_unhover",{event:e,points:bt});t.emit("plotly_hover",{event:e,points:t._hoverdata,xaxes:b,yaxes:_,xvals:C,yvals:I})}(t,e,r,a)}))},r.loneHover=function(t,e){var r=!0;Array.isArray(t)||(r=!1,t=[t]);var i=t.map((function(t){return{color:t.color||p.defaultLine,x0:t.x0||t.x||0,x1:t.x1||t.x||0,y0:t.y0||t.y||0,y1:t.y1||t.y||0,xLabel:t.xLabel,yLabel:t.yLabel,zLabel:t.zLabel,text:t.text,name:t.name,idealAlign:t.idealAlign,borderColor:t.borderColor,fontFamily:t.fontFamily,fontSize:t.fontSize,fontColor:t.fontColor,nameLength:t.nameLength,textAlign:t.textAlign,trace:t.trace||{index:0,hoverinfo:""},xa:{_offset:0},ya:{_offset:0},index:0,hovertemplate:t.hovertemplate||!1,eventData:t.eventData||!1,hovertemplateLabels:t.hovertemplateLabels||!1}})),a=n.select(e.container),o=e.outerContainer?n.select(e.outerContainer):a,s={hovermode:"closest",rotateLabels:!1,bgColor:e.bgColor||p.background,container:a,outerContainer:o},l=L(i,s,e.gd),c=0,u=0;l.sort((function(t,e){return t.y0-e.y0})).each((function(t,r){var n=t.y0-t.by/2;t.offset=n-5([\s\S]*)<\/extra>/;function L(t,e,r){var i=r._fullLayout,a=e.hovermode,c=e.rotateLabels,f=e.bgColor,d=e.container,g=e.outerContainer,m=e.commonLabelOpts||{},w=e.fontFamily||y.HOVERFONT,T=e.fontSize||y.HOVERFONTSIZE,k=t[0],M=k.xa,C=k.ya,L="y"===a.charAt(0)?"yLabel":"xLabel",P=k[L],z=(String(P)||"").split(" ")[0],O=g.node().getBoundingClientRect(),D=O.top,R=O.width,F=O.height,B=void 0!==P&&k.distance<=e.hoverdistance&&("x"===a||"y"===a);if(B){var N,j,U=!0;for(N=0;Ni.width-E?(y=i.width-E,l.attr("d","M"+(E-A)+",0L"+E+","+_+A+"v"+_+(2*S+b.height)+"H-"+E+"V"+_+A+"H"+(E-2*A)+"Z")):l.attr("d","M0,0L"+A+","+_+A+"H"+(S+b.width/2)+"v"+_+(2*S+b.height)+"H-"+(S+b.width/2)+"V"+_+A+"H-"+A+"Z")}else{var L,I,z;"right"===C.side?(L="start",I=1,z="",y=M._offset+M._length):(L="end",I=-1,z="-",y=M._offset),x=C._offset+(k.y0+k.y1)/2,c.attr("text-anchor",L),l.attr("d","M0,0L"+z+A+","+A+"V"+(S+b.height/2)+"h"+z+(2*S+b.width)+"V-"+(S+b.height/2)+"H"+z+A+"V-"+A+"Z");var O,R=b.height/2,F=D-b.top-R,B="clip"+i._uid+"commonlabel"+C._id;if(y=0?et-=it:et+=2*S;var at=nt.height+2*S,ot=tt+at>=F;return at<=F&&(tt<=D?tt=C._offset+2*S:ot&&(tt=F-at)),rt.attr("transform",s(et,tt)),rt}var st=d.selectAll("g.hovertext").data(t,(function(t){return E(t)}));return st.enter().append("g").classed("hovertext",!0).each((function(){var t=n.select(this);t.append("rect").call(p.fill,p.addOpacity(f,.8)),t.append("text").classed("name",!0),t.append("path").style("stroke-width","1px"),t.append("text").classed("nums",!0).call(h.font,w,T)})),st.exit().remove(),st.each((function(t){var e=n.select(this).attr("transform",""),o=t.color;Array.isArray(o)&&(o=o[t.eventData[0].pointNumber]);var d=t.bgcolor||o,g=p.combine(p.opacity(d)?d:p.defaultLine,f),m=p.combine(p.opacity(o)?o:p.defaultLine,f),v=t.borderColor||p.contrast(g),y=I(t,B,a,i,P,e),x=y[0],b=y[1],k=e.select("text.nums").call(h.font,t.fontFamily||w,t.fontSize||T,t.fontColor||v).text(x).attr("data-notex",1).call(u.positionText,0,0).call(u.convertToTspans,r),M=e.select("text.name"),E=0,C=0;if(b&&b!==x){M.call(h.font,t.fontFamily||w,t.fontSize||T,m).text(b).attr("data-notex",1).call(u.positionText,0,0).call(u.convertToTspans,r);var L=M.node().getBoundingClientRect();E=L.width+2*S,C=L.height+2*S}else M.remove(),e.select("rect").remove();e.select("path").style({fill:g,stroke:v});var z,O,N=k.node().getBoundingClientRect(),j=t.xa._offset+(t.x0+t.x1)/2,U=t.ya._offset+(t.y0+t.y1)/2,V=Math.abs(t.x1-t.x0),q=Math.abs(t.y1-t.y0),H=N.width+A+S+E;if(t.ty0=D-N.top,t.bx=N.width+2*S,t.by=Math.max(N.height+2*S,C),t.anchor="start",t.txwidth=N.width,t.tx2width=E,t.offset=0,c)t.pos=j,z=U+q/2+H<=F,O=U-q/2-H>=0,"top"!==t.idealAlign&&z||!O?z?(U+=q/2,t.anchor="start"):t.anchor="middle":(U-=q/2,t.anchor="end");else if(t.pos=U,z=j+V/2+H<=R,O=j-V/2-H>=0,"left"!==t.idealAlign&&z||!O)if(z)j+=V/2,t.anchor="start";else{t.anchor="middle";var G=H/2,Y=j+G-R,W=j-G;Y>0&&(j-=Y),W<0&&(j+=-W)}else j-=V/2,t.anchor="end";k.attr("text-anchor",t.anchor),E&&M.attr("text-anchor",t.anchor),e.attr("transform",s(j,U)+(c?l(_):""))})),st}function I(t,e,r,n,i,a){var s="",l="";void 0!==t.nameOverride&&(t.name=t.nameOverride),t.name&&(t.trace._meta&&(t.name=o.templateString(t.name,t.trace._meta)),s=R(t.name,t.nameLength)),void 0!==t.zLabel?(void 0!==t.xLabel&&(l+="x: "+t.xLabel+"
    "),void 0!==t.yLabel&&(l+="y: "+t.yLabel+"
    "),"choropleth"!==t.trace.type&&"choroplethmapbox"!==t.trace.type&&(l+=(l?"z: ":"")+t.zLabel)):e&&t[r.charAt(0)+"Label"]===i?l=t[("x"===r.charAt(0)?"y":"x")+"Label"]||"":void 0===t.xLabel?void 0!==t.yLabel&&"scattercarpet"!==t.trace.type&&(l=t.yLabel):l=void 0===t.yLabel?t.xLabel:"("+t.xLabel+", "+t.yLabel+")",!t.text&&0!==t.text||Array.isArray(t.text)||(l+=(l?"
    ":"")+t.text),void 0!==t.extraText&&(l+=(l?"
    ":"")+t.extraText),a&&""===l&&!t.hovertemplate&&(""===s&&a.remove(),l=s);var c=n._d3locale,u=t.hovertemplate||!1,f=t.hovertemplateLabels||t,h=t.eventData[0]||{};return u&&(l=(l=o.hovertemplateString(u,f,c,h,t.trace._meta)).replace(C,(function(e,r){return s=R(r,t.nameLength),""}))),[l,s]}function P(t,e,r,i){var a=function(t){return t*r},o=function(t){return t*i};t.each((function(t){var r=n.select(this);if(t.del)return r.remove();var i=r.select("text.nums"),s=t.anchor,l="end"===s?-1:1,c={start:1,end:-1,middle:0}[s],f=c*(A+S),p=f+c*(t.txwidth+S),d=0,g=t.offset,m="middle"===s;m&&(f-=t.tx2width/2,p+=t.txwidth/2+S),e&&(g*=-M,d=t.offset*k),r.select("path").attr("d",m?"M-"+a(t.bx/2+t.tx2width/2)+","+o(g-t.by/2)+"h"+a(t.bx)+"v"+o(t.by)+"h-"+a(t.bx)+"Z":"M0,0L"+a(l*A+d)+","+o(A+g)+"v"+o(t.by/2-A)+"h"+a(l*t.bx)+"v-"+o(t.by)+"H"+a(l*A+d)+"V"+o(g-A)+"Z");var v=d+f,y=g+t.ty0-t.by/2+S,x=t.textAlign||"auto";"auto"!==x&&("left"===x&&"start"!==s?(i.attr("text-anchor","start"),v=m?-t.bx/2-t.tx2width/2+S:-t.bx-S):"right"===x&&"end"!==s&&(i.attr("text-anchor","end"),v=m?t.bx/2-t.tx2width/2-S:t.bx+S)),i.call(u.positionText,a(v),o(y)),t.tx2width&&(r.select("text.name").call(u.positionText,a(p+c*S+d),o(g+t.ty0-t.by/2+S)),r.select("rect").call(h.setRect,a(p+(c-1)*t.tx2width/2+d),o(g-t.by/2-1),a(t.tx2width),o(t.by+2)))}))}function z(t,e){var r=t.index,n=t.trace||{},a=t.cd[0],s=t.cd[r]||{};function l(t){return t||i(t)&&0===t}var c=Array.isArray(r)?function(t,e){var i=o.castOption(a,r,t);return l(i)?i:o.extractOption({},n,"",e)}:function(t,e){return o.extractOption(s,n,t,e)};function u(e,r,n){var i=c(r,n);l(i)&&(t[e]=i)}if(u("hoverinfo","hi","hoverinfo"),u("bgcolor","hbg","hoverlabel.bgcolor"),u("borderColor","hbc","hoverlabel.bordercolor"),u("fontFamily","htf","hoverlabel.font.family"),u("fontSize","hts","hoverlabel.font.size"),u("fontColor","htc","hoverlabel.font.color"),u("nameLength","hnl","hoverlabel.namelength"),u("textAlign","hta","hoverlabel.align"),t.posref="y"===e||"closest"===e&&"h"===n.orientation?t.xa._offset+(t.x0+t.x1)/2:t.ya._offset+(t.y0+t.y1)/2,t.x0=o.constrain(t.x0,0,t.xa._length),t.x1=o.constrain(t.x1,0,t.xa._length),t.y0=o.constrain(t.y0,0,t.ya._length),t.y1=o.constrain(t.y1,0,t.ya._length),void 0!==t.xLabelVal&&(t.xLabel="xLabel"in t?t.xLabel:g.hoverLabelText(t.xa,t.xLabelVal),t.xVal=t.xa.c2d(t.xLabelVal)),void 0!==t.yLabelVal&&(t.yLabel="yLabel"in t?t.yLabel:g.hoverLabelText(t.ya,t.yLabelVal),t.yVal=t.ya.c2d(t.yLabelVal)),void 0!==t.zLabelVal&&void 0===t.zLabel&&(t.zLabel=String(t.zLabelVal)),!(isNaN(t.xerr)||"log"===t.xa.type&&t.xerr<=0)){var f=g.tickText(t.xa,t.xa.c2l(t.xerr),"hover").text;void 0!==t.xerrneg?t.xLabel+=" +"+f+" / -"+g.tickText(t.xa,t.xa.c2l(t.xerrneg),"hover").text:t.xLabel+=" \xb1 "+f,"x"===e&&(t.distance+=1)}if(!(isNaN(t.yerr)||"log"===t.ya.type&&t.yerr<=0)){var h=g.tickText(t.ya,t.ya.c2l(t.yerr),"hover").text;void 0!==t.yerrneg?t.yLabel+=" +"+h+" / -"+g.tickText(t.ya,t.ya.c2l(t.yerrneg),"hover").text:t.yLabel+=" \xb1 "+h,"y"===e&&(t.distance+=1)}var p=t.hoverinfo||t.trace.hoverinfo;return p&&"all"!==p&&(-1===(p=Array.isArray(p)?p:p.split("+")).indexOf("x")&&(t.xLabel=void 0),-1===p.indexOf("y")&&(t.yLabel=void 0),-1===p.indexOf("z")&&(t.zLabel=void 0),-1===p.indexOf("text")&&(t.text=void 0),-1===p.indexOf("name")&&(t.name=void 0)),t}function O(t,e,r){var n,i,o=r.container,s=r.fullLayout,l=s._size,c=r.event,u=!!e.hLinePoint,f=!!e.vLinePoint;if(o.selectAll(".spikeline").remove(),f||u){var d=p.combine(s.plot_bgcolor,s.paper_bgcolor);if(u){var m,v,y=e.hLinePoint;n=y&&y.xa,"cursor"===(i=y&&y.ya).spikesnap?(m=c.pointerX,v=c.pointerY):(m=n._offset+y.x,v=i._offset+y.y);var x,b,_=a.readability(y.color,d)<1.5?p.contrast(d):y.color,w=i.spikemode,T=i.spikethickness,k=i.spikecolor||_,M=g.getPxPosition(t,i);if(-1!==w.indexOf("toaxis")||-1!==w.indexOf("across")){if(-1!==w.indexOf("toaxis")&&(x=M,b=m),-1!==w.indexOf("across")){var A=i._counterDomainMin,S=i._counterDomainMax;"free"===i.anchor&&(A=Math.min(A,i.position),S=Math.max(S,i.position)),x=l.l+A*l.w,b=l.l+S*l.w}o.insert("line",":first-child").attr({x1:x,x2:b,y1:v,y2:v,"stroke-width":T,stroke:k,"stroke-dasharray":h.dashStyle(i.spikedash,T)}).classed("spikeline",!0).classed("crisp",!0),o.insert("line",":first-child").attr({x1:x,x2:b,y1:v,y2:v,"stroke-width":T+2,stroke:d}).classed("spikeline",!0).classed("crisp",!0)}-1!==w.indexOf("marker")&&o.insert("circle",":first-child").attr({cx:M+("right"!==i.side?T:-T),cy:v,r:T,fill:k}).classed("spikeline",!0)}if(f){var E,C,L=e.vLinePoint;n=L&&L.xa,i=L&&L.ya,"cursor"===n.spikesnap?(E=c.pointerX,C=c.pointerY):(E=n._offset+L.x,C=i._offset+L.y);var I,P,z=a.readability(L.color,d)<1.5?p.contrast(d):L.color,O=n.spikemode,D=n.spikethickness,R=n.spikecolor||z,F=g.getPxPosition(t,n);if(-1!==O.indexOf("toaxis")||-1!==O.indexOf("across")){if(-1!==O.indexOf("toaxis")&&(I=F,P=C),-1!==O.indexOf("across")){var B=n._counterDomainMin,N=n._counterDomainMax;"free"===n.anchor&&(B=Math.min(B,n.position),N=Math.max(N,n.position)),I=l.t+(1-N)*l.h,P=l.t+(1-B)*l.h}o.insert("line",":first-child").attr({x1:E,x2:E,y1:I,y2:P,"stroke-width":D,stroke:R,"stroke-dasharray":h.dashStyle(n.spikedash,D)}).classed("spikeline",!0).classed("crisp",!0),o.insert("line",":first-child").attr({x1:E,x2:E,y1:I,y2:P,"stroke-width":D+2,stroke:d}).classed("spikeline",!0).classed("crisp",!0)}-1!==O.indexOf("marker")&&o.insert("circle",":first-child").attr({cx:E,cy:F-("top"!==n.side?D:-D),r:D,fill:R}).classed("spikeline",!0)}}}function D(t,e){return!e||(e.vLinePoint!==t._spikepoints.vLinePoint||e.hLinePoint!==t._spikepoints.hLinePoint)}function R(t,e){return u.plainText(t||"",{len:e,allowedTags:["br","sub","sup","b","i","em"]})}},{"../../lib":778,"../../lib/events":767,"../../lib/override_cursor":789,"../../lib/svg_text_utils":803,"../../plots/cartesian/axes":828,"../../registry":911,"../color":643,"../dragelement":662,"../drawing":665,"../legend/defaults":695,"../legend/draw":696,"./constants":677,"./helpers":679,d3:169,"fast-isnumeric":241,tinycolor2:576}],681:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../color"),a=t("./helpers").isUnifiedHover;e.exports=function(t,e,r,o){function s(t){o.font[t]||(o.font[t]=e.legend?e.legend.font[t]:e.font[t])}o=o||{},e&&a(e.hovermode)&&(o.font||(o.font={}),s("size"),s("family"),s("color"),e.legend?(o.bgcolor||(o.bgcolor=i.combine(e.legend.bgcolor,e.paper_bgcolor)),o.bordercolor||(o.bordercolor=e.legend.bordercolor)):o.bgcolor||(o.bgcolor=e.paper_bgcolor)),r("hoverlabel.bgcolor",o.bgcolor),r("hoverlabel.bordercolor",o.bordercolor),r("hoverlabel.namelength",o.namelength),n.coerceFont(r,"hoverlabel.font",o.font),r("hoverlabel.align",o.align)}},{"../../lib":778,"../color":643,"./helpers":679}],682:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./layout_attributes");e.exports=function(t,e,r){function a(r,a){return void 0!==e[r]?e[r]:n.coerce(t,e,i,r,a)}var o,s=a("clickmode");return e._has("cartesian")?s.indexOf("select")>-1?o="closest":(e._isHoriz=function(t,e){for(var r=e._scatterStackOpts||{},n=0;n1){if(!h&&!p&&!d)"independent"===k("pattern")&&(h=!0);m._hasSubplotGrid=h;var x,b,_="top to bottom"===k("roworder"),w=h?.2:.1,T=h?.3:.1;g&&e._splomGridDflt&&(x=e._splomGridDflt.xside,b=e._splomGridDflt.yside),m._domains={x:u("x",k,w,x,y),y:u("y",k,T,b,v,_)}}else delete e.grid}function k(t,e){return n.coerce(r,m,l,t,e)}},contentDefaults:function(t,e){var r=e.grid;if(r&&r._domains){var n,i,a,o,s,l,u,h=t.grid||{},p=e._subplots,d=r._hasSubplotGrid,g=r.rows,m=r.columns,v="independent"===r.pattern,y=r._axisMap={};if(d){var x=h.subplots||[];l=r.subplots=new Array(g);var b=1;for(n=0;n1);if(!1!==g||c.uirevision){var m=a.newContainer(e,"legend");if(_("uirevision",e.uirevision),!1!==g){_("bgcolor",e.paper_bgcolor),_("bordercolor"),_("borderwidth"),i.coerceFont(_,"font",e.font);var v,y,x,b=_("orientation");"h"===b?(v=0,n.getComponentMethod("rangeslider","isVisible")(t.xaxis)?(y=1.1,x="bottom"):(y=-.1,x="top")):(v=1.02,y=1,x="auto"),_("traceorder",h),l.isGrouped(e.legend)&&_("tracegroupgap"),_("itemsizing"),_("itemwidth"),_("itemclick"),_("itemdoubleclick"),_("x",v),_("xanchor"),_("y",y),_("yanchor",x),_("valign"),i.noneOrAll(c,m,["x","y"]),_("title.text")&&(_("title.side","h"===b?"left":"top"),i.coerceFont(_,"title.font",e.font))}}function _(t,e){return i.coerce(c,m,o,t,e)}}},{"../../lib":778,"../../plot_api/plot_template":817,"../../plots/layout_attributes":882,"../../registry":911,"./attributes":693,"./helpers":699}],696:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../lib"),a=t("../../plots/plots"),o=t("../../registry"),s=t("../../lib/events"),l=t("../dragelement"),c=t("../drawing"),u=t("../color"),f=t("../../lib/svg_text_utils"),h=t("./handle_click"),p=t("./constants"),d=t("../../constants/alignment"),g=d.LINE_SPACING,m=d.FROM_TL,v=d.FROM_BR,y=t("./get_legend_data"),x=t("./style"),b=t("./helpers");function _(t,e,r,n,i){var a=r.data()[0][0].trace,l={event:i,node:r.node(),curveNumber:a.index,expandedIndex:a._expandedIndex,data:t.data,layout:t.layout,frames:t._transitionData._frames,config:t._context,fullData:t._fullData,fullLayout:t._fullLayout};if(a._group&&(l.group=a._group),o.traceIs(a,"pie-like")&&(l.label=r.datum()[0].label),!1!==s.triggerHandler(t,"plotly_legendclick",l))if(1===n)e._clickTimeout=setTimeout((function(){h(r,t,n)}),t._context.doubleClickDelay);else if(2===n){e._clickTimeout&&clearTimeout(e._clickTimeout),t._legendMouseDownTime=0,!1!==s.triggerHandler(t,"plotly_legenddoubleclick",l)&&h(r,t,n)}}function w(t,e,r){var n,a=t.data()[0][0],s=a.trace,l=o.traceIs(s,"pie-like"),u=s.index,h=r._main&&e._context.edits.legendText&&!l,d=r._maxNameLength;r.entries?n=a.text:(n=l?a.label:s.name,s._meta&&(n=i.templateString(n,s._meta)));var g=i.ensureSingle(t,"text","legendtext");g.attr("text-anchor","start").call(c.font,r.font).text(h?T(n,d):n);var m=r.itemwidth+2*p.itemGap;f.positionText(g,m,0),h?g.call(f.makeEditable,{gd:e,text:n}).call(M,t,e,r).on("edit",(function(n){this.text(T(n,d)).call(M,t,e,r);var s=a.trace._fullInput||{},l={};if(o.hasTransform(s,"groupby")){var c=o.getTransformIndices(s,"groupby"),f=c[c.length-1],h=i.keyedContainer(s,"transforms["+f+"].styles","target","value.name");h.set(a.trace._group,n),l=h.constructUpdate()}else l.name=n;return o.call("_guiRestyle",e,l,u)})):M(g,t,e,r)}function T(t,e){var r=Math.max(4,e);if(t&&t.trim().length>=r/2)return t;for(var n=r-(t=t||"").length;n>0;n--)t+=" ";return t}function k(t,e){var r,a=e._context.doubleClickDelay,o=1,s=i.ensureSingle(t,"rect","legendtoggle",(function(t){e._context.staticPlot||t.style("cursor","pointer").attr("pointer-events","all"),t.call(u.fill,"rgba(0,0,0,0)")}));e._context.staticPlot||(s.on("mousedown",(function(){(r=(new Date).getTime())-e._legendMouseDownTimea&&(o=Math.max(o-1,1)),_(e,r,t,o,n.event)}})))}function M(t,e,r,n){n._main||t.attr("data-notex",!0),f.convertToTspans(t,r,(function(){!function(t,e,r){var n=t.data()[0][0];if(r._main&&n&&!n.trace.showlegend)return void t.remove();var i=t.select("g[class*=math-group]"),a=i.node();r||(r=e._fullLayout.legend);var o,s,l=r.borderwidth,u=(n?r:r.title).font.size*g;if(a){var h=c.bBox(a);o=h.height,s=h.width,n?c.setTranslate(i,0,.25*o):c.setTranslate(i,l,.75*o+l)}else{var d=t.select(n?".legendtext":".legendtitletext"),m=f.lineCount(d),v=d.node();o=u*m,s=v?c.bBox(v).width:0;var y=u*((m-1)/2-.3);if(n){var x=r.itemwidth+2*p.itemGap;f.positionText(d,x,-y)}else f.positionText(d,p.titlePad+l,u+l)}n?(n.lineHeight=u,n.height=Math.max(o,16)+3,n.width=s):(r._titleWidth=s,r._titleHeight=o)}(e,r,n)}))}function A(t){return i.isRightAnchor(t)?"right":i.isCenterAnchor(t)?"center":"left"}function S(t){return i.isBottomAnchor(t)?"bottom":i.isMiddleAnchor(t)?"middle":"top"}e.exports=function(t,e){var r,s=t._fullLayout,f="legend"+s._uid;if(e?(r=e.layer,f+="-hover"):((e=s.legend||{})._main=!0,r=s._infolayer),r){var h;if(t._legendMouseDownTime||(t._legendMouseDownTime=0),e._main){if(!t.calcdata)return;h=s.showlegend&&y(t.calcdata,e)}else{if(!e.entries)return;h=y(e.entries,e)}var d=s.hiddenlabels||[];if(e._main&&(!s.showlegend||!h.length))return r.selectAll(".legend").remove(),s._topdefs.select("#"+f).remove(),a.autoMargin(t,"legend");var g=i.ensureSingle(r,"g","legend",(function(t){e._main&&t.attr("pointer-events","all")})),T=i.ensureSingleById(s._topdefs,"clipPath",f,(function(t){t.append("rect")})),E=i.ensureSingle(g,"rect","bg",(function(t){t.attr("shape-rendering","crispEdges")}));E.call(u.stroke,e.bordercolor).call(u.fill,e.bgcolor).style("stroke-width",e.borderwidth+"px");var C=i.ensureSingle(g,"g","scrollbox"),L=e.title;if(e._titleWidth=0,e._titleHeight=0,L.text){var I=i.ensureSingle(C,"text","legendtitletext");I.attr("text-anchor","start").call(c.font,L.font).text(L.text),M(I,C,t,e)}else C.selectAll(".legendtitletext").remove();var P=i.ensureSingle(g,"rect","scrollbar",(function(t){t.attr(p.scrollBarEnterAttrs).call(u.fill,p.scrollBarColor)})),z=C.selectAll("g.groups").data(h);z.enter().append("g").attr("class","groups"),z.exit().remove();var O=z.selectAll("g.traces").data(i.identity);O.enter().append("g").attr("class","traces"),O.exit().remove(),O.style("opacity",(function(t){var e=t[0].trace;return o.traceIs(e,"pie-like")?-1!==d.indexOf(t[0].label)?.5:1:"legendonly"===e.visible?.5:1})).each((function(){n.select(this).call(w,t,e)})).call(x,t,e).each((function(){e._main&&n.select(this).call(k,t)})),i.syncOrAsync([a.previousPromises,function(){return function(t,e,r,i){var a=t._fullLayout;i||(i=a.legend);var o=a._size,s=b.isVertical(i),l=b.isGrouped(i),u=i.borderwidth,f=2*u,h=p.itemGap,d=i.itemwidth+2*h,g=2*(u+h),m=S(i),v=i.y<0||0===i.y&&"top"===m,y=i.y>1||1===i.y&&"bottom"===m;i._maxHeight=Math.max(v||y?a.height/2:o.h,30);var x=0;i._width=0,i._height=0;var _=function(t){var e=0,r=0,n=t.title.side;n&&(-1!==n.indexOf("left")&&(e=t._titleWidth),-1!==n.indexOf("top")&&(r=t._titleHeight));return[e,r]}(i);if(s)r.each((function(t){var e=t[0].height;c.setTranslate(this,u+_[0],u+_[1]+i._height+e/2+h),i._height+=e,i._width=Math.max(i._width,t[0].width)})),x=d+i._width,i._width+=h+d+f,i._height+=g,l&&(e.each((function(t,e){c.setTranslate(this,0,e*i.tracegroupgap)})),i._height+=(i._lgroupsLength-1)*i.tracegroupgap);else{var w=A(i),T=i.x<0||0===i.x&&"right"===w,k=i.x>1||1===i.x&&"left"===w,M=y||v,E=a.width/2;i._maxWidth=Math.max(T?M&&"left"===w?o.l+o.w:E:k?M&&"right"===w?o.r+o.w:E:o.w,2*d);var C=0,L=0;r.each((function(t){var e=t[0].width+d;C=Math.max(C,e),L+=e})),x=null;var I=0;if(l){var P=0,z=0,O=0;e.each((function(){var t=0,e=0;n.select(this).selectAll("g.traces").each((function(r){var n=r[0].height;c.setTranslate(this,_[0],_[1]+u+h+n/2+e),e+=n,t=Math.max(t,d+r[0].width)})),P=Math.max(P,e);var r=t+h;r+u+z>i._maxWidth&&(I=Math.max(I,z),z=0,O+=P+i.tracegroupgap,P=e),c.setTranslate(this,z,O),z+=r})),i._width=Math.max(I,z)+u,i._height=O+P+g}else{var D=r.size(),R=L+f+(D-1)*h=i._maxWidth&&(I=Math.max(I,j),B=0,N+=F,i._height+=F,F=0),c.setTranslate(this,_[0]+u+B,_[1]+u+N+e/2+h),j=B+r+h,B+=n,F=Math.max(F,e)})),R?(i._width=B+f,i._height=F+g):(i._width=Math.max(I,j)+f,i._height+=F+g)}}i._width=Math.ceil(Math.max(i._width+_[0],i._titleWidth+2*(u+p.titlePad))),i._height=Math.ceil(Math.max(i._height+_[1],i._titleHeight+2*(u+p.itemGap))),i._effHeight=Math.min(i._height,i._maxHeight);var U=t._context.edits,V=U.legendText||U.legendPosition;r.each((function(t){var e=n.select(this).select(".legendtoggle"),r=t[0].height,i=V?d:x||d+t[0].width;s||(i+=h/2),c.setRect(e,0,-r/2,i,r)}))}(t,z,O,e)},function(){if(!e._main||!function(t){var e=t._fullLayout.legend,r=A(e),n=S(e);return a.autoMargin(t,"legend",{x:e.x,y:e.y,l:e._width*m[r],r:e._width*v[r],b:e._effHeight*v[n],t:e._effHeight*m[n]})}(t)){var u,h,d,y,x=s._size,b=e.borderwidth,w=x.l+x.w*e.x-m[A(e)]*e._width,k=x.t+x.h*(1-e.y)-m[S(e)]*e._effHeight;if(e._main&&s.margin.autoexpand){var M=w,L=k;w=i.constrain(w,0,s.width-e._width),k=i.constrain(k,0,s.height-e._effHeight),w!==M&&i.log("Constrain legend.x to make legend fit inside graph"),k!==L&&i.log("Constrain legend.y to make legend fit inside graph")}if(e._main&&c.setTranslate(g,w,k),P.on(".drag",null),g.on("wheel",null),!e._main||e._height<=e._maxHeight||t._context.staticPlot){var I=e._effHeight;e._main||(I=e._height),E.attr({width:e._width-b,height:I-b,x:b/2,y:b/2}),c.setTranslate(C,0,0),T.select("rect").attr({width:e._width-2*b,height:I-2*b,x:b,y:b}),c.setClipUrl(C,f,t),c.setRect(P,0,0,0,0),delete e._scrollY}else{var z,O,D,R=Math.max(p.scrollBarMinHeight,e._effHeight*e._effHeight/e._height),F=e._effHeight-R-2*p.scrollBarMargin,B=e._height-e._effHeight,N=F/B,j=Math.min(e._scrollY||0,B);E.attr({width:e._width-2*b+p.scrollBarWidth+p.scrollBarMargin,height:e._effHeight-b,x:b/2,y:b/2}),T.select("rect").attr({width:e._width-2*b+p.scrollBarWidth+p.scrollBarMargin,height:e._effHeight-2*b,x:b,y:b+j}),c.setClipUrl(C,f,t),q(j,R,N),g.on("wheel",(function(){q(j=i.constrain(e._scrollY+n.event.deltaY/F*B,0,B),R,N),0!==j&&j!==B&&n.event.preventDefault()}));var U=n.behavior.drag().on("dragstart",(function(){var t=n.event.sourceEvent;z="touchstart"===t.type?t.changedTouches[0].clientY:t.clientY,D=j})).on("drag",(function(){var t=n.event.sourceEvent;2===t.buttons||t.ctrlKey||(O="touchmove"===t.type?t.changedTouches[0].clientY:t.clientY,q(j=function(t,e,r){var n=(r-e)/N+t;return i.constrain(n,0,B)}(D,z,O),R,N))}));P.call(U);var V=n.behavior.drag().on("dragstart",(function(){var t=n.event.sourceEvent;"touchstart"===t.type&&(z=t.changedTouches[0].clientY,D=j)})).on("drag",(function(){var t=n.event.sourceEvent;"touchmove"===t.type&&(O=t.changedTouches[0].clientY,q(j=function(t,e,r){var n=(e-r)/N+t;return i.constrain(n,0,B)}(D,z,O),R,N))}));C.call(V)}if(t._context.edits.legendPosition)g.classed("cursor-move",!0),l.init({element:g.node(),gd:t,prepFn:function(){var t=c.getTranslate(g);d=t.x,y=t.y},moveFn:function(t,r){var n=d+t,i=y+r;c.setTranslate(g,n,i),u=l.align(n,0,x.l,x.l+x.w,e.xanchor),h=l.align(i,0,x.t+x.h,x.t,e.yanchor)},doneFn:function(){void 0!==u&&void 0!==h&&o.call("_guiRelayout",t,{"legend.x":u,"legend.y":h})},clickFn:function(e,n){var i=r.selectAll("g.traces").filter((function(){var t=this.getBoundingClientRect();return n.clientX>=t.left&&n.clientX<=t.right&&n.clientY>=t.top&&n.clientY<=t.bottom}));i.size()>0&&_(t,g,i,e,n)}})}function q(r,n,i){e._scrollY=t._fullLayout.legend._scrollY=r,c.setTranslate(C,0,-r),c.setRect(P,e._width,p.scrollBarMargin+r*i,p.scrollBarWidth,n),T.select("rect").attr("y",b+r)}}],t)}}},{"../../constants/alignment":745,"../../lib":778,"../../lib/events":767,"../../lib/svg_text_utils":803,"../../plots/plots":891,"../../registry":911,"../color":643,"../dragelement":662,"../drawing":665,"./constants":694,"./get_legend_data":697,"./handle_click":698,"./helpers":699,"./style":701,d3:169}],697:[function(t,e,r){"use strict";var n=t("../../registry"),i=t("./helpers");e.exports=function(t,e){var r,a,o={},s=[],l=!1,c={},u=0,f=0,h=e._main;function p(t,r){if(""!==t&&i.isGrouped(e))-1===s.indexOf(t)?(s.push(t),l=!0,o[t]=[[r]]):o[t].push([r]);else{var n="~~i"+u;s.push(n),o[n]=[[r]],u++}}for(r=0;r0))return 0;i=e.width}return m?n:Math.min(i,r)};function _(t,e,r){var a=t[0].trace,o=a.marker||{},s=o.line||{},c=r?a.visible&&a.type===r:i.traceIs(a,"bar"),u=n.select(e).select("g.legendpoints").selectAll("path.legend"+r).data(c?[t]:[]);u.enter().append("path").classed("legend"+r,!0).attr("d","M6,6H-6V-6H6Z").attr("transform",x),u.exit().remove(),u.each((function(t){var e=n.select(this),r=t[0],i=b(r.mlw,o.line,5,2);e.style("stroke-width",i+"px").call(l.fill,r.mc||o.color),i&&l.stroke(e,r.mlc||s.color)}))}function w(t,e,r){var o=t[0],s=o.trace,l=r?s.visible&&s.type===r:i.traceIs(s,r),c=n.select(e).select("g.legendpoints").selectAll("path.legend"+r).data(l?[t]:[]);if(c.enter().append("path").classed("legend"+r,!0).attr("d","M6,6H-6V-6H6Z").attr("transform",x),c.exit().remove(),c.size()){var u=(s.marker||{}).line,p=b(h(u.width,o.pts),u,5,2),d=a.minExtend(s,{marker:{line:{width:p}}});d.marker.line.color=u.color;var g=a.minExtend(o,{trace:d});f(c,g,d)}}t.each((function(t){var e=n.select(this),i=a.ensureSingle(e,"g","layers");i.style("opacity",t[0].trace.opacity);var s=r.valign,l=t[0].lineHeight,c=t[0].height;if("middle"!==s&&l&&c){var u={top:1,bottom:-1}[s]*(.5*(l-c+3));i.attr("transform",o(0,u))}else i.attr("transform",null);i.selectAll("g.legendfill").data([t]).enter().append("g").classed("legendfill",!0),i.selectAll("g.legendlines").data([t]).enter().append("g").classed("legendlines",!0);var f=i.selectAll("g.legendsymbols").data([t]);f.enter().append("g").classed("legendsymbols",!0),f.selectAll("g.legendpoints").data([t]).enter().append("g").classed("legendpoints",!0)})).each((function(t){var r,i=t[0].trace,o=[];if(i.visible)switch(i.type){case"histogram2d":case"heatmap":o=[["M-15,-2V4H15V-2Z"]],r=!0;break;case"choropleth":case"choroplethmapbox":o=[["M-6,-6V6H6V-6Z"]],r=!0;break;case"densitymapbox":o=[["M-6,0 a6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0"]],r="radial";break;case"cone":o=[["M-6,2 A2,2 0 0,0 -6,6 V6L6,4Z"],["M-6,-6 A2,2 0 0,0 -6,-2 L6,-4Z"],["M-6,-2 A2,2 0 0,0 -6,2 L6,0Z"]],r=!1;break;case"streamtube":o=[["M-6,2 A2,2 0 0,0 -6,6 H6 A2,2 0 0,1 6,2 Z"],["M-6,-6 A2,2 0 0,0 -6,-2 H6 A2,2 0 0,1 6,-6 Z"],["M-6,-2 A2,2 0 0,0 -6,2 H6 A2,2 0 0,1 6,-2 Z"]],r=!1;break;case"surface":o=[["M-6,-6 A2,3 0 0,0 -6,0 H6 A2,3 0 0,1 6,-6 Z"],["M-6,1 A2,3 0 0,1 -6,6 H6 A2,3 0 0,0 6,0 Z"]],r=!0;break;case"mesh3d":o=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6H6L0,6Z"]],r=!1;break;case"volume":o=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6H6L0,6Z"]],r=!0;break;case"isosurface":o=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6 A12,24 0 0,0 6,-6 L0,6Z"]],r=!1}var u=n.select(this).select("g.legendpoints").selectAll("path.legend3dandfriends").data(o);u.enter().append("path").classed("legend3dandfriends",!0).attr("transform",x).style("stroke-miterlimit",1),u.exit().remove(),u.each((function(t,o){var u,f=n.select(this),h=c(i),p=h.colorscale,g=h.reversescale;if(p){if(!r){var m=p.length;u=0===o?p[g?m-1:0][1]:1===o?p[g?0:m-1][1]:p[Math.floor((m-1)/2)][1]}}else{var v=i.vertexcolor||i.facecolor||i.color;u=a.isArrayOrTypedArray(v)?v[o]||v[0]:v}f.attr("d",t[0]),u?f.call(l.fill,u):f.call((function(t){if(t.size()){var n="legendfill-"+i.uid;s.gradient(t,e,n,d(g,"radial"===r),p,"fill")}}))}))})).each((function(t){var e=t[0].trace,r="waterfall"===e.type;if(t[0]._distinct&&r){var i=t[0].trace[t[0].dir].marker;return t[0].mc=i.color,t[0].mlw=i.line.width,t[0].mlc=i.line.color,_(t,this,"waterfall")}var a=[];e.visible&&r&&(a=t[0].hasTotals?[["increasing","M-6,-6V6H0Z"],["totals","M6,6H0L-6,-6H-0Z"],["decreasing","M6,6V-6H0Z"]]:[["increasing","M-6,-6V6H6Z"],["decreasing","M6,6V-6H-6Z"]]);var o=n.select(this).select("g.legendpoints").selectAll("path.legendwaterfall").data(a);o.enter().append("path").classed("legendwaterfall",!0).attr("transform",x).style("stroke-miterlimit",1),o.exit().remove(),o.each((function(t){var r=n.select(this),i=e[t[0]].marker,a=b(void 0,i.line,5,2);r.attr("d",t[1]).style("stroke-width",a+"px").call(l.fill,i.color),a&&r.call(l.stroke,i.line.color)}))})).each((function(t){_(t,this,"funnel")})).each((function(t){_(t,this)})).each((function(t){var r=t[0].trace,o=n.select(this).select("g.legendpoints").selectAll("path.legendbox").data(r.visible&&i.traceIs(r,"box-violin")?[t]:[]);o.enter().append("path").classed("legendbox",!0).attr("d","M6,6H-6V-6H6Z").attr("transform",x),o.exit().remove(),o.each((function(){var t=n.select(this);if("all"!==r.boxpoints&&"all"!==r.points||0!==l.opacity(r.fillcolor)||0!==l.opacity((r.line||{}).color)){var i=b(void 0,r.line,5,2);t.style("stroke-width",i+"px").call(l.fill,r.fillcolor),i&&l.stroke(t,r.line.color)}else{var c=a.minExtend(r,{marker:{size:m?12:a.constrain(r.marker.size,2,16),sizeref:1,sizemin:1,sizemode:"diameter"}});o.call(s.pointStyle,c,e)}}))})).each((function(t){w(t,this,"funnelarea")})).each((function(t){w(t,this,"pie")})).each((function(t){var r,i,o=t[0],l=o.trace,f=l.visible&&l.fill&&"none"!==l.fill,h=u.hasLines(l),p=l.contours,g=!1,m=!1,y=c(l),x=y.colorscale,_=y.reversescale;if(p){var w=p.coloring;"lines"===w?g=!0:h="none"===w||"heatmap"===w||p.showlines,"constraint"===p.type?f="="!==p._operation:"fill"!==w&&"heatmap"!==w||(m=!0)}var T=u.hasMarkers(l)||u.hasText(l),k=f||m,M=h||g,A=T||!k?"M5,0":M?"M5,-2":"M5,-3",S=n.select(this),E=S.select(".legendfill").selectAll("path").data(f||m?[t]:[]);if(E.enter().append("path").classed("js-fill",!0),E.exit().remove(),E.attr("d",A+"h"+v+"v6h-"+v+"z").call(f?s.fillGroupStyle:function(t){if(t.size()){var r="legendfill-"+l.uid;s.gradient(t,e,r,d(_),x,"fill")}}),h||g){var C=b(void 0,l.line,10,5);i=a.minExtend(l,{line:{width:C}}),r=[a.minExtend(o,{trace:i})]}var L=S.select(".legendlines").selectAll("path").data(h||g?[r]:[]);L.enter().append("path").classed("js-line",!0),L.exit().remove(),L.attr("d",A+(g?"l"+v+",0.0001":"h"+v)).call(h?s.lineGroupStyle:function(t){if(t.size()){var r="legendline-"+l.uid;s.lineGroupStyle(t),s.gradient(t,e,r,d(_),x,"stroke")}})})).each((function(t){var r,i,o=t[0],l=o.trace,c=u.hasMarkers(l),f=u.hasText(l),h=u.hasLines(l);function p(t,e,r,n){var i=a.nestedProperty(l,t).get(),o=a.isArrayOrTypedArray(i)&&e?e(i):i;if(m&&o&&void 0!==n&&(o=n),r){if(or[1])return r[1]}return o}function d(t){return o._distinct&&o.index&&t[o.index]?t[o.index]:t[0]}if(c||f||h){var g={},v={};if(c){g.mc=p("marker.color",d),g.mx=p("marker.symbol",d),g.mo=p("marker.opacity",a.mean,[.2,1]),g.mlc=p("marker.line.color",d),g.mlw=p("marker.line.width",a.mean,[0,5],2),v.marker={sizeref:1,sizemin:1,sizemode:"diameter"};var y=p("marker.size",a.mean,[2,16],12);g.ms=y,v.marker.size=y}h&&(v.line={width:p("line.width",d,[0,10],5)}),f&&(g.tx="Aa",g.tp=p("textposition",d),g.ts=10,g.tc=p("textfont.color",d),g.tf=p("textfont.family",d)),r=[a.minExtend(o,g)],(i=a.minExtend(l,v)).selectedpoints=null,i.texttemplate=null}var b=n.select(this).select("g.legendpoints"),_=b.selectAll("path.scatterpts").data(c?r:[]);_.enter().insert("path",":first-child").classed("scatterpts",!0).attr("transform",x),_.exit().remove(),_.call(s.pointStyle,i,e),c&&(r[0].mrc=3);var w=b.selectAll("g.pointtext").data(f?r:[]);w.enter().append("g").classed("pointtext",!0).append("text").attr("transform",x),w.exit().remove(),w.selectAll("text").call(s.textPointStyle,i,e)})).each((function(t){var e=t[0].trace,r=n.select(this).select("g.legendpoints").selectAll("path.legendcandle").data(e.visible&&"candlestick"===e.type?[t,t]:[]);r.enter().append("path").classed("legendcandle",!0).attr("d",(function(t,e){return e?"M-15,0H-8M-8,6V-6H8Z":"M15,0H8M8,-6V6H-8Z"})).attr("transform",x).style("stroke-miterlimit",1),r.exit().remove(),r.each((function(t,r){var i=n.select(this),a=e[r?"increasing":"decreasing"],o=b(void 0,a.line,5,2);i.style("stroke-width",o+"px").call(l.fill,a.fillcolor),o&&l.stroke(i,a.line.color)}))})).each((function(t){var e=t[0].trace,r=n.select(this).select("g.legendpoints").selectAll("path.legendohlc").data(e.visible&&"ohlc"===e.type?[t,t]:[]);r.enter().append("path").classed("legendohlc",!0).attr("d",(function(t,e){return e?"M-15,0H0M-8,-6V0":"M15,0H0M8,6V0"})).attr("transform",x).style("stroke-miterlimit",1),r.exit().remove(),r.each((function(t,r){var i=n.select(this),a=e[r?"increasing":"decreasing"],o=b(void 0,a.line,5,2);i.style("fill","none").call(s.dashLine,a.line.dash,o),o&&l.stroke(i,a.line.color)}))}))}},{"../../lib":778,"../../registry":911,"../../traces/pie/helpers":1166,"../../traces/pie/style_one":1172,"../../traces/scatter/subtypes":1212,"../color":643,"../colorscale/helpers":654,"../drawing":665,"./constants":694,d3:169}],702:[function(t,e,r){"use strict";var n=t("../../registry"),i=t("../../plots/plots"),a=t("../../plots/cartesian/axis_ids"),o=t("../../fonts/ploticon"),s=t("../shapes/draw").eraseActiveShape,l=t("../../lib"),c=l._,u=e.exports={};function f(t,e){var r,i,o=e.currentTarget,s=o.getAttribute("data-attr"),l=o.getAttribute("data-val")||!0,c=t._fullLayout,u={},f=a.list(t,null,!0),h=c._cartesianSpikesEnabled;if("zoom"===s){var p,d="in"===l?.5:2,g=(1+d)/2,m=(1-d)/2;for(i=0;i1?(E=["toggleHover"],C=["resetViews"]):d?(S=["zoomInGeo","zoomOutGeo"],E=["hoverClosestGeo"],C=["resetGeo"]):p?(E=["hoverClosest3d"],C=["resetCameraDefault3d","resetCameraLastSave3d"]):x?(S=["zoomInMapbox","zoomOutMapbox"],E=["toggleHover"],C=["resetViewMapbox"]):v?E=["hoverClosestGl2d"]:g?E=["hoverClosestPie"]:_?(E=["hoverClosestCartesian","hoverCompareCartesian"],C=["resetViewSankey"]):E=["toggleHover"];h&&(E=["toggleSpikelines","hoverClosestCartesian","hoverCompareCartesian"]);(function(t){for(var e=0;e0)){var g=function(t,e,r){for(var n=r.filter((function(r){return e[r].anchor===t._id})),i=0,a=0;a=n.max)e=F[r+1];else if(t=n.pmax)e=F[r+1];else if(t0?h+c:c;return{ppad:c,ppadplus:u?d:g,ppadminus:u?g:d}}return{ppad:c}}function u(t,e,r,n,i){var s="category"===t.type||"multicategory"===t.type?t.r2c:t.d2c;if(void 0!==e)return[s(e),s(r)];if(n){var l,c,u,f,h=1/0,p=-1/0,d=n.match(a.segmentRE);for("date"===t.type&&(s=o.decodeDate(s)),l=0;lp&&(p=f)));return p>=h?[h,p]:void 0}}e.exports=function(t){var e=t._fullLayout,r=n.filterVisible(e.shapes);if(r.length&&t._fullData.length)for(var o=0;oy?(k=f,E="y0",M=y,C="y1"):(k=y,E="y1",M=f,C="y0");Z(n),Q(s,r),function(t,e,r){var n=e.xref,i=e.yref,o=a.getFromId(r,n),s=a.getFromId(r,i),l="";"paper"===n||o.autorange||(l+=n);"paper"===i||s.autorange||(l+=i);u.setClipUrl(t,l?"clip"+r._fullLayout._uid+l:null,r)}(e,r,t),X.moveFn="move"===z?J:K,X.altKey=n.altKey},doneFn:function(){if(v(t))return;p(e),$(s),b(e,t,r),n.call("_guiRelayout",t,l.getUpdateObj())},clickFn:function(){if(v(t))return;$(s)}};function Z(r){if(v(t))z=null;else if(R)z="path"===r.target.tagName?"move":"start-point"===r.target.attributes["data-line-point"].value?"resize-over-start-point":"resize-over-end-point";else{var n=X.element.getBoundingClientRect(),i=n.right-n.left,a=n.bottom-n.top,o=r.clientX-n.left,s=r.clientY-n.top,l=!F&&i>10&&a>10&&!r.shiftKey?h.getCursor(o/i,1-s/a):"move";p(e,l),z=l.split("-")[0]}}function J(n,i){if("path"===r.type){var a=function(t){return t},o=a,l=a;O?B("xanchor",r.xanchor=G(x+n)):(o=function(t){return G(q(t)+n)},N&&"date"===N.type&&(o=g.encodeDate(o))),D?B("yanchor",r.yanchor=Y(T+i)):(l=function(t){return Y(H(t)+i)},U&&"date"===U.type&&(l=g.encodeDate(l))),B("path",r.path=w(P,o,l))}else O?B("xanchor",r.xanchor=G(x+n)):(B("x0",r.x0=G(c+n)),B("x1",r.x1=G(m+n))),D?B("yanchor",r.yanchor=Y(T+i)):(B("y0",r.y0=Y(f+i)),B("y1",r.y1=Y(y+i)));e.attr("d",_(t,r)),Q(s,r)}function K(n,i){if(F){var a=function(t){return t},o=a,l=a;O?B("xanchor",r.xanchor=G(x+n)):(o=function(t){return G(q(t)+n)},N&&"date"===N.type&&(o=g.encodeDate(o))),D?B("yanchor",r.yanchor=Y(T+i)):(l=function(t){return Y(H(t)+i)},U&&"date"===U.type&&(l=g.encodeDate(l))),B("path",r.path=w(P,o,l))}else if(R){if("resize-over-start-point"===z){var u=c+n,h=D?f-i:f+i;B("x0",r.x0=O?u:G(u)),B("y0",r.y0=D?h:Y(h))}else if("resize-over-end-point"===z){var p=m+n,d=D?y-i:y+i;B("x1",r.x1=O?p:G(p)),B("y1",r.y1=D?d:Y(d))}}else{var v=function(t){return-1!==z.indexOf(t)},b=v("n"),j=v("s"),V=v("w"),W=v("e"),X=b?k+i:k,Z=j?M+i:M,J=V?A+n:A,K=W?S+n:S;D&&(b&&(X=k-i),j&&(Z=M-i)),(!D&&Z-X>10||D&&X-Z>10)&&(B(E,r[E]=D?X:Y(X)),B(C,r[C]=D?Z:Y(Z))),K-J>10&&(B(L,r[L]=O?J:G(J)),B(I,r[I]=O?K:G(K)))}e.attr("d",_(t,r)),Q(s,r)}function Q(t,e){(O||D)&&function(){var r="path"!==e.type,n=t.selectAll(".visual-cue").data([0]);n.enter().append("path").attr({fill:"#fff","fill-rule":"evenodd",stroke:"#000","stroke-width":1}).classed("visual-cue",!0);var a=q(O?e.xanchor:i.midRange(r?[e.x0,e.x1]:g.extractPathCoords(e.path,d.paramIsX))),o=H(D?e.yanchor:i.midRange(r?[e.y0,e.y1]:g.extractPathCoords(e.path,d.paramIsY)));if(a=g.roundPositionForSharpStrokeRendering(a,1),o=g.roundPositionForSharpStrokeRendering(o,1),O&&D){var s="M"+(a-1-1)+","+(o-1-1)+"h-8v2h8 v8h2v-8 h8v-2h-8 v-8h-2 Z";n.attr("d",s)}else if(O){var l="M"+(a-1-1)+","+(o-9-1)+"v18 h2 v-18 Z";n.attr("d",l)}else{var c="M"+(a-9-1)+","+(o-1-1)+"h18 v2 h-18 Z";n.attr("d",c)}}()}function $(t){t.selectAll(".visual-cue").remove()}h.init(X),W.node().onmousemove=Z}(t,O,l,e,r,z):!0===l.editable&&O.style("pointer-events",I||c.opacity(S)*A<=.5?"stroke":"all");O.node().addEventListener("click",(function(){return function(t,e){if(!y(t))return;var r=+e.node().getAttribute("data-index");if(r>=0){if(r===t._fullLayout._activeShapeIndex)return void T(t);t._fullLayout._activeShapeIndex=r,t._fullLayout._deactivateShape=T,m(t)}}(t,O)}))}}function b(t,e,r){var n=(r.xref+r.yref).replace(/paper/g,"").replace(/[xyz][1-9]* *domain/g,"");u.setClipUrl(t,n?"clip"+e._fullLayout._uid+n:null,e)}function _(t,e){var r,n,o,s,l,c,u,f,h=e.type,p=a.getRefType(e.xref),m=a.getRefType(e.yref),v=a.getFromId(t,e.xref),y=a.getFromId(t,e.yref),x=t._fullLayout._size;if(v?"domain"===p?n=function(t){return v._offset+v._length*t}:(r=g.shapePositionToRange(v),n=function(t){return v._offset+v.r2p(r(t,!0))}):n=function(t){return x.l+x.w*t},y?"domain"===m?s=function(t){return y._offset+y._length*(1-t)}:(o=g.shapePositionToRange(y),s=function(t){return y._offset+y.r2p(o(t,!0))}):s=function(t){return x.t+x.h*(1-t)},"path"===h)return v&&"date"===v.type&&(n=g.decodeDate(n)),y&&"date"===y.type&&(s=g.decodeDate(s)),function(t,e,r){var n=t.path,a=t.xsizemode,o=t.ysizemode,s=t.xanchor,l=t.yanchor;return n.replace(d.segmentRE,(function(t){var n=0,c=t.charAt(0),u=d.paramIsX[c],f=d.paramIsY[c],h=d.numParams[c],p=t.substr(1).replace(d.paramRE,(function(t){return u[n]?t="pixel"===a?e(s)+Number(t):e(t):f[n]&&(t="pixel"===o?r(l)-Number(t):r(t)),++n>h&&(t="X"),t}));return n>h&&(p=p.replace(/[\s,]*X.*/,""),i.log("Ignoring extra params in segment "+t)),c+p}))}(e,n,s);if("pixel"===e.xsizemode){var b=n(e.xanchor);l=b+e.x0,c=b+e.x1}else l=n(e.x0),c=n(e.x1);if("pixel"===e.ysizemode){var _=s(e.yanchor);u=_-e.y0,f=_-e.y1}else u=s(e.y0),f=s(e.y1);if("line"===h)return"M"+l+","+u+"L"+c+","+f;if("rect"===h)return"M"+l+","+u+"H"+c+"V"+f+"H"+l+"Z";var w=(l+c)/2,T=(u+f)/2,k=Math.abs(w-l),M=Math.abs(T-u),A="A"+k+","+M,S=w+k+","+T;return"M"+S+A+" 0 1,1 "+(w+","+(T-M))+A+" 0 0,1 "+S+"Z"}function w(t,e,r){return t.replace(d.segmentRE,(function(t){var n=0,i=t.charAt(0),a=d.paramIsX[i],o=d.paramIsY[i],s=d.numParams[i];return i+t.substr(1).replace(d.paramRE,(function(t){return n>=s||(a[n]?t=e(t):o[n]&&(t=r(t)),n++),t}))}))}function T(t){y(t)&&(t._fullLayout._activeShapeIndex>=0&&(l(t),delete t._fullLayout._activeShapeIndex,m(t)))}e.exports={draw:m,drawOne:x,eraseActiveShape:function(t){if(!y(t))return;l(t);var e=t._fullLayout._activeShapeIndex,r=(t.layout||{}).shapes||[];if(e=0&&f(v),r.attr("d",g(e)),M&&!h)&&(k=function(t,e){for(var r=0;r1&&(2!==t.length||"Z"!==t[1][0])&&(0===T&&(t[0][0]="M"),e[w]=t,y(),x())}}()}}function P(t,r){!function(t,r){if(e.length)for(var n=0;n0&&l0&&(s=s.transition().duration(e.transition.duration).ease(e.transition.easing)),s.attr("transform",l(o-.5*f.gripWidth,e._dims.currentValueTotalHeight))}}function E(t,e){var r=t._dims;return r.inputAreaStart+f.stepInset+(r.inputAreaLength-2*f.stepInset)*Math.min(1,Math.max(0,e))}function C(t,e){var r=t._dims;return Math.min(1,Math.max(0,(e-f.stepInset-r.inputAreaStart)/(r.inputAreaLength-2*f.stepInset-2*r.inputAreaStart)))}function L(t,e,r){var n=r._dims,i=s.ensureSingle(t,"rect",f.railTouchRectClass,(function(n){n.call(M,e,t,r).style("pointer-events","all")}));i.attr({width:n.inputAreaLength,height:Math.max(n.inputAreaWidth,f.tickOffset+r.ticklen+n.labelHeight)}).call(a.fill,r.bgcolor).attr("opacity",0),o.setTranslate(i,0,n.currentValueTotalHeight)}function I(t,e){var r=e._dims,n=r.inputAreaLength-2*f.railInset,i=s.ensureSingle(t,"rect",f.railRectClass);i.attr({width:n,height:f.railWidth,rx:f.railRadius,ry:f.railRadius,"shape-rendering":"crispEdges"}).call(a.stroke,e.bordercolor).call(a.fill,e.bgcolor).style("stroke-width",e.borderwidth+"px"),o.setTranslate(i,f.railInset,.5*(r.inputAreaWidth-f.railWidth)+r.currentValueTotalHeight)}e.exports=function(t){var e=t._fullLayout,r=function(t,e){for(var r=t[f.name],n=[],i=0;i0?[0]:[]);function s(e){e._commandObserver&&(e._commandObserver.remove(),delete e._commandObserver),i.autoMargin(t,m(e))}if(a.enter().append("g").classed(f.containerClassName,!0).style("cursor","ew-resize"),a.exit().each((function(){n.select(this).selectAll("g."+f.groupClassName).each(s)})).remove(),0!==r.length){var l=a.selectAll("g."+f.groupClassName).data(r,v);l.enter().append("g").classed(f.groupClassName,!0),l.exit().each(s).remove();for(var c=0;c0||h<0){var v={left:[-d,0],right:[d,0],top:[0,-d],bottom:[0,d]}[b.side];e.attr("transform",l(v[0],v[1]))}}}return D.call(R),z&&(E?D.on(".opacity",null):(M=0,A=!0,D.text(y).on("mouseover.opacity",(function(){n.select(this).transition().duration(h.SHOW_PLACEHOLDER).style("opacity",1)})).on("mouseout.opacity",(function(){n.select(this).transition().duration(h.HIDE_PLACEHOLDER).style("opacity",0)}))),D.call(f.makeEditable,{gd:t}).on("edit",(function(e){void 0!==x?o.call("_guiRestyle",t,v,e,x):o.call("_guiRelayout",t,v,e)})).on("cancel",(function(){this.text(this.attr("data-unformatted")).call(R)})).on("input",(function(t){this.text(t||" ").call(f.positionText,_.x,_.y)}))),D.classed("js-placeholder",A),T}}},{"../../constants/alignment":745,"../../constants/interactions":752,"../../lib":778,"../../lib/svg_text_utils":803,"../../plots/plots":891,"../../registry":911,"../color":643,"../drawing":665,d3:169,"fast-isnumeric":241}],739:[function(t,e,r){"use strict";var n=t("../../plots/font_attributes"),i=t("../color/attributes"),a=t("../../lib/extend").extendFlat,o=t("../../plot_api/edit_types").overrideAll,s=t("../../plots/pad_attributes"),l=t("../../plot_api/plot_template").templatedArray,c=l("button",{visible:{valType:"boolean"},method:{valType:"enumerated",values:["restyle","relayout","animate","update","skip"],dflt:"restyle"},args:{valType:"info_array",freeLength:!0,items:[{valType:"any"},{valType:"any"},{valType:"any"}]},args2:{valType:"info_array",freeLength:!0,items:[{valType:"any"},{valType:"any"},{valType:"any"}]},label:{valType:"string",dflt:""},execute:{valType:"boolean",dflt:!0}});e.exports=o(l("updatemenu",{_arrayAttrRegexps:[/^updatemenus\[(0|[1-9][0-9]+)\]\.buttons/],visible:{valType:"boolean"},type:{valType:"enumerated",values:["dropdown","buttons"],dflt:"dropdown"},direction:{valType:"enumerated",values:["left","right","up","down"],dflt:"down"},active:{valType:"integer",min:-1,dflt:0},showactive:{valType:"boolean",dflt:!0},buttons:c,x:{valType:"number",min:-2,max:3,dflt:-.05},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"right"},y:{valType:"number",min:-2,max:3,dflt:1},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"top"},pad:a(s({editType:"arraydraw"}),{}),font:n({}),bgcolor:{valType:"color"},bordercolor:{valType:"color",dflt:i.borderLine},borderwidth:{valType:"number",min:0,dflt:1,editType:"arraydraw"}}),"arraydraw","from-root")},{"../../lib/extend":768,"../../plot_api/edit_types":810,"../../plot_api/plot_template":817,"../../plots/font_attributes":856,"../../plots/pad_attributes":890,"../color/attributes":642}],740:[function(t,e,r){"use strict";e.exports={name:"updatemenus",containerClassName:"updatemenu-container",headerGroupClassName:"updatemenu-header-group",headerClassName:"updatemenu-header",headerArrowClassName:"updatemenu-header-arrow",dropdownButtonGroupClassName:"updatemenu-dropdown-button-group",dropdownButtonClassName:"updatemenu-dropdown-button",buttonClassName:"updatemenu-button",itemRectClassName:"updatemenu-item-rect",itemTextClassName:"updatemenu-item-text",menuIndexAttrName:"updatemenu-active-index",autoMarginIdRoot:"updatemenu-",blankHeaderOpts:{label:" "},minWidth:30,minHeight:30,textPadX:24,arrowPadX:16,rx:2,ry:2,textOffsetX:12,textOffsetY:3,arrowOffsetX:4,gapButtonHeader:5,gapButton:2,activeColor:"#F4FAFF",hoverColor:"#F4FAFF",arrowSymbol:{left:"\u25c4",right:"\u25ba",up:"\u25b2",down:"\u25bc"}}},{}],741:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../plots/array_container_defaults"),a=t("./attributes"),o=t("./constants").name,s=a.buttons;function l(t,e,r){function o(r,i){return n.coerce(t,e,a,r,i)}o("visible",i(t,e,{name:"buttons",handleItemDefaults:c}).length>0)&&(o("active"),o("direction"),o("type"),o("showactive"),o("x"),o("y"),n.noneOrAll(t,e,["x","y"]),o("xanchor"),o("yanchor"),o("pad.t"),o("pad.r"),o("pad.b"),o("pad.l"),n.coerceFont(o,"font",r.font),o("bgcolor",r.paper_bgcolor),o("bordercolor"),o("borderwidth"))}function c(t,e){function r(r,i){return n.coerce(t,e,s,r,i)}r("visible","skip"===t.method||Array.isArray(t.args))&&(r("method"),r("args"),r("args2"),r("label"),r("execute"))}e.exports=function(t,e){i(t,e,{name:o,handleItemDefaults:l})}},{"../../lib":778,"../../plots/array_container_defaults":823,"./attributes":739,"./constants":740}],742:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../plots/plots"),a=t("../color"),o=t("../drawing"),s=t("../../lib"),l=t("../../lib/svg_text_utils"),c=t("../../plot_api/plot_template").arrayEditor,u=t("../../constants/alignment").LINE_SPACING,f=t("./constants"),h=t("./scrollbox");function p(t){return t._index}function d(t,e){return+t.attr(f.menuIndexAttrName)===e._index}function g(t,e,r,n,i,a,o,s){e.active=o,c(t.layout,f.name,e).applyUpdate("active",o),"buttons"===e.type?v(t,n,null,null,e):"dropdown"===e.type&&(i.attr(f.menuIndexAttrName,"-1"),m(t,n,i,a,e),s||v(t,n,i,a,e))}function m(t,e,r,n,i){var a=s.ensureSingle(e,"g",f.headerClassName,(function(t){t.style("pointer-events","all")})),l=i._dims,c=i.active,u=i.buttons[c]||f.blankHeaderOpts,h={y:i.pad.t,yPad:0,x:i.pad.l,xPad:0,index:0},p={width:l.headerWidth,height:l.headerHeight};a.call(y,i,u,t).call(A,i,h,p),s.ensureSingle(e,"text",f.headerArrowClassName,(function(t){t.attr("text-anchor","end").call(o.font,i.font).text(f.arrowSymbol[i.direction])})).attr({x:l.headerWidth-f.arrowOffsetX+i.pad.l,y:l.headerHeight/2+f.textOffsetY+i.pad.t}),a.on("click",(function(){r.call(S,String(d(r,i)?-1:i._index)),v(t,e,r,n,i)})),a.on("mouseover",(function(){a.call(w)})),a.on("mouseout",(function(){a.call(T,i)})),o.setTranslate(e,l.lx,l.ly)}function v(t,e,r,a,o){r||(r=e).attr("pointer-events","all");var l=function(t){return-1==+t.attr(f.menuIndexAttrName)}(r)&&"buttons"!==o.type?[]:o.buttons,c="dropdown"===o.type?f.dropdownButtonClassName:f.buttonClassName,u=r.selectAll("g."+c).data(s.filterVisible(l)),h=u.enter().append("g").classed(c,!0),p=u.exit();"dropdown"===o.type?(h.attr("opacity","0").transition().attr("opacity","1"),p.transition().attr("opacity","0").remove()):p.remove();var d=0,m=0,v=o._dims,x=-1!==["up","down"].indexOf(o.direction);"dropdown"===o.type&&(x?m=v.headerHeight+f.gapButtonHeader:d=v.headerWidth+f.gapButtonHeader),"dropdown"===o.type&&"up"===o.direction&&(m=-f.gapButtonHeader+f.gapButton-v.openHeight),"dropdown"===o.type&&"left"===o.direction&&(d=-f.gapButtonHeader+f.gapButton-v.openWidth);var b={x:v.lx+d+o.pad.l,y:v.ly+m+o.pad.t,yPad:f.gapButton,xPad:f.gapButton,index:0},k={l:b.x+o.borderwidth,t:b.y+o.borderwidth};u.each((function(s,l){var c=n.select(this);c.call(y,o,s,t).call(A,o,b),c.on("click",(function(){n.event.defaultPrevented||(s.execute&&(s.args2&&o.active===l?(g(t,o,0,e,r,a,-1),i.executeAPICommand(t,s.method,s.args2)):(g(t,o,0,e,r,a,l),i.executeAPICommand(t,s.method,s.args))),t.emit("plotly_buttonclicked",{menu:o,button:s,active:o.active}))})),c.on("mouseover",(function(){c.call(w)})),c.on("mouseout",(function(){c.call(T,o),u.call(_,o)}))})),u.call(_,o),x?(k.w=Math.max(v.openWidth,v.headerWidth),k.h=b.y-k.t):(k.w=b.x-k.l,k.h=Math.max(v.openHeight,v.headerHeight)),k.direction=o.direction,a&&(u.size()?function(t,e,r,n,i,a){var o,s,l,c=i.direction,u="up"===c||"down"===c,h=i._dims,p=i.active;if(u)for(s=0,l=0;l0?[0]:[]);if(o.enter().append("g").classed(f.containerClassName,!0).style("cursor","pointer"),o.exit().each((function(){n.select(this).selectAll("g."+f.headerGroupClassName).each(a)})).remove(),0!==r.length){var l=o.selectAll("g."+f.headerGroupClassName).data(r,p);l.enter().append("g").classed(f.headerGroupClassName,!0);for(var c=s.ensureSingle(o,"g",f.dropdownButtonGroupClassName,(function(t){t.style("pointer-events","all")})),u=0;uw,M=s.barLength+2*s.barPad,A=s.barWidth+2*s.barPad,S=d,E=m+v;E+A>c&&(E=c-A);var C=this.container.selectAll("rect.scrollbar-horizontal").data(k?[0]:[]);C.exit().on(".drag",null).remove(),C.enter().append("rect").classed("scrollbar-horizontal",!0).call(i.fill,s.barColor),k?(this.hbar=C.attr({rx:s.barRadius,ry:s.barRadius,x:S,y:E,width:M,height:A}),this._hbarXMin=S+M/2,this._hbarTranslateMax=w-M):(delete this.hbar,delete this._hbarXMin,delete this._hbarTranslateMax);var L=v>T,I=s.barWidth+2*s.barPad,P=s.barLength+2*s.barPad,z=d+g,O=m;z+I>l&&(z=l-I);var D=this.container.selectAll("rect.scrollbar-vertical").data(L?[0]:[]);D.exit().on(".drag",null).remove(),D.enter().append("rect").classed("scrollbar-vertical",!0).call(i.fill,s.barColor),L?(this.vbar=D.attr({rx:s.barRadius,ry:s.barRadius,x:z,y:O,width:I,height:P}),this._vbarYMin=O+P/2,this._vbarTranslateMax=T-P):(delete this.vbar,delete this._vbarYMin,delete this._vbarTranslateMax);var R=this.id,F=u-.5,B=L?f+I+.5:f+.5,N=h-.5,j=k?p+A+.5:p+.5,U=o._topdefs.selectAll("#"+R).data(k||L?[0]:[]);if(U.exit().remove(),U.enter().append("clipPath").attr("id",R).append("rect"),k||L?(this._clipRect=U.select("rect").attr({x:Math.floor(F),y:Math.floor(N),width:Math.ceil(B)-Math.floor(F),height:Math.ceil(j)-Math.floor(N)}),this.container.call(a.setClipUrl,R,this.gd),this.bg.attr({x:d,y:m,width:g,height:v})):(this.bg.attr({width:0,height:0}),this.container.on("wheel",null).on(".drag",null).call(a.setClipUrl,null),delete this._clipRect),k||L){var V=n.behavior.drag().on("dragstart",(function(){n.event.sourceEvent.preventDefault()})).on("drag",this._onBoxDrag.bind(this));this.container.on("wheel",null).on("wheel",this._onBoxWheel.bind(this)).on(".drag",null).call(V);var q=n.behavior.drag().on("dragstart",(function(){n.event.sourceEvent.preventDefault(),n.event.sourceEvent.stopPropagation()})).on("drag",this._onBarDrag.bind(this));k&&this.hbar.on(".drag",null).call(q),L&&this.vbar.on(".drag",null).call(q)}this.setTranslate(e,r)},s.prototype.disable=function(){(this.hbar||this.vbar)&&(this.bg.attr({width:0,height:0}),this.container.on("wheel",null).on(".drag",null).call(a.setClipUrl,null),delete this._clipRect),this.hbar&&(this.hbar.on(".drag",null),this.hbar.remove(),delete this.hbar,delete this._hbarXMin,delete this._hbarTranslateMax),this.vbar&&(this.vbar.on(".drag",null),this.vbar.remove(),delete this.vbar,delete this._vbarYMin,delete this._vbarTranslateMax)},s.prototype._onBoxDrag=function(){var t=this.translateX,e=this.translateY;this.hbar&&(t-=n.event.dx),this.vbar&&(e-=n.event.dy),this.setTranslate(t,e)},s.prototype._onBoxWheel=function(){var t=this.translateX,e=this.translateY;this.hbar&&(t+=n.event.deltaY),this.vbar&&(e+=n.event.deltaY),this.setTranslate(t,e)},s.prototype._onBarDrag=function(){var t=this.translateX,e=this.translateY;if(this.hbar){var r=t+this._hbarXMin,i=r+this._hbarTranslateMax;t=(o.constrain(n.event.x,r,i)-r)/(i-r)*(this.position.w-this._box.w)}if(this.vbar){var a=e+this._vbarYMin,s=a+this._vbarTranslateMax;e=(o.constrain(n.event.y,a,s)-a)/(s-a)*(this.position.h-this._box.h)}this.setTranslate(t,e)},s.prototype.setTranslate=function(t,e){var r=this.position.w-this._box.w,n=this.position.h-this._box.h;if(t=o.constrain(t||0,0,r),e=o.constrain(e||0,0,n),this.translateX=t,this.translateY=e,this.container.call(a.setTranslate,this._box.l-this.position.l-t,this._box.t-this.position.t-e),this._clipRect&&this._clipRect.attr({x:Math.floor(this.position.l+t-.5),y:Math.floor(this.position.t+e-.5)}),this.hbar){var i=t/r;this.hbar.call(a.setTranslate,t+i*this._hbarTranslateMax,e)}if(this.vbar){var s=e/n;this.vbar.call(a.setTranslate,t,e+s*this._vbarTranslateMax)}}},{"../../lib":778,"../color":643,"../drawing":665,d3:169}],745:[function(t,e,r){"use strict";e.exports={FROM_BL:{left:0,center:.5,right:1,bottom:0,middle:.5,top:1},FROM_TL:{left:0,center:.5,right:1,bottom:1,middle:.5,top:0},FROM_BR:{left:1,center:.5,right:0,bottom:0,middle:.5,top:1},LINE_SPACING:1.3,CAP_SHIFT:.7,MID_SHIFT:.35,OPPOSITE_SIDE:{left:"right",right:"left",top:"bottom",bottom:"top"}}},{}],746:[function(t,e,r){"use strict";e.exports={axisRefDescription:function(t,e,r){return["If set to a",t,"axis id (e.g. *"+t+"* or","*"+t+"2*), the `"+t+"` position refers to a",t,"coordinate. If set to *paper*, the `"+t+"`","position refers to the distance from the",e,"of the plotting","area in normalized coordinates where *0* (*1*) corresponds to the",e,"("+r+"). If set to a",t,"axis ID followed by","*domain* (separated by a space), the position behaves like for","*paper*, but refers to the distance in fractions of the domain","length from the",e,"of the domain of that axis: e.g.,","*"+t+"2 domain* refers to the domain of the second",t," axis and a",t,"position of 0.5 refers to the","point between the",e,"and the",r,"of the domain of the","second",t,"axis."].join(" ")}}},{}],747:[function(t,e,r){"use strict";e.exports={INCREASING:{COLOR:"#3D9970",SYMBOL:"\u25b2"},DECREASING:{COLOR:"#FF4136",SYMBOL:"\u25bc"}}},{}],748:[function(t,e,r){"use strict";e.exports={FORMAT_LINK:"https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format",DATE_FORMAT_LINK:"https://github.com/d3/d3-time-format#locale_format"}},{}],749:[function(t,e,r){"use strict";e.exports={COMPARISON_OPS:["=","!=","<",">=",">","<="],COMPARISON_OPS2:["=","<",">=",">","<="],INTERVAL_OPS:["[]","()","[)","(]","][",")(","](",")["],SET_OPS:["{}","}{"],CONSTRAINT_REDUCTION:{"=":"=","<":"<","<=":"<",">":">",">=":">","[]":"[]","()":"[]","[)":"[]","(]":"[]","][":"][",")(":"][","](":"][",")[":"]["}}},{}],750:[function(t,e,r){"use strict";e.exports={solid:[[],0],dot:[[.5,1],200],dash:[[.5,1],50],longdash:[[.5,1],10],dashdot:[[.5,.625,.875,1],50],longdashdot:[[.5,.7,.8,1],10]}},{}],751:[function(t,e,r){"use strict";e.exports={circle:"\u25cf","circle-open":"\u25cb",square:"\u25a0","square-open":"\u25a1",diamond:"\u25c6","diamond-open":"\u25c7",cross:"+",x:"\u274c"}},{}],752:[function(t,e,r){"use strict";e.exports={SHOW_PLACEHOLDER:100,HIDE_PLACEHOLDER:1e3,DESELECTDIM:.2}},{}],753:[function(t,e,r){"use strict";e.exports={BADNUM:void 0,FP_SAFE:Number.MAX_VALUE/1e4,ONEMAXYEAR:316224e5,ONEAVGYEAR:315576e5,ONEMINYEAR:31536e6,ONEMAXQUARTER:79488e5,ONEAVGQUARTER:78894e5,ONEMINQUARTER:76896e5,ONEMAXMONTH:26784e5,ONEAVGMONTH:26298e5,ONEMINMONTH:24192e5,ONEWEEK:6048e5,ONEDAY:864e5,ONEHOUR:36e5,ONEMIN:6e4,ONESEC:1e3,EPOCHJD:2440587.5,ALMOST_EQUAL:.999999,LOG_CLIP:10,MINUS_SIGN:"\u2212"}},{}],754:[function(t,e,r){"use strict";r.xmlns="http://www.w3.org/2000/xmlns/",r.svg="http://www.w3.org/2000/svg",r.xlink="http://www.w3.org/1999/xlink",r.svgAttrs={xmlns:r.svg,"xmlns:xlink":r.xlink}},{}],755:[function(t,e,r){"use strict";r.version=t("./version").version,t("es6-promise").polyfill(),t("../build/plotcss"),t("./fonts/mathjax_config")();for(var n=t("./registry"),i=r.register=n.register,a=t("./plot_api"),o=Object.keys(a),s=0;splotly-logomark"}}},{}],758:[function(t,e,r){"use strict";r.isLeftAnchor=function(t){return"left"===t.xanchor||"auto"===t.xanchor&&t.x<=1/3},r.isCenterAnchor=function(t){return"center"===t.xanchor||"auto"===t.xanchor&&t.x>1/3&&t.x<2/3},r.isRightAnchor=function(t){return"right"===t.xanchor||"auto"===t.xanchor&&t.x>=2/3},r.isTopAnchor=function(t){return"top"===t.yanchor||"auto"===t.yanchor&&t.y>=2/3},r.isMiddleAnchor=function(t){return"middle"===t.yanchor||"auto"===t.yanchor&&t.y>1/3&&t.y<2/3},r.isBottomAnchor=function(t){return"bottom"===t.yanchor||"auto"===t.yanchor&&t.y<=1/3}},{}],759:[function(t,e,r){"use strict";var n=t("./mod"),i=n.mod,a=n.modHalf,o=Math.PI,s=2*o;function l(t){return Math.abs(t[1]-t[0])>s-1e-14}function c(t,e){return a(e-t,s)}function u(t,e){if(l(e))return!0;var r,n;e[0](n=i(n,s))&&(n+=s);var a=i(t,s),o=a+s;return a>=r&&a<=n||o>=r&&o<=n}function f(t,e,r,n,i,a,c){i=i||0,a=a||0;var u,f,h,p,d,g=l([r,n]);function m(t,e){return[t*Math.cos(e)+i,a-t*Math.sin(e)]}g?(u=0,f=o,h=s):r=i&&t<=a);var i,a},pathArc:function(t,e,r,n,i){return f(null,t,e,r,n,i,0)},pathSector:function(t,e,r,n,i){return f(null,t,e,r,n,i,1)},pathAnnulus:function(t,e,r,n,i,a){return f(t,e,r,n,i,a,1)}}},{"./mod":785}],760:[function(t,e,r){"use strict";var n=Array.isArray,i="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer:{isView:function(){return!1}},a="undefined"==typeof DataView?function(){}:DataView;function o(t){return i.isView(t)&&!(t instanceof a)}function s(t){return n(t)||o(t)}function l(t,e,r){if(s(t)){if(s(t[0])){for(var n=r,i=0;ii.max?e.set(r):e.set(+t)}},integer:{coerceFunction:function(t,e,r,i){t%1||!n(t)||void 0!==i.min&&ti.max?e.set(r):e.set(+t)}},string:{coerceFunction:function(t,e,r,n){if("string"!=typeof t){var i="number"==typeof t;!0!==n.strict&&i?e.set(String(t)):e.set(r)}else n.noBlank&&!t?e.set(r):e.set(t)}},color:{coerceFunction:function(t,e,r){i(t).isValid()?e.set(t):e.set(r)}},colorlist:{coerceFunction:function(t,e,r){Array.isArray(t)&&t.length&&t.every((function(t){return i(t).isValid()}))?e.set(t):e.set(r)}},colorscale:{coerceFunction:function(t,e,r){e.set(o.get(t,r))}},angle:{coerceFunction:function(t,e,r){"auto"===t?e.set("auto"):n(t)?e.set(u(+t,360)):e.set(r)}},subplotid:{coerceFunction:function(t,e,r,n){var i=n.regex||c(r);"string"==typeof t&&i.test(t)?e.set(t):e.set(r)},validateFunction:function(t,e){var r=e.dflt;return t===r||"string"==typeof t&&!!c(r).test(t)}},flaglist:{coerceFunction:function(t,e,r,n){if("string"==typeof t)if(-1===(n.extras||[]).indexOf(t)){for(var i=t.split("+"),a=0;a=n&&t<=i?t:u}if("string"!=typeof t&&"number"!=typeof t)return u;t=String(t);var c=_(e),v=t.charAt(0);!c||"G"!==v&&"g"!==v||(t=t.substr(1),e="");var w=c&&"chinese"===e.substr(0,7),T=t.match(w?x:y);if(!T)return u;var k=T[1],M=T[3]||"1",A=Number(T[5]||1),S=Number(T[7]||0),E=Number(T[9]||0),C=Number(T[11]||0);if(c){if(2===k.length)return u;var L;k=Number(k);try{var I=m.getComponentMethod("calendars","getCal")(e);if(w){var P="i"===M.charAt(M.length-1);M=parseInt(M,10),L=I.newDate(k,I.toMonthIndex(k,M,P),A)}else L=I.newDate(k,Number(M),A)}catch(t){return u}return L?(L.toJD()-g)*f+S*h+E*p+C*d:u}k=2===k.length?(Number(k)+2e3-b)%100+b:Number(k),M-=1;var z=new Date(Date.UTC(2e3,M,A,S,E));return z.setUTCFullYear(k),z.getUTCMonth()!==M||z.getUTCDate()!==A?u:z.getTime()+C*d},n=r.MIN_MS=r.dateTime2ms("-9999"),i=r.MAX_MS=r.dateTime2ms("9999-12-31 23:59:59.9999"),r.isDateTime=function(t,e){return r.dateTime2ms(t,e)!==u};var T=90*f,k=3*h,M=5*p;function A(t,e,r,n,i){if((e||r||n||i)&&(t+=" "+w(e,2)+":"+w(r,2),(n||i)&&(t+=":"+w(n,2),i))){for(var a=4;i%10==0;)a-=1,i/=10;t+="."+w(i,a)}return t}r.ms2DateTime=function(t,e,r){if("number"!=typeof t||!(t>=n&&t<=i))return u;e||(e=0);var a,o,s,c,y,x,b=Math.floor(10*l(t+.05,1)),w=Math.round(t-b/10);if(_(r)){var S=Math.floor(w/f)+g,E=Math.floor(l(t,f));try{a=m.getComponentMethod("calendars","getCal")(r).fromJD(S).formatDate("yyyy-mm-dd")}catch(t){a=v("G%Y-%m-%d")(new Date(w))}if("-"===a.charAt(0))for(;a.length<11;)a="-0"+a.substr(1);else for(;a.length<10;)a="0"+a;o=e=n+f&&t<=i-f))return u;var e=Math.floor(10*l(t+.05,1)),r=new Date(Math.round(t-e/10));return A(a("%Y-%m-%d")(r),r.getHours(),r.getMinutes(),r.getSeconds(),10*r.getUTCMilliseconds()+e)},r.cleanDate=function(t,e,n){if(t===u)return e;if(r.isJSDate(t)||"number"==typeof t&&isFinite(t)){if(_(n))return s.error("JS Dates and milliseconds are incompatible with world calendars",t),e;if(!(t=r.ms2DateTimeLocal(+t))&&void 0!==e)return e}else if(!r.isDateTime(t,n))return s.error("unrecognized date",t),e;return t};var S=/%\d?f/g;function E(t,e,r,n){t=t.replace(S,(function(t){var r=Math.min(+t.charAt(1)||6,6);return(e/1e3%1+2).toFixed(r).substr(2).replace(/0+$/,"")||"0"}));var i=new Date(Math.floor(e+.05));if(_(n))try{t=m.getComponentMethod("calendars","worldCalFmt")(t,e,n)}catch(t){return"Invalid"}return r(t)(i)}var C=[59,59.9,59.99,59.999,59.9999];r.formatDate=function(t,e,r,n,i,a){if(i=_(i)&&i,!e)if("y"===r)e=a.year;else if("m"===r)e=a.month;else{if("d"!==r)return function(t,e){var r=l(t+.05,f),n=w(Math.floor(r/h),2)+":"+w(l(Math.floor(r/p),60),2);if("M"!==e){o(e)||(e=0);var i=(100+Math.min(l(t/d,60),C[e])).toFixed(e).substr(1);e>0&&(i=i.replace(/0+$/,"").replace(/[\.]$/,"")),n+=":"+i}return n}(t,r)+"\n"+E(a.dayMonthYear,t,n,i);e=a.dayMonth+"\n"+a.year}return E(e,t,n,i)};var L=3*f;r.incrementMonth=function(t,e,r){r=_(r)&&r;var n=l(t,f);if(t=Math.round(t-n),r)try{var i=Math.round(t/f)+g,a=m.getComponentMethod("calendars","getCal")(r),o=a.fromJD(i);return e%12?a.add(o,e,"m"):a.add(o,e/12,"y"),(o.toJD()-g)*f+n}catch(e){s.error("invalid ms "+t+" in calendar "+r)}var c=new Date(t+L);return c.setUTCMonth(c.getUTCMonth()+e)+n-L},r.findExactDates=function(t,e){for(var r,n,i=0,a=0,s=0,l=0,c=_(e)&&m.getComponentMethod("calendars","getCal")(e),u=0;u0&&t[e+1][0]<0)return e;return null}switch(e="RUS"===s||"FJI"===s?function(t){var e;if(null===c(t))e=t;else for(e=new Array(t.length),i=0;ie?r[n++]=[t[i][0]+360,t[i][1]]:i===e?(r[n++]=t[i],r[n++]=[t[i][0],-90]):r[n++]=t[i];var a=h.tester(r);a.pts.pop(),l.push(a)}:function(t){l.push(h.tester(t))},a.type){case"MultiPolygon":for(r=0;ri&&(i=c,e=l)}else e=r;return o.default(e).geometry.coordinates}(u),n.fIn=t,n.fOut=u,s.push(u)}else c.log(["Location",n.loc,"does not have a valid GeoJSON geometry.","Traces with locationmode *geojson-id* only support","*Polygon* and *MultiPolygon* geometries."].join(" "))}delete i[r]}switch(r.type){case"FeatureCollection":var h=r.features;for(n=0;n100?(clearInterval(a),n("Unexpected error while fetching from "+t)):void i++}),50)}))}for(var o=0;o0&&(r.push(i),i=[])}return i.length>0&&r.push(i),r},r.makeLine=function(t){return 1===t.length?{type:"LineString",coordinates:t[0]}:{type:"MultiLineString",coordinates:t}},r.makePolygon=function(t){if(1===t.length)return{type:"Polygon",coordinates:t};for(var e=new Array(t.length),r=0;r1||g<0||g>1?null:{x:t+l*g,y:e+f*g}}function l(t,e,r,n,i){var a=n*t+i*e;if(a<0)return n*n+i*i;if(a>r){var o=n-t,s=i-e;return o*o+s*s}var l=n*e-i*t;return l*l/r}r.segmentsIntersect=s,r.segmentDistance=function(t,e,r,n,i,a,o,c){if(s(t,e,r,n,i,a,o,c))return 0;var u=r-t,f=n-e,h=o-i,p=c-a,d=u*u+f*f,g=h*h+p*p,m=Math.min(l(u,f,d,i-t,a-e),l(u,f,d,o-t,c-e),l(h,p,g,t-i,e-a),l(h,p,g,r-i,n-a));return Math.sqrt(m)},r.getTextLocation=function(t,e,r,s){if(t===i&&s===a||(n={},i=t,a=s),n[r])return n[r];var l=t.getPointAtLength(o(r-s/2,e)),c=t.getPointAtLength(o(r+s/2,e)),u=Math.atan((c.y-l.y)/(c.x-l.x)),f=t.getPointAtLength(o(r,e)),h={x:(4*f.x+l.x+c.x)/6,y:(4*f.y+l.y+c.y)/6,theta:u};return n[r]=h,h},r.clearLocationCache=function(){i=null},r.getVisibleSegment=function(t,e,r){var n,i,a=e.left,o=e.right,s=e.top,l=e.bottom,c=0,u=t.getTotalLength(),f=u;function h(e){var r=t.getPointAtLength(e);0===e?n=r:e===u&&(i=r);var c=r.xo?r.x-o:0,f=r.yl?r.y-l:0;return Math.sqrt(c*c+f*f)}for(var p=h(c);p;){if((c+=p+r)>f)return;p=h(c)}for(p=h(f);p;){if(c>(f-=p+r))return;p=h(f)}return{min:c,max:f,len:f-c,total:u,isClosed:0===c&&f===u&&Math.abs(n.x-i.x)<.1&&Math.abs(n.y-i.y)<.1}},r.findPointOnPath=function(t,e,r,n){for(var i,a,o,s=(n=n||{}).pathLength||t.getTotalLength(),l=n.tolerance||.001,c=n.iterationLimit||30,u=t.getPointAtLength(0)[r]>t.getPointAtLength(s)[r]?-1:1,f=0,h=0,p=s;f0?p=i:h=i,f++}return a}},{"./mod":785}],774:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("tinycolor2"),a=t("color-normalize"),o=t("../components/colorscale"),s=t("../components/color/attributes").defaultLine,l=t("./array").isArrayOrTypedArray,c=a(s);function u(t,e){var r=t;return r[3]*=e,r}function f(t){if(n(t))return c;var e=a(t);return e.length?e:c}function h(t){return n(t)?t:1}e.exports={formatColor:function(t,e,r){var n,i,s,p,d,g=t.color,m=l(g),v=l(e),y=o.extractOpts(t),x=[];if(n=void 0!==y.colorscale?o.makeColorScaleFuncFromTrace(t):f,i=m?function(t,e){return void 0===t[e]?c:a(n(t[e]))}:f,s=v?function(t,e){return void 0===t[e]?1:h(t[e])}:h,m||v)for(var b=0;b1?(r*t+r*e)/r:t+e,i=String(n).length;if(i>16){var a=String(e).length;if(i>=String(t).length+a){var o=parseFloat(n).toPrecision(12);-1===o.indexOf("e+")&&(n=+o)}}return n}},{}],778:[function(t,e,r){"use strict";var n=t("d3"),i=t("d3-time-format").utcFormat,a=t("fast-isnumeric"),o=t("../constants/numerical"),s=o.FP_SAFE,l=o.BADNUM,c=e.exports={};c.nestedProperty=t("./nested_property"),c.keyedContainer=t("./keyed_container"),c.relativeAttr=t("./relative_attr"),c.isPlainObject=t("./is_plain_object"),c.toLogRange=t("./to_log_range"),c.relinkPrivateKeys=t("./relink_private");var u=t("./array");c.isTypedArray=u.isTypedArray,c.isArrayOrTypedArray=u.isArrayOrTypedArray,c.isArray1D=u.isArray1D,c.ensureArray=u.ensureArray,c.concat=u.concat,c.maxRowLength=u.maxRowLength,c.minRowLength=u.minRowLength;var f=t("./mod");c.mod=f.mod,c.modHalf=f.modHalf;var h=t("./coerce");c.valObjectMeta=h.valObjectMeta,c.coerce=h.coerce,c.coerce2=h.coerce2,c.coerceFont=h.coerceFont,c.coerceHoverinfo=h.coerceHoverinfo,c.coerceSelectionMarkerOpacity=h.coerceSelectionMarkerOpacity,c.validate=h.validate;var p=t("./dates");c.dateTime2ms=p.dateTime2ms,c.isDateTime=p.isDateTime,c.ms2DateTime=p.ms2DateTime,c.ms2DateTimeLocal=p.ms2DateTimeLocal,c.cleanDate=p.cleanDate,c.isJSDate=p.isJSDate,c.formatDate=p.formatDate,c.incrementMonth=p.incrementMonth,c.dateTick0=p.dateTick0,c.dfltRange=p.dfltRange,c.findExactDates=p.findExactDates,c.MIN_MS=p.MIN_MS,c.MAX_MS=p.MAX_MS;var d=t("./search");c.findBin=d.findBin,c.sorterAsc=d.sorterAsc,c.sorterDes=d.sorterDes,c.distinctVals=d.distinctVals,c.roundUp=d.roundUp,c.sort=d.sort,c.findIndexOfMin=d.findIndexOfMin;var g=t("./stats");c.aggNums=g.aggNums,c.len=g.len,c.mean=g.mean,c.median=g.median,c.midRange=g.midRange,c.variance=g.variance,c.stdev=g.stdev,c.interp=g.interp;var m=t("./matrix");c.init2dArray=m.init2dArray,c.transposeRagged=m.transposeRagged,c.dot=m.dot,c.translationMatrix=m.translationMatrix,c.rotationMatrix=m.rotationMatrix,c.rotationXYMatrix=m.rotationXYMatrix,c.apply3DTransform=m.apply3DTransform,c.apply2DTransform=m.apply2DTransform,c.apply2DTransform2=m.apply2DTransform2,c.convertCssMatrix=m.convertCssMatrix,c.inverseTransformMatrix=m.inverseTransformMatrix;var v=t("./angles");c.deg2rad=v.deg2rad,c.rad2deg=v.rad2deg,c.angleDelta=v.angleDelta,c.angleDist=v.angleDist,c.isFullCircle=v.isFullCircle,c.isAngleInsideSector=v.isAngleInsideSector,c.isPtInsideSector=v.isPtInsideSector,c.pathArc=v.pathArc,c.pathSector=v.pathSector,c.pathAnnulus=v.pathAnnulus;var y=t("./anchor_utils");c.isLeftAnchor=y.isLeftAnchor,c.isCenterAnchor=y.isCenterAnchor,c.isRightAnchor=y.isRightAnchor,c.isTopAnchor=y.isTopAnchor,c.isMiddleAnchor=y.isMiddleAnchor,c.isBottomAnchor=y.isBottomAnchor;var x=t("./geometry2d");c.segmentsIntersect=x.segmentsIntersect,c.segmentDistance=x.segmentDistance,c.getTextLocation=x.getTextLocation,c.clearLocationCache=x.clearLocationCache,c.getVisibleSegment=x.getVisibleSegment,c.findPointOnPath=x.findPointOnPath;var b=t("./extend");c.extendFlat=b.extendFlat,c.extendDeep=b.extendDeep,c.extendDeepAll=b.extendDeepAll,c.extendDeepNoArrays=b.extendDeepNoArrays;var _=t("./loggers");c.log=_.log,c.warn=_.warn,c.error=_.error;var w=t("./regex");c.counterRegex=w.counter;var T=t("./throttle");c.throttle=T.throttle,c.throttleDone=T.done,c.clearThrottle=T.clear;var k=t("./dom");function M(t){var e={};for(var r in t)for(var n=t[r],i=0;is?l:a(t)?Number(t):l:l},c.isIndex=function(t,e){return!(void 0!==e&&t>=e)&&(a(t)&&t>=0&&t%1==0)},c.noop=t("./noop"),c.identity=t("./identity"),c.repeat=function(t,e){for(var r=new Array(e),n=0;nr?Math.max(r,Math.min(e,t)):Math.max(e,Math.min(r,t))},c.bBoxIntersect=function(t,e,r){return r=r||0,t.left<=e.right+r&&e.left<=t.right+r&&t.top<=e.bottom+r&&e.top<=t.bottom+r},c.simpleMap=function(t,e,r,n,i){for(var a=t.length,o=new Array(a),s=0;s=Math.pow(2,r)?i>10?(c.warn("randstr failed uniqueness"),l):t(e,r,n,(i||0)+1):l},c.OptionControl=function(t,e){t||(t={}),e||(e="opt");var r={optionList:[],_newoption:function(n){n[e]=t,r[n.name]=n,r.optionList.push(n)}};return r["_"+e]=t,r},c.smooth=function(t,e){if((e=Math.round(e)||0)<2)return t;var r,n,i,a,o=t.length,s=2*o,l=2*e-1,c=new Array(l),u=new Array(o);for(r=0;r=s&&(i-=s*Math.floor(i/s)),i<0?i=-1-i:i>=o&&(i=s-1-i),a+=t[i]*c[n];u[r]=a}return u},c.syncOrAsync=function(t,e,r){var n;function i(){return c.syncOrAsync(t,e,r)}for(;t.length;)if((n=(0,t.splice(0,1)[0])(e))&&n.then)return n.then(i).then(void 0,c.promiseError);return r&&r(e)},c.stripTrailingSlash=function(t){return"/"===t.substr(-1)?t.substr(0,t.length-1):t},c.noneOrAll=function(t,e,r){if(t){var n,i=!1,a=!0;for(n=0;n0?e:0}))},c.fillArray=function(t,e,r,n){if(n=n||c.identity,c.isArrayOrTypedArray(t))for(var i=0;i1?i+o[1]:"";if(a&&(o.length>1||s.length>4||r))for(;n.test(s);)s=s.replace(n,"$1"+a+"$2");return s+l},c.TEMPLATE_STRING_REGEX=/%{([^\s%{}:]*)([:|\|][^}]*)?}/g;var I=/^\w*$/;c.templateString=function(t,e){var r={};return t.replace(c.TEMPLATE_STRING_REGEX,(function(t,n){var i;return I.test(n)?i=e[n]:(r[n]=r[n]||c.nestedProperty(e,n).get,i=r[n]()),c.isValidTextValue(i)?i:""}))};var P={max:10,count:0,name:"hovertemplate"};c.hovertemplateString=function(){return D.apply(P,arguments)};var z={max:10,count:0,name:"texttemplate"};c.texttemplateString=function(){return D.apply(z,arguments)};var O=/^[:|\|]/;function D(t,e,r){var a=this,o=arguments;e||(e={});var s={};return t.replace(c.TEMPLATE_STRING_REGEX,(function(t,l,u){var f,h,p,d;for(p=3;p=48&&o<=57,c=s>=48&&s<=57;if(l&&(n=10*n+o-48),c&&(i=10*i+s-48),!l||!c){if(n!==i)return n-i;if(o!==s)return o-s}}return i-n};var R=2e9;c.seedPseudoRandom=function(){R=2e9},c.pseudoRandom=function(){var t=R;return R=(69069*R+1)%4294967296,Math.abs(R-t)<429496729?c.pseudoRandom():R/4294967296},c.fillText=function(t,e,r){var n=Array.isArray(r)?function(t){r.push(t)}:function(t){r.text=t},i=c.extractOption(t,e,"htx","hovertext");if(c.isValidTextValue(i))return n(i);var a=c.extractOption(t,e,"tx","text");return c.isValidTextValue(a)?n(a):void 0},c.isValidTextValue=function(t){return t||0===t},c.formatPercent=function(t,e){e=e||0;for(var r=(Math.round(100*t*Math.pow(10,e))*Math.pow(.1,e)).toFixed(e)+"%",n=0;n1&&(u=1):u=0,c.strTranslate(i-u*(r+o),a-u*(n+s))+c.strScale(u)+(l?"rotate("+l+(e?"":" "+r+" "+n)+")":"")},c.ensureUniformFontSize=function(t,e){var r=c.extendFlat({},e);return r.size=Math.max(e.size,t._fullLayout.uniformtext.minsize||0),r},c.join2=function(t,e,r){var n=t.length;return n>1?t.slice(0,-1).join(e)+r+t[n-1]:t.join(e)}},{"../constants/numerical":753,"./anchor_utils":758,"./angles":759,"./array":760,"./clean_number":761,"./clear_responsive":763,"./coerce":764,"./dates":765,"./dom":766,"./extend":768,"./filter_unique":769,"./filter_visible":770,"./geometry2d":773,"./identity":776,"./increment":777,"./is_plain_object":779,"./keyed_container":780,"./localize":781,"./loggers":782,"./make_trace_groups":783,"./matrix":784,"./mod":785,"./nested_property":786,"./noop":787,"./notifier":788,"./preserve_drawing_buffer":792,"./push_unique":793,"./regex":795,"./relative_attr":796,"./relink_private":797,"./search":798,"./stats":801,"./throttle":804,"./to_log_range":805,d3:169,"d3-time-format":166,"fast-isnumeric":241}],779:[function(t,e,r){"use strict";e.exports=function(t){return window&&window.process&&window.process.versions?"[object Object]"===Object.prototype.toString.call(t):"[object Object]"===Object.prototype.toString.call(t)&&Object.getPrototypeOf(t)===Object.prototype}},{}],780:[function(t,e,r){"use strict";var n=t("./nested_property"),i=/^\w*$/;e.exports=function(t,e,r,a){var o,s,l;r=r||"name",a=a||"value";var c={};e&&e.length?(l=n(t,e),s=l.get()):s=t,e=e||"";var u={};if(s)for(o=0;o2)return c[e]=2|c[e],h.set(t,null);if(f){for(o=e;o1){var e=["LOG:"];for(t=0;t1){var r=[];for(t=0;t"),"long")}},a.warn=function(){var t;if(n.logging>0){var e=["WARN:"];for(t=0;t0){var r=[];for(t=0;t"),"stick")}},a.error=function(){var t;if(n.logging>0){var e=["ERROR:"];for(t=0;t0){var r=[];for(t=0;t"),"stick")}}},{"../plot_api/plot_config":815,"./notifier":788}],783:[function(t,e,r){"use strict";var n=t("d3");e.exports=function(t,e,r){var i=t.selectAll("g."+r.replace(/\s/g,".")).data(e,(function(t){return t[0].trace.uid}));i.exit().remove(),i.enter().append("g").attr("class",r),i.order();var a=t.classed("rangeplot")?"nodeRangePlot3":"node3";return i.each((function(t){t[0][a]=n.select(this)})),i}},{d3:169}],784:[function(t,e,r){"use strict";var n=t("gl-mat4");r.init2dArray=function(t,e){for(var r=new Array(t),n=0;ne/2?t-Math.round(t/e)*e:t}}},{}],786:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("./array").isArrayOrTypedArray;function a(t,e){return function(){var r,n,o,s,l,c=t;for(s=0;s/g),l=0;la||c===i||cs)&&(!e||!l(t))}:function(t,e){var l=t[0],c=t[1];if(l===i||la||c===i||cs)return!1;var u,f,h,p,d,g=r.length,m=r[0][0],v=r[0][1],y=0;for(u=1;uMath.max(f,m)||c>Math.max(h,v)))if(cu||Math.abs(n(o,h))>i)return!0;return!1},a.filter=function(t,e){var r=[t[0]],n=0,i=0;function o(o){t.push(o);var s=r.length,l=n;r.splice(i+1);for(var c=l+1;c1&&o(t.pop());return{addPt:o,raw:t,filtered:r}}},{"../constants/numerical":753,"./matrix":784}],791:[function(t,e,r){(function(r){(function(){"use strict";var n=t("./show_no_webgl_msg"),i=t("regl");e.exports=function(t,e){var a=t._fullLayout,o=!0;return a._glcanvas.each((function(n){if(!n.regl&&(!n.pick||a._has("parcoords"))){try{n.regl=i({canvas:this,attributes:{antialias:!n.pick,preserveDrawingBuffer:!0},pixelRatio:t._context.plotGlPixelRatio||r.devicePixelRatio,extensions:e||[]})}catch(t){o=!1}n.regl||(o=!1),o&&this.addEventListener("webglcontextlost",(function(e){t&&t.emit&&t.emit("plotly_webglcontextlost",{event:e,layer:n.key})}),!1)}})),o||n({container:a._glcontainer.node()}),o}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./show_no_webgl_msg":800,regl:540}],792:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("is-mobile");e.exports=function(t){var e;if("string"!=typeof(e=t&&t.hasOwnProperty("userAgent")?t.userAgent:function(){var t;"undefined"!=typeof navigator&&(t=navigator.userAgent);t&&t.headers&&"string"==typeof t.headers["user-agent"]&&(t=t.headers["user-agent"]);return t}()))return!0;var r=i({ua:{headers:{"user-agent":e}},tablet:!0,featureDetect:!1});if(!r)for(var a=e.split(" "),o=1;o-1;s--){var l=a[s];if("Version/"===l.substr(0,8)){var c=l.substr(8).split(".")[0];if(n(c)&&(c=+c),c>=13)return!0}}}return r}},{"fast-isnumeric":241,"is-mobile":467}],793:[function(t,e,r){"use strict";e.exports=function(t,e){if(e instanceof RegExp){for(var r=e.toString(),n=0;ni.queueLength&&(t.undoQueue.queue.shift(),t.undoQueue.index--))},startSequence:function(t){t.undoQueue=t.undoQueue||{index:0,queue:[],sequence:!1},t.undoQueue.sequence=!0,t.undoQueue.beginSequence=!0},stopSequence:function(t){t.undoQueue=t.undoQueue||{index:0,queue:[],sequence:!1},t.undoQueue.sequence=!1,t.undoQueue.beginSequence=!1},undo:function(t){var e,r;if(t.framework&&t.framework.isPolar)t.framework.undo();else if(!(void 0===t.undoQueue||isNaN(t.undoQueue.index)||t.undoQueue.index<=0)){for(t.undoQueue.index--,e=t.undoQueue.queue[t.undoQueue.index],t.undoQueue.inSequence=!0,r=0;r=t.undoQueue.queue.length)){for(e=t.undoQueue.queue[t.undoQueue.index],t.undoQueue.inSequence=!0,r=0;re}function u(t,e){return t>=e}r.findBin=function(t,e,r){if(n(e.start))return r?Math.ceil((t-e.start)/e.size-1e-9)-1:Math.floor((t-e.start)/e.size+1e-9);var a,o,f=0,h=e.length,p=0,d=h>1?(e[h-1]-e[0])/(h-1):1;for(o=d>=0?r?s:l:r?u:c,t+=1e-9*d*(r?-1:1)*(d>=0?1:-1);f90&&i.log("Long binary search..."),f-1},r.sorterAsc=function(t,e){return t-e},r.sorterDes=function(t,e){return e-t},r.distinctVals=function(t,e){var n,i=(e||{}).unitMinDiff,a=t.slice();for(a.sort(r.sorterAsc),n=a.length-1;n>-1&&a[n]===o;n--);var s=1;i||(s=a[n]-a[0]||1);for(var l,c=s/(n||1)/1e4,u=[],f=0;f<=n;f++){var h=a[f],p=h-l;void 0===l?(u.push(h),l=h):p>c&&(s=Math.min(s,p),u.push(h),l=h)}return{vals:u,minDiff:s}},r.roundUp=function(t,e,r){for(var n,i=0,a=e.length-1,o=0,s=r?0:1,l=r?1:0,c=r?Math.ceil:Math.floor;i0&&(n=1),r&&n)return t.sort(e)}return n?t:t.reverse()},r.findIndexOfMin=function(t,e){e=e||a;for(var r,n=1/0,i=0;ia.length)&&(o=a.length),n(e)||(e=!1),i(a[0])){for(l=new Array(o),s=0;st.length-1)return t[t.length-1];var r=e%1;return r*t[Math.ceil(e)]+(1-r)*t[Math.floor(e)]}},{"./array":760,"fast-isnumeric":241}],802:[function(t,e,r){"use strict";var n=t("color-normalize");e.exports=function(t){return t?n(t):[0,0,0,1]}},{"color-normalize":125}],803:[function(t,e,r){"use strict";var n=t("d3"),i=t("../lib"),a=i.strTranslate,o=t("../constants/xmlns_namespaces"),s=t("../constants/alignment").LINE_SPACING;function l(t,e){return t.node().getBoundingClientRect()[e]}var c=/([^$]*)([$]+[^$]*[$]+)([^$]*)/;r.convertToTspans=function(t,e,g){var A=t.text(),S=!t.attr("data-notex")&&"undefined"!=typeof MathJax&&A.match(c),L=n.select(t.node().parentNode);if(!L.empty()){var I=t.attr("class")?t.attr("class").split(" ")[0]:"text";return I+="-math",L.selectAll("svg."+I).remove(),L.selectAll("g."+I+"-group").remove(),t.style("display",null).attr({"data-unformatted":A,"data-math":"N"}),S?(e&&e._promises||[]).push(new Promise((function(e){t.style("display","none");var r=parseInt(t.node().style.fontSize,10),o={fontSize:r};!function(t,e,r){var a,o,s,l;MathJax.Hub.Queue((function(){return o=i.extendDeepAll({},MathJax.Hub.config),s=MathJax.Hub.processSectionDelay,void 0!==MathJax.Hub.processSectionDelay&&(MathJax.Hub.processSectionDelay=0),MathJax.Hub.Config({messageStyle:"none",tex2jax:{inlineMath:[["$","$"],["\\(","\\)"]]},displayAlign:"left"})}),(function(){if("SVG"!==(a=MathJax.Hub.config.menuSettings.renderer))return MathJax.Hub.setRenderer("SVG")}),(function(){var r="math-output-"+i.randstr({},64);return l=n.select("body").append("div").attr({id:r}).style({visibility:"hidden",position:"absolute"}).style({"font-size":e.fontSize+"px"}).text(t.replace(u,"\\lt ").replace(f,"\\gt ")),MathJax.Hub.Typeset(l.node())}),(function(){var e=n.select("body").select("#MathJax_SVG_glyphs");if(l.select(".MathJax_SVG").empty()||!l.select("svg").node())i.log("There was an error in the tex syntax.",t),r();else{var o=l.select("svg").node().getBoundingClientRect();r(l.select(".MathJax_SVG"),e,o)}if(l.remove(),"SVG"!==a)return MathJax.Hub.setRenderer(a)}),(function(){return void 0!==s&&(MathJax.Hub.processSectionDelay=s),MathJax.Hub.Config(o)}))}(S[2],o,(function(n,i,o){L.selectAll("svg."+I).remove(),L.selectAll("g."+I+"-group").remove();var s=n&&n.select("svg");if(!s||!s.node())return P(),void e();var c=L.append("g").classed(I+"-group",!0).attr({"pointer-events":"none","data-unformatted":A,"data-math":"Y"});c.node().appendChild(s.node()),i&&i.node()&&s.node().insertBefore(i.node().cloneNode(!0),s.node().firstChild),s.attr({class:I,height:o.height,preserveAspectRatio:"xMinYMin meet"}).style({overflow:"visible","pointer-events":"none"});var u=t.node().style.fill||"black",f=s.select("g");f.attr({fill:u,stroke:u});var h=l(f,"width"),p=l(f,"height"),d=+t.attr("x")-h*{start:0,middle:.5,end:1}[t.attr("text-anchor")||"start"],m=-(r||l(t,"height"))/4;"y"===I[0]?(c.attr({transform:"rotate("+[-90,+t.attr("x"),+t.attr("y")]+")"+a(-h/2,m-p/2)}),s.attr({x:+t.attr("x"),y:+t.attr("y")})):"l"===I[0]?s.attr({x:t.attr("x"),y:m-p/2}):"a"===I[0]&&0!==I.indexOf("atitle")?s.attr({x:0,y:m}):s.attr({x:d,y:+t.attr("y")+m-p/2}),g&&g.call(t,c),e(c)}))}))):P(),t}function P(){L.empty()||(I=t.attr("class")+"-math",L.select("svg."+I).remove()),t.text("").style("white-space","pre"),function(t,e){e=e.replace(m," ");var r,a=!1,l=[],c=-1;function u(){c++;var e=document.createElementNS(o.svg,"tspan");n.select(e).attr({class:"line",dy:c*s+"em"}),t.appendChild(e),r=e;var i=l;if(l=[{node:e}],i.length>1)for(var a=1;a doesnt match end tag <"+t+">. Pretending it did match.",e),r=l[l.length-1].node}else i.log("Ignoring unexpected end tag .",e)}x.test(e)?u():(r=t,l=[{node:t}]);for(var S=e.split(v),L=0;L|>|>)/g;var h={sup:"font-size:70%",sub:"font-size:70%",b:"font-weight:bold",i:"font-style:italic",a:"cursor:pointer",span:"",em:"font-style:italic;font-weight:bold"},p={sub:"0.3em",sup:"-0.6em"},d={sub:"-0.21em",sup:"0.42em"},g=["http:","https:","mailto:","",void 0,":"],m=r.NEWLINES=/(\r\n?|\n)/g,v=/(<[^<>]*>)/,y=/<(\/?)([^ >]*)(\s+(.*))?>/i,x=//i;r.BR_TAG_ALL=//gi;var b=/(^|[\s"'])style\s*=\s*("([^"]*);?"|'([^']*);?')/i,_=/(^|[\s"'])href\s*=\s*("([^"]*)"|'([^']*)')/i,w=/(^|[\s"'])target\s*=\s*("([^"\s]*)"|'([^'\s]*)')/i,T=/(^|[\s"'])popup\s*=\s*("([\w=,]*)"|'([\w=,]*)')/i;function k(t,e){if(!t)return null;var r=t.match(e),n=r&&(r[3]||r[4]);return n&&E(n)}var M=/(^|;)\s*color:/;r.plainText=function(t,e){for(var r=void 0!==(e=e||{}).len&&-1!==e.len?e.len:1/0,n=void 0!==e.allowedTags?e.allowedTags:["br"],i="...".length,a=t.split(v),o=[],s="",l=0,c=0;ci?o.push(u.substr(0,d-i)+"..."):o.push(u.substr(0,d));break}s=""}}return o.join("")};var A={mu:"\u03bc",amp:"&",lt:"<",gt:">",nbsp:"\xa0",times:"\xd7",plusmn:"\xb1",deg:"\xb0"},S=/&(#\d+|#x[\da-fA-F]+|[a-z]+);/g;function E(t){return t.replace(S,(function(t,e){return("#"===e.charAt(0)?function(t){if(t>1114111)return;var e=String.fromCodePoint;if(e)return e(t);var r=String.fromCharCode;return t<=65535?r(t):r(55232+(t>>10),t%1024+56320)}("x"===e.charAt(1)?parseInt(e.substr(2),16):parseInt(e.substr(1),10)):A[e])||t}))}function C(t){var e=encodeURI(decodeURI(t)),r=document.createElement("a"),n=document.createElement("a");r.href=t,n.href=e;var i=r.protocol,a=n.protocol;return-1!==g.indexOf(i)&&-1!==g.indexOf(a)?e:""}function L(t,e,r){var n,a,o,s=r.horizontalAlign,l=r.verticalAlign||"top",c=t.node().getBoundingClientRect(),u=e.node().getBoundingClientRect();return a="bottom"===l?function(){return c.bottom-n.height}:"middle"===l?function(){return c.top+(c.height-n.height)/2}:function(){return c.top},o="right"===s?function(){return c.right-n.width}:"center"===s?function(){return c.left+(c.width-n.width)/2}:function(){return c.left},function(){n=this.node().getBoundingClientRect();var t=o()-u.left,e=a()-u.top,s=r.gd||{};if(r.gd){s._fullLayout._calcInverseTransform(s);var l=i.apply3DTransform(s._fullLayout._invTransform)(t,e);t=l[0],e=l[1]}return this.style({top:e+"px",left:t+"px","z-index":1e3}),this}}r.convertEntities=E,r.sanitizeHTML=function(t){t=t.replace(m," ");for(var e=document.createElement("p"),r=e,i=[],a=t.split(v),o=0;oa.ts+e?l():a.timer=setTimeout((function(){l(),a.timer=null}),e)},r.done=function(t){var e=n[t];return e&&e.timer?new Promise((function(t){var r=e.onDone;e.onDone=function(){r&&r(),t(),e.onDone=null}})):Promise.resolve()},r.clear=function(t){if(t)i(n[t]),delete n[t];else for(var e in n)r.clear(e)}},{}],805:[function(t,e,r){"use strict";var n=t("fast-isnumeric");e.exports=function(t,e){if(t>0)return Math.log(t)/Math.LN10;var r=Math.log(Math.min(e[0],e[1]))/Math.LN10;return n(r)||(r=Math.log(Math.max(e[0],e[1]))/Math.LN10-6),r}},{"fast-isnumeric":241}],806:[function(t,e,r){"use strict";var n=e.exports={},i=t("../plots/geo/constants").locationmodeToLayer,a=t("topojson-client").feature;n.getTopojsonName=function(t){return[t.scope.replace(/ /g,"-"),"_",t.resolution.toString(),"m"].join("")},n.getTopojsonPath=function(t,e){return t+e+".json"},n.getTopojsonFeatures=function(t,e){var r=i[t.locationmode],n=e.objects[r];return a(e,n).features}},{"../plots/geo/constants":858,"topojson-client":579}],807:[function(t,e,r){"use strict";e.exports={moduleType:"locale",name:"en-US",dictionary:{"Click to enter Colorscale title":"Click to enter Colorscale title"},format:{date:"%m/%d/%Y"}}},{}],808:[function(t,e,r){"use strict";e.exports={moduleType:"locale",name:"en",dictionary:{"Click to enter Colorscale title":"Click to enter Colourscale title"},format:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],periods:["AM","PM"],dateTime:"%a %b %e %X %Y",date:"%d/%m/%Y",time:"%H:%M:%S",decimal:".",thousands:",",grouping:[3],currency:["$",""],year:"%Y",month:"%b %Y",dayMonth:"%b %-d",dayMonthYear:"%b %-d, %Y"}}},{}],809:[function(t,e,r){"use strict";var n=t("../registry");e.exports=function(t){for(var e,r,i=n.layoutArrayContainers,a=n.layoutArrayRegexes,o=t.split("[")[0],s=0;s0&&o.log("Clearing previous rejected promises from queue."),t._promises=[]},r.cleanLayout=function(t){var e,n;t||(t={}),t.xaxis1&&(t.xaxis||(t.xaxis=t.xaxis1),delete t.xaxis1),t.yaxis1&&(t.yaxis||(t.yaxis=t.yaxis1),delete t.yaxis1),t.scene1&&(t.scene||(t.scene=t.scene1),delete t.scene1);var a=(s.subplotsRegistry.cartesian||{}).attrRegex,l=(s.subplotsRegistry.polar||{}).attrRegex,f=(s.subplotsRegistry.ternary||{}).attrRegex,h=(s.subplotsRegistry.gl3d||{}).attrRegex,g=Object.keys(t);for(e=0;e3?(z.x=1.02,z.xanchor="left"):z.x<-2&&(z.x=-.02,z.xanchor="right"),z.y>3?(z.y=1.02,z.yanchor="bottom"):z.y<-2&&(z.y=-.02,z.yanchor="top")),d(t),"rotate"===t.dragmode&&(t.dragmode="orbit"),c.clean(t),t.template&&t.template.layout&&r.cleanLayout(t.template.layout),t},r.cleanData=function(t){for(var e=0;e0)return t.substr(0,e)}r.hasParent=function(t,e){for(var r=b(e);r;){if(r in t)return!0;r=b(r)}return!1};var _=["x","y","z"];r.clearAxisTypes=function(t,e,r){for(var n=0;n1&&a.warn("Full array edits are incompatible with other edits",f);var y=r[""][""];if(c(y))e.set(null);else{if(!Array.isArray(y))return a.warn("Unrecognized full array edit value",f,y),!0;e.set(y)}return!g&&(h(m,v),p(t),!0)}var x,b,_,w,T,k,M,A,S=Object.keys(r).map(Number).sort(o),E=e.get(),C=E||[],L=u(v,f).get(),I=[],P=-1,z=C.length;for(x=0;xC.length-(M?0:1))a.warn("index out of range",f,_);else if(void 0!==k)T.length>1&&a.warn("Insertion & removal are incompatible with edits to the same index.",f,_),c(k)?I.push(_):M?("add"===k&&(k={}),C.splice(_,0,k),L&&L.splice(_,0,{})):a.warn("Unrecognized full object edit value",f,_,k),-1===P&&(P=_);else for(b=0;b=0;x--)C.splice(I[x],1),L&&L.splice(I[x],1);if(C.length?E||e.set(C):e.set(null),g)return!1;if(h(m,v),d!==i){var O;if(-1===P)O=S;else{for(z=Math.max(C.length,z),O=[],x=0;x=P);x++)O.push(_);for(x=P;x=t.data.length||i<-t.data.length)throw new Error(r+" must be valid indices for gd.data.");if(e.indexOf(i,n+1)>-1||i>=0&&e.indexOf(-t.data.length+i)>-1||i<0&&e.indexOf(t.data.length+i)>-1)throw new Error("each index in "+r+" must be unique.")}}function O(t,e,r){if(!Array.isArray(t.data))throw new Error("gd.data must be an array.");if("undefined"==typeof e)throw new Error("currentIndices is a required argument.");if(Array.isArray(e)||(e=[e]),z(t,e,"currentIndices"),"undefined"==typeof r||Array.isArray(r)||(r=[r]),"undefined"!=typeof r&&z(t,r,"newIndices"),"undefined"!=typeof r&&e.length!==r.length)throw new Error("current and new indices must be of equal length.")}function D(t,e,r,n,a){!function(t,e,r,n){var i=o.isPlainObject(n);if(!Array.isArray(t.data))throw new Error("gd.data must be an array");if(!o.isPlainObject(e))throw new Error("update must be a key:value object");if("undefined"==typeof r)throw new Error("indices must be an integer or array of integers");for(var a in z(t,r,"indices"),e){if(!Array.isArray(e[a])||e[a].length!==r.length)throw new Error("attribute "+a+" must be an array of length equal to indices array length");if(i&&(!(a in n)||!Array.isArray(n[a])||n[a].length!==e[a].length))throw new Error("when maxPoints is set as a key:value object it must contain a 1:1 corrispondence with the keys and number of traces in the update object")}}(t,e,r,n);for(var l=function(t,e,r,n){var a,l,c,u,f,h=o.isPlainObject(n),p=[];for(var d in Array.isArray(r)||(r=[r]),r=P(r,t.data.length-1),e)for(var g=0;g-1?l(r,r.replace("titlefont","title.font")):r.indexOf("titleposition")>-1?l(r,r.replace("titleposition","title.position")):r.indexOf("titleside")>-1?l(r,r.replace("titleside","title.side")):r.indexOf("titleoffset")>-1&&l(r,r.replace("titleoffset","title.offset")):l(r,r.replace("title","title.text"));function l(e,r){t[r]=t[e],delete t[e]}}function q(t,e,r){if(t=o.getGraphDiv(t),T.clearPromiseQueue(t),t.framework&&t.framework.isPolar)return Promise.resolve(t);var n={};if("string"==typeof e)n[e]=r;else{if(!o.isPlainObject(e))return o.warn("Relayout fail.",e,r),Promise.reject();n=o.extendFlat({},e)}Object.keys(n).length&&(t.changed=!0);var i=Z(t,n),a=i.flags;a.calc&&(t.calcdata=void 0);var s=[h.previousPromises];a.layoutReplot?s.push(k.layoutReplot):Object.keys(n).length&&(H(t,a,i)||h.supplyDefaults(t),a.legend&&s.push(k.doLegend),a.layoutstyle&&s.push(k.layoutStyles),a.axrange&&G(s,i.rangesAltered),a.ticks&&s.push(k.doTicksRelayout),a.modebar&&s.push(k.doModeBar),a.camera&&s.push(k.doCamera),a.colorbars&&s.push(k.doColorBars),s.push(E)),s.push(h.rehover,h.redrag),c.add(t,q,[t,i.undoit],q,[t,i.redoit]);var l=o.syncOrAsync(s,t);return l&&l.then||(l=Promise.resolve(t)),l.then((function(){return t.emit("plotly_relayout",i.eventData),t}))}function H(t,e,r){var n=t._fullLayout;if(!e.axrange)return!1;for(var i in e)if("axrange"!==i&&e[i])return!1;for(var a in r.rangesAltered){var o=d.id2name(a),s=t.layout[o],l=n[o];if(l.autorange=s.autorange,s.range&&(l.range=s.range.slice()),l.cleanRange(),l._matchGroup)for(var c in l._matchGroup)if(c!==a){var u=n[d.id2name(c)];u.autorange=l.autorange,u.range=l.range.slice(),u._input.range=l.range.slice()}}return!0}function G(t,e){var r=e?function(t){var r=[],n=!0;for(var i in e){var a=d.getFromId(t,i);if(r.push(i),-1!==(a.ticklabelposition||"").indexOf("inside")&&a._anchorAxis&&r.push(a._anchorAxis._id),a._matchGroup)for(var o in a._matchGroup)e[o]||r.push(o);a.automargin&&(n=!1)}return d.draw(t,r,{skipTitle:n})}:function(t){return d.draw(t,"redraw")};t.push(b,k.doAutoRangeAndConstraints,r,k.drawData,k.finalDraw)}var Y=/^[xyz]axis[0-9]*\.range(\[[0|1]\])?$/,W=/^[xyz]axis[0-9]*\.autorange$/,X=/^[xyz]axis[0-9]*\.domain(\[[0|1]\])?$/;function Z(t,e){var r,n,i,a=t.layout,l=t._fullLayout,c=l._guiEditing,h=N(l._preGUI,c),p=Object.keys(e),g=d.list(t),m=o.extendDeepAll({},e),v={};for(V(e),p=Object.keys(e),n=0;n0&&"string"!=typeof z.parts[D];)D--;var R=z.parts[D],F=z.parts[D-1]+"."+R,j=z.parts.slice(0,D).join("."),U=s(t.layout,j).get(),q=s(l,j).get(),H=z.get();if(void 0!==O){k[P]=O,S[P]="reverse"===R?O:B(H);var G=f.getLayoutValObject(l,z.parts);if(G&&G.impliedEdits&&null!==O)for(var Z in G.impliedEdits)E(o.relativeAttr(P,Z),G.impliedEdits[Z]);if(-1!==["width","height"].indexOf(P))if(O){E("autosize",null);var K="height"===P?"width":"height";E(K,l[K])}else l[P]=t._initialAutoSize[P];else if("autosize"===P)E("width",O?null:l.width),E("height",O?null:l.height);else if(F.match(Y))I(F),s(l,j+"._inputRange").set(null);else if(F.match(W)){I(F),s(l,j+"._inputRange").set(null);var Q=s(l,j).get();Q._inputDomain&&(Q._input.domain=Q._inputDomain.slice())}else F.match(X)&&s(l,j+"._inputDomain").set(null);if("type"===R){C=U;var $="linear"===q.type&&"log"===O,tt="log"===q.type&&"linear"===O;if($||tt){if(C&&C.range)if(q.autorange)$&&(C.range=C.range[1]>C.range[0]?[1,2]:[2,1]);else{var et=C.range[0],rt=C.range[1];$?(et<=0&&rt<=0&&E(j+".autorange",!0),et<=0?et=rt/1e6:rt<=0&&(rt=et/1e6),E(j+".range[0]",Math.log(et)/Math.LN10),E(j+".range[1]",Math.log(rt)/Math.LN10)):(E(j+".range[0]",Math.pow(10,et)),E(j+".range[1]",Math.pow(10,rt)))}else E(j+".autorange",!0);Array.isArray(l._subplots.polar)&&l._subplots.polar.length&&l[z.parts[0]]&&"radialaxis"===z.parts[1]&&delete l[z.parts[0]]._subplot.viewInitial["radialaxis.range"],u.getComponentMethod("annotations","convertCoords")(t,q,O,E),u.getComponentMethod("images","convertCoords")(t,q,O,E)}else E(j+".autorange",!0),E(j+".range",null);s(l,j+"._inputRange").set(null)}else if(R.match(A)){var nt=s(l,P).get(),it=(O||{}).type;it&&"-"!==it||(it="linear"),u.getComponentMethod("annotations","convertCoords")(t,nt,it,E),u.getComponentMethod("images","convertCoords")(t,nt,it,E)}var at=w.containerArrayMatch(P);if(at){r=at.array,n=at.index;var ot=at.property,st=G||{editType:"calc"};""!==n&&""===ot&&(w.isAddVal(O)?S[P]=null:w.isRemoveVal(O)?S[P]=(s(a,r).get()||[])[n]:o.warn("unrecognized full object value",e)),M.update(_,st),v[r]||(v[r]={});var lt=v[r][n];lt||(lt=v[r][n]={}),lt[ot]=O,delete e[P]}else"reverse"===R?(U.range?U.range.reverse():(E(j+".autorange",!0),U.range=[1,0]),q.autorange?_.calc=!0:_.plot=!0):(l._has("scatter-like")&&l._has("regl")&&"dragmode"===P&&("lasso"===O||"select"===O)&&"lasso"!==H&&"select"!==H||l._has("gl2d")?_.plot=!0:G?M.update(_,G):_.calc=!0,z.set(O))}}for(r in v){w.applyContainerArrayChanges(t,h(a,r),v[r],_,h)||(_.plot=!0)}for(var ct in L){var ut=(C=d.getFromId(t,ct))&&C._constraintGroup;if(ut)for(var ft in _.calc=!0,ut)L[ft]||(d.getFromId(t,ft)._constraintShrinkable=!0)}return(J(t)||e.height||e.width)&&(_.plot=!0),(_.plot||_.calc)&&(_.layoutReplot=!0),{flags:_,rangesAltered:L,undoit:S,redoit:k,eventData:m}}function J(t){var e=t._fullLayout,r=e.width,n=e.height;return t.layout.autosize&&h.plotAutoSize(t,t.layout,e),e.width!==r||e.height!==n}function K(t,e,n,i){if(t=o.getGraphDiv(t),T.clearPromiseQueue(t),t.framework&&t.framework.isPolar)return Promise.resolve(t);o.isPlainObject(e)||(e={}),o.isPlainObject(n)||(n={}),Object.keys(e).length&&(t.changed=!0),Object.keys(n).length&&(t.changed=!0);var a=T.coerceTraceIndices(t,i),s=U(t,o.extendFlat({},e),a),l=s.flags,u=Z(t,o.extendFlat({},n)),f=u.flags;(l.calc||f.calc)&&(t.calcdata=void 0),l.clearAxisTypes&&T.clearAxisTypes(t,a,n);var p=[];f.layoutReplot?p.push(k.layoutReplot):l.fullReplot?p.push(r.plot):(p.push(h.previousPromises),H(t,f,u)||h.supplyDefaults(t),l.style&&p.push(k.doTraceStyle),(l.colorbars||f.colorbars)&&p.push(k.doColorBars),f.legend&&p.push(k.doLegend),f.layoutstyle&&p.push(k.layoutStyles),f.axrange&&G(p,u.rangesAltered),f.ticks&&p.push(k.doTicksRelayout),f.modebar&&p.push(k.doModeBar),f.camera&&p.push(k.doCamera),p.push(E)),p.push(h.rehover,h.redrag),c.add(t,K,[t,s.undoit,u.undoit,s.traces],K,[t,s.redoit,u.redoit,s.traces]);var d=o.syncOrAsync(p,t);return d&&d.then||(d=Promise.resolve(t)),d.then((function(){return t.emit("plotly_update",{data:s.eventData,layout:u.eventData}),t}))}function Q(t){return function(e){e._fullLayout._guiEditing=!0;var r=t.apply(null,arguments);return e._fullLayout._guiEditing=!1,r}}var $=[{pattern:/^hiddenlabels/,attr:"legend.uirevision"},{pattern:/^((x|y)axis\d*)\.((auto)?range|title\.text)/},{pattern:/axis\d*\.showspikes$/,attr:"modebar.uirevision"},{pattern:/(hover|drag)mode$/,attr:"modebar.uirevision"},{pattern:/^(scene\d*)\.camera/},{pattern:/^(geo\d*)\.(projection|center|fitbounds)/},{pattern:/^(ternary\d*\.[abc]axis)\.(min|title\.text)$/},{pattern:/^(polar\d*\.radialaxis)\.((auto)?range|angle|title\.text)/},{pattern:/^(polar\d*\.angularaxis)\.rotation/},{pattern:/^(mapbox\d*)\.(center|zoom|bearing|pitch)/},{pattern:/^legend\.(x|y)$/,attr:"editrevision"},{pattern:/^(shapes|annotations)/,attr:"editrevision"},{pattern:/^title\.text$/,attr:"editrevision"}],tt=[{pattern:/^selectedpoints$/,attr:"selectionrevision"},{pattern:/(^|value\.)visible$/,attr:"legend.uirevision"},{pattern:/^dimensions\[\d+\]\.constraintrange/},{pattern:/^node\.(x|y|groups)/},{pattern:/^level$/},{pattern:/(^|value\.)name$/},{pattern:/colorbar\.title\.text$/},{pattern:/colorbar\.(x|y)$/,attr:"editrevision"}];function et(t,e){for(var r=0;r1;)if(n.pop(),void 0!==(r=s(e,n.join(".")+".uirevision").get()))return r;return e.uirevision}function nt(t,e){for(var r=0;r=i.length?i[0]:i[t]:i}function l(t){return Array.isArray(a)?t>=a.length?a[0]:a[t]:a}function c(t,e){var r=0;return function(){if(t&&++r===e)return t()}}return void 0===n._frameWaitingCnt&&(n._frameWaitingCnt=0),new Promise((function(a,u){function f(){n._currentFrame&&n._currentFrame.onComplete&&n._currentFrame.onComplete();var e=n._currentFrame=n._frameQueue.shift();if(e){var r=e.name?e.name.toString():null;t._fullLayout._currentFrame=r,n._lastFrameAt=Date.now(),n._timeToNext=e.frameOpts.duration,h.transition(t,e.frame.data,e.frame.layout,T.coerceTraceIndices(t,e.frame.traces),e.frameOpts,e.transitionOpts).then((function(){e.onComplete&&e.onComplete()})),t.emit("plotly_animatingframe",{name:r,frame:e.frame,animation:{frame:e.frameOpts,transition:e.transitionOpts}})}else t.emit("plotly_animated"),window.cancelAnimationFrame(n._animationRaf),n._animationRaf=null}function p(){t.emit("plotly_animating"),n._lastFrameAt=-1/0,n._timeToNext=0,n._runningTransitions=0,n._currentFrame=null;var e=function(){n._animationRaf=window.requestAnimationFrame(e),Date.now()-n._lastFrameAt>n._timeToNext&&f()};e()}var d,g,m=0;function v(t){return Array.isArray(i)?m>=i.length?t.transitionOpts=i[m]:t.transitionOpts=i[0]:t.transitionOpts=i,m++,t}var y=[],x=null==e,b=Array.isArray(e);if(!x&&!b&&o.isPlainObject(e))y.push({type:"object",data:v(o.extendFlat({},e))});else if(x||-1!==["string","number"].indexOf(typeof e))for(d=0;d0&&kk)&&M.push(g);y=M}}y.length>0?function(e){if(0!==e.length){for(var i=0;i=0;n--)if(o.isPlainObject(e[n])){var g=e[n].name,m=(u[g]||d[g]||{}).name,v=e[n].name,y=u[m]||d[m];m&&v&&"number"==typeof v&&y&&S<5&&(S++,o.warn('addFrames: overwriting frame "'+(u[m]||d[m]).name+'" with a frame whose name of type "number" also equates to "'+m+'". This is valid but may potentially lead to unexpected behavior since all plotly.js frame names are stored internally as strings.'),5===S&&o.warn("addFrames: This API call has yielded too many of these warnings. For the rest of this call, further warnings about numeric frame names will be suppressed.")),d[g]={name:g},p.push({frame:h.supplyFrameDefaults(e[n]),index:r&&void 0!==r[n]&&null!==r[n]?r[n]:f+n})}p.sort((function(t,e){return t.index>e.index?-1:t.index=0;n--){if("number"==typeof(i=p[n].frame).name&&o.warn("Warning: addFrames accepts frames with numeric names, but the numbers areimplicitly cast to strings"),!i.name)for(;u[i.name="frame "+t._transitionData._counter++];);if(u[i.name]){for(a=0;a=0;r--)n=e[r],a.push({type:"delete",index:n}),s.unshift({type:"insert",index:n,value:i[n]});var l=h.modifyFrames,u=h.modifyFrames,f=[t,s],p=[t,a];return c&&c.add(t,l,f,u,p),h.modifyFrames(t,a)},r.addTraces=function t(e,n,i){e=o.getGraphDiv(e);var a,s,l=[],u=r.deleteTraces,f=t,h=[e,l],p=[e,n];for(function(t,e,r){var n,i;if(!Array.isArray(t.data))throw new Error("gd.data must be an array.");if("undefined"==typeof e)throw new Error("traces must be defined.");for(Array.isArray(e)||(e=[e]),n=0;n=0&&r=0&&r=a.length)return!1;if(2===t.dimensions){if(r++,e.length===r)return t;var o=e[r];if(!_(o))return!1;t=a[i][o]}else t=a[i]}else t=a}}return t}function _(t){return t===Math.round(t)&&t>=0}function w(){var t,e,r={};for(t in d(r,o),n.subplotsRegistry){if((e=n.subplotsRegistry[t]).layoutAttributes)if(Array.isArray(e.attr))for(var i=0;i=l.length)return!1;i=(r=(n.transformsRegistry[l[c].type]||{}).attributes)&&r[e[2]],s=3}else if("area"===t.type)i=u[o];else{var f=t._module;if(f||(f=(n.modules[t.type||a.type.dflt]||{})._module),!f)return!1;if(!(i=(r=f.attributes)&&r[o])){var h=f.basePlotModule;h&&h.attributes&&(i=h.attributes[o])}i||(i=a[o])}return b(i,e,s)},r.getLayoutValObject=function(t,e){return b(function(t,e){var r,i,a,s,l=t._basePlotModules;if(l){var c;for(r=0;r=i&&(r._input||{})._templateitemname;o&&(a=i);var s,l=e+"["+a+"]";function c(){s={},o&&(s[l]={},s[l].templateitemname=o)}function u(t,e){o?n.nestedProperty(s[l],t).set(e):s[l+"."+t]=e}function f(){var t=s;return c(),t}return c(),{modifyBase:function(t,e){s[t]=e},modifyItem:u,getUpdateObj:f,applyUpdate:function(e,r){e&&u(e,r);var i=f();for(var a in i)n.nestedProperty(t,a).set(i[a])}}}},{"../lib":778,"../plots/attributes":824}],818:[function(t,e,r){"use strict";var n=t("d3"),i=t("../registry"),a=t("../plots/plots"),o=t("../lib"),s=t("../lib/clear_gl_canvases"),l=t("../components/color"),c=t("../components/drawing"),u=t("../components/titles"),f=t("../components/modebar"),h=t("../plots/cartesian/axes"),p=t("../constants/alignment"),d=t("../plots/cartesian/constraints"),g=d.enforce,m=d.clean,v=t("../plots/cartesian/autorange").doAutoRange;function y(t,e,r){for(var n=0;n=t[1]||i[1]<=t[0])&&(a[0]e[0]))return!0}return!1}function x(t){var e,i,s,u,d,g,m=t._fullLayout,v=m._size,x=v.p,_=h.list(t,"",!0);if(m._paperdiv.style({width:t._context.responsive&&m.autosize&&!t._context._hasZeroWidth&&!t.layout.width?"100%":m.width+"px",height:t._context.responsive&&m.autosize&&!t._context._hasZeroHeight&&!t.layout.height?"100%":m.height+"px"}).selectAll(".main-svg").call(c.setSize,m.width,m.height),t._context.setBackground(t,m.paper_bgcolor),r.drawMainTitle(t),f.manage(t),!m._has("cartesian"))return a.previousPromises(t);function T(t,e,r){var n=t._lw/2;return"x"===t._id.charAt(0)?e?"top"===r?e._offset-x-n:e._offset+e._length+x+n:v.t+v.h*(1-(t.position||0))+n%1:e?"right"===r?e._offset+e._length+x+n:e._offset-x-n:v.l+v.w*(t.position||0)+n%1}for(e=0;e<_.length;e++){var k=(u=_[e])._anchorAxis;u._linepositions={},u._lw=c.crispRound(t,u.linewidth,1),u._mainLinePosition=T(u,k,u.side),u._mainMirrorPosition=u.mirror&&k?T(u,k,p.OPPOSITE_SIDE[u.side]):null}var M=[],A=[],S=[],E=1===l.opacity(m.paper_bgcolor)&&1===l.opacity(m.plot_bgcolor)&&m.paper_bgcolor===m.plot_bgcolor;for(i in m._plots)if((s=m._plots[i]).mainplot)s.bg&&s.bg.remove(),s.bg=void 0;else{var C=s.xaxis.domain,L=s.yaxis.domain,I=s.plotgroup;if(y(C,L,S)){var P=I.node(),z=s.bg=o.ensureSingle(I,"rect","bg");P.insertBefore(z.node(),P.childNodes[0]),A.push(i)}else I.select("rect.bg").remove(),S.push([C,L]),E||(M.push(i),A.push(i))}var O,D,R,F,B,N,j,U,V,q,H,G,Y,W=m._bgLayer.selectAll(".bg").data(M);for(W.enter().append("rect").classed("bg",!0),W.exit().remove(),W.each((function(t){m._plots[t].bg=n.select(this)})),e=0;eT?u.push({code:"unused",traceType:y,templateCount:w,dataCount:T}):T>w&&u.push({code:"reused",traceType:y,templateCount:w,dataCount:T})}}else u.push({code:"data"});if(function t(e,r){for(var n in e)if("_"!==n.charAt(0)){var a=e[n],o=g(e,n,r);i(a)?(Array.isArray(e)&&!1===a._template&&a.templateitemname&&u.push({code:"missing",path:o,templateitemname:a.templateitemname}),t(a,o)):Array.isArray(a)&&m(a)&&t(a,o)}}({data:p,layout:h},""),u.length)return u.map(v)}},{"../lib":778,"../plots/attributes":824,"../plots/plots":891,"./plot_config":815,"./plot_schema":816,"./plot_template":817}],820:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("./plot_api"),a=t("../plots/plots"),o=t("../lib"),s=t("../snapshot/helpers"),l=t("../snapshot/tosvg"),c=t("../snapshot/svgtoimg"),u=t("../version").version,f={format:{valType:"enumerated",values:["png","jpeg","webp","svg","full-json"],dflt:"png"},width:{valType:"number",min:1},height:{valType:"number",min:1},scale:{valType:"number",min:0,dflt:1},setBackground:{valType:"any",dflt:!1},imageDataOnly:{valType:"boolean",dflt:!1}};e.exports=function(t,e){var r,h,p,d;function g(t){return!(t in e)||o.validate(e[t],f[t])}if(e=e||{},o.isPlainObject(t)?(r=t.data||[],h=t.layout||{},p=t.config||{},d={}):(t=o.getGraphDiv(t),r=o.extendDeep([],t.data),h=o.extendDeep({},t.layout),p=t._context,d=t._fullLayout||{}),!g("width")&&null!==e.width||!g("height")&&null!==e.height)throw new Error("Height and width should be pixel values.");if(!g("format"))throw new Error("Export format is not "+o.join2(f.format.values,", "," or ")+".");var m={};function v(t,r){return o.coerce(e,m,f,t,r)}var y=v("format"),x=v("width"),b=v("height"),_=v("scale"),w=v("setBackground"),T=v("imageDataOnly"),k=document.createElement("div");k.style.position="absolute",k.style.left="-5000px",document.body.appendChild(k);var M=o.extendFlat({},h);x?M.width=x:null===e.width&&n(d.width)&&(M.width=d.width),b?M.height=b:null===e.height&&n(d.height)&&(M.height=d.height);var A=o.extendFlat({},p,{_exportedPlot:!0,staticPlot:!0,setBackground:w}),S=s.getRedrawFunc(k);function E(){return new Promise((function(t){setTimeout(t,s.getDelay(k._fullLayout))}))}function C(){return new Promise((function(t,e){var r=l(k,y,_),n=k._fullLayout.width,f=k._fullLayout.height;function h(){i.purge(k),document.body.removeChild(k)}if("full-json"===y){var p=a.graphJson(k,!1,"keepdata","object",!0,!0);return p.version=u,p=JSON.stringify(p),h(),t(T?p:s.encodeJSON(p))}if(h(),"svg"===y)return t(T?r:s.encodeSVG(r));var d=document.createElement("canvas");d.id=o.randstr(),c({format:y,width:n,height:f,scale:_,canvas:d,svg:r,promise:!0}).then(t).catch(e)}))}return new Promise((function(t,e){i.plot(k,r,M,A).then(S).then(E).then(C).then((function(e){t(function(t){return T?t.replace(s.IMAGE_URL_PREFIX,""):t}(e))})).catch((function(t){e(t)}))}))}},{"../lib":778,"../plots/plots":891,"../snapshot/helpers":915,"../snapshot/svgtoimg":917,"../snapshot/tosvg":919,"../version":1370,"./plot_api":814,"fast-isnumeric":241}],821:[function(t,e,r){"use strict";var n=t("../lib"),i=t("../plots/plots"),a=t("./plot_schema"),o=t("./plot_config").dfltConfig,s=n.isPlainObject,l=Array.isArray,c=n.isArrayOrTypedArray;function u(t,e,r,i,a,o){o=o||[];for(var f=Object.keys(t),h=0;hx.length&&i.push(d("unused",a,v.concat(x.length)));var M,A,S,E,C,L=x.length,I=Array.isArray(k);if(I&&(L=Math.min(L,k.length)),2===b.dimensions)for(A=0;Ax[A].length&&i.push(d("unused",a,v.concat(A,x[A].length)));var P=x[A].length;for(M=0;M<(I?Math.min(P,k[A].length):P);M++)S=I?k[A][M]:k,E=y[A][M],C=x[A][M],n.validate(E,S)?C!==E&&C!==+E&&i.push(d("dynamic",a,v.concat(A,M),E,C)):i.push(d("value",a,v.concat(A,M),E))}else i.push(d("array",a,v.concat(A),y[A]));else for(A=0;A1&&p.push(d("object","layout"))),i.supplyDefaults(g);for(var m=g._fullData,v=r.length,y=0;y0&&Math.round(f)===f))return i;c=f}for(var h=e.calendar,p="start"===l,d="end"===l,g=t[r+"period0"],m=a(g,h)||0,v=[],y=i.length,x=0;xT;)w=o(w,-c,h);for(;w<=T;)w=o(w,c,h);_=o(w,-c,h)}else{for(w=m+(b=Math.round((T-m)/u))*u;w>T;)w-=u;for(;w<=T;)w+=u;_=w-u}v[x]=p?_:d?w:(_+w)/2}return v}},{"../../constants/numerical":753,"../../lib":778,"fast-isnumeric":241}],826:[function(t,e,r){"use strict";e.exports={xaxis:{valType:"subplotid",dflt:"x",editType:"calc+clearAxisTypes"},yaxis:{valType:"subplotid",dflt:"y",editType:"calc+clearAxisTypes"}}},{}],827:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("../../lib"),a=t("../../constants/numerical").FP_SAFE,o=t("../../registry"),s=t("./axis_ids"),l=s.getFromId,c=s.isLinked;function u(t,e){var r,n,a=[],o=t._fullLayout,s=h(o,e,0),l=h(o,e,1),c=p(t,e),u=c.min,d=c.max;if(0===u.length||0===d.length)return i.simpleMap(e.range,e.r2l);var g=u[0].val,m=d[0].val;for(r=1;r0&&((T=E-s(x)-l(b))>C?k/T>L&&(_=x,w=b,L=k/T):k/E>L&&(_={val:x.val,nopad:1},w={val:b.val,nopad:1},L=k/E));if(g===m){var I=g-1,P=g+1;if(A)if(0===g)a=[0,1];else{var z=(g>0?d:u).reduce((function(t,e){return Math.max(t,l(e))}),0),O=g/(1-Math.min(.5,z/E));a=g>0?[0,O]:[O,0]}else a=S?[Math.max(0,I),Math.max(1,P)]:[I,P]}else A?(_.val>=0&&(_={val:0,nopad:1}),w.val<=0&&(w={val:0,nopad:1})):S&&(_.val-L*s(_)<0&&(_={val:0,nopad:1}),w.val<=0&&(w={val:1,nopad:1})),L=(w.val-_.val-f(e,x.val,b.val))/(E-s(_)-l(w)),a=[_.val-L*s(_),w.val+L*l(w)];return v&&a.reverse(),i.simpleMap(a,e.l2r||Number)}function f(t,e,r){var n=0;if(t.rangebreaks)for(var i=t.locateBreaks(e,r),a=0;a0?r.ppadplus:r.ppadminus)||r.ppad||0),S=M((t._m>0?r.ppadminus:r.ppadplus)||r.ppad||0),E=M(r.vpadplus||r.vpad),C=M(r.vpadminus||r.vpad);if(!T){if(h=1/0,p=-1/0,w)for(i=0;i0&&(h=o),o>p&&o-a&&(h=o),o>p&&o=P;i--)I(i);return{min:m,max:y,opts:r}},concatExtremes:p};function p(t,e,r){var n,i,a,o=e._id,s=t._fullData,c=t._fullLayout,u=[],f=[];function h(t,e){for(n=0;n=r&&(c.extrapad||!o)){s=!1;break}i(e,c.val)&&c.pad<=r&&(o||!c.extrapad)&&(t.splice(l,1),l--)}if(s){var u=a&&0===e;t.push({val:e,pad:u?0:r,extrapad:!u&&o})}}function v(t){return n(t)&&Math.abs(t)=e}},{"../../constants/numerical":753,"../../lib":778,"../../registry":911,"./axis_ids":831,"fast-isnumeric":241}],828:[function(t,e,r){"use strict";var n=t("d3"),i=t("fast-isnumeric"),a=t("../../plots/plots"),o=t("../../registry"),s=t("../../lib"),l=s.strTranslate,c=t("../../lib/svg_text_utils"),u=t("../../components/titles"),f=t("../../components/color"),h=t("../../components/drawing"),p=t("./layout_attributes"),d=t("./clean_ticks"),g=t("../../constants/numerical"),m=g.ONEMAXYEAR,v=g.ONEAVGYEAR,y=g.ONEMINYEAR,x=g.ONEMAXQUARTER,b=g.ONEAVGQUARTER,_=g.ONEMINQUARTER,w=g.ONEMAXMONTH,T=g.ONEAVGMONTH,k=g.ONEMINMONTH,M=g.ONEWEEK,A=g.ONEDAY,S=A/2,E=g.ONEHOUR,C=g.ONEMIN,L=g.ONESEC,I=g.MINUS_SIGN,P=g.BADNUM,z=t("../../constants/alignment"),O=z.MID_SHIFT,D=z.CAP_SHIFT,R=z.LINE_SPACING,F=z.OPPOSITE_SIDE,B=e.exports={};B.setConvert=t("./set_convert");var N=t("./axis_autotype"),j=t("./axis_ids"),U=j.idSort,V=j.isLinked;B.id2name=j.id2name,B.name2id=j.name2id,B.cleanId=j.cleanId,B.list=j.list,B.listIds=j.listIds,B.getFromId=j.getFromId,B.getFromTrace=j.getFromTrace;var q=t("./autorange");B.getAutoRange=q.getAutoRange,B.findExtremes=q.findExtremes;function H(t){var e=1e-4*(t[1]-t[0]);return[t[0]-e,t[1]+e]}B.coerceRef=function(t,e,r,n,i,a){var o=n.charAt(n.length-1),l=r._fullLayout._subplots[o+"axis"],c=n+"ref",u={};return i||(i=l[0]||("string"==typeof a?a:a[0])),a||(a=i),l=l.concat(l.map((function(t){return t+" domain"}))),u[c]={valType:"enumerated",values:l.concat(a?"string"==typeof a?[a]:a:[]),dflt:i},s.coerce(t,e,u,c)},B.getRefType=function(t){return void 0===t?t:"paper"===t?"paper":"pixel"===t?"pixel":/( domain)$/.test(t)?"domain":"range"},B.coercePosition=function(t,e,r,n,i,a){var o,l;if("range"!==B.getRefType(n))o=s.ensureNumber,l=r(i,a);else{var c=B.getFromId(e,n);l=r(i,a=c.fraction2r(a)),o=c.cleanPos}t[i]=o(l)},B.cleanPosition=function(t,e,r){return("paper"===r||"pixel"===r?s.ensureNumber:B.getFromId(e,r).cleanPos)(t)},B.redrawComponents=function(t,e){e=e||B.listIds(t);var r=t._fullLayout;function n(n,i,a,s){for(var l=o.getComponentMethod(n,i),c={},u=0;u2e-6||((r-t._forceTick0)/t._minDtick%1+1.000001)%1>2e-6)&&(t._minDtick=0)):t._minDtick=0},B.saveRangeInitial=function(t,e){for(var r=B.list(t,"",!0),n=!1,i=0;i.3*h||u(n)||u(a))){var p=r.dtick/2;t+=t+p.8){var o=Number(r.substr(1));a.exactYears>.8&&o%12==0?t=B.tickIncrement(t,"M6","reverse")+1.5*A:a.exactMonths>.8?t=B.tickIncrement(t,"M1","reverse")+15.5*A:t-=S;var l=B.tickIncrement(t,r);if(l<=n)return l}return t}(y,t,v,c,a)),m=y,0;m<=u;)m=B.tickIncrement(m,v,!1,a);return{start:e.c2r(y,0,a),end:e.c2r(m,0,a),size:v,_dataSpan:u-c}},B.prepTicks=function(t,e){var r=s.simpleMap(t.range,t.r2l,void 0,void 0,e);if(t._dtickInit=t.dtick,t._tick0Init=t.tick0,"auto"===t.tickmode||!t.dtick){var n,a=t.nticks;a||("category"===t.type||"multicategory"===t.type?(n=t.tickfont?1.2*(t.tickfont.size||12):15,a=t._length/n):(n="y"===t._id.charAt(0)?40:80,a=s.constrain(t._length/n,4,9)+1),"radialaxis"===t._name&&(a*=2)),"array"===t.tickmode&&(a*=100),t._roughDTick=Math.abs(r[1]-r[0])/a,B.autoTicks(t,t._roughDTick),t._minDtick>0&&t.dtick<2*t._minDtick&&(t.dtick=t._minDtick,t.tick0=t.l2r(t._forceTick0))}"period"===t.ticklabelmode&&function(t){var e;function r(){return!(i(t.dtick)||"M"!==t.dtick.charAt(0))}var n=r(),a=B.getTickFormat(t);if(a){var o=t._dtickInit!==t.dtick;/%[fLQsSMX]/.test(a)||(/%[HI]/.test(a)?(e=E,o&&!n&&t.dticka&&f=o:p<=o;p=B.tickIncrement(p,t.dtick,l,t.calendar)){if(t.rangebreaks&&!l){if(p=u)break}if(C.length>g||p===L)break;L=p;var I=!1;f&&p!==(0|p)&&(I=!0),C.push({minor:I,value:p})}if(h&&function(t,e,r){for(var n=0;n0?(a=n-1,o=n):(a=n,o=n);var s,l=t[a].value,c=t[o].value,u=Math.abs(c-l),f=r||u,h=0;f>=y?h=u>=y&&u<=m?u:v:r===b&&f>=_?h=u>=_&&u<=x?u:b:f>=k?h=u>=k&&u<=w?u:T:r===M&&f>=M?h=M:f>=A?h=A:r===S&&f>=S?h=S:r===E&&f>=E&&(h=E),h>=u&&(h=u,s=!0);var p=i+h;if(e.rangebreaks&&h>0){for(var d=0,g=0;g<84;g++){var C=(g+.5)/84;e.maskBreaks(i*(1-C)+C*p)!==P&&d++}(h*=d/84)||(t[n].drop=!0),s&&u>M&&(h=u)}(h>0||0===n)&&(t[n].periodX=i+h/2)}}(C,t,t._definedDelta),t.rangebreaks){var z="y"===t._id.charAt(0),O=1;"auto"===t.tickmode&&(O=t.tickfont?t.tickfont.size:12);var D=NaN;for(d=C.length-1;d>-1;d--)if(C[d].drop)C.splice(d,1);else{C[d].value=wt(C[d].value,t);var R=t.c2p(C[d].value);(z?D>R-O:Du||Nu&&(F.periodX=u),N10||"01-01"!==n.substr(5)?t._tickround="d":t._tickround=+e.substr(1)%12==0?"y":"m";else if(e>=A&&a<=10||e>=15*A)t._tickround="d";else if(e>=C&&a<=16||e>=E)t._tickround="M";else if(e>=L&&a<=19||e>=C)t._tickround="S";else{var o=t.l2r(r+e).replace(/^-/,"").length;t._tickround=Math.max(a,o)-20,t._tickround<0&&(t._tickround=4)}}else if(i(e)||"L"===e.charAt(0)){var s=t.range.map(t.r2d||Number);i(e)||(e=Number(e.substr(1))),t._tickround=2-Math.floor(Math.log(e)/Math.LN10+.01);var l=Math.max(Math.abs(s[0]),Math.abs(s[1])),c=Math.floor(Math.log(l)/Math.LN10+.01),u=void 0===t.minexponent?3:t.minexponent;Math.abs(c)>u&&(ot(t.exponentformat)&&!st(c)?t._tickexponent=3*Math.round((c-1)/3):t._tickexponent=c)}else t._tickround=null}function it(t,e,r){var n=t.tickfont||{};return{x:e,dx:0,dy:0,text:r||"",fontSize:n.size,font:n.family,fontColor:n.color}}B.autoTicks=function(t,e){var r;function n(t){return Math.pow(t,Math.floor(Math.log(e)/Math.LN10))}if("date"===t.type){t.tick0=s.dateTick0(t.calendar,0);var a=2*e;if(a>v)e/=v,r=n(10),t.dtick="M"+12*rt(e,r,Z);else if(a>T)e/=T,t.dtick="M"+rt(e,1,J);else if(a>A){t.dtick=rt(e,A,t._hasDayOfWeekBreaks?[1,2,7,14]:Q);var o=B.getTickFormat(t),l="period"===t.ticklabelmode;l&&(t._rawTick0=t.tick0),/%[uVW]/.test(o)?t.tick0=s.dateTick0(t.calendar,2):t.tick0=s.dateTick0(t.calendar,1),l&&(t._dowTick0=t.tick0)}else a>E?t.dtick=rt(e,E,J):a>C?t.dtick=rt(e,C,K):a>L?t.dtick=rt(e,L,K):(r=n(10),t.dtick=rt(e,r,Z))}else if("log"===t.type){t.tick0=0;var c=s.simpleMap(t.range,t.r2l);if(e>.7)t.dtick=Math.ceil(e);else if(Math.abs(c[1]-c[0])<1){var u=1.5*Math.abs((c[1]-c[0])/e);e=Math.abs(Math.pow(10,c[1])-Math.pow(10,c[0]))/u,r=n(10),t.dtick="L"+rt(e,r,Z)}else t.dtick=e>.3?"D2":"D1"}else"category"===t.type||"multicategory"===t.type?(t.tick0=0,t.dtick=Math.ceil(Math.max(e,1))):_t(t)?(t.tick0=0,r=1,t.dtick=rt(e,r,et)):(t.tick0=0,r=n(10),t.dtick=rt(e,r,Z));if(0===t.dtick&&(t.dtick=1),!i(t.dtick)&&"string"!=typeof t.dtick){var f=t.dtick;throw t.dtick=1,"ax.dtick error: "+String(f)}},B.tickIncrement=function(t,e,r,a){var o=r?-1:1;if(i(e))return s.increment(t,o*e);var l=e.charAt(0),c=o*Number(e.substr(1));if("M"===l)return s.incrementMonth(t,c,a);if("L"===l)return Math.log(Math.pow(10,t)+c)/Math.LN10;if("D"===l){var u="D2"===e?tt:$,f=t+.01*o,h=s.roundUp(s.mod(f,1),u,r);return Math.floor(f)+Math.log(n.round(Math.pow(10,h),1))/Math.LN10}throw"unrecognized dtick "+String(e)},B.tickFirst=function(t,e){var r=t.r2l||Number,a=s.simpleMap(t.range,r,void 0,void 0,e),o=a[1] ")}else t._prevDateHead=l,c+="
    "+l;e.text=c}(t,o,r,c):"log"===u?function(t,e,r,n,a){var o=t.dtick,l=e.x,c=t.tickformat,u="string"==typeof o&&o.charAt(0);"never"===a&&(a="");n&&"L"!==u&&(o="L3",u="L");if(c||"L"===u)e.text=lt(Math.pow(10,l),t,a,n);else if(i(o)||"D"===u&&s.mod(l+.01,1)<.1){var f=Math.round(l),h=Math.abs(f),p=t.exponentformat;"power"===p||ot(p)&&st(f)?(e.text=0===f?1:1===f?"10":"10"+(f>1?"":I)+h+"",e.fontSize*=1.25):("e"===p||"E"===p)&&h>2?e.text="1"+p+(f>0?"+":I)+h:(e.text=lt(Math.pow(10,l),t,"","fakehover"),"D1"===o&&"y"===t._id.charAt(0)&&(e.dy-=e.fontSize/6))}else{if("D"!==u)throw"unrecognized dtick "+String(o);e.text=String(Math.round(Math.pow(10,s.mod(l,1)))),e.fontSize*=.75}if("D1"===t.dtick){var d=String(e.text).charAt(0);"0"!==d&&"1"!==d||("y"===t._id.charAt(0)?e.dx-=e.fontSize/4:(e.dy+=e.fontSize/2,e.dx+=(t.range[1]>t.range[0]?1:-1)*e.fontSize*(l<0?.5:.25)))}}(t,o,0,c,g):"category"===u?function(t,e){var r=t._categories[Math.round(e.x)];void 0===r&&(r="");e.text=String(r)}(t,o):"multicategory"===u?function(t,e,r){var n=Math.round(e.x),i=t._categories[n]||[],a=void 0===i[1]?"":String(i[1]),o=void 0===i[0]?"":String(i[0]);r?e.text=o+" - "+a:(e.text=a,e.text2=o)}(t,o,r):_t(t)?function(t,e,r,n,i){if("radians"!==t.thetaunit||r)e.text=lt(e.x,t,i,n);else{var a=e.x/180;if(0===a)e.text="0";else{var o=function(t){function e(t,e){return Math.abs(t-e)<=1e-6}var r=function(t){for(var r=1;!e(Math.round(t*r)/r,t);)r*=10;return r}(t),n=t*r,i=Math.abs(function t(r,n){return e(n,0)?r:t(n,r%n)}(n,r));return[Math.round(n/i),Math.round(r/i)]}(a);if(o[1]>=100)e.text=lt(s.deg2rad(e.x),t,i,n);else{var l=e.x<0;1===o[1]?1===o[0]?e.text="\u03c0":e.text=o[0]+"\u03c0":e.text=["",o[0],"","\u2044","",o[1],"","\u03c0"].join(""),l&&(e.text=I+e.text)}}}}(t,o,r,c,g):function(t,e,r,n,i){"never"===i?i="":"all"===t.showexponent&&Math.abs(e.x/t.dtick)<1e-6&&(i="hide");e.text=lt(e.x,t,i,n)}(t,o,0,c,g),n||(t.tickprefix&&!d(t.showtickprefix)&&(o.text=t.tickprefix+o.text),t.ticksuffix&&!d(t.showticksuffix)&&(o.text+=t.ticksuffix)),"boundaries"===t.tickson||t.showdividers){var m=function(e){var r=t.l2p(e);return r>=0&&r<=t._length?e:null};o.xbnd=[m(o.x-.5),m(o.x+t.dtick-.5)]}return o},B.hoverLabelText=function(t,e,r){if(r!==P&&r!==e)return B.hoverLabelText(t,e)+" - "+B.hoverLabelText(t,r);var n="log"===t.type&&e<=0,i=B.tickText(t,t.c2l(n?-e:e),"hover").text;return n?0===e?"0":I+i:i};var at=["f","p","n","\u03bc","m","","k","M","G","T"];function ot(t){return"SI"===t||"B"===t}function st(t){return t>14||t<-15}function lt(t,e,r,n){var a=t<0,o=e._tickround,l=r||e.exponentformat||"B",c=e._tickexponent,u=B.getTickFormat(e),f=e.separatethousands;if(n){var h={exponentformat:l,minexponent:e.minexponent,dtick:"none"===e.showexponent?e.dtick:i(t)&&Math.abs(t)||1,range:"none"===e.showexponent?e.range.map(e.r2d):[0,t||1]};nt(h),o=(Number(h._tickround)||0)+4,c=h._tickexponent,e.hoverformat&&(u=e.hoverformat)}if(u)return e._numFormat(u)(t).replace(/-/g,I);var p,d=Math.pow(10,-o)/2;if("none"===l&&(c=0),(t=Math.abs(t))"+p+"":"B"===l&&9===c?t+="B":ot(l)&&(t+=at[c/3+5]));return a?I+t:t}function ct(t,e){for(var r=[],n={},i=0;i1&&r=i.min&&t=0,a=u(t,e[1])<=0;return(r||i)&&(n||a)}if(t.tickformatstops&&t.tickformatstops.length>0)switch(t.type){case"date":case"linear":for(e=0;e=o(i)))){r=n;break}break;case"log":for(e=0;e0?r.bottom-f:0,h)))),e.automargin){n={x:0,y:0,r:0,l:0,t:0,b:0};var p=[0,1];if("x"===d){if("b"===l?n[l]=e._depth:(n[l]=e._depth=Math.max(r.width>0?f-r.top:0,h),p.reverse()),r.width>0){var m=r.right-(e._offset+e._length);m>0&&(n.xr=1,n.r=m);var v=e._offset-r.left;v>0&&(n.xl=0,n.l=v)}}else if("l"===l?n[l]=e._depth=Math.max(r.height>0?f-r.left:0,h):(n[l]=e._depth=Math.max(r.height>0?r.right-f:0,h),p.reverse()),r.height>0){var y=r.bottom-(e._offset+e._length);y>0&&(n.yb=0,n.b=y);var x=e._offset-r.top;x>0&&(n.yt=1,n.t=x)}n[g]="free"===e.anchor?e.position:e._anchorAxis.domain[p[0]],e.title.text!==c._dfltTitle[d]&&(n[l]+=ht(e)+(e.title.standoff||0)),e.mirror&&"free"!==e.anchor&&((i={x:0,y:0,r:0,l:0,t:0,b:0})[u]=e.linewidth,e.mirror&&!0!==e.mirror&&(i[u]+=h),!0===e.mirror||"ticks"===e.mirror?i[g]=e._anchorAxis.domain[p[1]]:"all"!==e.mirror&&"allticks"!==e.mirror||(i[g]=[e._counterDomainMin,e._counterDomainMax][p[1]]))}K&&(s=o.getComponentMethod("rangeslider","autoMarginOpts")(t,e)),a.autoMargin(t,gt(e),n),a.autoMargin(t,mt(e),i),a.autoMargin(t,vt(e),s)})),r.skipTitle||K&&"bottom"===e.side||Z.push((function(){return function(t,e){var r,n=t._fullLayout,i=e._id,a=i.charAt(0),o=e.title.font.size;if(e.title.hasOwnProperty("standoff"))r=e._depth+e.title.standoff+ht(e);else{var s=-1!==(e.ticklabelposition||"").indexOf("inside");if("multicategory"===e.type)r=e._depth;else{var l=1.5*o;s&&(l=.5*o,"outside"===e.ticks&&(l+=e.ticklen)),r=10+l+(e.linewidth?e.linewidth-1:0)}s||(r+="x"===a?"top"===e.side?o*(e.showticklabels?1:0):o*(e.showticklabels?1.5:.5):"right"===e.side?o*(e.showticklabels?1:.5):o*(e.showticklabels?.5:0))}var c,f,p,d,g=B.getPxPosition(t,e);"x"===a?(f=e._offset+e._length/2,p="top"===e.side?g-r:g+r):(p=e._offset+e._length/2,f="right"===e.side?g+r:g-r,c={rotate:"-90",offset:0});if("multicategory"!==e.type){var m=e._selections[e._id+"tick"];if(d={selection:m,side:e.side},m&&m.node()&&m.node().parentNode){var v=h.getTranslate(m.node().parentNode);d.offsetLeft=v.x,d.offsetTop=v.y}e.title.hasOwnProperty("standoff")&&(d.pad=0)}return u.draw(t,i+"title",{propContainer:e,propName:e._name+".title.text",placeholder:n._dfltTitle[a],avoid:d,transform:c,attributes:{x:f,y:p,"text-anchor":"middle"}})}(t,e)})),s.syncOrAsync(Z)}}function Q(t){var r=p+(t||"tick");return w[r]||(w[r]=function(t,e){var r,n,i,a;t._selections[e].size()?(r=1/0,n=-1/0,i=1/0,a=-1/0,t._selections[e].each((function(){var t=dt(this),e=h.bBox(t.node().parentNode);r=Math.min(r,e.top),n=Math.max(n,e.bottom),i=Math.min(i,e.left),a=Math.max(a,e.right)}))):(r=0,n=0,i=0,a=0);return{top:r,bottom:n,left:i,right:a,height:n-r,width:a-i}}(e,r)),w[r]}},B.getTickSigns=function(t){var e=t._id.charAt(0),r={x:"top",y:"right"}[e],n=t.side===r?1:-1,i=[-1,1,n,-n];return"inside"!==t.ticks==("x"===e)&&(i=i.map((function(t){return-t}))),t.side&&i.push({l:-1,t:-1,r:1,b:1}[t.side.charAt(0)]),i},B.makeTransTickFn=function(t){return"x"===t._id.charAt(0)?function(e){return l(t._offset+t.l2p(e.x),0)}:function(e){return l(0,t._offset+t.l2p(e.x))}},B.makeTransTickLabelFn=function(t){var e=function(t){var e=t.ticklabelposition||"",r=function(t){return-1!==e.indexOf(t)},n=r("top"),i=r("left"),a=r("right"),o=r("bottom"),s=r("inside"),l=o||i||n||a;if(!l&&!s)return[0,0];var c=t.side,u=l?(t.tickwidth||0)/2:0,f=3,h=t.tickfont?t.tickfont.size:12;(o||n)&&(u+=h*D,f+=(t.linewidth||0)/2);(i||a)&&(u+=(t.linewidth||0)/2,f+=3);s&&"top"===c&&(f-=h*(1-D));(i||n)&&(u=-u);"bottom"!==c&&"right"!==c||(f=-f);return[l?u:0,s?f:0]}(t),r=e[0],n=e[1];return"x"===t._id.charAt(0)?function(e){return l(r+t._offset+t.l2p(ut(e)),n)}:function(e){return l(n,r+t._offset+t.l2p(ut(e)))}},B.makeTickPath=function(t,e,r,n){n=void 0!==n?n:t.ticklen;var i=t._id.charAt(0),a=(t.linewidth||1)/2;return"x"===i?"M0,"+(e+a*r)+"v"+n*r:"M"+(e+a*r)+",0h"+n*r},B.makeLabelFns=function(t,e,r){var n=t.ticklabelposition||"",a=function(t){return-1!==n.indexOf(t)},o=a("top"),l=a("left"),c=a("right"),u=a("bottom")||l||o||c,f=a("inside"),h="inside"===n&&"inside"===t.ticks||!f&&"outside"===t.ticks&&"boundaries"!==t.tickson,p=0,d=0,g=h?t.ticklen:0;if(f?g*=-1:u&&(g=0),h&&(p+=g,r)){var m=s.deg2rad(r);p=g*Math.cos(m)+1,d=g*Math.sin(m)}t.showticklabels&&(h||t.showline)&&(p+=.2*t.tickfont.size);var v,y,x,b,_,w={labelStandoff:p+=(t.linewidth||1)/2*(f?-1:1),labelShift:d},T=0,k=t.side,M=t._id.charAt(0),A=t.tickangle;if("x"===M)b=(_=!f&&"bottom"===k||f&&"top"===k)?1:-1,f&&(b*=-1),v=d*b,y=e+p*b,x=_?1:-.2,90===Math.abs(A)&&(f?x+=O:x=-90===A&&"bottom"===k?D:90===A&&"top"===k?O:.5,T=O/2*(A/90)),w.xFn=function(t){return t.dx+v+T*t.fontSize},w.yFn=function(t){return t.dy+y+t.fontSize*x},w.anchorFn=function(t,e){if(u){if(l)return"end";if(c)return"start"}return i(e)&&0!==e&&180!==e?e*b<0!==f?"end":"start":"middle"},w.heightFn=function(e,r,n){return r<-60||r>60?-.5*n:"top"===t.side!==f?-n:0};else if("y"===M){if(b=(_=!f&&"left"===k||f&&"right"===k)?1:-1,f&&(b*=-1),v=p,y=d*b,x=0,f||90!==Math.abs(A)||(x=-90===A&&"left"===k||90===A&&"right"===k?D:.5),f){var S=i(A)?+A:0;if(0!==S){var E=s.deg2rad(S);T=Math.abs(Math.sin(E))*D*b,x=0}}w.xFn=function(t){return t.dx+e-(v+t.fontSize*x)*b+T*t.fontSize},w.yFn=function(t){return t.dy+y+t.fontSize*O},w.anchorFn=function(t,e){return i(e)&&90===Math.abs(e)?"middle":_?"end":"start"},w.heightFn=function(e,r,n){return"right"===t.side&&(r*=-1),r<-30?-n:r<30?-.5*n:0}}return w},B.drawTicks=function(t,e,r){r=r||{};var n=e._id+"tick",i=r.vals;"period"===e.ticklabelmode&&(i=i.slice()).shift();var a=r.layer.selectAll("path."+n).data(e.ticks?i:[],ft);a.exit().remove(),a.enter().append("path").classed(n,1).classed("ticks",1).classed("crisp",!1!==r.crisp).call(f.stroke,e.tickcolor).style("stroke-width",h.crispRound(t,e.tickwidth,1)+"px").attr("d",r.path),a.attr("transform",r.transFn)},B.drawGrid=function(t,e,r){r=r||{};var n=e._id+"grid",i=r.vals,a=r.counterAxis;if(!1===e.showgrid)i=[];else if(a&&B.shouldShowZeroLine(t,e,a))for(var o="array"===e.tickmode,s=0;so||i.lefto||i.top+(e.tickangle?0:t.fontSize/4)1)for(n=1;n2*o}(i,e))return"date";var m="strict"!==r.autotypenumbers;return function(t,e){for(var r=t.length,n=f(r),i=0,o=0,s={},u=0;u2*i}(i,m)?"category":function(t,e){for(var r=t.length,n=0;n=2){var l,c,u="";if(2===o.length)for(l=0;l<2;l++)if(c=y(o[l])){u=d;break}var f=i("pattern",u);if(f===d)for(l=0;l<2;l++)(c=y(o[l]))&&(e.bounds[l]=o[l]=c-1);if(f)for(l=0;l<2;l++)switch(c=o[l],f){case d:if(!n(c))return void(e.enabled=!1);if((c=+c)!==Math.floor(c)||c<0||c>=7)return void(e.enabled=!1);e.bounds[l]=o[l]=c;break;case g:if(!n(c))return void(e.enabled=!1);if((c=+c)<0||c>24)return void(e.enabled=!1);e.bounds[l]=o[l]=c}if(!1===r.autorange){var h=r.range;if(h[0]h[1])return void(e.enabled=!1)}else if(o[0]>h[0]&&o[1]n?1:-1:+(t.substr(1)||1)-+(e.substr(1)||1)},r.ref2id=function(t){return!!/^[xyz]/.test(t)&&t.split(" ")[0]},r.isLinked=function(t,e){return a(e,t._axisMatchGroups)||a(e,t._axisConstraintGroups)}},{"../../registry":911,"./constants":834}],832:[function(t,e,r){"use strict";e.exports=function(t,e,r,n){if("category"===e.type){var i,a=t.categoryarray,o=Array.isArray(a)&&a.length>0;o&&(i="array");var s,l=r("categoryorder",i);"array"===l&&(s=r("categoryarray")),o||"array"!==l||(l=e.categoryorder="trace"),"trace"===l?e._initialCategories=[]:"array"===l?e._initialCategories=s.slice():(s=function(t,e){var r,n,i,a=e.dataAttr||t._id.charAt(0),o={};if(e.axData)r=e.axData;else for(r=[],n=0;nn?i.substr(n):a.substr(r))+o:i+a+t*e:o}function m(t,e){for(var r=e._size,n=r.h/r.w,i={},a=Object.keys(t),o=0;oc*x)||T)for(r=0;rz&&FI&&(I=F);h/=(I-L)/(2*P),L=l.l2r(L),I=l.l2r(I),l.range=l._input.range=S=0?Math.min(t,.9):1/(1/Math.max(t,-.3)+3.222))}function B(t,e,r,n,i){return t.append("path").attr("class","zoombox").style({fill:e>.2?"rgba(0,0,0,0)":"rgba(255,255,255,0)","stroke-width":0}).attr("transform",l(r,n)).attr("d",i+"Z")}function N(t,e,r){return t.append("path").attr("class","zoombox-corners").style({fill:u.background,stroke:u.defaultLine,"stroke-width":1,opacity:0}).attr("transform",l(e,r)).attr("d","M0,0Z")}function j(t,e,r,n,i,a){t.attr("d",n+"M"+r.l+","+r.t+"v"+r.h+"h"+r.w+"v-"+r.h+"h-"+r.w+"Z"),U(t,e,i,a)}function U(t,e,r,n){r||(t.transition().style("fill",n>.2?"rgba(0,0,0,0.4)":"rgba(255,255,255,0.3)").duration(200),e.transition().style("opacity",1).duration(200))}function V(t){n.select(t).selectAll(".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners").remove()}function q(t){I&&t.data&&t._context.showTips&&(s.notifier(s._(t,"Double-click to zoom back out"),"long"),I=!1)}function H(t){var e=Math.floor(Math.min(t.b-t.t,t.r-t.l,L)/2);return"M"+(t.l-3.5)+","+(t.t-.5+e)+"h3v"+-e+"h"+e+"v-3h-"+(e+3)+"ZM"+(t.r+3.5)+","+(t.t-.5+e)+"h-3v"+-e+"h"+-e+"v-3h"+(e+3)+"ZM"+(t.r+3.5)+","+(t.b+.5-e)+"h-3v"+e+"h"+-e+"v3h"+(e+3)+"ZM"+(t.l-3.5)+","+(t.b+.5-e)+"h3v"+e+"h"+e+"v3h-"+(e+3)+"Z"}function G(t,e,r,n,i){for(var a,o,l,c,u=!1,f={},h={},p=(i||{}).xaHash,d=(i||{}).yaHash,g=0;g=0)i._fullLayout._deactivateShape(i);else{var a=i._fullLayout.clickmode;if(V(i),2!==t||mt||qt(),gt)a.indexOf("select")>-1&&A(r,i,Z,J,e.id,Lt),a.indexOf("event")>-1&&h.click(i,r,e.id);else if(1===t&&mt){var s=d?P:I,l="s"===d||"w"===m?0:1,u=s._name+".range["+l+"]",f=function(t,e){var r,i=t.range[e],a=Math.abs(i-t.range[1-e]);return"date"===t.type?i:"log"===t.type?(r=Math.ceil(Math.max(0,-Math.log(a)/Math.LN10))+3,n.format("."+r+"g")(Math.pow(10,i))):(r=Math.floor(Math.log(Math.abs(i))/Math.LN10)-Math.floor(Math.log(a)/Math.LN10)+4,n.format("."+String(r)+"g")(i))}(s,l),p="left",g="middle";if(s.fixedrange)return;d?(g="n"===d?"top":"bottom","right"===s.side&&(p="right")):"e"===m&&(p="right"),i._context.showAxisRangeEntryBoxes&&n.select(xt).call(c.makeEditable,{gd:i,immediate:!0,background:i._fullLayout.paper_bgcolor,text:String(f),fill:s.tickfont?s.tickfont.color:"#444",horizontalAlign:p,verticalAlign:g}).on("edit",(function(t){var e=s.d2r(t);void 0!==e&&o.call("_guiRelayout",i,u,e)}))}}}function zt(e,r){if(t._transitioningWithDuration)return!1;var n=Math.max(0,Math.min($,ht*e+bt)),i=Math.max(0,Math.min(tt,pt*r+_t)),a=Math.abs(n-bt),o=Math.abs(i-_t);function s(){At="",wt.r=wt.l,wt.t=wt.b,Et.attr("d","M0,0Z")}if(wt.l=Math.min(bt,n),wt.r=Math.max(bt,n),wt.t=Math.min(_t,i),wt.b=Math.max(_t,i),et.isSubplotConstrained)a>L||o>L?(At="xy",a/$>o/tt?(o=a*tt/$,_t>i?wt.t=_t-o:wt.b=_t+o):(a=o*$/tt,bt>n?wt.l=bt-a:wt.r=bt+a),Et.attr("d",H(wt))):s();else if(rt.isSubplotConstrained)if(a>L||o>L){At="xy";var l=Math.min(wt.l/$,(tt-wt.b)/tt),c=Math.max(wt.r/$,(tt-wt.t)/tt);wt.l=l*$,wt.r=c*$,wt.b=(1-l)*tt,wt.t=(1-c)*tt,Et.attr("d",H(wt))}else s();else!it||o0){var u;if(rt.isSubplotConstrained||!nt&&1===it.length){for(u=0;ug[1]-1/4096&&(e.domain=s),i.noneOrAll(t.domain,e.domain,s)}return r("layer"),e}},{"../../lib":778,"fast-isnumeric":241}],846:[function(t,e,r){"use strict";var n=t("../../constants/alignment").FROM_BL;e.exports=function(t,e,r){void 0===r&&(r=n[t.constraintoward||"center"]);var i=[t.r2l(t.range[0]),t.r2l(t.range[1])],a=i[0]+(i[1]-i[0])*r;t.range=t._input.range=[t.l2r(a+(i[0]-a)*e),t.l2r(a+(i[1]-a)*e)],t.setScale()}},{"../../constants/alignment":745}],847:[function(t,e,r){"use strict";var n=t("polybooljs"),i=t("../../registry"),a=t("../../components/drawing").dashStyle,o=t("../../components/color"),s=t("../../components/fx"),l=t("../../components/fx/helpers").makeEventData,c=t("../../components/dragelement/helpers"),u=c.freeMode,f=c.rectMode,h=c.drawMode,p=c.openMode,d=c.selectMode,g=t("../../components/shapes/draw_newshape/display_outlines"),m=t("../../components/shapes/draw_newshape/helpers").handleEllipse,v=t("../../components/shapes/draw_newshape/newshapes"),y=t("../../lib"),x=t("../../lib/polygon"),b=t("../../lib/throttle"),_=t("./axis_ids").getFromId,w=t("../../lib/clear_gl_canvases"),T=t("../../plot_api/subroutines").redrawReglTraces,k=t("./constants"),M=k.MINSELECT,A=x.filter,S=x.tester,E=t("./handle_outline").clearSelect,C=t("./helpers"),L=C.p2r,I=C.axValue,P=C.getTransform;function z(t,e,r,n,i,a,o){var s,l,c,u,f,h,d,m,v,y=e._hoverdata,x=e._fullLayout.clickmode.indexOf("event")>-1,b=[];if(function(t){return t&&Array.isArray(t)&&!0!==t[0].hoverOnBox}(y)){F(t,e,a);var _=function(t,e){var r,n,i=t[0],a=-1,o=[];for(n=0;n0?function(t,e){var r,n,i,a=[];for(i=0;i0&&a.push(r);if(1===a.length&&a[0]===e.searchInfo&&(n=e.searchInfo.cd[0].trace).selectedpoints.length===e.pointNumbers.length){for(i=0;i1)return!1;if((i+=r.selectedpoints.length)>1)return!1}return 1===i}(s)&&(h=j(_))){for(o&&o.remove(),v=0;v=0&&n._fullLayout._deactivateShape(n),h(e)){var a=n._fullLayout._zoomlayer.selectAll(".select-outline-"+r.id);if(a&&n._fullLayout._drawing){var o=v(a,t);o&&i.call("_guiRelayout",n,{shapes:o}),n._fullLayout._drawing=!1}}r.selection={},r.selection.selectionDefs=t.selectionDefs=[],r.selection.mergedPolygons=t.mergedPolygons=[]}function N(t,e,r,n){var i,a,o,s=[],l=e.map((function(t){return t._id})),c=r.map((function(t){return t._id}));for(o=0;o0?n[0]:r;return!!e.selectedpoints&&e.selectedpoints.indexOf(i)>-1}function U(t,e,r){var n,a,o,s;for(n=0;n=0)C._fullLayout._deactivateShape(C);else if(!_){var r=O.clickmode;b.done(gt).then((function(){if(b.clear(gt),2===t){for(ft.remove(),$=0;$-1&&z(e,C,i.xaxes,i.yaxes,i.subplot,i,ft),"event"===r&&C.emit("plotly_selected",void 0);s.click(C,e)})).catch(y.error)}},i.doneFn=function(){dt.remove(),b.done(gt).then((function(){b.clear(gt),i.gd.emit("plotly_selected",et),Q&&i.selectionDefs&&(Q.subtract=ut,i.selectionDefs.push(Q),i.mergedPolygons.length=0,[].push.apply(i.mergedPolygons,K)),i.doneFnCompleted&&i.doneFnCompleted(mt)})).catch(y.error),_&&B(i)}},clearSelect:E,clearSelectionsCache:B,selectOnClick:z}},{"../../components/color":643,"../../components/dragelement/helpers":661,"../../components/drawing":665,"../../components/fx":683,"../../components/fx/helpers":679,"../../components/shapes/draw_newshape/display_outlines":728,"../../components/shapes/draw_newshape/helpers":729,"../../components/shapes/draw_newshape/newshapes":730,"../../lib":778,"../../lib/clear_gl_canvases":762,"../../lib/polygon":790,"../../lib/throttle":804,"../../plot_api/subroutines":818,"../../registry":911,"./axis_ids":831,"./constants":834,"./handle_outline":838,"./helpers":839,polybooljs:517}],848:[function(t,e,r){"use strict";var n=t("d3"),i=t("d3-time-format").utcFormat,a=t("fast-isnumeric"),o=t("../../lib"),s=o.cleanNumber,l=o.ms2DateTime,c=o.dateTime2ms,u=o.ensureNumber,f=o.isArrayOrTypedArray,h=t("../../constants/numerical"),p=h.FP_SAFE,d=h.BADNUM,g=h.LOG_CLIP,m=h.ONEWEEK,v=h.ONEDAY,y=h.ONEHOUR,x=h.ONEMIN,b=h.ONESEC,_=t("./axis_ids"),w=t("./constants"),T=w.HOUR_PATTERN,k=w.WEEKDAY_PATTERN;function M(t){return Math.pow(10,t)}function A(t){return null!=t}e.exports=function(t,e){e=e||{};var r=t._id||"x",h=r.charAt(0);function S(e,r){if(e>0)return Math.log(e)/Math.LN10;if(e<=0&&r&&t.range&&2===t.range.length){var n=t.range[0],i=t.range[1];return.5*(n+i-2*g*Math.abs(n-i))}return d}function E(e,r,n,i){if((i||{}).msUTC&&a(e))return+e;var s=c(e,n||t.calendar);if(s===d){if(!a(e))return d;e=+e;var l=Math.floor(10*o.mod(e+.05,1)),u=Math.round(e-l/10);s=c(new Date(u))+l/10}return s}function C(e,r,n){return l(e,r,n||t.calendar)}function L(e){return t._categories[Math.round(e)]}function I(e){if(A(e)){if(void 0===t._categoriesMap&&(t._categoriesMap={}),void 0!==t._categoriesMap[e])return t._categoriesMap[e];t._categories.push("number"==typeof e?String(e):e);var r=t._categories.length-1;return t._categoriesMap[e]=r,r}return d}function P(e){if(t._categoriesMap)return t._categoriesMap[e]}function z(t){var e=P(t);return void 0!==e?e:a(t)?+t:void 0}function O(t){return a(t)?+t:P(t)}function D(t,e,r){return n.round(r+e*t,2)}function R(t,e,r){return(t-r)/e}var F=function(e){return a(e)?D(e,t._m,t._b):d},B=function(e){return R(e,t._m,t._b)};if(t.rangebreaks){var N="y"===h;F=function(e){if(!a(e))return d;var r=t._rangebreaks.length;if(!r)return D(e,t._m,t._b);var n=N;t.range[0]>t.range[1]&&(n=!n);for(var i=n?-1:1,o=i*e,s=0,l=0;lu)){s=o<(c+u)/2?l:l+1;break}s=l+1}var f=t._B[s]||0;return isFinite(f)?D(e,t._m2,f):0},B=function(e){var r=t._rangebreaks.length;if(!r)return R(e,t._m,t._b);for(var n=0,i=0;it._rangebreaks[i].pmax&&(n=i+1);return R(e,t._m2,t._B[n])}}t.c2l="log"===t.type?S:u,t.l2c="log"===t.type?M:u,t.l2p=F,t.p2l=B,t.c2p="log"===t.type?function(t,e){return F(S(t,e))}:F,t.p2c="log"===t.type?function(t){return M(B(t))}:B,-1!==["linear","-"].indexOf(t.type)?(t.d2r=t.r2d=t.d2c=t.r2c=t.d2l=t.r2l=s,t.c2d=t.c2r=t.l2d=t.l2r=u,t.d2p=t.r2p=function(e){return t.l2p(s(e))},t.p2d=t.p2r=B,t.cleanPos=u):"log"===t.type?(t.d2r=t.d2l=function(t,e){return S(s(t),e)},t.r2d=t.r2c=function(t){return M(s(t))},t.d2c=t.r2l=s,t.c2d=t.l2r=u,t.c2r=S,t.l2d=M,t.d2p=function(e,r){return t.l2p(t.d2r(e,r))},t.p2d=function(t){return M(B(t))},t.r2p=function(e){return t.l2p(s(e))},t.p2r=B,t.cleanPos=u):"date"===t.type?(t.d2r=t.r2d=o.identity,t.d2c=t.r2c=t.d2l=t.r2l=E,t.c2d=t.c2r=t.l2d=t.l2r=C,t.d2p=t.r2p=function(e,r,n){return t.l2p(E(e,0,n))},t.p2d=t.p2r=function(t,e,r){return C(B(t),e,r)},t.cleanPos=function(e){return o.cleanDate(e,d,t.calendar)}):"category"===t.type?(t.d2c=t.d2l=I,t.r2d=t.c2d=t.l2d=L,t.d2r=t.d2l_noadd=z,t.r2c=function(e){var r=O(e);return void 0!==r?r:t.fraction2r(.5)},t.l2r=t.c2r=u,t.r2l=O,t.d2p=function(e){return t.l2p(t.r2c(e))},t.p2d=function(t){return L(B(t))},t.r2p=t.d2p,t.p2r=B,t.cleanPos=function(t){return"string"==typeof t&&""!==t?t:u(t)}):"multicategory"===t.type&&(t.r2d=t.c2d=t.l2d=L,t.d2r=t.d2l_noadd=z,t.r2c=function(e){var r=z(e);return void 0!==r?r:t.fraction2r(.5)},t.r2c_just_indices=P,t.l2r=t.c2r=u,t.r2l=z,t.d2p=function(e){return t.l2p(t.r2c(e))},t.p2d=function(t){return L(B(t))},t.r2p=t.d2p,t.p2r=B,t.cleanPos=function(t){return Array.isArray(t)||"string"==typeof t&&""!==t?t:u(t)},t.setupMultiCategory=function(n){var i,a,s=t._traceIndices,l=t._matchGroup;if(l&&0===t._categories.length)for(var c in l)if(c!==r){var u=e[_.id2name(c)];s=s.concat(u._traceIndices)}var p=[[0,{}],[0,{}]],d=[];for(i=0;ip&&(s[n]=p),s[0]===s[1]){var c=Math.max(1,Math.abs(1e-6*s[0]));s[0]-=c,s[1]+=c}}else o.nestedProperty(t,e).set(i)},t.setScale=function(r){var n=e._size;if(t.overlaying){var i=_.getFromId({_fullLayout:e},t.overlaying);t.domain=i.domain}var a=r&&t._r?"_r":"range",o=t.calendar;t.cleanRange(a);var s,l,c=t.r2l(t[a][0],o),u=t.r2l(t[a][1],o),f="y"===h;if((f?(t._offset=n.t+(1-t.domain[1])*n.h,t._length=n.h*(t.domain[1]-t.domain[0]),t._m=t._length/(c-u),t._b=-t._m*u):(t._offset=n.l+t.domain[0]*n.w,t._length=n.w*(t.domain[1]-t.domain[0]),t._m=t._length/(u-c),t._b=-t._m*c),t._rangebreaks=[],t._lBreaks=0,t._m2=0,t._B=[],t.rangebreaks)&&(t._rangebreaks=t.locateBreaks(Math.min(c,u),Math.max(c,u)),t._rangebreaks.length)){for(s=0;su&&(p=!p),p&&t._rangebreaks.reverse();var d=p?-1:1;for(t._m2=d*t._length/(Math.abs(u-c)-t._lBreaks),t._B.push(-t._m2*(f?u:c)),s=0;si&&(i+=7,ai&&(i+=24,a=n&&a=n&&e=s.min&&(ts.max&&(s.max=n),i=!1)}i&&c.push({min:t,max:n})}};for(n=0;nr.duration?(!function(){for(var r={},n=0;n rect").call(o.setTranslate,0,0).call(o.setScale,1,1),t.plot.call(o.setTranslate,e._offset,r._offset).call(o.setScale,1,1);var n=t.plot.selectAll(".scatterlayer .trace");n.selectAll(".point").call(o.setPointGroupScale,1,1),n.selectAll(".textpoint").call(o.setTextPointsScale,1,1),n.call(o.hideOutsideRangePoints,t)}function m(e,r){var n=e.plotinfo,i=n.xaxis,l=n.yaxis,c=i._length,u=l._length,f=!!e.xr1,h=!!e.yr1,p=[];if(f){var d=a.simpleMap(e.xr0,i.r2l),g=a.simpleMap(e.xr1,i.r2l),m=d[1]-d[0],v=g[1]-g[0];p[0]=(d[0]*(1-r)+r*g[0]-d[0])/(d[1]-d[0])*c,p[2]=c*(1-r+r*v/m),i.range[0]=i.l2r(d[0]*(1-r)+r*g[0]),i.range[1]=i.l2r(d[1]*(1-r)+r*g[1])}else p[0]=0,p[2]=c;if(h){var y=a.simpleMap(e.yr0,l.r2l),x=a.simpleMap(e.yr1,l.r2l),b=y[1]-y[0],_=x[1]-x[0];p[1]=(y[1]*(1-r)+r*x[1]-y[1])/(y[0]-y[1])*u,p[3]=u*(1-r+r*_/b),l.range[0]=i.l2r(y[0]*(1-r)+r*x[0]),l.range[1]=l.l2r(y[1]*(1-r)+r*x[1])}else p[1]=0,p[3]=u;s.drawOne(t,i,{skipTitle:!0}),s.drawOne(t,l,{skipTitle:!0}),s.redrawComponents(t,[i._id,l._id]);var w=f?c/p[2]:1,T=h?u/p[3]:1,k=f?p[0]:0,M=h?p[1]:0,A=f?p[0]/p[2]*c:0,S=h?p[1]/p[3]*u:0,E=i._offset-A,C=l._offset-S;n.clipRect.call(o.setTranslate,k,M).call(o.setScale,1/w,1/T),n.plot.call(o.setTranslate,E,C).call(o.setScale,w,T),o.setPointGroupScale(n.zoomScalePts,1/w,1/T),o.setTextPointsScale(n.zoomScaleTxt,1/w,1/T)}s.redrawComponents(t)}},{"../../components/drawing":665,"../../lib":778,"../../registry":911,"./axes":828,d3:169}],853:[function(t,e,r){"use strict";var n=t("../../registry").traceIs,i=t("./axis_autotype");function a(t){return{v:"x",h:"y"}[t.orientation||"v"]}function o(t,e){var r=a(t),i=n(t,"box-violin"),o=n(t._fullInput||{},"candlestick");return i&&!o&&e===r&&void 0===t[r]&&void 0===t[r+"0"]}e.exports=function(t,e,r,s){r("autotypenumbers",s.autotypenumbersDflt),"-"===r("type",(s.splomStash||{}).type)&&(!function(t,e){if("-"!==t.type)return;var r,s=t._id,l=s.charAt(0);-1!==s.indexOf("scene")&&(s=l);var c=function(t,e,r){for(var n=0;n0&&(i["_"+r+"axes"]||{})[e])return i;if((i[r+"axis"]||r)===e){if(o(i,r))return i;if((i[r]||[]).length||i[r+"0"])return i}}}(e,s,l);if(!c)return;if("histogram"===c.type&&l==={v:"y",h:"x"}[c.orientation||"v"])return void(t.type="linear");var u=l+"calendar",f=c[u],h={noMultiCategory:!n(c,"cartesian")||n(c,"noMultiCategory")};"box"===c.type&&c._hasPreCompStats&&l==={h:"x",v:"y"}[c.orientation||"v"]&&(h.noMultiCategory=!0);if(h.autotypenumbers=t.autotypenumbers,o(c,l)){var p=a(c),d=[];for(r=0;r0?".":"")+a;i.isPlainObject(o)?l(o,e,s,n+1):e(s,a,o)}}))}r.manageCommandObserver=function(t,e,n,o){var s={},l=!0;e&&e._commandObserver&&(s=e._commandObserver),s.cache||(s.cache={}),s.lookupTable={};var c=r.hasSimpleAPICommandBindings(t,n,s.lookupTable);if(e&&e._commandObserver){if(c)return s;if(e._commandObserver.remove)return e._commandObserver.remove(),e._commandObserver=null,s}if(c){a(t,c,s.cache),s.check=function(){if(l){var e=a(t,c,s.cache);return e.changed&&o&&void 0!==s.lookupTable[e.value]&&(s.disable(),Promise.resolve(o({value:e.value,type:c.type,prop:c.prop,traces:c.traces,index:s.lookupTable[e.value]})).then(s.enable,s.enable)),e.changed}};for(var u=["plotly_relayout","plotly_redraw","plotly_restyle","plotly_update","plotly_animatingframe","plotly_afterplot"],f=0;f0&&i<0&&(i+=360);var s=(i-n)/4;return{type:"Polygon",coordinates:[[[n,a],[n,o],[n+s,o],[n+2*s,o],[n+3*s,o],[i,o],[i,a],[i-s,a],[i-2*s,a],[i-3*s,a],[n,a]]]}}e.exports=function(t){return new w(t)},T.plot=function(t,e,r){var n=this,i=e[this.id],a=[],o=!1;for(var s in y.layerNameToAdjective)if("frame"!==s&&i["show"+s]){o=!0;break}for(var l=0;l0&&a._module.calcGeoJSON(i,e)}if(!this.updateProjection(t,e)){this.viewInitial&&this.scope===r.scope||this.saveViewInitial(r),this.scope=r.scope,this.updateBaseLayers(e,r),this.updateDims(e,r),this.updateFx(e,r),u.generalUpdatePerTraceModule(this.graphDiv,this,t,r);var o=this.layers.frontplot.select(".scatterlayer");this.dataPoints.point=o.selectAll(".point"),this.dataPoints.text=o.selectAll("text"),this.dataPaths.line=o.selectAll(".js-line");var s=this.layers.backplot.select(".choroplethlayer");this.dataPaths.choropleth=s.selectAll("path"),this.render()}},T.updateProjection=function(t,e){var r=this.graphDiv,o=e[this.id],s=e._size,l=o.domain,c=o.projection,u=o.lonaxis,f=o.lataxis,p=u._ax,d=f._ax,g=this.projection=function(t){for(var e=t.projection.type,r=n.geo[y.projNames[e]](),i=t._isClipped?y.lonaxisSpan[e]/2:null,a=["center","rotate","parallels","clipExtent"],o=function(t){return t?r:[]},s=0;si*Math.PI/180}return!1},r.getPath=function(){return n.geo.path().projection(r)},r.getBounds=function(t){return r.getPath().bounds(t)},r.fitExtent=function(t,e){var n=t[1][0]-t[0][0],i=t[1][1]-t[0][1],a=r.clipExtent&&r.clipExtent();r.scale(150).translate([0,0]),a&&r.clipExtent(null);var o=r.getBounds(e),s=Math.min(n/(o[1][0]-o[0][0]),i/(o[1][1]-o[0][1])),l=+t[0][0]+(n-s*(o[1][0]+o[0][0]))/2,c=+t[0][1]+(i-s*(o[1][1]+o[0][1]))/2;return a&&r.clipExtent(a),r.scale(150*s).translate([l,c])},r.precision(y.precision),i&&r.clipAngle(i-y.clipPad);return r}(o),m=[[s.l+s.w*l.x[0],s.t+s.h*(1-l.y[1])],[s.l+s.w*l.x[1],s.t+s.h*(1-l.y[0])]],v=o.center||{},x=c.rotation||{},b=u.range||[],_=f.range||[];if(o.fitbounds){p._length=m[1][0]-m[0][0],d._length=m[1][1]-m[0][1],p.range=h(r,p),d.range=h(r,d);var w=(p.range[0]+p.range[1])/2,T=(d.range[0]+d.range[1])/2;if(o._isScoped)v={lon:w,lat:T};else if(o._isClipped){v={lon:w,lat:T},x={lon:w,lat:T,roll:x.roll};var M=c.type,A=y.lonaxisSpan[M]/2||180,S=y.lataxisSpan[M]/2||90;b=[w-A,w+A],_=[T-S,T+S]}else v={lon:w,lat:T},x={lon:w,lat:x.lat,roll:x.roll}}g.center([v.lon-x.lon,v.lat-x.lat]).rotate([-x.lon,-x.lat,x.roll]).parallels(c.parallels);var E=k(b,_);g.fitExtent(m,E);var C=this.bounds=g.getBounds(E),L=this.fitScale=g.scale(),I=g.translate();if(!isFinite(C[0][0])||!isFinite(C[0][1])||!isFinite(C[1][0])||!isFinite(C[1][1])||isNaN(I[0])||isNaN(I[0])){for(var P=["fitbounds","projection.rotation","center","lonaxis.range","lataxis.range"],z="Invalid geo settings, relayout'ing to default view.",O={},D=0;D-1&&m(n.event,a,[r.xaxis],[r.yaxis],r.id,f),l.indexOf("event")>-1&&c.click(a,n.event))}))}function h(t){return r.projection.invert([t[0]+r.xaxis._offset,t[1]+r.yaxis._offset])}},T.makeFramework=function(){var t=this,e=t.graphDiv,r=e._fullLayout,i="clip"+r._uid+t.id;t.clipDef=r._clips.append("clipPath").attr("id",i),t.clipRect=t.clipDef.append("rect"),t.framework=n.select(t.container).append("g").attr("class","geo "+t.id).call(l.setClipUrl,i,e),t.project=function(e){var r=t.projection(e);return r?[r[0]-t.xaxis._offset,r[1]-t.yaxis._offset]:[null,null]},t.xaxis={_id:"x",c2p:function(e){return t.project(e)[0]}},t.yaxis={_id:"y",c2p:function(e){return t.project(e)[1]}},t.mockAxis={type:"linear",showexponent:"all",exponentformat:"B"},f.setConvert(t.mockAxis,r)},T.saveViewInitial=function(t){var e,r=t.center||{},n=t.projection,i=n.rotation||{};this.viewInitial={fitbounds:t.fitbounds,"projection.scale":n.scale},e=t._isScoped?{"center.lon":r.lon,"center.lat":r.lat}:t._isClipped?{"projection.rotation.lon":i.lon,"projection.rotation.lat":i.lat}:{"center.lon":r.lon,"center.lat":r.lat,"projection.rotation.lon":i.lon},a.extendFlat(this.viewInitial,e)},T.render=function(){var t,e=this.projection,r=e.getPath();function n(t){var r=e(t.lonlat);return r?o(r[0],r[1]):null}function i(t){return e.isLonLatOverEdges(t.lonlat)?"none":null}for(t in this.basePaths)this.basePaths[t].attr("d",r);for(t in this.dataPaths)this.dataPaths[t].attr("d",(function(t){return r(t.geojson)}));for(t in this.dataPoints)this.dataPoints[t].attr("display",i).attr("transform",n)}},{"../../components/color":643,"../../components/dragelement":662,"../../components/drawing":665,"../../components/fx":683,"../../lib":778,"../../lib/geo_location_utils":771,"../../lib/topojson_utils":806,"../../registry":911,"../cartesian/autorange":827,"../cartesian/axes":828,"../cartesian/select":847,"../plots":891,"./constants":858,"./projections":863,"./zoom":864,d3:169,"topojson-client":579}],860:[function(t,e,r){"use strict";var n=t("../../plots/get_data").getSubplotCalcData,i=t("../../lib").counterRegex,a=t("./geo"),o="geo",s=i(o),l={};l.geo={valType:"subplotid",dflt:o,editType:"calc"},e.exports={attr:o,name:o,idRoot:o,idRegex:s,attrRegex:s,attributes:l,layoutAttributes:t("./layout_attributes"),supplyLayoutDefaults:t("./layout_defaults"),plot:function(t){for(var e=t._fullLayout,r=t.calcdata,i=e._subplots.geo,s=0;s0&&L<0&&(L+=360);var I,P,z,O=(C+L)/2;if(!p){var D=d?f.projRotate:[O,0,0];I=r("projection.rotation.lon",D[0]),r("projection.rotation.lat",D[1]),r("projection.rotation.roll",D[2]),r("showcoastlines",!d&&y)&&(r("coastlinecolor"),r("coastlinewidth")),r("showocean",!!y&&void 0)&&r("oceancolor")}(p?(P=-96.6,z=38.7):(P=d?O:I,z=(E[0]+E[1])/2),r("center.lon",P),r("center.lat",z),g)&&r("projection.parallels",f.projParallels||[0,60]);r("projection.scale"),r("showland",!!y&&void 0)&&r("landcolor"),r("showlakes",!!y&&void 0)&&r("lakecolor"),r("showrivers",!!y&&void 0)&&(r("rivercolor"),r("riverwidth")),r("showcountries",d&&"usa"!==u&&y)&&(r("countrycolor"),r("countrywidth")),("usa"===u||"north america"===u&&50===c)&&(r("showsubunits",y),r("subunitcolor"),r("subunitwidth")),d||r("showframe",y)&&(r("framecolor"),r("framewidth")),r("bgcolor"),r("fitbounds")&&(delete e.projection.scale,d?(delete e.center.lon,delete e.center.lat):m?(delete e.center.lon,delete e.center.lat,delete e.projection.rotation.lon,delete e.projection.rotation.lat,delete e.lonaxis.range,delete e.lataxis.range):(delete e.center.lon,delete e.center.lat,delete e.projection.rotation.lon))}e.exports=function(t,e,r){i(t,e,r,{type:"geo",attributes:s,handleDefaults:c,fullData:r,partition:"y"})}},{"../../lib":778,"../get_data":865,"../subplot_defaults":905,"./constants":858,"./layout_attributes":861}],863:[function(t,e,r){"use strict";e.exports=function(t){function e(t,e){return{type:"Feature",id:t.id,properties:t.properties,geometry:r(t.geometry,e)}}function r(e,n){if(!e)return null;if("GeometryCollection"===e.type)return{type:"GeometryCollection",geometries:object.geometries.map((function(t){return r(t,n)}))};if(!c.hasOwnProperty(e.type))return null;var i=c[e.type];return t.geo.stream(e,n(i)),i.result()}t.geo.project=function(t,e){var i=e.stream;if(!i)throw new Error("not yet supported");return(t&&n.hasOwnProperty(t.type)?n[t.type]:r)(t,i)};var n={Feature:e,FeatureCollection:function(t,r){return{type:"FeatureCollection",features:t.features.map((function(t){return e(t,r)}))}}},i=[],a=[],o={point:function(t,e){i.push([t,e])},result:function(){var t=i.length?i.length<2?{type:"Point",coordinates:i[0]}:{type:"MultiPoint",coordinates:i}:null;return i=[],t}},s={lineStart:u,point:function(t,e){i.push([t,e])},lineEnd:function(){i.length&&(a.push(i),i=[])},result:function(){var t=a.length?a.length<2?{type:"LineString",coordinates:a[0]}:{type:"MultiLineString",coordinates:a}:null;return a=[],t}},l={polygonStart:u,lineStart:u,point:function(t,e){i.push([t,e])},lineEnd:function(){var t=i.length;if(t){do{i.push(i[0].slice())}while(++t<4);a.push(i),i=[]}},polygonEnd:u,result:function(){if(!a.length)return null;var t=[],e=[];return a.forEach((function(r){!function(t){if((e=t.length)<4)return!1;var e,r=0,n=t[e-1][1]*t[0][0]-t[e-1][0]*t[0][1];for(;++rn^p>n&&r<(h-c)*(n-u)/(p-u)+c&&(i=!i)}return i}(t[0],r))return t.push(e),!0}))||t.push([e])})),a=[],t.length?t.length>1?{type:"MultiPolygon",coordinates:t}:{type:"Polygon",coordinates:t[0]}:null}},c={Point:o,MultiPoint:o,LineString:s,MultiLineString:s,Polygon:l,MultiPolygon:l,Sphere:l};function u(){}var f=1e-6,h=Math.PI,p=h/2,d=(Math.sqrt(h),h/180),g=180/h;function m(t){return t>1?p:t<-1?-p:Math.asin(t)}function v(t){return t>1?0:t<-1?h:Math.acos(t)}var y=t.geo.projection,x=t.geo.projectionMutator;function b(t,e){var r=(2+p)*Math.sin(e);e/=2;for(var n=0,i=1/0;n<10&&Math.abs(i)>f;n++){var a=Math.cos(e);e-=i=(e+Math.sin(e)*(a+2)-r)/(2*a*(1+a))}return[2/Math.sqrt(h*(4+h))*t*(1+Math.cos(e)),2*Math.sqrt(h/(4+h))*Math.sin(e)]}t.geo.interrupt=function(e){var r,n=[[[[-h,0],[0,p],[h,0]]],[[[-h,0],[0,-p],[h,0]]]];function i(t,r){for(var i=r<0?-1:1,a=n[+(r<0)],o=0,s=a.length-1;oa[o][2][0];++o);var l=e(t-a[o][1][0],r);return l[0]+=e(a[o][1][0],i*r>i*a[o][0][1]?a[o][0][1]:r)[0],l}function a(){r=n.map((function(t){return t.map((function(t){var r,n=e(t[0][0],t[0][1])[0],i=e(t[2][0],t[2][1])[0],a=e(t[1][0],t[0][1])[1],o=e(t[1][0],t[1][1])[1];return a>o&&(r=a,a=o,o=r),[[n,a],[i,o]]}))}))}e.invert&&(i.invert=function(t,a){for(var o=r[+(a<0)],s=n[+(a<0)],l=0,u=o.length;l=0;--i){var p;o=180*(p=n[1][i])[0][0]/h,s=180*p[0][1]/h,c=180*p[1][1]/h,u=180*p[2][0]/h,f=180*p[2][1]/h;r.push(l([[u-e,f-e],[u-e,c+e],[o+e,c+e],[o+e,s-e]],30))}return{type:"Polygon",coordinates:[t.merge(r)]}}(),a)},i},o.lobes=function(t){return arguments.length?(n=t.map((function(t){return t.map((function(t){return[[t[0][0]*h/180,t[0][1]*h/180],[t[1][0]*h/180,t[1][1]*h/180],[t[2][0]*h/180,t[2][1]*h/180]]}))})),a(),o):n.map((function(t){return t.map((function(t){return[[180*t[0][0]/h,180*t[0][1]/h],[180*t[1][0]/h,180*t[1][1]/h],[180*t[2][0]/h,180*t[2][1]/h]]}))}))},o},b.invert=function(t,e){var r=.5*e*Math.sqrt((4+h)/h),n=m(r),i=Math.cos(n);return[t/(2/Math.sqrt(h*(4+h))*(1+i)),m((n+r*(i+2))/(2+p))]},(t.geo.eckert4=function(){return y(b)}).raw=b;var _=t.geo.azimuthalEqualArea.raw;function w(t,e){if(arguments.length<2&&(e=t),1===e)return _;if(e===1/0)return T;function r(r,n){var i=_(r/e,n);return i[0]*=t,i}return r.invert=function(r,n){var i=_.invert(r/t,n);return i[0]*=e,i},r}function T(t,e){return[t*Math.cos(e)/Math.cos(e/=2),2*Math.sin(e)]}function k(t,e){return[3*t/(2*h)*Math.sqrt(h*h/3-e*e),e]}function M(t,e){return[t,1.25*Math.log(Math.tan(h/4+.4*e))]}function A(t){return function(e){var r,n=t*Math.sin(e),i=30;do{e-=r=(e+Math.sin(e)-n)/(1+Math.cos(e))}while(Math.abs(r)>f&&--i>0);return e/2}}T.invert=function(t,e){var r=2*m(e/2);return[t*Math.cos(r/2)/Math.cos(r),r]},(t.geo.hammer=function(){var t=2,e=x(w),r=e(t);return r.coefficient=function(r){return arguments.length?e(t=+r):t},r}).raw=w,k.invert=function(t,e){return[2/3*h*t/Math.sqrt(h*h/3-e*e),e]},(t.geo.kavrayskiy7=function(){return y(k)}).raw=k,M.invert=function(t,e){return[t,2.5*Math.atan(Math.exp(.8*e))-.625*h]},(t.geo.miller=function(){return y(M)}).raw=M,A(h);var S=function(t,e,r){var n=A(r);function i(r,i){return[t*r*Math.cos(i=n(i)),e*Math.sin(i)]}return i.invert=function(n,i){var a=m(i/e);return[n/(t*Math.cos(a)),m((2*a+Math.sin(2*a))/r)]},i}(Math.SQRT2/p,Math.SQRT2,h);function E(t,e){var r=e*e,n=r*r;return[t*(.8707-.131979*r+n*(n*(.003971*r-.001529*n)-.013791)),e*(1.007226+r*(.015085+n*(.028874*r-.044475-.005916*n)))]}(t.geo.mollweide=function(){return y(S)}).raw=S,E.invert=function(t,e){var r,n=e,i=25;do{var a=n*n,o=a*a;n-=r=(n*(1.007226+a*(.015085+o*(.028874*a-.044475-.005916*o)))-e)/(1.007226+a*(.045255+o*(.259866*a-.311325-.005916*11*o)))}while(Math.abs(r)>f&&--i>0);return[t/(.8707+(a=n*n)*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979)),n]},(t.geo.naturalEarth=function(){return y(E)}).raw=E;var C=[[.9986,-.062],[1,0],[.9986,.062],[.9954,.124],[.99,.186],[.9822,.248],[.973,.31],[.96,.372],[.9427,.434],[.9216,.4958],[.8962,.5571],[.8679,.6176],[.835,.6769],[.7986,.7346],[.7597,.7903],[.7186,.8435],[.6732,.8936],[.6213,.9394],[.5722,.9761],[.5322,1]];function L(t,e){var r,n=Math.min(18,36*Math.abs(e)/h),i=Math.floor(n),a=n-i,o=(r=C[i])[0],s=r[1],l=(r=C[++i])[0],c=r[1],u=(r=C[Math.min(19,++i)])[0],f=r[1];return[t*(l+a*(u-o)/2+a*a*(u-2*l+o)/2),(e>0?p:-p)*(c+a*(f-s)/2+a*a*(f-2*c+s)/2)]}function I(t,e){return[t*Math.cos(e),e]}function P(t,e){var r,n=Math.cos(e),i=(r=v(n*Math.cos(t/=2)))?r/Math.sin(r):1;return[2*n*Math.sin(t)*i,Math.sin(e)*i]}function z(t,e){var r=P(t,e);return[(r[0]+t/p)/2,(r[1]+e)/2]}C.forEach((function(t){t[1]*=1.0144})),L.invert=function(t,e){var r=e/p,n=90*r,i=Math.min(18,Math.abs(n/5)),a=Math.max(0,Math.floor(i));do{var o=C[a][1],s=C[a+1][1],l=C[Math.min(19,a+2)][1],c=l-o,u=l-2*s+o,f=2*(Math.abs(r)-s)/c,h=u/c,m=f*(1-h*f*(1-2*h*f));if(m>=0||1===a){n=(e>=0?5:-5)*(m+i);var v,y=50;do{m=(i=Math.min(18,Math.abs(n)/5))-(a=Math.floor(i)),o=C[a][1],s=C[a+1][1],l=C[Math.min(19,a+2)][1],n-=(v=(e>=0?p:-p)*(s+m*(l-o)/2+m*m*(l-2*s+o)/2)-e)*g}while(Math.abs(v)>1e-12&&--y>0);break}}while(--a>=0);var x=C[a][0],b=C[a+1][0],_=C[Math.min(19,a+2)][0];return[t/(b+m*(_-x)/2+m*m*(_-2*b+x)/2),n*d]},(t.geo.robinson=function(){return y(L)}).raw=L,I.invert=function(t,e){return[t/Math.cos(e),e]},(t.geo.sinusoidal=function(){return y(I)}).raw=I,P.invert=function(t,e){if(!(t*t+4*e*e>h*h+f)){var r=t,n=e,i=25;do{var a,o=Math.sin(r),s=Math.sin(r/2),l=Math.cos(r/2),c=Math.sin(n),u=Math.cos(n),p=Math.sin(2*n),d=c*c,g=u*u,m=s*s,y=1-g*l*l,x=y?v(u*l)*Math.sqrt(a=1/y):a=0,b=2*x*u*s-t,_=x*c-e,w=a*(g*m+x*u*l*d),T=a*(.5*o*p-2*x*c*s),k=.25*a*(p*s-x*c*g*o),M=a*(d*l+x*m*u),A=T*k-M*w;if(!A)break;var S=(_*T-b*M)/A,E=(b*k-_*w)/A;r-=S,n-=E}while((Math.abs(S)>f||Math.abs(E)>f)&&--i>0);return[r,n]}},(t.geo.aitoff=function(){return y(P)}).raw=P,z.invert=function(t,e){var r=t,n=e,i=25;do{var a,o=Math.cos(n),s=Math.sin(n),l=Math.sin(2*n),c=s*s,u=o*o,h=Math.sin(r),d=Math.cos(r/2),g=Math.sin(r/2),m=g*g,y=1-u*d*d,x=y?v(o*d)*Math.sqrt(a=1/y):a=0,b=.5*(2*x*o*g+r/p)-t,_=.5*(x*s+n)-e,w=.5*a*(u*m+x*o*d*c)+.5/p,T=a*(h*l/4-x*s*g),k=.125*a*(l*g-x*s*u*h),M=.5*a*(c*d+x*m*o)+.5,A=T*k-M*w,S=(_*T-b*M)/A,E=(b*k-_*w)/A;r-=S,n-=E}while((Math.abs(S)>f||Math.abs(E)>f)&&--i>0);return[r,n]},(t.geo.winkel3=function(){return y(z)}).raw=z}},{}],864:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../lib"),a=t("../../registry"),o=Math.PI/180,s=180/Math.PI,l={cursor:"pointer"},c={cursor:"auto"};function u(t,e){return n.behavior.zoom().translate(e.translate()).scale(e.scale())}function f(t,e,r){var n=t.id,o=t.graphDiv,s=o.layout,l=s[n],c=o._fullLayout,u=c[n],f={},h={};function p(t,e){f[n+"."+t]=i.nestedProperty(l,t).get(),a.call("_storeDirectGUIEdit",s,c._preGUI,f);var r=i.nestedProperty(u,t);r.get()!==e&&(r.set(e),i.nestedProperty(l,t).set(e),h[n+"."+t]=e)}r(p),p("projection.scale",e.scale()/t.fitScale),p("fitbounds",!1),o.emit("plotly_relayout",h)}function h(t,e){var r=u(0,e);function i(r){var n=e.invert(t.midPt);r("center.lon",n[0]),r("center.lat",n[1])}return r.on("zoomstart",(function(){n.select(this).style(l)})).on("zoom",(function(){e.scale(n.event.scale).translate(n.event.translate),t.render();var r=e.invert(t.midPt);t.graphDiv.emit("plotly_relayouting",{"geo.projection.scale":e.scale()/t.fitScale,"geo.center.lon":r[0],"geo.center.lat":r[1]})})).on("zoomend",(function(){n.select(this).style(c),f(t,e,i)})),r}function p(t,e){var r,i,a,o,s,h,p,d,g,m=u(0,e);function v(t){return e.invert(t)}function y(r){var n=e.rotate(),i=e.invert(t.midPt);r("projection.rotation.lon",-n[0]),r("center.lon",i[0]),r("center.lat",i[1])}return m.on("zoomstart",(function(){n.select(this).style(l),r=n.mouse(this),i=e.rotate(),a=e.translate(),o=i,s=v(r)})).on("zoom",(function(){if(h=n.mouse(this),function(t){var r=v(t);if(!r)return!0;var n=e(r);return Math.abs(n[0]-t[0])>2||Math.abs(n[1]-t[1])>2}(r))return m.scale(e.scale()),void m.translate(e.translate());e.scale(n.event.scale),e.translate([a[0],n.event.translate[1]]),s?v(h)&&(d=v(h),p=[o[0]+(d[0]-s[0]),i[1],i[2]],e.rotate(p),o=p):s=v(r=h),g=!0,t.render();var l=e.rotate(),c=e.invert(t.midPt);t.graphDiv.emit("plotly_relayouting",{"geo.projection.scale":e.scale()/t.fitScale,"geo.center.lon":c[0],"geo.center.lat":c[1],"geo.projection.rotation.lon":-l[0]})})).on("zoomend",(function(){n.select(this).style(c),g&&f(t,e,y)})),m}function d(t,e){var r,i={r:e.rotate(),k:e.scale()},a=u(0,e),o=function(t){var e=0,r=arguments.length,i=[];for(;++ed?(a=(f>0?90:-90)-p,i=0):(a=Math.asin(f/d)*s-p,i=Math.sqrt(d*d-f*f));var g=180-a-2*p,m=(Math.atan2(h,u)-Math.atan2(c,i))*s,v=(Math.atan2(h,u)-Math.atan2(c,-i))*s;return b(r[0],r[1],a,m)<=b(r[0],r[1],g,v)?[a,m,r[2]]:[g,v,r[2]]}function b(t,e,r,n){var i=_(r-t),a=_(n-e);return Math.sqrt(i*i+a*a)}function _(t){return(t%360+540)%360-180}function w(t,e,r){var n=r*o,i=t.slice(),a=0===e?1:0,s=2===e?1:2,l=Math.cos(n),c=Math.sin(n);return i[a]=t[a]*l-t[s]*c,i[s]=t[s]*l+t[a]*c,i}function T(t){return[Math.atan2(2*(t[0]*t[1]+t[2]*t[3]),1-2*(t[1]*t[1]+t[2]*t[2]))*s,Math.asin(Math.max(-1,Math.min(1,2*(t[0]*t[2]-t[3]*t[1]))))*s,Math.atan2(2*(t[0]*t[3]+t[1]*t[2]),1-2*(t[2]*t[2]+t[3]*t[3]))*s]}function k(t,e){for(var r=0,n=0,i=t.length;nMath.abs(s)?(c.boxEnd[1]=c.boxStart[1]+Math.abs(a)*_*(s>=0?1:-1),c.boxEnd[1]l[3]&&(c.boxEnd[1]=l[3],c.boxEnd[0]=c.boxStart[0]+(l[3]-c.boxStart[1])/Math.abs(_))):(c.boxEnd[0]=c.boxStart[0]+Math.abs(s)/_*(a>=0?1:-1),c.boxEnd[0]l[2]&&(c.boxEnd[0]=l[2],c.boxEnd[1]=c.boxStart[1]+(l[2]-c.boxStart[0])*Math.abs(_)))}}else c.boxEnabled?(a=c.boxStart[0]!==c.boxEnd[0],s=c.boxStart[1]!==c.boxEnd[1],a||s?(a&&(m(0,c.boxStart[0],c.boxEnd[0]),t.xaxis.autorange=!1),s&&(m(1,c.boxStart[1],c.boxEnd[1]),t.yaxis.autorange=!1),t.relayoutCallback()):t.glplot.setDirty(),c.boxEnabled=!1,c.boxInited=!1):c.boxInited&&(c.boxInited=!1);break;case"pan":c.boxEnabled=!1,c.boxInited=!1,e?(c.panning||(c.dragStart[0]=n,c.dragStart[1]=i),Math.abs(c.dragStart[0]-n).999&&(g="turntable"):g="turntable")}else g="turntable";r("dragmode",g),r("hovermode",n.getDfltFromLayout("hovermode"))}e.exports=function(t,e,r){var i=e._basePlotModules.length>1;o(t,e,r,{type:"gl3d",attributes:l,handleDefaults:u,fullLayout:e,font:e.font,fullData:r,getDfltFromLayout:function(e){if(!i)return n.validate(t[e],l[e])?t[e]:void 0},autotypenumbersDflt:e.autotypenumbers,paper_bgcolor:e.paper_bgcolor,calendar:e.calendar})}},{"../../../components/color":643,"../../../lib":778,"../../../registry":911,"../../get_data":865,"../../subplot_defaults":905,"./axis_defaults":873,"./layout_attributes":876}],876:[function(t,e,r){"use strict";var n=t("./axis_attributes"),i=t("../../domain").attributes,a=t("../../../lib/extend").extendFlat,o=t("../../../lib").counterRegex;function s(t,e,r){return{x:{valType:"number",dflt:t,editType:"camera"},y:{valType:"number",dflt:e,editType:"camera"},z:{valType:"number",dflt:r,editType:"camera"},editType:"camera"}}e.exports={_arrayAttrRegexps:[o("scene",".annotations",!0)],bgcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"plot"},camera:{up:a(s(0,0,1),{}),center:a(s(0,0,0),{}),eye:a(s(1.25,1.25,1.25),{}),projection:{type:{valType:"enumerated",values:["perspective","orthographic"],dflt:"perspective",editType:"calc"},editType:"calc"},editType:"camera"},domain:i({name:"scene",editType:"plot"}),aspectmode:{valType:"enumerated",values:["auto","cube","data","manual"],dflt:"auto",editType:"plot",impliedEdits:{"aspectratio.x":void 0,"aspectratio.y":void 0,"aspectratio.z":void 0}},aspectratio:{x:{valType:"number",min:0,editType:"plot",impliedEdits:{"^aspectmode":"manual"}},y:{valType:"number",min:0,editType:"plot",impliedEdits:{"^aspectmode":"manual"}},z:{valType:"number",min:0,editType:"plot",impliedEdits:{"^aspectmode":"manual"}},editType:"plot",impliedEdits:{aspectmode:"manual"}},xaxis:n,yaxis:n,zaxis:n,dragmode:{valType:"enumerated",values:["orbit","turntable","zoom","pan",!1],editType:"plot"},hovermode:{valType:"enumerated",values:["closest",!1],dflt:"closest",editType:"modebar"},uirevision:{valType:"any",editType:"none"},editType:"plot",_deprecated:{cameraposition:{valType:"info_array",editType:"camera"}}}},{"../../../lib":778,"../../../lib/extend":768,"../../domain":855,"./axis_attributes":872}],877:[function(t,e,r){"use strict";var n=t("../../../lib/str2rgbarray"),i=["xaxis","yaxis","zaxis"];function a(){this.enabled=[!0,!0,!0],this.colors=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.drawSides=[!0,!0,!0],this.lineWidth=[1,1,1]}a.prototype.merge=function(t){for(var e=0;e<3;++e){var r=t[i[e]];r.visible?(this.enabled[e]=r.showspikes,this.colors[e]=n(r.spikecolor),this.drawSides[e]=r.spikesides,this.lineWidth[e]=r.spikethickness):(this.enabled[e]=!1,this.drawSides[e]=!1)}},e.exports=function(t){var e=new a;return e.merge(t),e}},{"../../../lib/str2rgbarray":802}],878:[function(t,e,r){"use strict";e.exports=function(t){for(var e=t.axesOptions,r=t.glplot.axesPixels,s=t.fullSceneLayout,l=[[],[],[]],c=0;c<3;++c){var u=s[a[c]];if(u._length=(r[c].hi-r[c].lo)*r[c].pixelsPerDataUnit/t.dataScale[c],Math.abs(u._length)===1/0||isNaN(u._length))l[c]=[];else{u._input_range=u.range.slice(),u.range[0]=r[c].lo/t.dataScale[c],u.range[1]=r[c].hi/t.dataScale[c],u._m=1/(t.dataScale[c]*r[c].pixelsPerDataUnit),u.range[0]===u.range[1]&&(u.range[0]-=1,u.range[1]+=1);var f=u.tickmode;if("auto"===u.tickmode){u.tickmode="linear";var h=u.nticks||i.constrain(u._length/40,4,9);n.autoTicks(u,Math.abs(u.range[1]-u.range[0])/h)}for(var p=n.calcTicks(u,{msUTC:!0}),d=0;d/g," "));l[c]=p,u.tickmode=f}}e.ticks=l;for(c=0;c<3;++c){o[c]=.5*(t.glplot.bounds[0][c]+t.glplot.bounds[1][c]);for(d=0;d<2;++d)e.bounds[d][c]=t.glplot.bounds[d][c]}t.contourLevels=function(t){for(var e=new Array(3),r=0;r<3;++r){for(var n=t[r],i=new Array(n.length),a=0;ar.deltaY?1.1:1/1.1,a=t.glplot.getAspectratio();t.glplot.setAspectratio({x:n*a.x,y:n*a.y,z:n*a.z})}i(t)}}),!!c&&{passive:!1}),t.glplot.canvas.addEventListener("mousemove",(function(){if(!1!==t.fullSceneLayout.dragmode&&0!==t.camera.mouseListener.buttons){var e=n();t.graphDiv.emit("plotly_relayouting",e)}})),t.staticMode||t.glplot.canvas.addEventListener("webglcontextlost",(function(r){e&&e.emit&&e.emit("plotly_webglcontextlost",{event:r,layer:t.id})}),!1)),t.glplot.oncontextloss=function(){t.recoverContext()},t.glplot.onrender=function(){t.render()},!0},w.render=function(){var t,e=this,r=e.graphDiv,n=e.svgContainer,i=e.container.getBoundingClientRect();r._fullLayout._calcInverseTransform(r);var a=r._fullLayout._invScaleX,o=r._fullLayout._invScaleY,s=i.width*a,l=i.height*o;n.setAttributeNS(null,"viewBox","0 0 "+s+" "+l),n.setAttributeNS(null,"width",s),n.setAttributeNS(null,"height",l),b(e),e.glplot.axes.update(e.axesOptions);for(var c,u=Object.keys(e.traces),h=null,g=e.glplot.selection,m=0;m")):"isosurface"===t.type||"volume"===t.type?(k.valueLabel=p.tickText(e._mockAxis,e._mockAxis.d2l(g.traceCoordinate[3]),"hover").text,E.push("value: "+k.valueLabel),g.textLabel&&E.push(g.textLabel),_=E.join("
    ")):_=g.textLabel;var C={x:g.traceCoordinate[0],y:g.traceCoordinate[1],z:g.traceCoordinate[2],data:w._input,fullData:w,curveNumber:w.index,pointNumber:T};d.appendArrayPointValue(C,w,T),t._module.eventData&&(C=w._module.eventData(C,g,w,{},T));var L={points:[C]};e.fullSceneLayout.hovermode&&d.loneHover({trace:w,x:(.5+.5*x[0]/x[3])*s,y:(.5-.5*x[1]/x[3])*l,xLabel:k.xLabel,yLabel:k.yLabel,zLabel:k.zLabel,text:_,name:h.name,color:d.castHoverOption(w,T,"bgcolor")||h.color,borderColor:d.castHoverOption(w,T,"bordercolor"),fontFamily:d.castHoverOption(w,T,"font.family"),fontSize:d.castHoverOption(w,T,"font.size"),fontColor:d.castHoverOption(w,T,"font.color"),nameLength:d.castHoverOption(w,T,"namelength"),textAlign:d.castHoverOption(w,T,"align"),hovertemplate:f.castOption(w,T,"hovertemplate"),hovertemplateLabels:f.extendFlat({},C,k),eventData:[C]},{container:n,gd:r}),g.buttons&&g.distance<5?r.emit("plotly_click",L):r.emit("plotly_hover",L),c=L}else d.loneUnhover(n),r.emit("plotly_unhover",c);e.drawAnnotations(e)},w.recoverContext=function(){var t=this;t.glplot.dispose();var e=function(){t.glplot.gl.isContextLost()?requestAnimationFrame(e):t.initializeGLPlot()?t.plot.apply(t,t.plotArgs):f.error("Catastrophic and unrecoverable WebGL error. Context lost.")};requestAnimationFrame(e)};var k=["xaxis","yaxis","zaxis"];function M(t,e,r){for(var n=t.fullSceneLayout,i=0;i<3;i++){var a=k[i],o=a.charAt(0),s=n[a],l=e[o],c=e[o+"calendar"],u=e["_"+o+"length"];if(f.isArrayOrTypedArray(l))for(var h,p=0;p<(u||l.length);p++)if(f.isArrayOrTypedArray(l[p]))for(var d=0;dm[1][a])m[0][a]=-1,m[1][a]=1;else{var C=m[1][a]-m[0][a];m[0][a]-=C/32,m[1][a]+=C/32}if("reversed"===s.autorange){var L=m[0][a];m[0][a]=m[1][a],m[1][a]=L}}else{var I=s.range;m[0][a]=s.r2l(I[0]),m[1][a]=s.r2l(I[1])}m[0][a]===m[1][a]&&(m[0][a]-=1,m[1][a]+=1),v[a]=m[1][a]-m[0][a],this.glplot.setBounds(a,{min:m[0][a]*h[a],max:m[1][a]*h[a]})}var P=c.aspectmode;if("cube"===P)d=[1,1,1];else if("manual"===P){var z=c.aspectratio;d=[z.x,z.y,z.z]}else{if("auto"!==P&&"data"!==P)throw new Error("scene.js aspectRatio was not one of the enumerated types");var O=[1,1,1];for(a=0;a<3;++a){var D=y[l=(s=c[k[a]]).type];O[a]=Math.pow(D.acc,1/D.count)/h[a]}d="data"===P||Math.max.apply(null,O)/Math.min.apply(null,O)<=4?O:[1,1,1]}c.aspectratio.x=u.aspectratio.x=d[0],c.aspectratio.y=u.aspectratio.y=d[1],c.aspectratio.z=u.aspectratio.z=d[2],this.glplot.setAspectratio(c.aspectratio),this.viewInitial.aspectratio||(this.viewInitial.aspectratio={x:c.aspectratio.x,y:c.aspectratio.y,z:c.aspectratio.z}),this.viewInitial.aspectmode||(this.viewInitial.aspectmode=c.aspectmode);var R=c.domain||null,F=e._size||null;if(R&&F){var B=this.container.style;B.position="absolute",B.left=F.l+R.x[0]*F.w+"px",B.top=F.t+(1-R.y[1])*F.h+"px",B.width=F.w*(R.x[1]-R.x[0])+"px",B.height=F.h*(R.y[1]-R.y[0])+"px"}this.glplot.redraw()}},w.destroy=function(){this.glplot&&(this.camera.mouseListener.enabled=!1,this.container.removeEventListener("wheel",this.camera.wheelListener),this.camera=null,this.glplot.dispose(),this.container.parentNode.removeChild(this.container),this.glplot=null)},w.getCamera=function(){var t;return this.camera.view.recalcMatrix(this.camera.view.lastT()),{up:{x:(t=this.camera).up[0],y:t.up[1],z:t.up[2]},center:{x:t.center[0],y:t.center[1],z:t.center[2]},eye:{x:t.eye[0],y:t.eye[1],z:t.eye[2]},projection:{type:!0===t._ortho?"orthographic":"perspective"}}},w.setViewport=function(t){var e,r=t.camera;this.camera.lookAt.apply(this,[[(e=r).eye.x,e.eye.y,e.eye.z],[e.center.x,e.center.y,e.center.z],[e.up.x,e.up.y,e.up.z]]),this.glplot.setAspectratio(t.aspectratio),"orthographic"===r.projection.type!==this.camera._ortho&&(this.glplot.redraw(),this.glplot.clearRGBA(),this.glplot.dispose(),this.initializeGLPlot())},w.isCameraChanged=function(t){var e=this.getCamera(),r=f.nestedProperty(t,this.id+".camera").get();function n(t,e,r,n){var i=["up","center","eye"],a=["x","y","z"];return e[i[r]]&&t[i[r]][a[n]]===e[i[r]][a[n]]}var i=!1;if(void 0===r)i=!0;else{for(var a=0;a<3;a++)for(var o=0;o<3;o++)if(!n(e,r,a,o)){i=!0;break}(!r.projection||e.projection&&e.projection.type!==r.projection.type)&&(i=!0)}return i},w.isAspectChanged=function(t){var e=this.glplot.getAspectratio(),r=f.nestedProperty(t,this.id+".aspectratio").get();return void 0===r||r.x!==e.x||r.y!==e.y||r.z!==e.z},w.saveLayout=function(t){var e,r,n,i,a,o,s=this.fullLayout,l=this.isCameraChanged(t),c=this.isAspectChanged(t),h=l||c;if(h){var p={};if(l&&(e=this.getCamera(),n=(r=f.nestedProperty(t,this.id+".camera")).get(),p[this.id+".camera"]=n),c&&(i=this.glplot.getAspectratio(),o=(a=f.nestedProperty(t,this.id+".aspectratio")).get(),p[this.id+".aspectratio"]=o),u.call("_storeDirectGUIEdit",t,s._preGUI,p),l)r.set(e),f.nestedProperty(s,this.id+".camera").set(e);if(c)a.set(i),f.nestedProperty(s,this.id+".aspectratio").set(i),this.glplot.redraw()}return h},w.updateFx=function(t,e){var r=this.camera;if(r)if("orbit"===t)r.mode="orbit",r.keyBindingMode="rotate";else if("turntable"===t){r.up=[0,0,1],r.mode="turntable",r.keyBindingMode="rotate";var n=this.graphDiv,i=n._fullLayout,a=this.fullSceneLayout.camera,o=a.up.x,s=a.up.y,l=a.up.z;if(l/Math.sqrt(o*o+s*s+l*l)<.999){var c=this.id+".camera.up",h={x:0,y:0,z:1},p={};p[c]=h;var d=n.layout;u.call("_storeDirectGUIEdit",d,i._preGUI,p),a.up=h,f.nestedProperty(d,c).set(h)}}else r.keyBindingMode=t;this.fullSceneLayout.hovermode=e},w.toImage=function(t){t||(t="png"),this.staticMode&&this.container.appendChild(n),this.glplot.redraw();var e=this.glplot.gl,r=e.drawingBufferWidth,i=e.drawingBufferHeight;e.bindFramebuffer(e.FRAMEBUFFER,null);var a=new Uint8Array(r*i*4);e.readPixels(0,0,r,i,e.RGBA,e.UNSIGNED_BYTE,a),function(t,e,r){for(var n=0,i=r-1;n0)for(var s=255/o,l=0;l<3;++l)t[a+l]=Math.min(s*t[a+l],255)}}(a,r,i);var o=document.createElement("canvas");o.width=r,o.height=i;var s,l=o.getContext("2d"),c=l.createImageData(r,i);switch(c.data.set(a),l.putImageData(c,0,0),t){case"jpeg":s=o.toDataURL("image/jpeg");break;case"webp":s=o.toDataURL("image/webp");break;default:s=o.toDataURL("image/png")}return this.staticMode&&this.container.removeChild(n),s},w.setConvert=function(){for(var t=0;t<3;t++){var e=this.fullSceneLayout[k[t]];p.setConvert(e,this.fullLayout),e.setScale=f.noop}},w.make4thDimension=function(){var t=this.graphDiv._fullLayout;this._mockAxis={type:"linear",showexponent:"all",exponentformat:"B"},p.setConvert(this._mockAxis,t)},e.exports=_},{"../../components/fx":683,"../../lib":778,"../../lib/show_no_webgl_msg":800,"../../lib/str2rgbarray":802,"../../plots/cartesian/axes":828,"../../registry":911,"./layout/convert":874,"./layout/spikes":877,"./layout/tick_marks":878,"./project":879,"gl-plot3d":321,"has-passive-events":441,"webgl-context":606}],881:[function(t,e,r){"use strict";e.exports=function(t,e,r,n){n=n||t.length;for(var i=new Array(n),a=0;a\xa9 OpenStreetMap',tiles:["https://a.tile.openstreetmap.org/{z}/{x}/{y}.png","https://b.tile.openstreetmap.org/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-osm-tiles",type:"raster",source:"plotly-osm-tiles",minzoom:0,maxzoom:22}]},"white-bg":{id:"white-bg",version:8,sources:{},layers:[{id:"white-bg",type:"background",paint:{"background-color":"#FFFFFF"},minzoom:0,maxzoom:22}]},"carto-positron":{id:"carto-positron",version:8,sources:{"plotly-carto-positron":{type:"raster",attribution:'\xa9 CARTO',tiles:["https://cartodb-basemaps-c.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-carto-positron",type:"raster",source:"plotly-carto-positron",minzoom:0,maxzoom:22}]},"carto-darkmatter":{id:"carto-darkmatter",version:8,sources:{"plotly-carto-darkmatter":{type:"raster",attribution:'\xa9 CARTO',tiles:["https://cartodb-basemaps-c.global.ssl.fastly.net/dark_all/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-carto-darkmatter",type:"raster",source:"plotly-carto-darkmatter",minzoom:0,maxzoom:22}]},"stamen-terrain":{id:"stamen-terrain",version:8,sources:{"plotly-stamen-terrain":{type:"raster",attribution:'Map tiles by Stamen Design, under CC BY 3.0 | Data by OpenStreetMap, under ODbL.',tiles:["https://stamen-tiles.a.ssl.fastly.net/terrain/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-stamen-terrain",type:"raster",source:"plotly-stamen-terrain",minzoom:0,maxzoom:22}]},"stamen-toner":{id:"stamen-toner",version:8,sources:{"plotly-stamen-toner":{type:"raster",attribution:'Map tiles by Stamen Design, under CC BY 3.0 | Data by OpenStreetMap, under ODbL.',tiles:["https://stamen-tiles.a.ssl.fastly.net/toner/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-stamen-toner",type:"raster",source:"plotly-stamen-toner",minzoom:0,maxzoom:22}]},"stamen-watercolor":{id:"stamen-watercolor",version:8,sources:{"plotly-stamen-watercolor":{type:"raster",attribution:'Map tiles by Stamen Design, under CC BY 3.0 | Data by OpenStreetMap, under CC BY SA.',tiles:["https://stamen-tiles.a.ssl.fastly.net/watercolor/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-stamen-watercolor",type:"raster",source:"plotly-stamen-watercolor",minzoom:0,maxzoom:22}]}},i=Object.keys(n);e.exports={requiredVersion:"1.10.1",styleUrlPrefix:"mapbox://styles/mapbox/",styleUrlSuffix:"v9",styleValuesMapbox:["basic","streets","outdoors","light","dark","satellite","satellite-streets"],styleValueDflt:"basic",stylesNonMapbox:n,styleValuesNonMapbox:i,traceLayerPrefix:"plotly-trace-layer-",layoutLayerPrefix:"plotly-layout-layer-",wrongVersionErrorMsg:["Your custom plotly.js bundle is not using the correct mapbox-gl version","Please install mapbox-gl@1.10.1."].join("\n"),noAccessTokenErrorMsg:["Missing Mapbox access token.","Mapbox trace type require a Mapbox access token to be registered.","For example:"," Plotly.plot(gd, data, layout, { mapboxAccessToken: 'my-access-token' });","More info here: https://www.mapbox.com/help/define-access-token/"].join("\n"),missingStyleErrorMsg:["No valid mapbox style found, please set `mapbox.style` to one of:",i.join(", "),"or register a Mapbox access token to use a Mapbox-served style."].join("\n"),multipleTokensErrorMsg:["Set multiple mapbox access token across different mapbox subplot,","using first token found as mapbox-gl does not allow multipleaccess tokens on the same page."].join("\n"),mapOnErrorMsg:"Mapbox error.",mapboxLogo:{path0:"m 10.5,1.24 c -5.11,0 -9.25,4.15 -9.25,9.25 0,5.1 4.15,9.25 9.25,9.25 5.1,0 9.25,-4.15 9.25,-9.25 0,-5.11 -4.14,-9.25 -9.25,-9.25 z m 4.39,11.53 c -1.93,1.93 -4.78,2.31 -6.7,2.31 -0.7,0 -1.41,-0.05 -2.1,-0.16 0,0 -1.02,-5.64 2.14,-8.81 0.83,-0.83 1.95,-1.28 3.13,-1.28 1.27,0 2.49,0.51 3.39,1.42 1.84,1.84 1.89,4.75 0.14,6.52 z",path1:"M 10.5,-0.01 C 4.7,-0.01 0,4.7 0,10.49 c 0,5.79 4.7,10.5 10.5,10.5 5.8,0 10.5,-4.7 10.5,-10.5 C 20.99,4.7 16.3,-0.01 10.5,-0.01 Z m 0,19.75 c -5.11,0 -9.25,-4.15 -9.25,-9.25 0,-5.1 4.14,-9.26 9.25,-9.26 5.11,0 9.25,4.15 9.25,9.25 0,5.13 -4.14,9.26 -9.25,9.26 z",path2:"M 14.74,6.25 C 12.9,4.41 9.98,4.35 8.23,6.1 5.07,9.27 6.09,14.91 6.09,14.91 c 0,0 5.64,1.02 8.81,-2.14 C 16.64,11 16.59,8.09 14.74,6.25 Z m -2.27,4.09 -0.91,1.87 -0.9,-1.87 -1.86,-0.91 1.86,-0.9 0.9,-1.87 0.91,1.87 1.86,0.9 z",polygon:"11.56,12.21 10.66,10.34 8.8,9.43 10.66,8.53 11.56,6.66 12.47,8.53 14.33,9.43 12.47,10.34"},styleRules:{map:"overflow:hidden;position:relative;","missing-css":"display:none;",canary:"background-color:salmon;","ctrl-bottom-left":"position: absolute; pointer-events: none; z-index: 2; bottom: 0; left: 0;","ctrl-bottom-right":"position: absolute; pointer-events: none; z-index: 2; right: 0; bottom: 0;",ctrl:"clear: both; pointer-events: auto; transform: translate(0, 0);","ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner":"display: none;","ctrl-attrib.mapboxgl-compact:hover .mapboxgl-ctrl-attrib-inner":"display: block; margin-top:2px","ctrl-attrib.mapboxgl-compact:hover":"padding: 2px 24px 2px 4px; visibility: visible; margin-top: 6px;","ctrl-attrib.mapboxgl-compact::after":'content: ""; cursor: pointer; position: absolute; background-image: url(\'data:image/svg+xml;charset=utf-8,%3Csvg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"%3E %3Cpath fill="%23333333" fill-rule="evenodd" d="M4,10a6,6 0 1,0 12,0a6,6 0 1,0 -12,0 M9,7a1,1 0 1,0 2,0a1,1 0 1,0 -2,0 M9,10a1,1 0 1,1 2,0l0,3a1,1 0 1,1 -2,0"/%3E %3C/svg%3E\'); background-color: rgba(255, 255, 255, 0.5); width: 24px; height: 24px; box-sizing: border-box; border-radius: 12px;',"ctrl-attrib.mapboxgl-compact":"min-height: 20px; padding: 0; margin: 10px; position: relative; background-color: #fff; border-radius: 3px 12px 12px 3px;","ctrl-bottom-right > .mapboxgl-ctrl-attrib.mapboxgl-compact::after":"bottom: 0; right: 0","ctrl-bottom-left > .mapboxgl-ctrl-attrib.mapboxgl-compact::after":"bottom: 0; left: 0","ctrl-bottom-left .mapboxgl-ctrl":"margin: 0 0 10px 10px; float: left;","ctrl-bottom-right .mapboxgl-ctrl":"margin: 0 10px 10px 0; float: right;","ctrl-attrib":"color: rgba(0, 0, 0, 0.75); text-decoration: none; font-size: 12px","ctrl-attrib a":"color: rgba(0, 0, 0, 0.75); text-decoration: none; font-size: 12px","ctrl-attrib a:hover":"color: inherit; text-decoration: underline;","ctrl-attrib .mapbox-improve-map":"font-weight: bold; margin-left: 2px;","attrib-empty":"display: none;","ctrl-logo":'display:block; width: 21px; height: 21px; background-image: url(\'data:image/svg+xml;charset=utf-8,%3C?xml version="1.0" encoding="utf-8"?%3E %3Csvg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 21 21" style="enable-background:new 0 0 21 21;" xml:space="preserve"%3E%3Cg transform="translate(0,0.01)"%3E%3Cpath d="m 10.5,1.24 c -5.11,0 -9.25,4.15 -9.25,9.25 0,5.1 4.15,9.25 9.25,9.25 5.1,0 9.25,-4.15 9.25,-9.25 0,-5.11 -4.14,-9.25 -9.25,-9.25 z m 4.39,11.53 c -1.93,1.93 -4.78,2.31 -6.7,2.31 -0.7,0 -1.41,-0.05 -2.1,-0.16 0,0 -1.02,-5.64 2.14,-8.81 0.83,-0.83 1.95,-1.28 3.13,-1.28 1.27,0 2.49,0.51 3.39,1.42 1.84,1.84 1.89,4.75 0.14,6.52 z" style="opacity:0.9;fill:%23ffffff;enable-background:new" class="st0"/%3E%3Cpath d="M 10.5,-0.01 C 4.7,-0.01 0,4.7 0,10.49 c 0,5.79 4.7,10.5 10.5,10.5 5.8,0 10.5,-4.7 10.5,-10.5 C 20.99,4.7 16.3,-0.01 10.5,-0.01 Z m 0,19.75 c -5.11,0 -9.25,-4.15 -9.25,-9.25 0,-5.1 4.14,-9.26 9.25,-9.26 5.11,0 9.25,4.15 9.25,9.25 0,5.13 -4.14,9.26 -9.25,9.26 z" style="opacity:0.35;enable-background:new" class="st1"/%3E%3Cpath d="M 14.74,6.25 C 12.9,4.41 9.98,4.35 8.23,6.1 5.07,9.27 6.09,14.91 6.09,14.91 c 0,0 5.64,1.02 8.81,-2.14 C 16.64,11 16.59,8.09 14.74,6.25 Z m -2.27,4.09 -0.91,1.87 -0.9,-1.87 -1.86,-0.91 1.86,-0.9 0.9,-1.87 0.91,1.87 1.86,0.9 z" style="opacity:0.35;enable-background:new" class="st1"/%3E%3Cpolygon points="11.56,12.21 10.66,10.34 8.8,9.43 10.66,8.53 11.56,6.66 12.47,8.53 14.33,9.43 12.47,10.34 " style="opacity:0.9;fill:%23ffffff;enable-background:new" class="st0"/%3E%3C/g%3E%3C/svg%3E\')'}}},{}],884:[function(t,e,r){"use strict";var n=t("../../lib");e.exports=function(t,e){var r=t.split(" "),i=r[0],a=r[1],o=n.isArrayOrTypedArray(e)?n.mean(e):e,s=.5+o/100,l=1.5+o/100,c=["",""],u=[0,0];switch(i){case"top":c[0]="top",u[1]=-l;break;case"bottom":c[0]="bottom",u[1]=l}switch(a){case"left":c[1]="right",u[0]=-s;break;case"right":c[1]="left",u[0]=s}return{anchor:c[0]&&c[1]?c.join("-"):c[0]?c[0]:c[1]?c[1]:"center",offset:u}}},{"../../lib":778}],885:[function(t,e,r){"use strict";var n=t("mapbox-gl"),i=t("../../lib"),a=i.strTranslate,o=i.strScale,s=t("../../plots/get_data").getSubplotCalcData,l=t("../../constants/xmlns_namespaces"),c=t("d3"),u=t("../../components/drawing"),f=t("../../lib/svg_text_utils"),h=t("./mapbox"),p=r.constants=t("./constants");function d(t){return"string"==typeof t&&(-1!==p.styleValuesMapbox.indexOf(t)||0===t.indexOf("mapbox://"))}r.name="mapbox",r.attr="subplot",r.idRoot="mapbox",r.idRegex=r.attrRegex=i.counterRegex("mapbox"),r.attributes={subplot:{valType:"subplotid",dflt:"mapbox",editType:"calc"}},r.layoutAttributes=t("./layout_attributes"),r.supplyLayoutDefaults=t("./layout_defaults"),r.plot=function(t){var e=t._fullLayout,r=t.calcdata,a=e._subplots.mapbox;if(n.version!==p.requiredVersion)throw new Error(p.wrongVersionErrorMsg);var o=function(t,e){var r=t._fullLayout;if(""===t._context.mapboxAccessToken)return"";for(var n=[],a=[],o=!1,s=!1,l=0;l1&&i.warn(p.multipleTokensErrorMsg),n[0]):(a.length&&i.log(["Listed mapbox access token(s)",a.join(","),"but did not use a Mapbox map style, ignoring token(s)."].join(" ")),"")}(t,a);n.accessToken=o;for(var l=0;l_/2){var w=v.split("|").join("
    ");x.text(w).attr("data-unformatted",w).call(f.convertToTspans,t),b=u.bBox(x.node())}x.attr("transform",a(-3,8-b.height)),y.insert("rect",".static-attribution").attr({x:-b.width-6,y:-b.height-3,width:b.width+6,height:b.height+3,fill:"rgba(255, 255, 255, 0.75)"});var T=1;b.width+6>_&&(T=_/(b.width+6));var k=[n.l+n.w*h.x[1],n.t+n.h*(1-h.y[0])];y.attr("transform",a(k[0],k[1])+o(T))}},r.updateFx=function(t){for(var e=t._fullLayout,r=e._subplots.mapbox,n=0;n0){for(var r=0;r0}function u(t){var e={},r={};switch(t.type){case"circle":n.extendFlat(r,{"circle-radius":t.circle.radius,"circle-color":t.color,"circle-opacity":t.opacity});break;case"line":n.extendFlat(r,{"line-width":t.line.width,"line-color":t.color,"line-opacity":t.opacity,"line-dasharray":t.line.dash});break;case"fill":n.extendFlat(r,{"fill-color":t.color,"fill-outline-color":t.fill.outlinecolor,"fill-opacity":t.opacity});break;case"symbol":var i=t.symbol,o=a(i.textposition,i.iconsize);n.extendFlat(e,{"icon-image":i.icon+"-15","icon-size":i.iconsize/10,"text-field":i.text,"text-size":i.textfont.size,"text-anchor":o.anchor,"text-offset":o.offset,"symbol-placement":i.placement}),n.extendFlat(r,{"icon-color":t.color,"text-color":i.textfont.color,"text-opacity":t.opacity});break;case"raster":n.extendFlat(r,{"raster-fade-duration":0,"raster-opacity":t.opacity})}return{layout:e,paint:r}}l.update=function(t){this.visible?this.needsNewImage(t)?this.updateImage(t):this.needsNewSource(t)?(this.removeLayer(),this.updateSource(t),this.updateLayer(t)):this.needsNewLayer(t)?this.updateLayer(t):this.updateStyle(t):(this.updateSource(t),this.updateLayer(t)),this.visible=c(t)},l.needsNewImage=function(t){return this.subplot.map.getSource(this.idSource)&&"image"===this.sourceType&&"image"===t.sourcetype&&(this.source!==t.source||JSON.stringify(this.coordinates)!==JSON.stringify(t.coordinates))},l.needsNewSource=function(t){return this.sourceType!==t.sourcetype||JSON.stringify(this.source)!==JSON.stringify(t.source)||this.layerType!==t.type},l.needsNewLayer=function(t){return this.layerType!==t.type||this.below!==this.subplot.belowLookup["layout-"+this.index]},l.lookupBelow=function(){return this.subplot.belowLookup["layout-"+this.index]},l.updateImage=function(t){this.subplot.map.getSource(this.idSource).updateImage({url:t.source,coordinates:t.coordinates});var e=this.findFollowingMapboxLayerId(this.lookupBelow());null!==e&&this.subplot.map.moveLayer(this.idLayer,e)},l.updateSource=function(t){var e=this.subplot.map;if(e.getSource(this.idSource)&&e.removeSource(this.idSource),this.sourceType=t.sourcetype,this.source=t.source,c(t)){var r=function(t){var e,r=t.sourcetype,n=t.source,a={type:r};"geojson"===r?e="data":"vector"===r?e="string"==typeof n?"url":"tiles":"raster"===r?(e="tiles",a.tileSize=256):"image"===r&&(e="url",a.coordinates=t.coordinates);a[e]=n,t.sourceattribution&&(a.attribution=i(t.sourceattribution));return a}(t);e.addSource(this.idSource,r)}},l.findFollowingMapboxLayerId=function(t){if("traces"===t)for(var e=this.subplot.getMapLayers(),r=0;r1)for(r=0;r-1&&v(e.originalEvent,n,[r.xaxis],[r.yaxis],r.id,t),i.indexOf("event")>-1&&c.click(n,e.originalEvent)}}},_.updateFx=function(t){var e=this,r=e.map,n=e.gd;if(!e.isStatic){var a,o=t.dragmode;a=f(o)?function(t,r){(t.range={})[e.id]=[c([r.xmin,r.ymin]),c([r.xmax,r.ymax])]}:function(t,r,n){(t.lassoPoints={})[e.id]=n.filtered.map(c)};var s=e.dragOptions;e.dragOptions=i.extendDeep(s||{},{dragmode:t.dragmode,element:e.div,gd:n,plotinfo:{id:e.id,domain:t[e.id].domain,xaxis:e.xaxis,yaxis:e.yaxis,fillRangeItems:a},xaxes:[e.xaxis],yaxes:[e.yaxis],subplot:e.id}),r.off("click",e.onClickInPanHandler),p(o)||h(o)?(r.dragPan.disable(),r.on("zoomstart",e.clearSelect),e.dragOptions.prepFn=function(t,r,n){d(t,r,n,e.dragOptions,o)},l.init(e.dragOptions)):(r.dragPan.enable(),r.off("zoomstart",e.clearSelect),e.div.onmousedown=null,e.onClickInPanHandler=e.onClickInPanFn(e.dragOptions),r.on("click",e.onClickInPanHandler))}function c(t){var r=e.map.unproject(t);return[r.lng,r.lat]}},_.updateFramework=function(t){var e=t[this.id].domain,r=t._size,n=this.div.style;n.width=r.w*(e.x[1]-e.x[0])+"px",n.height=r.h*(e.y[1]-e.y[0])+"px",n.left=r.l+e.x[0]*r.w+"px",n.top=r.t+(1-e.y[1])*r.h+"px",this.xaxis._offset=r.l+e.x[0]*r.w,this.xaxis._length=r.w*(e.x[1]-e.x[0]),this.yaxis._offset=r.t+(1-e.y[1])*r.h,this.yaxis._length=r.h*(e.y[1]-e.y[0])},_.updateLayers=function(t){var e,r=t[this.id].layers,n=this.layerList;if(r.length!==n.length){for(e=0;e=e.width-20?(a["text-anchor"]="start",a.x=5):(a["text-anchor"]="end",a.x=e._paper.attr("width")-7),r.attr(a);var o=r.select(".js-link-to-tool"),s=r.select(".js-link-spacer"),l=r.select(".js-sourcelinks");t._context.showSources&&t._context.showSources(t),t._context.showLink&&function(t,e){e.text("");var r=e.append("a").attr({"xlink:xlink:href":"#",class:"link--impt link--embedview","font-weight":"bold"}).text(t._context.linkText+" "+String.fromCharCode(187));if(t._context.sendData)r.on("click",(function(){x.sendDataToCloud(t)}));else{var n=window.location.pathname.split("/"),i=window.location.search;r.attr({"xlink:xlink:show":"new","xlink:xlink:href":"/"+n[2].split(".")[0]+"/"+n[1]+i})}}(t,o),s.text(o.text()&&l.text()?" - ":"")}},x.sendDataToCloud=function(t){var e=(window.PLOTLYENV||{}).BASE_URL||t._context.plotlyServerURL;if(e){t.emit("plotly_beforeexport");var r=n.select(t).append("div").attr("id","hiddenform").style("display","none"),i=r.append("form").attr({action:e+"/external",method:"post",target:"_blank"});return i.append("input").attr({type:"text",name:"data"}).node().value=x.graphJson(t,!1,"keepdata"),i.node().submit(),r.remove(),t.emit("plotly_afterexport"),!1}};var w=["days","shortDays","months","shortMonths","periods","dateTime","date","time","decimal","thousands","grouping","currency"],T=["year","month","dayMonth","dayMonthYear"];function k(t,e){var r=t._context.locale;r||(r="en-US");var n=!1,i={};function a(t){for(var r=!0,a=0;a1&&O.length>1){for(o.getComponentMethod("grid","sizeDefaults")(u,l),s=0;s15&&O.length>15&&0===l.shapes.length&&0===l.images.length,l._hasCartesian=l._has("cartesian"),l._hasGeo=l._has("geo"),l._hasGL3D=l._has("gl3d"),l._hasGL2D=l._has("gl2d"),l._hasTernary=l._has("ternary"),l._hasPie=l._has("pie"),x.linkSubplots(h,l,f,a),x.cleanPlot(h,l,f,a);var N=!(!a._has||!a._has("gl2d")),j=!(!l._has||!l._has("gl2d")),U=!(!a._has||!a._has("cartesian"))||N,V=!(!l._has||!l._has("cartesian"))||j;U&&!V?a._bgLayer.remove():V&&!U&&(l._shouldCreateBgLayer=!0),a._zoomlayer&&!t._dragging&&p({_fullLayout:a}),function(t,e){var r,n=[];e.meta&&(r=e._meta={meta:e.meta,layout:{meta:e.meta}});for(var i=0;i0){var f=1-2*s;n=Math.round(f*n),i=Math.round(f*i)}}var h=x.layoutAttributes.width.min,p=x.layoutAttributes.height.min;n1,g=!e.height&&Math.abs(r.height-i)>1;(g||d)&&(d&&(r.width=n),g&&(r.height=i)),t._initialAutoSize||(t._initialAutoSize={width:n,height:i}),x.sanitizeMargins(r)},x.supplyLayoutModuleDefaults=function(t,e,r,n){var i,a,s,l=o.componentsRegistry,u=e._basePlotModules,f=o.subplotsRegistry.cartesian;for(i in l)(s=l[i]).includeBasePlot&&s.includeBasePlot(t,e);for(var h in u.length||u.push(f),e._has("cartesian")&&(o.getComponentMethod("grid","contentDefaults")(t,e),f.finalizeSubplots(t,e)),e._subplots)e._subplots[h].sort(c.subplotSort);for(a=0;a1&&(r.l/=g,r.r/=g)}if(f){var m=(r.t+r.b)/f;m>1&&(r.t/=m,r.b/=m)}var v=void 0!==r.xl?r.xl:r.x,y=void 0!==r.xr?r.xr:r.x,b=void 0!==r.yt?r.yt:r.y,_=void 0!==r.yb?r.yb:r.y;h[e]={l:{val:v,size:r.l+d},r:{val:y,size:r.r+d},b:{val:_,size:r.b+d},t:{val:b,size:r.t+d}},p[e]=1}else delete h[e],delete p[e];if(!n._replotting)return x.doAutoMargin(t)}},x.doAutoMargin=function(t){var e=t._fullLayout,r=e.width,n=e.height;e._size||(e._size={}),C(e);var i=e._size,s=e.margin,l=c.extendFlat({},i),u=s.l,f=s.r,p=s.t,d=s.b,g=e._pushmargin,m=e._pushmarginIds;if(!1!==e.margin.autoexpand){for(var v in g)m[v]||delete g[v];for(var y in g.base={l:{val:0,size:u},r:{val:1,size:f},t:{val:1,size:p},b:{val:0,size:d}},g){var b=g[y].l||{},_=g[y].b||{},w=b.val,T=b.size,k=_.val,M=_.size;for(var A in g){if(a(T)&&g[A].r){var S=g[A].r.val,E=g[A].r.size;if(S>w){var L=(T*S+(E-r)*w)/(S-w),I=(E*(1-w)+(T-r)*(1-S))/(S-w);L+I>u+f&&(u=L,f=I)}}if(a(M)&&g[A].t){var P=g[A].t.val,z=g[A].t.size;if(P>k){var O=(M*P+(z-n)*k)/(P-k),D=(z*(1-k)+(M-n)*(1-P))/(P-k);O+D>d+p&&(d=O,p=D)}}}}}var R=c.constrain(r-s.l-s.r,2,64),F=c.constrain(n-s.t-s.b,2,64),B=Math.max(0,r-R),N=Math.max(0,n-F);if(B){var j=(u+f)/B;j>1&&(u/=j,f/=j)}if(N){var U=(d+p)/N;U>1&&(d/=U,p/=U)}if(i.l=Math.round(u),i.r=Math.round(f),i.t=Math.round(p),i.b=Math.round(d),i.p=Math.round(s.pad),i.w=Math.round(r)-i.l-i.r,i.h=Math.round(n)-i.t-i.b,!e._replotting&&x.didMarginChange(l,i)){"_redrawFromAutoMarginCount"in e?e._redrawFromAutoMarginCount++:e._redrawFromAutoMarginCount=1;var V=3*(1+Object.keys(m).length);if(e._redrawFromAutoMarginCount0&&(t._transitioningWithDuration=!0),t._transitionData._interruptCallbacks.push((function(){n=!0})),r.redraw&&t._transitionData._interruptCallbacks.push((function(){return o.call("redraw",t)})),t._transitionData._interruptCallbacks.push((function(){t.emit("plotly_transitioninterrupted",[])}));var a=0,s=0;function l(){return a++,function(){s++,n||s!==a||function(e){if(!t._transitionData)return;(function(t){if(t)for(;t.length;)t.shift()})(t._transitionData._interruptCallbacks),Promise.resolve().then((function(){if(r.redraw)return o.call("redraw",t)})).then((function(){t._transitioning=!1,t._transitioningWithDuration=!1,t.emit("plotly_transitioned",[])})).then(e)}(i)}}r.runFn(l),setTimeout(l())}))}],a=c.syncOrAsync(i,t);return a&&a.then||(a=Promise.resolve()),a.then((function(){return t}))}x.didMarginChange=function(t,e){for(var r=0;r1)return!0}return!1},x.graphJson=function(t,e,r,n,i,a){(i&&e&&!t._fullData||i&&!e&&!t._fullLayout)&&x.supplyDefaults(t);var o=i?t._fullData:t.data,s=i?t._fullLayout:t.layout,l=(t._transitionData||{})._frames;function u(t,e){if("function"==typeof t)return e?"_function_":null;if(c.isPlainObject(t)){var n,i={};return Object.keys(t).sort().forEach((function(a){if(-1===["_","["].indexOf(a.charAt(0)))if("function"!=typeof t[a]){if("keepdata"===r){if("src"===a.substr(a.length-3))return}else if("keepstream"===r){if("string"==typeof(n=t[a+"src"])&&n.indexOf(":")>0&&!c.isPlainObject(t.stream))return}else if("keepall"!==r&&"string"==typeof(n=t[a+"src"])&&n.indexOf(":")>0)return;i[a]=u(t[a],e)}else e&&(i[a]="_function")})),i}return Array.isArray(t)?t.map((function(t){return u(t,e)})):c.isTypedArray(t)?c.simpleMap(t,c.identity):c.isJSDate(t)?c.ms2DateTimeLocal(+t):t}var f={data:(o||[]).map((function(t){var r=u(t);return e&&delete r.fit,r}))};if(!e&&(f.layout=u(s),i)){var h=s._size;f.layout.computed={margin:{b:h.b,l:h.l,r:h.r,t:h.t}}}return t.framework&&t.framework.isPolar&&(f=t.framework.getConfig()),l&&(f.frames=u(l)),a&&(f.config=u(t._context,!0)),"object"===n?f:JSON.stringify(f)},x.modifyFrames=function(t,e){var r,n,i,a=t._transitionData._frames,o=t._transitionData._frameHash;for(r=0;r=0;a--)if(s[a].enabled){r._indexToPoints=s[a]._indexToPoints;break}n&&n.calc&&(o=n.calc(t,r))}Array.isArray(o)&&o[0]||(o=[{x:f,y:f}]),o[0].t||(o[0].t={}),o[0].trace=r,d[e]=o}}for(z(l,u,p),i=0;i1e-10?t:0}function h(t,e,r){e=e||0,r=r||0;for(var n=t.length,i=new Array(n),a=0;a0?r:1/0})),i=n.mod(r+1,e.length);return[e[r],e[i]]},findIntersectionXY:c,findXYatLength:function(t,e,r,n){var i=-e*r,a=e*e+1,o=2*(e*i-r),s=i*i+r*r-t*t,l=Math.sqrt(o*o-4*a*s),c=(-o+l)/(2*a),u=(-o-l)/(2*a);return[[c,e*c+i+n],[u,e*u+i+n]]},clampTiny:f,pathPolygon:function(t,e,r,n,i,a){return"M"+h(u(t,e,r,n),i,a).join("L")},pathPolygonAnnulus:function(t,e,r,n,i,a,o){var s,l;t=0?h.angularAxis.domain:n.extent(T),E=Math.abs(T[1]-T[0]);M&&!k&&(E=0);var C=S.slice();A&&k&&(C[1]+=E);var L=h.angularAxis.ticksCount||4;L>8&&(L=L/(L/8)+L%8),h.angularAxis.ticksStep&&(L=(C[1]-C[0])/L);var I=h.angularAxis.ticksStep||(C[1]-C[0])/(L*(h.minorTicks+1));w&&(I=Math.max(Math.round(I),1)),C[2]||(C[2]=I);var P=n.range.apply(this,C);if(P=P.map((function(t,e){return parseFloat(t.toPrecision(12))})),s=n.scale.linear().domain(C.slice(0,2)).range("clockwise"===h.direction?[0,360]:[360,0]),u.layout.angularAxis.domain=s.domain(),u.layout.angularAxis.endPadding=A?E:0,"undefined"==typeof(t=n.select(this).select("svg.chart-root"))||t.empty()){var z=(new DOMParser).parseFromString("' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '","application/xml"),O=this.appendChild(this.ownerDocument.importNode(z.documentElement,!0));t=n.select(O)}t.select(".guides-group").style({"pointer-events":"none"}),t.select(".angular.axis-group").style({"pointer-events":"none"}),t.select(".radial.axis-group").style({"pointer-events":"none"});var D,R=t.select(".chart-group"),F={fill:"none",stroke:h.tickColor},B={"font-size":h.font.size,"font-family":h.font.family,fill:h.font.color,"text-shadow":["-1px 0px","1px -1px","-1px 1px","1px 1px"].map((function(t,e){return" "+t+" 0 "+h.font.outlineColor})).join(",")};if(h.showLegend){D=t.select(".legend-group").attr({transform:"translate("+[x,h.margin.top]+")"}).style({display:"block"});var N=p.map((function(t,e){var r=o.util.cloneJson(t);return r.symbol="DotPlot"===t.geometry?t.dotType||"circle":"LinePlot"!=t.geometry?"square":"line",r.visibleInLegend="undefined"==typeof t.visibleInLegend||t.visibleInLegend,r.color="LinePlot"===t.geometry?t.strokeColor:t.color,r}));o.Legend().config({data:p.map((function(t,e){return t.name||"Element"+e})),legendConfig:i({},o.Legend.defaultConfig().legendConfig,{container:D,elements:N,reverseOrder:h.legend.reverseOrder})})();var j=D.node().getBBox();x=Math.min(h.width-j.width-h.margin.left-h.margin.right,h.height-h.margin.top-h.margin.bottom)/2,x=Math.max(10,x),_=[h.margin.left+x,h.margin.top+x],r.range([0,x]),u.layout.radialAxis.domain=r.domain(),D.attr("transform","translate("+[_[0]+x,_[1]-x]+")")}else D=t.select(".legend-group").style({display:"none"});t.attr({width:h.width,height:h.height}).style({opacity:h.opacity}),R.attr("transform","translate("+_+")").style({cursor:"crosshair"});var U=[(h.width-(h.margin.left+h.margin.right+2*x+(j?j.width:0)))/2,(h.height-(h.margin.top+h.margin.bottom+2*x))/2];if(U[0]=Math.max(0,U[0]),U[1]=Math.max(0,U[1]),t.select(".outer-group").attr("transform","translate("+U+")"),h.title&&h.title.text){var V=t.select("g.title-group text").style(B).text(h.title.text),q=V.node().getBBox();V.attr({x:_[0]-q.width/2,y:_[1]-x-20})}var H=t.select(".radial.axis-group");if(h.radialAxis.gridLinesVisible){var G=H.selectAll("circle.grid-circle").data(r.ticks(5));G.enter().append("circle").attr({class:"grid-circle"}).style(F),G.attr("r",r),G.exit().remove()}H.select("circle.outside-circle").attr({r:x}).style(F);var Y=t.select("circle.background-circle").attr({r:x}).style({fill:h.backgroundColor,stroke:h.stroke});function W(t,e){return s(t)%360+h.orientation}if(h.radialAxis.visible){var X=n.svg.axis().scale(r).ticks(5).tickSize(5);H.call(X).attr({transform:"rotate("+h.radialAxis.orientation+")"}),H.selectAll(".domain").style(F),H.selectAll("g>text").text((function(t,e){return this.textContent+h.radialAxis.ticksSuffix})).style(B).style({"text-anchor":"start"}).attr({x:0,y:0,dx:0,dy:0,transform:function(t,e){return"horizontal"===h.radialAxis.tickOrientation?"rotate("+-h.radialAxis.orientation+") translate("+[0,B["font-size"]]+")":"translate("+[0,B["font-size"]]+")"}}),H.selectAll("g>line").style({stroke:"black"})}var Z=t.select(".angular.axis-group").selectAll("g.angular-tick").data(P),J=Z.enter().append("g").classed("angular-tick",!0);Z.attr({transform:function(t,e){return"rotate("+W(t)+")"}}).style({display:h.angularAxis.visible?"block":"none"}),Z.exit().remove(),J.append("line").classed("grid-line",!0).classed("major",(function(t,e){return e%(h.minorTicks+1)==0})).classed("minor",(function(t,e){return!(e%(h.minorTicks+1)==0)})).style(F),J.selectAll(".minor").style({stroke:h.minorTickColor}),Z.select("line.grid-line").attr({x1:h.tickLength?x-h.tickLength:0,x2:x}).style({display:h.angularAxis.gridLinesVisible?"block":"none"}),J.append("text").classed("axis-text",!0).style(B);var K=Z.select("text.axis-text").attr({x:x+h.labelOffset,dy:a+"em",transform:function(t,e){var r=W(t),n=x+h.labelOffset,i=h.angularAxis.tickOrientation;return"horizontal"==i?"rotate("+-r+" "+n+" 0)":"radial"==i?r<270&&r>90?"rotate(180 "+n+" 0)":null:"rotate("+(r<=180&&r>0?-90:90)+" "+n+" 0)"}}).style({"text-anchor":"middle",display:h.angularAxis.labelsVisible?"block":"none"}).text((function(t,e){return e%(h.minorTicks+1)!=0?"":w?w[t]+h.angularAxis.ticksSuffix:t+h.angularAxis.ticksSuffix})).style(B);h.angularAxis.rewriteTicks&&K.text((function(t,e){return e%(h.minorTicks+1)!=0?"":h.angularAxis.rewriteTicks(this.textContent,e)}));var Q=n.max(R.selectAll(".angular-tick text")[0].map((function(t,e){return t.getCTM().e+t.getBBox().width})));D.attr({transform:"translate("+[x+Q,h.margin.top]+")"});var $=t.select("g.geometry-group").selectAll("g").size()>0,tt=t.select("g.geometry-group").selectAll("g.geometry").data(p);if(tt.enter().append("g").attr({class:function(t,e){return"geometry geometry"+e}}),tt.exit().remove(),p[0]||$){var et=[];p.forEach((function(t,e){var n={};n.radialScale=r,n.angularScale=s,n.container=tt.filter((function(t,r){return r==e})),n.geometry=t.geometry,n.orientation=h.orientation,n.direction=h.direction,n.index=e,et.push({data:t,geometryConfig:n})}));var rt=n.nest().key((function(t,e){return"undefined"!=typeof t.data.groupId||"unstacked"})).entries(et),nt=[];rt.forEach((function(t,e){"unstacked"===t.key?nt=nt.concat(t.values.map((function(t,e){return[t]}))):nt.push(t.values)})),nt.forEach((function(t,e){var r;r=Array.isArray(t)?t[0].geometryConfig.geometry:t.geometryConfig.geometry;var n=t.map((function(t,e){return i(o[r].defaultConfig(),t)}));o[r]().config(n)()}))}var it,at,ot=t.select(".guides-group"),st=t.select(".tooltips-group"),lt=o.tooltipPanel().config({container:st,fontSize:8})(),ct=o.tooltipPanel().config({container:st,fontSize:8})(),ut=o.tooltipPanel().config({container:st,hasTick:!0})();if(!k){var ft=ot.select("line").attr({x1:0,y1:0,y2:0}).style({stroke:"grey","pointer-events":"none"});R.on("mousemove.angular-guide",(function(t,e){var r=o.util.getMousePos(Y).angle;ft.attr({x2:-x,transform:"rotate("+r+")"}).style({opacity:.5});var n=(r+180+360-h.orientation)%360;it=s.invert(n);var i=o.util.convertToCartesian(x+12,r+180);lt.text(o.util.round(it)).move([i[0]+_[0],i[1]+_[1]])})).on("mouseout.angular-guide",(function(t,e){ot.select("line").style({opacity:0})}))}var ht=ot.select("circle").style({stroke:"grey",fill:"none"});R.on("mousemove.radial-guide",(function(t,e){var n=o.util.getMousePos(Y).radius;ht.attr({r:n}).style({opacity:.5}),at=r.invert(o.util.getMousePos(Y).radius);var i=o.util.convertToCartesian(n,h.radialAxis.orientation);ct.text(o.util.round(at)).move([i[0]+_[0],i[1]+_[1]])})).on("mouseout.radial-guide",(function(t,e){ht.style({opacity:0}),ut.hide(),lt.hide(),ct.hide()})),t.selectAll(".geometry-group .mark").on("mouseover.tooltip",(function(e,r){var i=n.select(this),a=this.style.fill,s="black",l=this.style.opacity||1;if(i.attr({"data-opacity":l}),a&&"none"!==a){i.attr({"data-fill":a}),s=n.hsl(a).darker().toString(),i.style({fill:s,opacity:1});var c={t:o.util.round(e[0]),r:o.util.round(e[1])};k&&(c.t=w[e[0]]);var u="t: "+c.t+", r: "+c.r,f=this.getBoundingClientRect(),h=t.node().getBoundingClientRect(),p=[f.left+f.width/2-U[0]-h.left,f.top+f.height/2-U[1]-h.top];ut.config({color:s}).text(u),ut.move(p)}else a=this.style.stroke||"black",i.attr({"data-stroke":a}),s=n.hsl(a).darker().toString(),i.style({stroke:s,opacity:1})})).on("mousemove.tooltip",(function(t,e){if(0!=n.event.which)return!1;n.select(this).attr("data-fill")&&ut.show()})).on("mouseout.tooltip",(function(t,e){ut.hide();var r=n.select(this),i=r.attr("data-fill");i?r.style({fill:i,opacity:r.attr("data-opacity")}):r.style({stroke:r.attr("data-stroke"),opacity:r.attr("data-opacity")})}))}))}(c),this},h.config=function(t){if(!arguments.length)return l;var e=o.util.cloneJson(t);return e.data.forEach((function(t,e){l.data[e]||(l.data[e]={}),i(l.data[e],o.Axis.defaultConfig().data[0]),i(l.data[e],t)})),i(l.layout,o.Axis.defaultConfig().layout),i(l.layout,e.layout),this},h.getLiveConfig=function(){return u},h.getinputConfig=function(){return c},h.radialScale=function(t){return r},h.angularScale=function(t){return s},h.svg=function(){return t},n.rebind(h,f,"on"),h},o.Axis.defaultConfig=function(t,e){return{data:[{t:[1,2,3,4],r:[10,11,12,13],name:"Line1",geometry:"LinePlot",color:null,strokeDash:"solid",strokeColor:null,strokeSize:"1",visibleInLegend:!0,opacity:1}],layout:{defaultColorRange:n.scale.category10().range(),title:null,height:450,width:500,margin:{top:40,right:40,bottom:40,left:40},font:{size:12,color:"gray",outlineColor:"white",family:"Tahoma, sans-serif"},direction:"clockwise",orientation:0,labelOffset:10,radialAxis:{domain:null,orientation:-45,ticksSuffix:"",visible:!0,gridLinesVisible:!0,tickOrientation:"horizontal",rewriteTicks:null},angularAxis:{domain:[0,360],ticksSuffix:"",visible:!0,gridLinesVisible:!0,labelsVisible:!0,tickOrientation:"horizontal",rewriteTicks:null,ticksCount:null,ticksStep:null},minorTicks:0,tickLength:null,tickColor:"silver",minorTickColor:"#eee",backgroundColor:"none",needsEndSpacing:null,showLegend:!0,legend:{reverseOrder:!1},opacity:1}}},o.util={},o.DATAEXTENT="dataExtent",o.AREA="AreaChart",o.LINE="LinePlot",o.DOT="DotPlot",o.BAR="BarChart",o.util._override=function(t,e){for(var r in t)r in e&&(e[r]=t[r])},o.util._extend=function(t,e){for(var r in t)e[r]=t[r]},o.util._rndSnd=function(){return 2*Math.random()-1+(2*Math.random()-1)+(2*Math.random()-1)},o.util.dataFromEquation2=function(t,e){var r=e||6;return n.range(0,360+r,r).map((function(e,r){var n=e*Math.PI/180;return[e,t(n)]}))},o.util.dataFromEquation=function(t,e,r){var i=e||6,a=[],o=[];n.range(0,360+i,i).forEach((function(e,r){var n=e*Math.PI/180,i=t(n);a.push(e),o.push(i)}));var s={t:a,r:o};return r&&(s.name=r),s},o.util.ensureArray=function(t,e){if("undefined"==typeof t)return null;var r=[].concat(t);return n.range(e).map((function(t,e){return r[e]||r[0]}))},o.util.fillArrays=function(t,e,r){return e.forEach((function(e,n){t[e]=o.util.ensureArray(t[e],r)})),t},o.util.cloneJson=function(t){return JSON.parse(JSON.stringify(t))},o.util.validateKeys=function(t,e){"string"==typeof e&&(e=e.split("."));var r=e.shift();return t[r]&&(!e.length||objHasKeys(t[r],e))},o.util.sumArrays=function(t,e){return n.zip(t,e).map((function(t,e){return n.sum(t)}))},o.util.arrayLast=function(t){return t[t.length-1]},o.util.arrayEqual=function(t,e){for(var r=Math.max(t.length,e.length,1);r-- >=0&&t[r]===e[r];);return-2===r},o.util.flattenArray=function(t){for(var e=[];!o.util.arrayEqual(e,t);)e=t,t=[].concat.apply([],t);return t},o.util.deduplicate=function(t){return t.filter((function(t,e,r){return r.indexOf(t)==e}))},o.util.convertToCartesian=function(t,e){var r=e*Math.PI/180;return[t*Math.cos(r),t*Math.sin(r)]},o.util.round=function(t,e){var r=e||2,n=Math.pow(10,r);return Math.round(t*n)/n},o.util.getMousePos=function(t){var e=n.mouse(t.node()),r=e[0],i=e[1],a={};return a.x=r,a.y=i,a.pos=e,a.angle=180*(Math.atan2(i,r)+Math.PI)/Math.PI,a.radius=Math.sqrt(r*r+i*i),a},o.util.duplicatesCount=function(t){for(var e,r={},n={},i=0,a=t.length;i0)){var l=n.select(this.parentNode).selectAll("path.line").data([0]);l.enter().insert("path"),l.attr({class:"line",d:u(s),transform:function(t,r){return"rotate("+(e.orientation+90)+")"},"pointer-events":"none"}).style({fill:function(t,e){return d.fill(r,i,a)},"fill-opacity":0,stroke:function(t,e){return d.stroke(r,i,a)},"stroke-width":function(t,e){return d["stroke-width"](r,i,a)},"stroke-dasharray":function(t,e){return d["stroke-dasharray"](r,i,a)},opacity:function(t,e){return d.opacity(r,i,a)},display:function(t,e){return d.display(r,i,a)}})}};var f=e.angularScale.range(),h=Math.abs(f[1]-f[0])/o[0].length*Math.PI/180,p=n.svg.arc().startAngle((function(t){return-h/2})).endAngle((function(t){return h/2})).innerRadius((function(t){return e.radialScale(l+(t[2]||0))})).outerRadius((function(t){return e.radialScale(l+(t[2]||0))+e.radialScale(t[1])}));c.arc=function(t,r,i){n.select(this).attr({class:"mark arc",d:p,transform:function(t,r){return"rotate("+(e.orientation+s(t[0])+90)+")"}})};var d={fill:function(e,r,n){return t[n].data.color},stroke:function(e,r,n){return t[n].data.strokeColor},"stroke-width":function(e,r,n){return t[n].data.strokeSize+"px"},"stroke-dasharray":function(e,n,i){return r[t[i].data.strokeDash]},opacity:function(e,r,n){return t[n].data.opacity},display:function(e,r,n){return"undefined"==typeof t[n].data.visible||t[n].data.visible?"block":"none"}},g=n.select(this).selectAll("g.layer").data(o);g.enter().append("g").attr({class:"layer"});var m=g.selectAll("path.mark").data((function(t,e){return t}));m.enter().append("path").attr({class:"mark"}),m.style(d).each(c[e.geometryType]),m.exit().remove(),g.exit().remove()}))}return a.config=function(e){return arguments.length?(e.forEach((function(e,r){t[r]||(t[r]={}),i(t[r],o.PolyChart.defaultConfig()),i(t[r],e)})),this):t},a.getColorScale=function(){},n.rebind(a,e,"on"),a},o.PolyChart.defaultConfig=function(){return{data:{name:"geom1",t:[[1,2,3,4]],r:[[1,2,3,4]],dotType:"circle",dotSize:64,dotVisible:!1,barWidth:20,color:"#ffa500",strokeSize:1,strokeColor:"silver",strokeDash:"solid",opacity:1,index:0,visible:!0,visibleInLegend:!0},geometryConfig:{geometry:"LinePlot",geometryType:"arc",direction:"clockwise",orientation:0,container:"body",radialScale:null,angularScale:null,colorScale:n.scale.category20()}}},o.BarChart=function(){return o.PolyChart()},o.BarChart.defaultConfig=function(){return{geometryConfig:{geometryType:"bar"}}},o.AreaChart=function(){return o.PolyChart()},o.AreaChart.defaultConfig=function(){return{geometryConfig:{geometryType:"arc"}}},o.DotPlot=function(){return o.PolyChart()},o.DotPlot.defaultConfig=function(){return{geometryConfig:{geometryType:"dot",dotType:"circle"}}},o.LinePlot=function(){return o.PolyChart()},o.LinePlot.defaultConfig=function(){return{geometryConfig:{geometryType:"line"}}},o.Legend=function(){var t=o.Legend.defaultConfig(),e=n.dispatch("hover");function r(){var e=t.legendConfig,a=t.data.map((function(t,r){return[].concat(t).map((function(t,n){var a=i({},e.elements[r]);return a.name=t,a.color=[].concat(e.elements[r].color)[n],a}))})),o=n.merge(a);o=o.filter((function(t,r){return e.elements[r]&&(e.elements[r].visibleInLegend||"undefined"==typeof e.elements[r].visibleInLegend)})),e.reverseOrder&&(o=o.reverse());var s=e.container;("string"==typeof s||s.nodeName)&&(s=n.select(s));var l=o.map((function(t,e){return t.color})),c=e.fontSize,u=null==e.isContinuous?"number"==typeof o[0]:e.isContinuous,f=u?e.height:c*o.length,h=s.classed("legend-group",!0).selectAll("svg").data([0]),p=h.enter().append("svg").attr({width:300,height:f+c,xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1"});p.append("g").classed("legend-axis",!0),p.append("g").classed("legend-marks",!0);var d=n.range(o.length),g=n.scale[u?"linear":"ordinal"]().domain(d).range(l),m=n.scale[u?"linear":"ordinal"]().domain(d)[u?"range":"rangePoints"]([0,f]);if(u){var v=h.select(".legend-marks").append("defs").append("linearGradient").attr({id:"grad1",x1:"0%",y1:"0%",x2:"0%",y2:"100%"}).selectAll("stop").data(l);v.enter().append("stop"),v.attr({offset:function(t,e){return e/(l.length-1)*100+"%"}}).style({"stop-color":function(t,e){return t}}),h.append("rect").classed("legend-mark",!0).attr({height:e.height,width:e.colorBandWidth,fill:"url(#grad1)"})}else{var y=h.select(".legend-marks").selectAll("path.legend-mark").data(o);y.enter().append("path").classed("legend-mark",!0),y.attr({transform:function(t,e){return"translate("+[c/2,m(e)+c/2]+")"},d:function(t,e){var r,i,a,o=t.symbol;return a=3*(i=c),"line"===(r=o)?"M"+[[-i/2,-i/12],[i/2,-i/12],[i/2,i/12],[-i/2,i/12]]+"Z":-1!=n.svg.symbolTypes.indexOf(r)?n.svg.symbol().type(r).size(a)():n.svg.symbol().type("square").size(a)()},fill:function(t,e){return g(e)}}),y.exit().remove()}var x=n.svg.axis().scale(m).orient("right"),b=h.select("g.legend-axis").attr({transform:"translate("+[u?e.colorBandWidth:c,c/2]+")"}).call(x);return b.selectAll(".domain").style({fill:"none",stroke:"none"}),b.selectAll("line").style({fill:"none",stroke:u?e.textColor:"none"}),b.selectAll("text").style({fill:e.textColor,"font-size":e.fontSize}).text((function(t,e){return o[e].name})),r}return r.config=function(e){return arguments.length?(i(t,e),this):t},n.rebind(r,e,"on"),r},o.Legend.defaultConfig=function(t,e){return{data:["a","b","c"],legendConfig:{elements:[{symbol:"line",color:"red"},{symbol:"square",color:"yellow"},{symbol:"diamond",color:"limegreen"}],height:150,colorBandWidth:30,fontSize:12,container:"body",isContinuous:null,textColor:"grey",reverseOrder:!1}}},o.tooltipPanel=function(){var t,e,r,a={container:null,hasTick:!1,fontSize:12,color:"white",padding:5},s="tooltip-"+o.tooltipPanel.uid++,l=10,c=function(){var n=(t=a.container.selectAll("g."+s).data([0])).enter().append("g").classed(s,!0).style({"pointer-events":"none",display:"none"});return r=n.append("path").style({fill:"white","fill-opacity":.9}).attr({d:"M0 0"}),e=n.append("text").attr({dx:a.padding+l,dy:.3*+a.fontSize}),c};return c.text=function(i){var o=n.hsl(a.color).l,s=o>=.5?"#aaa":"white",u=o>=.5?"black":"white",f=i||"";e.style({fill:u,"font-size":a.fontSize+"px"}).text(f);var h=a.padding,p=e.node().getBBox(),d={fill:a.color,stroke:s,"stroke-width":"2px"},g=p.width+2*h+l,m=p.height+2*h;return r.attr({d:"M"+[[l,-m/2],[l,-m/4],[a.hasTick?0:l,0],[l,m/4],[l,m/2],[g,m/2],[g,-m/2]].join("L")+"Z"}).style(d),t.attr({transform:"translate("+[l,-m/2+2*h]+")"}),t.style({display:"block"}),c},c.move=function(e){if(t)return t.attr({transform:"translate("+[e[0],e[1]]+")"}).style({display:"block"}),c},c.hide=function(){if(t)return t.style({display:"none"}),c},c.show=function(){if(t)return t.style({display:"block"}),c},c.config=function(t){return i(a,t),c},c},o.tooltipPanel.uid=1,o.adapter={},o.adapter.plotly=function(){var t={convert:function(t,e){var r={};if(t.data&&(r.data=t.data.map((function(t,r){var n=i({},t);return[[n,["marker","color"],["color"]],[n,["marker","opacity"],["opacity"]],[n,["marker","line","color"],["strokeColor"]],[n,["marker","line","dash"],["strokeDash"]],[n,["marker","line","width"],["strokeSize"]],[n,["marker","symbol"],["dotType"]],[n,["marker","size"],["dotSize"]],[n,["marker","barWidth"],["barWidth"]],[n,["line","interpolation"],["lineInterpolation"]],[n,["showlegend"],["visibleInLegend"]]].forEach((function(t,r){o.util.translator.apply(null,t.concat(e))})),e||delete n.marker,e&&delete n.groupId,e?("LinePlot"===n.geometry?(n.type="scatter",!0===n.dotVisible?(delete n.dotVisible,n.mode="lines+markers"):n.mode="lines"):"DotPlot"===n.geometry?(n.type="scatter",n.mode="markers"):"AreaChart"===n.geometry?n.type="area":"BarChart"===n.geometry&&(n.type="bar"),delete n.geometry):("scatter"===n.type?"lines"===n.mode?n.geometry="LinePlot":"markers"===n.mode?n.geometry="DotPlot":"lines+markers"===n.mode&&(n.geometry="LinePlot",n.dotVisible=!0):"area"===n.type?n.geometry="AreaChart":"bar"===n.type&&(n.geometry="BarChart"),delete n.mode,delete n.type),n})),!e&&t.layout&&"stack"===t.layout.barmode)){var a=o.util.duplicates(r.data.map((function(t,e){return t.geometry})));r.data.forEach((function(t,e){var n=a.indexOf(t.geometry);-1!=n&&(r.data[e].groupId=n)}))}if(t.layout){var s=i({},t.layout);if([[s,["plot_bgcolor"],["backgroundColor"]],[s,["showlegend"],["showLegend"]],[s,["radialaxis"],["radialAxis"]],[s,["angularaxis"],["angularAxis"]],[s.angularaxis,["showline"],["gridLinesVisible"]],[s.angularaxis,["showticklabels"],["labelsVisible"]],[s.angularaxis,["nticks"],["ticksCount"]],[s.angularaxis,["tickorientation"],["tickOrientation"]],[s.angularaxis,["ticksuffix"],["ticksSuffix"]],[s.angularaxis,["range"],["domain"]],[s.angularaxis,["endpadding"],["endPadding"]],[s.radialaxis,["showline"],["gridLinesVisible"]],[s.radialaxis,["tickorientation"],["tickOrientation"]],[s.radialaxis,["ticksuffix"],["ticksSuffix"]],[s.radialaxis,["range"],["domain"]],[s.angularAxis,["showline"],["gridLinesVisible"]],[s.angularAxis,["showticklabels"],["labelsVisible"]],[s.angularAxis,["nticks"],["ticksCount"]],[s.angularAxis,["tickorientation"],["tickOrientation"]],[s.angularAxis,["ticksuffix"],["ticksSuffix"]],[s.angularAxis,["range"],["domain"]],[s.angularAxis,["endpadding"],["endPadding"]],[s.radialAxis,["showline"],["gridLinesVisible"]],[s.radialAxis,["tickorientation"],["tickOrientation"]],[s.radialAxis,["ticksuffix"],["ticksSuffix"]],[s.radialAxis,["range"],["domain"]],[s.font,["outlinecolor"],["outlineColor"]],[s.legend,["traceorder"],["reverseOrder"]],[s,["labeloffset"],["labelOffset"]],[s,["defaultcolorrange"],["defaultColorRange"]]].forEach((function(t,r){o.util.translator.apply(null,t.concat(e))})),e?("undefined"!=typeof s.tickLength&&(s.angularaxis.ticklen=s.tickLength,delete s.tickLength),s.tickColor&&(s.angularaxis.tickcolor=s.tickColor,delete s.tickColor)):(s.angularAxis&&"undefined"!=typeof s.angularAxis.ticklen&&(s.tickLength=s.angularAxis.ticklen),s.angularAxis&&"undefined"!=typeof s.angularAxis.tickcolor&&(s.tickColor=s.angularAxis.tickcolor)),s.legend&&"boolean"!=typeof s.legend.reverseOrder&&(s.legend.reverseOrder="normal"!=s.legend.reverseOrder),s.legend&&"boolean"==typeof s.legend.traceorder&&(s.legend.traceorder=s.legend.traceorder?"reversed":"normal",delete s.legend.reverseOrder),s.margin&&"undefined"!=typeof s.margin.t){var l=["t","r","b","l","pad"],c=["top","right","bottom","left","pad"],u={};n.entries(s.margin).forEach((function(t,e){u[c[l.indexOf(t.key)]]=t.value})),s.margin=u}e&&(delete s.needsEndSpacing,delete s.minorTickColor,delete s.minorTicks,delete s.angularaxis.ticksCount,delete s.angularaxis.ticksCount,delete s.angularaxis.ticksStep,delete s.angularaxis.rewriteTicks,delete s.angularaxis.nticks,delete s.radialaxis.ticksCount,delete s.radialaxis.ticksCount,delete s.radialaxis.ticksStep,delete s.radialaxis.rewriteTicks,delete s.radialaxis.nticks),r.layout=s}return r}};return t}},{"../../../constants/alignment":745,"../../../lib":778,d3:169}],901:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../../lib"),a=t("../../../components/color"),o=t("./micropolar"),s=t("./undo_manager"),l=i.extendDeepAll,c=e.exports={};c.framework=function(t){var e,r,i,a,u,f=new s;function h(r,s){return s&&(u=s),n.select(n.select(u).node().parentNode).selectAll(".svg-container>*:not(.chart-root)").remove(),e=e?l(e,r):r,i||(i=o.Axis()),a=o.adapter.plotly().convert(e),i.config(a).render(u),t.data=e.data,t.layout=e.layout,c.fillLayout(t),e}return h.isPolar=!0,h.svg=function(){return i.svg()},h.getConfig=function(){return e},h.getLiveConfig=function(){return o.adapter.plotly().convert(i.getLiveConfig(),!0)},h.getLiveScales=function(){return{t:i.angularScale(),r:i.radialScale()}},h.setUndoPoint=function(){var t,n,i=this,a=o.util.cloneJson(e);t=a,n=r,f.add({undo:function(){n&&i(n)},redo:function(){i(t)}}),r=o.util.cloneJson(a)},h.undo=function(){f.undo()},h.redo=function(){f.redo()},h},c.fillLayout=function(t){var e=n.select(t).selectAll(".plot-container"),r=e.selectAll(".svg-container"),i=t.framework&&t.framework.svg&&t.framework.svg(),o={width:800,height:600,paper_bgcolor:a.background,_container:e,_paperdiv:r,_paper:i};t._fullLayout=l(o,t.layout)}},{"../../../components/color":643,"../../../lib":778,"./micropolar":900,"./undo_manager":902,d3:169}],902:[function(t,e,r){"use strict";e.exports=function(){var t,e=[],r=-1,n=!1;function i(t,e){return t?(n=!0,t[e](),n=!1,this):this}return{add:function(t){return n||(e.splice(r+1,e.length-r),e.push(t),r=e.length-1),this},setCallback:function(e){t=e},undo:function(){var n=e[r];return n?(i(n,"undo"),r-=1,t&&t(n.undo),this):this},redo:function(){var n=e[r+1];return n?(i(n,"redo"),r+=1,t&&t(n.redo),this):this},clear:function(){e=[],r=-1},hasUndo:function(){return-1!==r},hasRedo:function(){return r=90||s>90&&l>=450?1:u<=0&&h<=0?0:Math.max(u,h);e=s<=180&&l>=180||s>180&&l>=540?-1:c>=0&&f>=0?0:Math.min(c,f);r=s<=270&&l>=270||s>270&&l>=630?-1:u>=0&&h>=0?0:Math.min(u,h);n=l>=360?1:c<=0&&f<=0?0:Math.max(c,f);return[e,r,n,i]}(p),b=x[2]-x[0],_=x[3]-x[1],w=h/f,T=Math.abs(_/b);w>T?(d=f,y=(h-(g=f*T))/n.h/2,m=[o[0],o[1]],v=[s[0]+y,s[1]-y]):(g=h,y=(f-(d=h/T))/n.w/2,m=[o[0]+y,o[1]-y],v=[s[0],s[1]]),this.xLength2=d,this.yLength2=g,this.xDomain2=m,this.yDomain2=v;var k=this.xOffset2=n.l+n.w*m[0],M=this.yOffset2=n.t+n.h*(1-v[1]),A=this.radius=d/b,S=this.innerRadius=e.hole*A,E=this.cx=k-A*x[0],C=this.cy=M+A*x[3],P=this.cxx=E-k,z=this.cyy=C-M;this.radialAxis=this.mockAxis(t,e,i,{_id:"x",side:{counterclockwise:"top",clockwise:"bottom"}[i.side],_realSide:i.side,domain:[S/n.w,A/n.w]}),this.angularAxis=this.mockAxis(t,e,a,{side:"right",domain:[0,Math.PI],autorange:!1}),this.doAutoRange(t,e),this.updateAngularAxis(t,e),this.updateRadialAxis(t,e),this.updateRadialAxisTitle(t,e),this.xaxis=this.mockCartesianAxis(t,e,{_id:"x",domain:m}),this.yaxis=this.mockCartesianAxis(t,e,{_id:"y",domain:v});var O=this.pathSubplot();this.clipPaths.forTraces.select("path").attr("d",O).attr("transform",l(P,z)),r.frontplot.attr("transform",l(k,M)).call(u.setClipUrl,this._hasClipOnAxisFalse?null:this.clipIds.forTraces,this.gd),r.bg.attr("d",O).attr("transform",l(E,C)).call(c.fill,e.bgcolor)},O.mockAxis=function(t,e,r,n){var i=o.extendFlat({},r,n);return d(i,e,t),i},O.mockCartesianAxis=function(t,e,r){var n=this,i=r._id,a=o.extendFlat({type:"linear"},r);p(a,t);var s={x:[0,2],y:[1,3]};return a.setRange=function(){var t=n.sectorBBox,r=s[i],o=n.radialAxis._rl,l=(o[1]-o[0])/(1-e.hole);a.range=[t[r[0]]*l,t[r[1]]*l]},a.isPtWithinRange="x"===i?function(t){return n.isPtInside(t)}:function(){return!0},a.setRange(),a.setScale(),a},O.doAutoRange=function(t,e){var r=this.gd,n=this.radialAxis,i=e.radialaxis;n.setScale(),g(r,n);var a=n.range;i.range=a.slice(),i._input.range=a.slice(),n._rl=[n.r2l(a[0],null,"gregorian"),n.r2l(a[1],null,"gregorian")]},O.updateRadialAxis=function(t,e){var r=this,n=r.gd,i=r.layers,a=r.radius,u=r.innerRadius,f=r.cx,p=r.cy,d=e.radialaxis,g=L(e.sector[0],360),m=r.radialAxis,v=u90&&g<=270&&(m.tickangle=180);var y=function(t){return l(m.l2p(t.x)+u,0)},x=D(d);if(r.radialTickLayout!==x&&(i["radial-axis"].selectAll(".xtick").remove(),r.radialTickLayout=x),v){m.setScale();var b=h.calcTicks(m),_=h.clipEnds(m,b),w=h.getTickSigns(m)[2];h.drawTicks(n,m,{vals:b,layer:i["radial-axis"],path:h.makeTickPath(m,0,w),transFn:y,crisp:!1}),h.drawGrid(n,m,{vals:_,layer:i["radial-grid"],path:function(t){return r.pathArc(m.r2p(t.x)+u)},transFn:o.noop,crisp:!1}),h.drawLabels(n,m,{vals:b,layer:i["radial-axis"],transFn:y,labelFns:h.makeLabelFns(m,0)})}var T=r.radialAxisAngle=r.vangles?P(R(I(d.angle),r.vangles)):d.angle,k=l(f,p),M=k+s(-T);F(i["radial-axis"],v&&(d.showticklabels||d.ticks),{transform:M}),F(i["radial-grid"],v&&d.showgrid,{transform:k}),F(i["radial-line"].select("line"),v&&d.showline,{x1:u,y1:0,x2:a,y2:0,transform:M}).attr("stroke-width",d.linewidth).call(c.stroke,d.linecolor)},O.updateRadialAxisTitle=function(t,e,r){var n=this.gd,i=this.radius,a=this.cx,o=this.cy,s=e.radialaxis,l=this.id+"title",c=void 0!==r?r:this.radialAxisAngle,f=I(c),h=Math.cos(f),p=Math.sin(f),d=0;if(s.title){var g=u.bBox(this.layers["radial-axis"].node()).height,m=s.title.font.size;d="counterclockwise"===s.side?-g-.4*m:g+.8*m}this.layers["radial-axis-title"]=x.draw(n,l,{propContainer:s,propName:this.id+".radialaxis.title",placeholder:C(n,"Click to enter radial axis title"),attributes:{x:a+i/2*h+d*p,y:o-i/2*p+d*h,"text-anchor":"middle"},transform:{rotate:-c}})},O.updateAngularAxis=function(t,e){var r=this,n=r.gd,i=r.layers,a=r.radius,u=r.innerRadius,f=r.cx,p=r.cy,d=e.angularaxis,g=r.angularAxis;r.fillViewInitialKey("angularaxis.rotation",d.rotation),g.setGeometry(),g.setScale();var m=function(t){return g.t2g(t.x)};"linear"===g.type&&"radians"===g.thetaunit&&(g.tick0=P(g.tick0),g.dtick=P(g.dtick));var v=function(t){return l(f+a*Math.cos(t),p-a*Math.sin(t))},y=h.makeLabelFns(g,0).labelStandoff,x={xFn:function(t){var e=m(t);return Math.cos(e)*y},yFn:function(t){var e=m(t),r=Math.sin(e)>0?.2:1;return-Math.sin(e)*(y+t.fontSize*r)+Math.abs(Math.cos(e))*(t.fontSize*A)},anchorFn:function(t){var e=m(t),r=Math.cos(e);return Math.abs(r)<.1?"middle":r>0?"start":"end"},heightFn:function(t,e,r){var n=m(t);return-.5*(1+Math.sin(n))*r}},b=D(d);r.angularTickLayout!==b&&(i["angular-axis"].selectAll("."+g._id+"tick").remove(),r.angularTickLayout=b);var _,w=h.calcTicks(g);if("linear"===e.gridshape?(_=w.map(m),o.angleDelta(_[0],_[1])<0&&(_=_.slice().reverse())):_=null,r.vangles=_,"category"===g.type&&(w=w.filter((function(t){return o.isAngleInsideSector(m(t),r.sectorInRad)}))),g.visible){var T="inside"===g.ticks?-1:1,k=(g.linewidth||1)/2;h.drawTicks(n,g,{vals:w,layer:i["angular-axis"],path:"M"+T*k+",0h"+T*g.ticklen,transFn:function(t){var e=m(t);return v(e)+s(-P(e))},crisp:!1}),h.drawGrid(n,g,{vals:w,layer:i["angular-grid"],path:function(t){var e=m(t),r=Math.cos(e),n=Math.sin(e);return"M"+[f+u*r,p-u*n]+"L"+[f+a*r,p-a*n]},transFn:o.noop,crisp:!1}),h.drawLabels(n,g,{vals:w,layer:i["angular-axis"],repositionOnUpdate:!0,transFn:function(t){return v(m(t))},labelFns:x})}F(i["angular-line"].select("path"),d.showline,{d:r.pathSubplot(),transform:l(f,p)}).attr("stroke-width",d.linewidth).call(c.stroke,d.linecolor)},O.updateFx=function(t,e){this.gd._context.staticPlot||(this.updateAngularDrag(t),this.updateRadialDrag(t,e,0),this.updateRadialDrag(t,e,1),this.updateMainDrag(t))},O.updateMainDrag=function(t){var e,r,s=this,c=s.gd,u=s.layers,f=t._zoomlayer,h=S.MINZOOM,p=S.OFFEDGE,d=s.radius,g=s.innerRadius,x=s.cx,T=s.cy,k=s.cxx,M=s.cyy,A=s.sectorInRad,C=s.vangles,L=s.radialAxis,I=E.clampTiny,P=E.findXYatLength,z=E.findEnclosingVertexAngles,O=S.cornerHalfWidth,D=S.cornerLen/2,R=m.makeDragger(u,"path","maindrag","crosshair");n.select(R).attr("d",s.pathSubplot()).attr("transform",l(x,T));var F,B,N,j,U,V,q,H,G,Y={element:R,gd:c,subplot:s.id,plotinfo:{id:s.id,xaxis:s.xaxis,yaxis:s.yaxis},xaxes:[s.xaxis],yaxes:[s.yaxis]};function W(t,e){return Math.sqrt(t*t+e*e)}function X(t,e){return W(t-k,e-M)}function Z(t,e){return Math.atan2(M-e,t-k)}function J(t,e){return[t*Math.cos(e),t*Math.sin(-e)]}function K(t,e){if(0===t)return s.pathSector(2*O);var r=D/t,n=e-r,i=e+r,a=Math.max(0,Math.min(t,d)),o=a-O,l=a+O;return"M"+J(o,n)+"A"+[o,o]+" 0,0,0 "+J(o,i)+"L"+J(l,i)+"A"+[l,l]+" 0,0,1 "+J(l,n)+"Z"}function Q(t,e,r){if(0===t)return s.pathSector(2*O);var n,i,a=J(t,e),o=J(t,r),l=I((a[0]+o[0])/2),c=I((a[1]+o[1])/2);if(l&&c){var u=c/l,f=-1/u,h=P(O,u,l,c);n=P(D,f,h[0][0],h[0][1]),i=P(D,f,h[1][0],h[1][1])}else{var p,d;c?(p=D,d=O):(p=O,d=D),n=[[l-p,c-d],[l+p,c-d]],i=[[l-p,c+d],[l+p,c+d]]}return"M"+n.join("L")+"L"+i.reverse().join("L")+"Z"}function $(t,e){return e=Math.max(Math.min(e,d),g),th?(t-1&&1===t&&_(e,c,[s.xaxis],[s.yaxis],s.id,Y),r.indexOf("event")>-1&&y.click(c,e,s.id)}Y.prepFn=function(t,n,a){var l=c._fullLayout.dragmode,u=R.getBoundingClientRect();c._fullLayout._calcInverseTransform(c);var h=c._fullLayout._invTransform;e=c._fullLayout._invScaleX,r=c._fullLayout._invScaleY;var p=o.apply3DTransform(h)(n-u.left,a-u.top);if(F=p[0],B=p[1],C){var g=E.findPolygonOffset(d,A[0],A[1],C);F+=k+g[0],B+=M+g[1]}switch(l){case"zoom":Y.moveFn=C?nt:et,Y.clickFn=ot,Y.doneFn=it,function(){N=null,j=null,U=s.pathSubplot(),V=!1;var t=c._fullLayout[s.id];q=i(t.bgcolor).getLuminance(),(H=m.makeZoombox(f,q,x,T,U)).attr("fill-rule","evenodd"),G=m.makeCorners(f,x,T),w(c)}();break;case"select":case"lasso":b(t,n,a,Y,l)}},R.onmousemove=function(t){y.hover(c,t,s.id),c._fullLayout._lasthover=R,c._fullLayout._hoversubplot=s.id},R.onmouseout=function(t){c._dragging||v.unhover(c,t)},v.init(Y)},O.updateRadialDrag=function(t,e,r){var i=this,c=i.gd,u=i.layers,f=i.radius,h=i.innerRadius,p=i.cx,d=i.cy,g=i.radialAxis,y=S.radialDragBoxSize,x=y/2;if(g.visible){var b,_,T,A=I(i.radialAxisAngle),E=g._rl,C=E[0],L=E[1],z=E[r],O=.75*(E[1]-E[0])/(1-e.hole)/f;r?(b=p+(f+x)*Math.cos(A),_=d-(f+x)*Math.sin(A),T="radialdrag"):(b=p+(h-x)*Math.cos(A),_=d-(h-x)*Math.sin(A),T="radialdrag-inner");var D,B,N,j=m.makeRectDragger(u,T,"crosshair",-x,-x,y,y),U={element:j,gd:c};F(n.select(j),g.visible&&h0==(r?N>C:Nn?function(t){return t<=0}:function(t){return t>=0};t.c2g=function(r){var n=t.c2l(r)-e;return(s(n)?n:0)+o},t.g2c=function(r){return t.l2c(r+e-o)},t.g2p=function(t){return t*a},t.c2p=function(e){return t.g2p(t.c2g(e))}}}(t,e);break;case"angularaxis":!function(t,e){var r=t.type;if("linear"===r){var i=t.d2c,s=t.c2d;t.d2c=function(t,e){return function(t,e){return"degrees"===e?a(t):t}(i(t),e)},t.c2d=function(t,e){return s(function(t,e){return"degrees"===e?o(t):t}(t,e))}}t.makeCalcdata=function(e,i){var a,o,s=e[i],l=e._length,c=function(r){return t.d2c(r,e.thetaunit)};if(s){if(n.isTypedArray(s)&&"linear"===r){if(l===s.length)return s;if(s.subarray)return s.subarray(0,l)}for(a=new Array(l),o=0;o0){for(var n=[],i=0;i=u&&(p.min=0,g.min=0,m.min=0,t.aaxis&&delete t.aaxis.min,t.baxis&&delete t.baxis.min,t.caxis&&delete t.caxis.min)}function d(t,e,r,n){var i=f[e._name];function o(r,n){return a.coerce(t,e,i,r,n)}o("uirevision",n.uirevision),e.type="linear";var h=o("color"),p=h!==i.color.dflt?h:r.font.color,d=e._name.charAt(0).toUpperCase(),g="Component "+d,m=o("title.text",g);e._hovertitle=m===g?m:d,a.coerceFont(o,"title.font",{family:r.font.family,size:Math.round(1.2*r.font.size),color:p}),o("min"),c(t,e,o,"linear"),s(t,e,o,"linear",{}),l(t,e,o,{outerTicks:!0}),o("showticklabels")&&(a.coerceFont(o,"tickfont",{family:r.font.family,size:r.font.size,color:p}),o("tickangle"),o("tickformat")),u(t,e,o,{dfltColor:h,bgColor:r.bgColor,blend:60,showLine:!0,showGrid:!0,noZeroLine:!0,attributes:i}),o("hoverformat"),o("layer")}e.exports=function(t,e,r){o(t,e,r,{type:"ternary",attributes:f,handleDefaults:p,font:e.font,paper_bgcolor:e.paper_bgcolor})}},{"../../components/color":643,"../../lib":778,"../../plot_api/plot_template":817,"../cartesian/line_grid_defaults":844,"../cartesian/tick_label_defaults":849,"../cartesian/tick_mark_defaults":850,"../cartesian/tick_value_defaults":851,"../subplot_defaults":905,"./layout_attributes":908}],910:[function(t,e,r){"use strict";var n=t("d3"),i=t("tinycolor2"),a=t("../../registry"),o=t("../../lib"),s=o.strTranslate,l=o._,c=t("../../components/color"),u=t("../../components/drawing"),f=t("../cartesian/set_convert"),h=t("../../lib/extend").extendFlat,p=t("../plots"),d=t("../cartesian/axes"),g=t("../../components/dragelement"),m=t("../../components/fx"),v=t("../../components/dragelement/helpers"),y=v.freeMode,x=v.rectMode,b=t("../../components/titles"),_=t("../cartesian/select").prepSelect,w=t("../cartesian/select").selectOnClick,T=t("../cartesian/select").clearSelect,k=t("../cartesian/select").clearSelectionsCache,M=t("../cartesian/constants");function A(t,e){this.id=t.id,this.graphDiv=t.graphDiv,this.init(e),this.makeFramework(e),this.aTickLayout=null,this.bTickLayout=null,this.cTickLayout=null}e.exports=A;var S=A.prototype;S.init=function(t){this.container=t._ternarylayer,this.defs=t._defs,this.layoutId=t._uid,this.traceHash={},this.layers={}},S.plot=function(t,e){var r=e[this.id],n=e._size;this._hasClipOnAxisFalse=!1;for(var i=0;iE*b?i=(a=b)*E:a=(i=x)/E,o=v*i/x,l=y*a/b,r=e.l+e.w*g-i/2,n=e.t+e.h*(1-m)-a/2,p.x0=r,p.y0=n,p.w=i,p.h=a,p.sum=_,p.xaxis={type:"linear",range:[w+2*k-_,_-w-2*T],domain:[g-o/2,g+o/2],_id:"x"},f(p.xaxis,p.graphDiv._fullLayout),p.xaxis.setScale(),p.xaxis.isPtWithinRange=function(t){return t.a>=p.aaxis.range[0]&&t.a<=p.aaxis.range[1]&&t.b>=p.baxis.range[1]&&t.b<=p.baxis.range[0]&&t.c>=p.caxis.range[1]&&t.c<=p.caxis.range[0]},p.yaxis={type:"linear",range:[w,_-T-k],domain:[m-l/2,m+l/2],_id:"y"},f(p.yaxis,p.graphDiv._fullLayout),p.yaxis.setScale(),p.yaxis.isPtWithinRange=function(){return!0};var M=p.yaxis.domain[0],A=p.aaxis=h({},t.aaxis,{range:[w,_-T-k],side:"left",tickangle:(+t.aaxis.tickangle||0)-30,domain:[M,M+l*E],anchor:"free",position:0,_id:"y",_length:i});f(A,p.graphDiv._fullLayout),A.setScale();var S=p.baxis=h({},t.baxis,{range:[_-w-k,T],side:"bottom",domain:p.xaxis.domain,anchor:"free",position:0,_id:"x",_length:i});f(S,p.graphDiv._fullLayout),S.setScale();var C=p.caxis=h({},t.caxis,{range:[_-w-T,k],side:"right",tickangle:(+t.caxis.tickangle||0)+30,domain:[M,M+l*E],anchor:"free",position:0,_id:"y",_length:i});f(C,p.graphDiv._fullLayout),C.setScale();var L="M"+r+","+(n+a)+"h"+i+"l-"+i/2+",-"+a+"Z";p.clipDef.select("path").attr("d",L),p.layers.plotbg.select("path").attr("d",L);var I="M0,"+a+"h"+i+"l-"+i/2+",-"+a+"Z";p.clipDefRelative.select("path").attr("d",I);var P=s(r,n);p.plotContainer.selectAll(".scatterlayer,.maplayer").attr("transform",P),p.clipDefRelative.select("path").attr("transform",null);var z=s(r-S._offset,n+a);p.layers.baxis.attr("transform",z),p.layers.bgrid.attr("transform",z);var O=s(r+i/2,n)+"rotate(30)"+s(0,-A._offset);p.layers.aaxis.attr("transform",O),p.layers.agrid.attr("transform",O);var D=s(r+i/2,n)+"rotate(-30)"+s(0,-C._offset);p.layers.caxis.attr("transform",D),p.layers.cgrid.attr("transform",D),p.drawAxes(!0),p.layers.aline.select("path").attr("d",A.showline?"M"+r+","+(n+a)+"l"+i/2+",-"+a:"M0,0").call(c.stroke,A.linecolor||"#000").style("stroke-width",(A.linewidth||0)+"px"),p.layers.bline.select("path").attr("d",S.showline?"M"+r+","+(n+a)+"h"+i:"M0,0").call(c.stroke,S.linecolor||"#000").style("stroke-width",(S.linewidth||0)+"px"),p.layers.cline.select("path").attr("d",C.showline?"M"+(r+i/2)+","+n+"l"+i/2+","+a:"M0,0").call(c.stroke,C.linecolor||"#000").style("stroke-width",(C.linewidth||0)+"px"),p.graphDiv._context.staticPlot||p.initInteractions(),u.setClipUrl(p.layers.frontplot,p._hasClipOnAxisFalse?null:p.clipId,p.graphDiv)},S.drawAxes=function(t){var e=this.graphDiv,r=this.id.substr(7)+"title",n=this.layers,i=this.aaxis,a=this.baxis,o=this.caxis;if(this.drawAx(i),this.drawAx(a),this.drawAx(o),t){var s=Math.max(i.showticklabels?i.tickfont.size/2:0,(o.showticklabels?.75*o.tickfont.size:0)+("outside"===o.ticks?.87*o.ticklen:0)),c=(a.showticklabels?a.tickfont.size:0)+("outside"===a.ticks?a.ticklen:0)+3;n["a-title"]=b.draw(e,"a"+r,{propContainer:i,propName:this.id+".aaxis.title",placeholder:l(e,"Click to enter Component A title"),attributes:{x:this.x0+this.w/2,y:this.y0-i.title.font.size/3-s,"text-anchor":"middle"}}),n["b-title"]=b.draw(e,"b"+r,{propContainer:a,propName:this.id+".baxis.title",placeholder:l(e,"Click to enter Component B title"),attributes:{x:this.x0-c,y:this.y0+this.h+.83*a.title.font.size+c,"text-anchor":"middle"}}),n["c-title"]=b.draw(e,"c"+r,{propContainer:o,propName:this.id+".caxis.title",placeholder:l(e,"Click to enter Component C title"),attributes:{x:this.x0+this.w+c,y:this.y0+this.h+.83*o.title.font.size+c,"text-anchor":"middle"}})}},S.drawAx=function(t){var e,r=this.graphDiv,n=t._name,i=n.charAt(0),a=t._id,s=this.layers[n],l=i+"tickLayout",c=(e=t).ticks+String(e.ticklen)+String(e.showticklabels);this[l]!==c&&(s.selectAll("."+a+"tick").remove(),this[l]=c),t.setScale();var u=d.calcTicks(t),f=d.clipEnds(t,u),h=d.makeTransTickFn(t),p=d.getTickSigns(t)[2],g=o.deg2rad(30),m=p*(t.linewidth||1)/2,v=p*t.ticklen,y=this.w,x=this.h,b="b"===i?"M0,"+m+"l"+Math.sin(g)*v+","+Math.cos(g)*v:"M"+m+",0l"+Math.cos(g)*v+","+-Math.sin(g)*v,_={a:"M0,0l"+x+",-"+y/2,b:"M0,0l-"+y/2+",-"+x,c:"M0,0l-"+x+","+y/2}[i];d.drawTicks(r,t,{vals:"inside"===t.ticks?f:u,layer:s,path:b,transFn:h,crisp:!1}),d.drawGrid(r,t,{vals:f,layer:this.layers[i+"grid"],path:_,transFn:h,crisp:!1}),d.drawLabels(r,t,{vals:u,layer:s,transFn:h,labelFns:d.makeLabelFns(t,0,30)})};var C=M.MINZOOM/2+.87,L="m-0.87,.5h"+C+"v3h-"+(C+5.2)+"l"+(C/2+2.6)+",-"+(.87*C+4.5)+"l2.6,1.5l-"+C/2+","+.87*C+"Z",I="m0.87,.5h-"+C+"v3h"+(C+5.2)+"l-"+(C/2+2.6)+",-"+(.87*C+4.5)+"l-2.6,1.5l"+C/2+","+.87*C+"Z",P="m0,1l"+C/2+","+.87*C+"l2.6,-1.5l-"+(C/2+2.6)+",-"+(.87*C+4.5)+"l-"+(C/2+2.6)+","+(.87*C+4.5)+"l2.6,1.5l"+C/2+",-"+.87*C+"Z",z=!0;function O(t){n.select(t).selectAll(".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners").remove()}S.clearSelect=function(){k(this.dragOptions),T(this.dragOptions.gd)},S.initInteractions=function(){var t,e,r,n,f,h,p,d,v,b,T,k,A=this,S=A.layers.plotbg.select("path").node(),C=A.graphDiv,D=C._fullLayout._zoomlayer;function R(t){var e={};return e[A.id+".aaxis.min"]=t.a,e[A.id+".baxis.min"]=t.b,e[A.id+".caxis.min"]=t.c,e}function F(t,e){var r=C._fullLayout.clickmode;O(C),2===t&&(C.emit("plotly_doubleclick",null),a.call("_guiRelayout",C,R({a:0,b:0,c:0}))),r.indexOf("select")>-1&&1===t&&w(e,C,[A.xaxis],[A.yaxis],A.id,A.dragOptions),r.indexOf("event")>-1&&m.click(C,e,A.id)}function B(t,e){return 1-e/A.h}function N(t,e){return 1-(t+(A.h-e)/Math.sqrt(3))/A.w}function j(t,e){return(t-(A.h-e)/Math.sqrt(3))/A.w}function U(i,a){var o=r+i*t,s=n+a*e,l=Math.max(0,Math.min(1,B(0,n),B(0,s))),c=Math.max(0,Math.min(1,N(r,n),N(o,s))),u=Math.max(0,Math.min(1,j(r,n),j(o,s))),g=(l/2+u)*A.w,m=(1-l/2-c)*A.w,y=(g+m)/2,x=m-g,_=(1-l)*A.h,w=_-x/E;x.2?"rgba(0,0,0,0.4)":"rgba(255,255,255,0.3)").duration(200),k.transition().style("opacity",1).duration(200),b=!0),C.emit("plotly_relayouting",R(p))}function V(){O(C),p!==f&&(a.call("_guiRelayout",C,R(p)),z&&C.data&&C._context.showTips&&(o.notifier(l(C,"Double-click to zoom back out"),"long"),z=!1))}function q(t,e){var r=t/A.xaxis._m,n=e/A.yaxis._m,i=[(p={a:f.a-n,b:f.b+(r+n)/2,c:f.c-(r-n)/2}).a,p.b,p.c].sort(o.sorterAsc),a=i.indexOf(p.a),l=i.indexOf(p.b),c=i.indexOf(p.c);i[0]<0&&(i[1]+i[0]/2<0?(i[2]+=i[0]+i[1],i[0]=i[1]=0):(i[2]+=i[0]/2,i[1]+=i[0]/2,i[0]=0),p={a:i[a],b:i[l],c:i[c]},e=(f.a-p.a)*A.yaxis._m,t=(f.c-p.c-f.b+p.b)*A.xaxis._m);var h=s(A.x0+t,A.y0+e);A.plotContainer.selectAll(".scatterlayer,.maplayer").attr("transform",h);var d=s(-t,-e);A.clipDefRelative.select("path").attr("transform",d),A.aaxis.range=[p.a,A.sum-p.b-p.c],A.baxis.range=[A.sum-p.a-p.c,p.b],A.caxis.range=[A.sum-p.a-p.b,p.c],A.drawAxes(!1),A._hasClipOnAxisFalse&&A.plotContainer.select(".scatterlayer").selectAll(".trace").call(u.hideOutsideRangePoints,A),C.emit("plotly_relayouting",R(p))}function H(){a.call("_guiRelayout",C,R(p))}this.dragOptions={element:S,gd:C,plotinfo:{id:A.id,domain:C._fullLayout[A.id].domain,xaxis:A.xaxis,yaxis:A.yaxis},subplot:A.id,prepFn:function(a,l,u){A.dragOptions.xaxes=[A.xaxis],A.dragOptions.yaxes=[A.yaxis],t=C._fullLayout._invScaleX,e=C._fullLayout._invScaleY;var g=A.dragOptions.dragmode=C._fullLayout.dragmode;y(g)?A.dragOptions.minDrag=1:A.dragOptions.minDrag=void 0,"zoom"===g?(A.dragOptions.moveFn=U,A.dragOptions.clickFn=F,A.dragOptions.doneFn=V,function(t,e,a){var l=S.getBoundingClientRect();r=e-l.left,n=a-l.top,C._fullLayout._calcInverseTransform(C);var u=C._fullLayout._invTransform,g=o.apply3DTransform(u)(r,n);r=g[0],n=g[1],f={a:A.aaxis.range[0],b:A.baxis.range[1],c:A.caxis.range[1]},p=f,h=A.aaxis.range[1]-f.a,d=i(A.graphDiv._fullLayout[A.id].bgcolor).getLuminance(),v="M0,"+A.h+"L"+A.w/2+", 0L"+A.w+","+A.h+"Z",b=!1,T=D.append("path").attr("class","zoombox").attr("transform",s(A.x0,A.y0)).style({fill:d>.2?"rgba(0,0,0,0)":"rgba(255,255,255,0)","stroke-width":0}).attr("d",v),k=D.append("path").attr("class","zoombox-corners").attr("transform",s(A.x0,A.y0)).style({fill:c.background,stroke:c.defaultLine,"stroke-width":1,opacity:0}).attr("d","M0,0Z"),A.clearSelect(C)}(0,l,u)):"pan"===g?(A.dragOptions.moveFn=q,A.dragOptions.clickFn=F,A.dragOptions.doneFn=H,f={a:A.aaxis.range[0],b:A.baxis.range[1],c:A.caxis.range[1]},p=f,A.clearSelect(C)):(x(g)||y(g))&&_(a,l,u,A.dragOptions,g)}},S.onmousemove=function(t){m.hover(C,t,A.id),C._fullLayout._lasthover=S,C._fullLayout._hoversubplot=A.id},S.onmouseout=function(t){C._dragging||g.unhover(C,t)},g.init(this.dragOptions)}},{"../../components/color":643,"../../components/dragelement":662,"../../components/dragelement/helpers":661,"../../components/drawing":665,"../../components/fx":683,"../../components/titles":738,"../../lib":778,"../../lib/extend":768,"../../registry":911,"../cartesian/axes":828,"../cartesian/constants":834,"../cartesian/select":847,"../cartesian/set_convert":848,"../plots":891,d3:169,tinycolor2:576}],911:[function(t,e,r){"use strict";var n=t("./lib/loggers"),i=t("./lib/noop"),a=t("./lib/push_unique"),o=t("./lib/is_plain_object"),s=t("./lib/dom").addStyleRule,l=t("./lib/extend"),c=t("./plots/attributes"),u=t("./plots/layout_attributes"),f=l.extendFlat,h=l.extendDeepAll;function p(t){var e=t.name,i=t.categories,a=t.meta;if(r.modules[e])n.log("Type "+e+" already registered");else{r.subplotsRegistry[t.basePlotModule.name]||function(t){var e=t.name;if(r.subplotsRegistry[e])return void n.log("Plot type "+e+" already registered.");for(var i in v(t),r.subplotsRegistry[e]=t,r.componentsRegistry)b(i,t.name)}(t.basePlotModule);for(var o={},l=0;l-1&&(f[p[r]].title={text:""});for(r=0;r")?"":e.html(t).text()}));return e.remove(),r}(T),T=(T=T.replace(/&(?!\w+;|\#[0-9]+;| \#x[0-9A-F]+;)/g,"&")).replace(c,"'"),i.isIE()&&(T=(T=(T=T.replace(/"/gi,"'")).replace(/(\('#)([^']*)('\))/gi,'("#$2")')).replace(/(\\')/gi,'"')),T}},{"../components/color":643,"../components/drawing":665,"../constants/xmlns_namespaces":754,"../lib":778,d3:169}],920:[function(t,e,r){"use strict";var n=t("../../lib");e.exports=function(t,e){for(var r=0;rf+c||!n(u))}for(var p=0;pa))return e}return void 0!==r?r:t.dflt},r.coerceColor=function(t,e,r){return i(e).isValid()?e:void 0!==r?r:t.dflt},r.coerceEnumerated=function(t,e,r){return t.coerceNumber&&(e=+e),-1!==t.values.indexOf(e)?e:void 0!==r?r:t.dflt},r.getValue=function(t,e){var r;return Array.isArray(t)?e0?i+=a:e<0&&(i-=a)}return n.inbox(r-e,i-e,b+(i-e)/(i-r)-1)}"h"===m.orientation?(a=r,s=e,u="y",f="x",h=S,p=A):(a=e,s=r,u="x",f="y",p=S,h=A);var E=t[u+"a"],C=t[f+"a"];d=Math.abs(E.r2c(E.range[1])-E.r2c(E.range[0]));var L=n.getDistanceFunction(i,h,p,(function(t){return(h(t)+p(t))/2}));if(n.getClosest(g,L,t),!1!==t.index&&g[t.index].p!==c){y||(T=function(t){return Math.min(_(t),t.p-v.bargroupwidth/2)},k=function(t){return Math.max(w(t),t.p+v.bargroupwidth/2)});var I=g[t.index],P=m.base?I.b+I.s:I.s;t[f+"0"]=t[f+"1"]=C.c2p(I[f],!0),t[f+"LabelVal"]=P;var z=v.extents[v.extents.round(I.p)];t[u+"0"]=E.c2p(y?T(I):z[0],!0),t[u+"1"]=E.c2p(y?k(I):z[1],!0);var O=void 0!==I.orig_p;return t[u+"LabelVal"]=O?I.orig_p:I.p,t.labelLabel=l(E,t[u+"LabelVal"]),t.valueLabel=l(C,t[f+"LabelVal"]),t.baseLabel=l(C,I.b),t.spikeDistance=(S(I)+function(t){return M(_(t),w(t))}(I))/2-b,t[u+"Spike"]=E.c2p(I.p,!0),o(I,m,t),t.hovertemplate=m.hovertemplate,t}}function f(t,e){var r=e.mcc||t.marker.color,n=e.mlcc||t.marker.line.color,i=s(t,e);return a.opacity(r)?r:a.opacity(n)&&i?n:void 0}e.exports={hoverPoints:function(t,e,r,n){var a=u(t,e,r,n);if(a){var o=a.cd,s=o[0].trace,l=o[a.index];return a.color=f(s,l),i.getComponentMethod("errorbars","hoverInfo")(l,s,a),[a]}},hoverOnBars:u,getTraceColor:f}},{"../../components/color":643,"../../components/fx":683,"../../constants/numerical":753,"../../lib":778,"../../plots/cartesian/axes":828,"../../registry":911,"./helpers":927}],929:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),layoutAttributes:t("./layout_attributes"),supplyDefaults:t("./defaults").supplyDefaults,crossTraceDefaults:t("./defaults").crossTraceDefaults,supplyLayoutDefaults:t("./layout_defaults"),calc:t("./calc"),crossTraceCalc:t("./cross_trace_calc").crossTraceCalc,colorbar:t("../scatter/marker_colorbar"),arraysToCalcdata:t("./arrays_to_calcdata"),plot:t("./plot").plot,style:t("./style").style,styleOnSelect:t("./style").styleOnSelect,hoverPoints:t("./hover").hoverPoints,eventData:t("./event_data"),selectPoints:t("./select"),moduleType:"trace",name:"bar",basePlotModule:t("../../plots/cartesian"),categories:["bar-like","cartesian","svg","bar","oriented","errorBarsOK","showLegend","zoomScale"],animatable:!0,meta:{}}},{"../../plots/cartesian":841,"../scatter/marker_colorbar":1205,"./arrays_to_calcdata":920,"./attributes":921,"./calc":922,"./cross_trace_calc":924,"./defaults":925,"./event_data":926,"./hover":928,"./layout_attributes":930,"./layout_defaults":931,"./plot":932,"./select":933,"./style":935}],930:[function(t,e,r){"use strict";e.exports={barmode:{valType:"enumerated",values:["stack","group","overlay","relative"],dflt:"group",editType:"calc"},barnorm:{valType:"enumerated",values:["","fraction","percent"],dflt:"",editType:"calc"},bargap:{valType:"number",min:0,max:1,editType:"calc"},bargroupgap:{valType:"number",min:0,max:1,dflt:0,editType:"calc"}}},{}],931:[function(t,e,r){"use strict";var n=t("../../registry"),i=t("../../plots/cartesian/axes"),a=t("../../lib"),o=t("./layout_attributes");e.exports=function(t,e,r){function s(r,n){return a.coerce(t,e,o,r,n)}for(var l=!1,c=!1,u=!1,f={},h=s("barmode"),p=0;p0}function S(t){return"auto"===t?0:t}function E(t,e){var r=Math.PI/180*e,n=Math.abs(Math.sin(r)),i=Math.abs(Math.cos(r));return{x:t.width*i+t.height*n,y:t.width*n+t.height*i}}function C(t,e,r,n,i,a){var o=!!a.isHorizontal,s=!!a.constrained,l=a.angle||0,c=a.anchor||"end",u="end"===c,f="start"===c,h=((a.leftToRight||0)+1)/2,p=1-h,d=i.width,g=i.height,m=Math.abs(e-t),v=Math.abs(n-r),y=m>2*_&&v>2*_?_:0;m-=2*y,v-=2*y;var x=S(l);"auto"!==l||d<=m&&g<=v||!(d>m||g>v)||(d>v||g>m)&&d.01?H:function(t,e,r){return r&&t===e?t:Math.abs(t-e)>=2?H(t):t>e?Math.ceil(t):Math.floor(t)};B=G(B,N,D),N=G(N,B,D),j=G(j,U,!D),U=G(U,j,!D)}var Y=M(a.ensureSingle(P,"path"),I,m,v);if(Y.style("vector-effect","non-scaling-stroke").attr("d",isNaN((N-B)*(U-j))||V&&t._context.staticPlot?"M0,0Z":"M"+B+","+j+"V"+U+"H"+N+"V"+j+"Z").call(l.setClipUrl,e.layerClipId,t),!I.uniformtext.mode&&R){var W=l.makePointStyleFns(f);l.singlePointStyle(c,Y,f,W,t)}!function(t,e,r,n,i,s,c,f,p,m,v){var w,T=e.xaxis,A=e.yaxis,L=t._fullLayout;function I(e,r,n){return a.ensureSingle(e,"text").text(r).attr({class:"bartext bartext-"+w,"text-anchor":"middle","data-notex":1}).call(l.font,n).call(o.convertToTspans,t)}var P=n[0].trace,z="h"===P.orientation,O=function(t,e,r,n,i){var o,s=e[0].trace;o=s.texttemplate?function(t,e,r,n,i){var o=e[0].trace,s=a.castOption(o,r,"texttemplate");if(!s)return"";var l,c,f,h,p="waterfall"===o.type,d="funnel"===o.type;"h"===o.orientation?(l="y",c=i,f="x",h=n):(l="x",c=n,f="y",h=i);function g(t){return u(h,+t,!0).text}var m=e[r],v={};v.label=m.p,v.labelLabel=v[l+"Label"]=(y=m.p,u(c,y,!0).text);var y;var x=a.castOption(o,m.i,"text");(0===x||x)&&(v.text=x);v.value=m.s,v.valueLabel=v[f+"Label"]=g(m.s);var _={};b(_,o,m.i),p&&(v.delta=+m.rawS||m.s,v.deltaLabel=g(v.delta),v.final=m.v,v.finalLabel=g(v.final),v.initial=v.final-v.delta,v.initialLabel=g(v.initial));d&&(v.value=m.s,v.valueLabel=g(v.value),v.percentInitial=m.begR,v.percentInitialLabel=a.formatPercent(m.begR),v.percentPrevious=m.difR,v.percentPreviousLabel=a.formatPercent(m.difR),v.percentTotal=m.sumR,v.percenTotalLabel=a.formatPercent(m.sumR));var w=a.castOption(o,m.i,"customdata");w&&(v.customdata=w);return a.texttemplateString(s,v,t._d3locale,_,v,o._meta||{})}(t,e,r,n,i):s.textinfo?function(t,e,r,n){var i=t[0].trace,o="h"===i.orientation,s="waterfall"===i.type,l="funnel"===i.type;function c(t){return u(o?r:n,+t,!0).text}var f,h=i.textinfo,p=t[e],d=h.split("+"),g=[],m=function(t){return-1!==d.indexOf(t)};m("label")&&g.push((v=t[e].p,u(o?n:r,v,!0).text));var v;m("text")&&(0===(f=a.castOption(i,p.i,"text"))||f)&&g.push(f);if(s){var y=+p.rawS||p.s,x=p.v,b=x-y;m("initial")&&g.push(c(b)),m("delta")&&g.push(c(y)),m("final")&&g.push(c(x))}if(l){m("value")&&g.push(c(p.s));var _=0;m("percent initial")&&_++,m("percent previous")&&_++,m("percent total")&&_++;var w=_>1;m("percent initial")&&(f=a.formatPercent(p.begR),w&&(f+=" of initial"),g.push(f)),m("percent previous")&&(f=a.formatPercent(p.difR),w&&(f+=" of previous"),g.push(f)),m("percent total")&&(f=a.formatPercent(p.sumR),w&&(f+=" of total"),g.push(f))}return g.join("
    ")}(e,r,n,i):g.getValue(s.text,r);return g.coerceString(y,o)}(L,n,i,T,A);w=function(t,e){var r=g.getValue(t.textposition,e);return g.coerceEnumerated(x,r)}(P,i);var D="stack"===m.mode||"relative"===m.mode,R=n[i],F=!D||R._outmost;if(!O||"none"===w||(R.isBlank||s===c||f===p)&&("auto"===w||"inside"===w))return void r.select("text").remove();var B=L.font,N=d.getBarColor(n[i],P),j=d.getInsideTextFont(P,i,B,N),U=d.getOutsideTextFont(P,i,B),V=r.datum();z?"log"===T.type&&V.s0<=0&&(s=T.range[0]=G*(Z/Y):Z>=Y*(X/G);G>0&&Y>0&&(J||K||Q)?w="inside":(w="outside",q.remove(),q=null)}else w="inside";if(!q){W=a.ensureUniformFontSize(t,"outside"===w?U:j);var $=(q=I(r,O,W)).attr("transform");if(q.attr("transform",""),H=l.bBox(q.node()),G=H.width,Y=H.height,q.attr("transform",$),G<=0||Y<=0)return void q.remove()}var tt,et,rt=P.textangle;"outside"===w?(et="both"===P.constraintext||"outside"===P.constraintext,tt=function(t,e,r,n,i,a){var o,s=!!a.isHorizontal,l=!!a.constrained,c=a.angle||0,u=i.width,f=i.height,h=Math.abs(e-t),p=Math.abs(n-r);o=s?p>2*_?_:0:h>2*_?_:0;var d=1;l&&(d=s?Math.min(1,p/f):Math.min(1,h/u));var g=S(c),m=E(i,g),v=(s?m.x:m.y)/2,y=(i.left+i.right)/2,x=(i.top+i.bottom)/2,b=(t+e)/2,w=(r+n)/2,T=0,M=0,A=s?k(e,t):k(r,n);s?(b=e-A*o,T=A*v):(w=n+A*o,M=-A*v);return{textX:y,textY:x,targetX:b,targetY:w,anchorX:T,anchorY:M,scale:d,rotate:g}}(s,c,f,p,H,{isHorizontal:z,constrained:et,angle:rt})):(et="both"===P.constraintext||"inside"===P.constraintext,tt=C(s,c,f,p,H,{isHorizontal:z,constrained:et,angle:rt,anchor:P.insidetextanchor}));tt.fontSize=W.size,h(P.type,tt,L),R.transform=tt,M(q,L,m,v).attr("transform",a.getTextTransform(tt))}(t,e,P,r,p,B,N,j,U,m,v),e.layerClipId&&l.hideOutsideRangePoint(c,P.select("text"),w,L,f.xcalendar,f.ycalendar)}));var j=!1===f.cliponaxis;l.setClipUrl(c,j?null:e.layerClipId,t)}));c.getComponentMethod("errorbars","plot")(t,P,e,m)},toMoveInsideBar:C}},{"../../components/color":643,"../../components/drawing":665,"../../components/fx/helpers":679,"../../lib":778,"../../lib/svg_text_utils":803,"../../plots/cartesian/axes":828,"../../registry":911,"./attributes":921,"./constants":923,"./helpers":927,"./style":935,"./uniform_text":937,d3:169,"fast-isnumeric":241}],933:[function(t,e,r){"use strict";function n(t,e,r,n,i){var a=e.c2p(n?t.s0:t.p0,!0),o=e.c2p(n?t.s1:t.p1,!0),s=r.c2p(n?t.p0:t.s0,!0),l=r.c2p(n?t.p1:t.s1,!0);return i?[(a+o)/2,(s+l)/2]:n?[o,(s+l)/2]:[(a+o)/2,l]}e.exports=function(t,e){var r,i=t.cd,a=t.xaxis,o=t.yaxis,s=i[0].trace,l="funnel"===s.type,c="h"===s.orientation,u=[];if(!1===e)for(r=0;r1||0===i.bargap&&0===i.bargroupgap&&!t[0].trace.marker.line.width)&&n.select(this).attr("shape-rendering","crispEdges")})),e.selectAll("g.points").each((function(e){d(n.select(this),e[0].trace,t)})),s.getComponentMethod("errorbars","style")(e)},styleTextPoints:g,styleOnSelect:function(t,e,r){var i=e[0].trace;i.selectedpoints?function(t,e,r){a.selectedPointStyle(t.selectAll("path"),e),function(t,e,r){t.each((function(t){var i,s=n.select(this);if(t.selected){i=o.ensureUniformFontSize(r,m(s,t,e,r));var l=e.selected.textfont&&e.selected.textfont.color;l&&(i.color=l),a.font(s,i)}else a.selectedTextStyle(s,e)}))}(t.selectAll("text"),e,r)}(r,i,t):(d(r,i,t),s.getComponentMethod("errorbars","style")(r))},getInsideTextFont:y,getOutsideTextFont:x,getBarColor:_,resizeText:l}},{"../../components/color":643,"../../components/drawing":665,"../../lib":778,"../../registry":911,"./attributes":921,"./helpers":927,"./uniform_text":937,d3:169}],936:[function(t,e,r){"use strict";var n=t("../../components/color"),i=t("../../components/colorscale/helpers").hasColorscale,a=t("../../components/colorscale/defaults");e.exports=function(t,e,r,o,s){r("marker.color",o),i(t,"marker")&&a(t,e,s,r,{prefix:"marker.",cLetter:"c"}),r("marker.line.color",n.defaultLine),i(t,"marker.line")&&a(t,e,s,r,{prefix:"marker.line.",cLetter:"c"}),r("marker.line.width"),r("marker.opacity"),r("selected.marker.color"),r("unselected.marker.color")}},{"../../components/color":643,"../../components/colorscale/defaults":653,"../../components/colorscale/helpers":654}],937:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../lib");function a(t){return"_"+t+"Text_minsize"}e.exports={recordMinTextSize:function(t,e,r){if(r.uniformtext.mode){var n=a(t),i=r.uniformtext.minsize,o=e.scale*e.fontSize;e.hide=oh.range[1]&&(x+=Math.PI);if(n.getClosest(c,(function(t){return g(y,x,[t.rp0,t.rp1],[t.thetag0,t.thetag1],d)?m+Math.min(1,Math.abs(t.thetag1-t.thetag0)/v)-1+(t.rp1-y)/(t.rp1-t.rp0)-1:1/0}),t),!1!==t.index){var b=c[t.index];t.x0=t.x1=b.ct[0],t.y0=t.y1=b.ct[1];var _=i.extendFlat({},b,{r:b.s,theta:b.p});return o(b,u,t),s(_,u,f,t),t.hovertemplate=u.hovertemplate,t.color=a(u,b),t.xLabelVal=t.yLabelVal=void 0,b.s<0&&(t.idealAlign="left"),[t]}}},{"../../components/fx":683,"../../lib":778,"../../plots/polar/helpers":893,"../bar/hover":928,"../scatterpolar/hover":1265}],942:[function(t,e,r){"use strict";e.exports={moduleType:"trace",name:"barpolar",basePlotModule:t("../../plots/polar"),categories:["polar","bar","showLegend"],attributes:t("./attributes"),layoutAttributes:t("./layout_attributes"),supplyDefaults:t("./defaults"),supplyLayoutDefaults:t("./layout_defaults"),calc:t("./calc").calc,crossTraceCalc:t("./calc").crossTraceCalc,plot:t("./plot"),colorbar:t("../scatter/marker_colorbar"),formatLabels:t("../scatterpolar/format_labels"),style:t("../bar/style").style,styleOnSelect:t("../bar/style").styleOnSelect,hoverPoints:t("./hover"),selectPoints:t("../bar/select"),meta:{}}},{"../../plots/polar":894,"../bar/select":933,"../bar/style":935,"../scatter/marker_colorbar":1205,"../scatterpolar/format_labels":1264,"./attributes":938,"./calc":939,"./defaults":940,"./hover":941,"./layout_attributes":943,"./layout_defaults":944,"./plot":945}],943:[function(t,e,r){"use strict";e.exports={barmode:{valType:"enumerated",values:["stack","overlay"],dflt:"stack",editType:"calc"},bargap:{valType:"number",dflt:.1,min:0,max:1,editType:"calc"}}},{}],944:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./layout_attributes");e.exports=function(t,e,r){var a,o={};function s(r,o){return n.coerce(t[a]||{},e[a],i,r,o)}for(var l=0;l0?(c=o,u=l):(c=l,u=o);var f=[s.findEnclosingVertexAngles(c,t.vangles)[0],(c+u)/2,s.findEnclosingVertexAngles(u,t.vangles)[1]];return s.pathPolygonAnnulus(n,i,c,u,f,e,r)};return function(t,n,i,o){return a.pathAnnulus(t,n,i,o,e,r)}}(e),p=e.layers.frontplot.select("g.barlayer");a.makeTraceGroups(p,r,"trace bars").each((function(){var r=n.select(this),s=a.ensureSingle(r,"g","points").selectAll("g.point").data(a.identity);s.enter().append("g").style("vector-effect","non-scaling-stroke").style("stroke-miterlimit",2).classed("point",!0),s.exit().remove(),s.each((function(t){var e,r=n.select(this),o=t.rp0=u.c2p(t.s0),s=t.rp1=u.c2p(t.s1),p=t.thetag0=f.c2g(t.p0),d=t.thetag1=f.c2g(t.p1);if(i(o)&&i(s)&&i(p)&&i(d)&&o!==s&&p!==d){var g=u.c2g(t.s1),m=(p+d)/2;t.ct=[l.c2p(g*Math.cos(m)),c.c2p(g*Math.sin(m))],e=h(o,s,p,d)}else e="M0,0Z";a.ensureSingle(r,"path").attr("d",e)})),o.setClipUrl(r,e._hasClipOnAxisFalse?e.clipIds.forTraces:null,t)}))}},{"../../components/drawing":665,"../../lib":778,"../../plots/polar/helpers":893,d3:169,"fast-isnumeric":241}],946:[function(t,e,r){"use strict";var n=t("../scatter/attributes"),i=t("../bar/attributes"),a=t("../../components/color/attributes"),o=t("../../plots/template_attributes").hovertemplateAttrs,s=t("../../lib/extend").extendFlat,l=n.marker,c=l.line;e.exports={y:{valType:"data_array",editType:"calc+clearAxisTypes"},x:{valType:"data_array",editType:"calc+clearAxisTypes"},x0:{valType:"any",editType:"calc+clearAxisTypes"},y0:{valType:"any",editType:"calc+clearAxisTypes"},dx:{valType:"number",editType:"calc"},dy:{valType:"number",editType:"calc"},xperiod:n.xperiod,yperiod:n.yperiod,xperiod0:n.xperiod0,yperiod0:n.yperiod0,xperiodalignment:n.xperiodalignment,yperiodalignment:n.yperiodalignment,name:{valType:"string",editType:"calc+clearAxisTypes"},q1:{valType:"data_array",editType:"calc+clearAxisTypes"},median:{valType:"data_array",editType:"calc+clearAxisTypes"},q3:{valType:"data_array",editType:"calc+clearAxisTypes"},lowerfence:{valType:"data_array",editType:"calc"},upperfence:{valType:"data_array",editType:"calc"},notched:{valType:"boolean",editType:"calc"},notchwidth:{valType:"number",min:0,max:.5,dflt:.25,editType:"calc"},notchspan:{valType:"data_array",editType:"calc"},boxpoints:{valType:"enumerated",values:["all","outliers","suspectedoutliers",!1],editType:"calc"},jitter:{valType:"number",min:0,max:1,editType:"calc"},pointpos:{valType:"number",min:-2,max:2,editType:"calc"},boxmean:{valType:"enumerated",values:[!0,"sd",!1],editType:"calc"},mean:{valType:"data_array",editType:"calc"},sd:{valType:"data_array",editType:"calc"},orientation:{valType:"enumerated",values:["v","h"],editType:"calc+clearAxisTypes"},quartilemethod:{valType:"enumerated",values:["linear","exclusive","inclusive"],dflt:"linear",editType:"calc"},width:{valType:"number",min:0,dflt:0,editType:"calc"},marker:{outliercolor:{valType:"color",dflt:"rgba(0, 0, 0, 0)",editType:"style"},symbol:s({},l.symbol,{arrayOk:!1,editType:"plot"}),opacity:s({},l.opacity,{arrayOk:!1,dflt:1,editType:"style"}),size:s({},l.size,{arrayOk:!1,editType:"calc"}),color:s({},l.color,{arrayOk:!1,editType:"style"}),line:{color:s({},c.color,{arrayOk:!1,dflt:a.defaultLine,editType:"style"}),width:s({},c.width,{arrayOk:!1,dflt:0,editType:"style"}),outliercolor:{valType:"color",editType:"style"},outlierwidth:{valType:"number",min:0,dflt:1,editType:"style"},editType:"style"},editType:"plot"},line:{color:{valType:"color",editType:"style"},width:{valType:"number",min:0,dflt:2,editType:"style"},editType:"plot"},fillcolor:n.fillcolor,whiskerwidth:{valType:"number",min:0,max:1,dflt:.5,editType:"calc"},offsetgroup:i.offsetgroup,alignmentgroup:i.alignmentgroup,selected:{marker:n.selected.marker,editType:"style"},unselected:{marker:n.unselected.marker,editType:"style"},text:s({},n.text,{}),hovertext:s({},n.hovertext,{}),hovertemplate:o({}),hoveron:{valType:"flaglist",flags:["boxes","points"],dflt:"boxes+points",editType:"style"}}},{"../../components/color/attributes":642,"../../lib/extend":768,"../../plots/template_attributes":906,"../bar/attributes":921,"../scatter/attributes":1187}],947:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("../../plots/cartesian/axes"),a=t("../../plots/cartesian/align_period"),o=t("../../lib"),s=t("../../constants/numerical").BADNUM,l=o._;e.exports=function(t,e){var r,c,y,x,b,_,w,T=t._fullLayout,k=i.getFromId(t,e.xaxis||"x"),M=i.getFromId(t,e.yaxis||"y"),A=[],S="violin"===e.type?"_numViolins":"_numBoxes";"h"===e.orientation?(y=k,x="x",b=M,_="y",w=!!e.yperiodalignment):(y=M,x="y",b=k,_="x",w=!!e.xperiodalignment);var E,C,L,I,P,z,O=function(t,e,r,i){var s,l=e+"0"in t,c="d"+e in t;if(e in t||l&&c){var u=r.makeCalcdata(t,e);return[a(t,r,e,u),u]}s=l?t[e+"0"]:"name"in t&&("category"===r.type||n(t.name)&&-1!==["linear","log"].indexOf(r.type)||o.isDateTime(t.name)&&"date"===r.type)?t.name:i;for(var f="multicategory"===r.type?r.r2c_just_indices(s):r.d2c(s,0,t[e+"calendar"]),h=t._length,p=new Array(h),d=0;dE.uf};if(e._hasPreCompStats){var U=e[x],V=function(t){return y.d2c((e[t]||[])[r])},q=1/0,H=-1/0;for(r=0;r=E.q1&&E.q3>=E.med){var Y=V("lowerfence");E.lf=Y!==s&&Y<=E.q1?Y:p(E,L,I);var W=V("upperfence");E.uf=W!==s&&W>=E.q3?W:d(E,L,I);var X=V("mean");E.mean=X!==s?X:I?o.mean(L,I):(E.q1+E.q3)/2;var Z=V("sd");E.sd=X!==s&&Z>=0?Z:I?o.stdev(L,I,E.mean):E.q3-E.q1,E.lo=g(E),E.uo=m(E);var J=V("notchspan");J=J!==s&&J>0?J:v(E,I),E.ln=E.med-J,E.un=E.med+J;var K=E.lf,Q=E.uf;e.boxpoints&&L.length&&(K=Math.min(K,L[0]),Q=Math.max(Q,L[I-1])),e.notched&&(K=Math.min(K,E.ln),Q=Math.max(Q,E.un)),E.min=K,E.max=Q}else{var $;o.warn(["Invalid input - make sure that q1 <= median <= q3","q1 = "+E.q1,"median = "+E.med,"q3 = "+E.q3].join("\n")),$=E.med!==s?E.med:E.q1!==s?E.q3!==s?(E.q1+E.q3)/2:E.q1:E.q3!==s?E.q3:0,E.med=$,E.q1=E.q3=$,E.lf=E.uf=$,E.mean=E.sd=$,E.ln=E.un=$,E.min=E.max=$}q=Math.min(q,E.min),H=Math.max(H,E.max),E.pts2=C.filter(j),A.push(E)}}e._extremes[y._id]=i.findExtremes(y,[q,H],{padded:!0})}else{var tt=y.makeCalcdata(e,x),et=function(t,e){for(var r=t.length,n=new Array(r+1),i=0;i=0&&it0){var ut,ft;if((E={}).pos=E[_]=B[r],C=E.pts=nt[r].sort(f),I=(L=E[x]=C.map(h)).length,E.min=L[0],E.max=L[I-1],E.mean=o.mean(L,I),E.sd=o.stdev(L,I,E.mean),E.med=o.interp(L,.5),I%2&&(lt||ct))lt?(ut=L.slice(0,I/2),ft=L.slice(I/2+1)):ct&&(ut=L.slice(0,I/2+1),ft=L.slice(I/2)),E.q1=o.interp(ut,.5),E.q3=o.interp(ft,.5);else E.q1=o.interp(L,.25),E.q3=o.interp(L,.75);E.lf=p(E,L,I),E.uf=d(E,L,I),E.lo=g(E),E.uo=m(E);var ht=v(E,I);E.ln=E.med-ht,E.un=E.med+ht,at=Math.min(at,E.ln),ot=Math.max(ot,E.un),E.pts2=C.filter(j),A.push(E)}e._extremes[y._id]=i.findExtremes(y,e.notched?tt.concat([at,ot]):tt,{padded:!0})}return function(t,e){if(o.isArrayOrTypedArray(e.selectedpoints))for(var r=0;r0?(A[0].t={num:T[S],dPos:N,posLetter:_,valLetter:x,labels:{med:l(t,"median:"),min:l(t,"min:"),q1:l(t,"q1:"),q3:l(t,"q3:"),max:l(t,"max:"),mean:"sd"===e.boxmean?l(t,"mean \xb1 \u03c3:"):l(t,"mean:"),lf:l(t,"lower fence:"),uf:l(t,"upper fence:")}},T[S]++,A):[{t:{empty:!0}}]};var c={text:"tx",hovertext:"htx"};function u(t,e,r){for(var n in c)o.isArrayOrTypedArray(e[n])&&(Array.isArray(r)?o.isArrayOrTypedArray(e[n][r[0]])&&(t[c[n]]=e[n][r[0]][r[1]]):t[c[n]]=e[n][r])}function f(t,e){return t.v-e.v}function h(t){return t.v}function p(t,e,r){return 0===r?t.q1:Math.min(t.q1,e[Math.min(o.findBin(2.5*t.q1-1.5*t.q3,e,!0)+1,r-1)])}function d(t,e,r){return 0===r?t.q3:Math.max(t.q3,e[Math.max(o.findBin(2.5*t.q3-1.5*t.q1,e),0)])}function g(t){return 4*t.q1-3*t.q3}function m(t){return 4*t.q3-3*t.q1}function v(t,e){return 0===e?0:1.57*(t.q3-t.q1)/Math.sqrt(e)}},{"../../constants/numerical":753,"../../lib":778,"../../plots/cartesian/align_period":825,"../../plots/cartesian/axes":828,"fast-isnumeric":241}],948:[function(t,e,r){"use strict";var n=t("../../plots/cartesian/axes"),i=t("../../lib"),a=t("../../plots/cartesian/constraints").getAxisGroup,o=["v","h"];function s(t,e,r,o){var s,l,c,u=e.calcdata,f=e._fullLayout,h=o._id,p=h.charAt(0),d=[],g=0;for(s=0;s1,b=1-f[t+"gap"],_=1-f[t+"groupgap"];for(s=0;s0){var H=E.pointpos,G=E.jitter,Y=E.marker.size/2,W=0;H+G>=0&&((W=V*(H+G))>A?(q=!0,j=Y,B=W):W>R&&(j=Y,B=A)),W<=A&&(B=A);var X=0;H-G<=0&&((X=-V*(H-G))>S?(q=!0,U=Y,N=X):X>F&&(U=Y,N=S)),X<=S&&(N=S)}else B=A,N=S;var Z=new Array(c.length);for(l=0;l0?(m="v",v=x>0?Math.min(_,b):Math.min(b)):x>0?(m="h",v=Math.min(_)):v=0;if(v){e._length=v;var S=r("orientation",m);e._hasPreCompStats?"v"===S&&0===x?(r("x0",0),r("dx",1)):"h"===S&&0===y&&(r("y0",0),r("dy",1)):"v"===S&&0===x?r("x0"):"h"===S&&0===y&&r("y0"),i.getComponentMethod("calendars","handleTraceDefaults")(t,e,["x","y"],a)}else e.visible=!1}function f(t,e,r,i){var a=i.prefix,o=n.coerce2(t,e,c,"marker.outliercolor"),s=r("marker.line.outliercolor"),l="outliers";e._hasPreCompStats?l="all":(o||s)&&(l="suspectedoutliers");var u=r(a+"points",l);u?(r("jitter","all"===u?.3:0),r("pointpos","all"===u?-1.5:0),r("marker.symbol"),r("marker.opacity"),r("marker.size"),r("marker.color",e.line.color),r("marker.line.color"),r("marker.line.width"),"suspectedoutliers"===u&&(r("marker.line.outliercolor",e.marker.color),r("marker.line.outlierwidth")),r("selected.marker.color"),r("unselected.marker.color"),r("selected.marker.size"),r("unselected.marker.size"),r("text"),r("hovertext")):delete e.marker;var f=r("hoveron");"all"!==f&&-1===f.indexOf("points")||r("hovertemplate"),n.coerceSelectionMarkerOpacity(e,r)}e.exports={supplyDefaults:function(t,e,r,i){function s(r,i){return n.coerce(t,e,c,r,i)}if(u(t,e,s,i),!1!==e.visible){o(t,e,i,s);var l=e._hasPreCompStats;l&&(s("lowerfence"),s("upperfence")),s("line.color",(t.marker||{}).color||r),s("line.width"),s("fillcolor",a.addOpacity(e.line.color,.5));var h=!1;if(l){var p=s("mean"),d=s("sd");p&&p.length&&(h=!0,d&&d.length&&(h="sd"))}s("boxmean",h),s("whiskerwidth"),s("width"),s("quartilemethod");var g=!1;if(l){var m=s("notchspan");m&&m.length&&(g=!0)}else n.validate(t.notchwidth,c.notchwidth)&&(g=!0);s("notched",g)&&s("notchwidth"),f(t,e,s,{prefix:"box"})}},crossTraceDefaults:function(t,e){var r,i;function a(t){return n.coerce(i._input,i,c,t)}for(var o=0;ot.lo&&(x.so=!0)}return a}));h.enter().append("path").classed("point",!0),h.exit().remove(),h.call(a.translatePoints,o,s)}function l(t,e,r,a){var o,s,l=e.val,c=e.pos,u=!!c.rangebreaks,f=a.bPos,h=a.bPosPxOffset||0,p=r.boxmean||(r.meanline||{}).visible;Array.isArray(a.bdPos)?(o=a.bdPos[0],s=a.bdPos[1]):(o=a.bdPos,s=a.bdPos);var d=t.selectAll("path.mean").data("box"===r.type&&r.boxmean||"violin"===r.type&&r.box.visible&&r.meanline.visible?i.identity:[]);d.enter().append("path").attr("class","mean").style({fill:"none","vector-effect":"non-scaling-stroke"}),d.exit().remove(),d.each((function(t){var e=c.c2l(t.pos+f,!0),i=c.l2p(e-o)+h,a=c.l2p(e+s)+h,d=u?(i+a)/2:c.l2p(e)+h,g=l.c2p(t.mean,!0),m=l.c2p(t.mean-t.sd,!0),v=l.c2p(t.mean+t.sd,!0);"h"===r.orientation?n.select(this).attr("d","M"+g+","+i+"V"+a+("sd"===p?"m0,0L"+m+","+d+"L"+g+","+i+"L"+v+","+d+"Z":"")):n.select(this).attr("d","M"+i+","+g+"H"+a+("sd"===p?"m0,0L"+d+","+m+"L"+i+","+g+"L"+d+","+v+"Z":""))}))}e.exports={plot:function(t,e,r,a){var c=e.xaxis,u=e.yaxis;i.makeTraceGroups(a,r,"trace boxes").each((function(t){var e,r,i=n.select(this),a=t[0],f=a.t,h=a.trace;(f.wdPos=f.bdPos*h.whiskerwidth,!0!==h.visible||f.empty)?i.remove():("h"===h.orientation?(e=u,r=c):(e=c,r=u),o(i,{pos:e,val:r},h,f),s(i,{x:c,y:u},h,f),l(i,{pos:e,val:r},h,f))}))},plotBoxAndWhiskers:o,plotPoints:s,plotBoxMean:l}},{"../../components/drawing":665,"../../lib":778,d3:169}],956:[function(t,e,r){"use strict";e.exports=function(t,e){var r,n,i=t.cd,a=t.xaxis,o=t.yaxis,s=[];if(!1===e)for(r=0;r=10)return null;for(var i=1/0,a=-1/0,o=e.length,s=0;s0?Math.floor:Math.ceil,P=C>0?Math.ceil:Math.floor,z=C>0?Math.min:Math.max,O=C>0?Math.max:Math.min,D=I(S+L),R=P(E-L),F=[[f=A(S)]];for(a=D;a*C=0;i--)a[u-i]=t[f][i],o[u-i]=e[f][i];for(s.push({x:a,y:o,bicubic:l}),i=f,a=[],o=[];i>=0;i--)a[f-i]=t[i][0],o[f-i]=e[i][0];return s.push({x:a,y:o,bicubic:c}),s}},{}],970:[function(t,e,r){"use strict";var n=t("../../plots/cartesian/axes"),i=t("../../lib/extend").extendFlat;e.exports=function(t,e,r){var a,o,s,l,c,u,f,h,p,d,g,m,v,y,x=t["_"+e],b=t[e+"axis"],_=b._gridlines=[],w=b._minorgridlines=[],T=b._boundarylines=[],k=t["_"+r],M=t[r+"axis"];"array"===b.tickmode&&(b.tickvals=x.slice());var A=t._xctrl,S=t._yctrl,E=A[0].length,C=A.length,L=t._a.length,I=t._b.length;n.prepTicks(b),"array"===b.tickmode&&delete b.tickvals;var P=b.smoothing?3:1;function z(n){var i,a,o,s,l,c,u,f,p,d,g,m,v=[],y=[],x={};if("b"===e)for(a=t.b2j(n),o=Math.floor(Math.max(0,Math.min(I-2,a))),s=a-o,x.length=I,x.crossLength=L,x.xy=function(e){return t.evalxy([],e,a)},x.dxy=function(e,r){return t.dxydi([],e,o,r,s)},i=0;i0&&(p=t.dxydi([],i-1,o,0,s),v.push(l[0]+p[0]/3),y.push(l[1]+p[1]/3),d=t.dxydi([],i-1,o,1,s),v.push(f[0]-d[0]/3),y.push(f[1]-d[1]/3)),v.push(f[0]),y.push(f[1]),l=f;else for(i=t.a2i(n),c=Math.floor(Math.max(0,Math.min(L-2,i))),u=i-c,x.length=L,x.crossLength=I,x.xy=function(e){return t.evalxy([],i,e)},x.dxy=function(e,r){return t.dxydj([],c,e,u,r)},a=0;a0&&(g=t.dxydj([],c,a-1,u,0),v.push(l[0]+g[0]/3),y.push(l[1]+g[1]/3),m=t.dxydj([],c,a-1,u,1),v.push(f[0]-m[0]/3),y.push(f[1]-m[1]/3)),v.push(f[0]),y.push(f[1]),l=f;return x.axisLetter=e,x.axis=b,x.crossAxis=M,x.value=n,x.constvar=r,x.index=h,x.x=v,x.y=y,x.smoothing=M.smoothing,x}function O(n){var i,a,o,s,l,c=[],u=[],f={};if(f.length=x.length,f.crossLength=k.length,"b"===e)for(o=Math.max(0,Math.min(I-2,n)),l=Math.min(1,Math.max(0,n-o)),f.xy=function(e){return t.evalxy([],e,n)},f.dxy=function(e,r){return t.dxydi([],e,o,r,l)},i=0;ix.length-1||_.push(i(O(o),{color:b.gridcolor,width:b.gridwidth}));for(h=u;hx.length-1||g<0||g>x.length-1))for(m=x[s],v=x[g],a=0;ax[x.length-1]||w.push(i(z(d),{color:b.minorgridcolor,width:b.minorgridwidth}));b.startline&&T.push(i(O(0),{color:b.startlinecolor,width:b.startlinewidth})),b.endline&&T.push(i(O(x.length-1),{color:b.endlinecolor,width:b.endlinewidth}))}else{for(l=5e-15,u=(c=[Math.floor((x[x.length-1]-b.tick0)/b.dtick*(1+l)),Math.ceil((x[0]-b.tick0)/b.dtick/(1+l))].sort((function(t,e){return t-e})))[0],f=c[1],h=u;h<=f;h++)p=b.tick0+b.dtick*h,_.push(i(z(p),{color:b.gridcolor,width:b.gridwidth}));for(h=u-1;hx[x.length-1]||w.push(i(z(d),{color:b.minorgridcolor,width:b.minorgridwidth}));b.startline&&T.push(i(z(x[0]),{color:b.startlinecolor,width:b.startlinewidth})),b.endline&&T.push(i(z(x[x.length-1]),{color:b.endlinecolor,width:b.endlinewidth}))}}},{"../../lib/extend":768,"../../plots/cartesian/axes":828}],971:[function(t,e,r){"use strict";var n=t("../../plots/cartesian/axes"),i=t("../../lib/extend").extendFlat;e.exports=function(t,e){var r,a,o,s=e._labels=[],l=e._gridlines;for(r=0;re.length&&(t=t.slice(0,e.length)):t=[],i=0;i90&&(p-=180,l=-l),{angle:p,flip:l,p:t.c2p(n,e,r),offsetMultplier:c}}},{}],985:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../components/drawing"),a=t("./map_1d_array"),o=t("./makepath"),s=t("./orient_text"),l=t("../../lib/svg_text_utils"),c=t("../../lib"),u=c.strRotate,f=c.strTranslate,h=t("../../constants/alignment");function p(t,e,r,i,s,l){var c="const-"+s+"-lines",u=r.selectAll("."+c).data(l);u.enter().append("path").classed(c,!0).style("vector-effect","non-scaling-stroke"),u.each((function(r){var i=r,s=i.x,l=i.y,c=a([],s,t.c2p),u=a([],l,e.c2p),f="M"+o(c,u,i.smoothing);n.select(this).attr("d",f).style("stroke-width",i.width).style("stroke",i.color).style("fill","none")})),u.exit().remove()}function d(t,e,r,a,o,c,h,p){var d=c.selectAll("text."+p).data(h);d.enter().append("text").classed(p,!0);var g=0,m={};return d.each((function(o,c){var h;if("auto"===o.axis.tickangle)h=s(a,e,r,o.xy,o.dxy);else{var p=(o.axis.tickangle+180)*Math.PI/180;h=s(a,e,r,o.xy,[Math.cos(p),Math.sin(p)])}c||(m={angle:h.angle,flip:h.flip});var d=(o.endAnchor?-1:1)*h.flip,v=n.select(this).attr({"text-anchor":d>0?"start":"end","data-notex":1}).call(i.font,o.font).text(o.text).call(l.convertToTspans,t),y=i.bBox(this);v.attr("transform",f(h.p[0],h.p[1])+u(h.angle)+f(o.axis.labelpadding*d,.3*y.height)),g=Math.max(g,y.width+o.axis.labelpadding)})),d.exit().remove(),m.maxExtent=g,m}e.exports=function(t,e,r,i){var l=e.xaxis,u=e.yaxis,f=t._fullLayout._clips;c.makeTraceGroups(i,r,"trace").each((function(e){var r=n.select(this),i=e[0],h=i.trace,g=h.aaxis,m=h.baxis,y=c.ensureSingle(r,"g","minorlayer"),x=c.ensureSingle(r,"g","majorlayer"),b=c.ensureSingle(r,"g","boundarylayer"),_=c.ensureSingle(r,"g","labellayer");r.style("opacity",h.opacity),p(l,u,x,g,"a",g._gridlines),p(l,u,x,m,"b",m._gridlines),p(l,u,y,g,"a",g._minorgridlines),p(l,u,y,m,"b",m._minorgridlines),p(l,u,b,g,"a-boundary",g._boundarylines),p(l,u,b,m,"b-boundary",m._boundarylines);var w=d(t,l,u,h,i,_,g._labels,"a-label"),T=d(t,l,u,h,i,_,m._labels,"b-label");!function(t,e,r,n,i,a,o,l){var u,f,h,p,d=c.aggNums(Math.min,null,r.a),g=c.aggNums(Math.max,null,r.a),m=c.aggNums(Math.min,null,r.b),y=c.aggNums(Math.max,null,r.b);u=.5*(d+g),f=m,h=r.ab2xy(u,f,!0),p=r.dxyda_rough(u,f),void 0===o.angle&&c.extendFlat(o,s(r,i,a,h,r.dxydb_rough(u,f)));v(t,e,r,n,h,p,r.aaxis,i,a,o,"a-title"),u=d,f=.5*(m+y),h=r.ab2xy(u,f,!0),p=r.dxydb_rough(u,f),void 0===l.angle&&c.extendFlat(l,s(r,i,a,h,r.dxyda_rough(u,f)));v(t,e,r,n,h,p,r.baxis,i,a,l,"b-title")}(t,_,h,i,l,u,w,T),function(t,e,r,n,i){var s,l,u,f,h=r.select("#"+t._clipPathId);h.size()||(h=r.append("clipPath").classed("carpetclip",!0));var p=c.ensureSingle(h,"path","carpetboundary"),d=e.clipsegments,g=[];for(f=0;f90&&y<270,b=n.select(this);b.text(h.title.text).call(l.convertToTspans,t),x&&(_=(-l.lineCount(b)+m)*g*a-_),b.attr("transform",f(e.p[0],e.p[1])+u(e.angle)+f(0,_)).attr("text-anchor","middle").call(i.font,h.title.font)})),b.exit().remove()}},{"../../components/drawing":665,"../../constants/alignment":745,"../../lib":778,"../../lib/svg_text_utils":803,"./makepath":982,"./map_1d_array":983,"./orient_text":984,d3:169}],986:[function(t,e,r){"use strict";var n=t("./constants"),i=t("../../lib/search").findBin,a=t("./compute_control_points"),o=t("./create_spline_evaluator"),s=t("./create_i_derivative_evaluator"),l=t("./create_j_derivative_evaluator");e.exports=function(t){var e=t._a,r=t._b,c=e.length,u=r.length,f=t.aaxis,h=t.baxis,p=e[0],d=e[c-1],g=r[0],m=r[u-1],v=e[e.length-1]-e[0],y=r[r.length-1]-r[0],x=v*n.RELATIVE_CULL_TOLERANCE,b=y*n.RELATIVE_CULL_TOLERANCE;p-=x,d+=x,g-=b,m+=b,t.isVisible=function(t,e){return t>p&&tg&&ed||em},t.setScale=function(){var e=t._x,r=t._y,n=a(t._xctrl,t._yctrl,e,r,f.smoothing,h.smoothing);t._xctrl=n[0],t._yctrl=n[1],t.evalxy=o([t._xctrl,t._yctrl],c,u,f.smoothing,h.smoothing),t.dxydi=s([t._xctrl,t._yctrl],f.smoothing,h.smoothing),t.dxydj=l([t._xctrl,t._yctrl],f.smoothing,h.smoothing)},t.i2a=function(t){var r=Math.max(0,Math.floor(t[0]),c-2),n=t[0]-r;return(1-n)*e[r]+n*e[r+1]},t.j2b=function(t){var e=Math.max(0,Math.floor(t[1]),c-2),n=t[1]-e;return(1-n)*r[e]+n*r[e+1]},t.ij2ab=function(e){return[t.i2a(e[0]),t.j2b(e[1])]},t.a2i=function(t){var r=Math.max(0,Math.min(i(t,e),c-2)),n=e[r],a=e[r+1];return Math.max(0,Math.min(c-1,r+(t-n)/(a-n)))},t.b2j=function(t){var e=Math.max(0,Math.min(i(t,r),u-2)),n=r[e],a=r[e+1];return Math.max(0,Math.min(u-1,e+(t-n)/(a-n)))},t.ab2ij=function(e){return[t.a2i(e[0]),t.b2j(e[1])]},t.i2c=function(e,r){return t.evalxy([],e,r)},t.ab2xy=function(n,i,a){if(!a&&(ne[c-1]|ir[u-1]))return[!1,!1];var o=t.a2i(n),s=t.b2j(i),l=t.evalxy([],o,s);if(a){var f,h,p,d,g=0,m=0,v=[];ne[c-1]?(f=c-2,h=1,g=(n-e[c-1])/(e[c-1]-e[c-2])):h=o-(f=Math.max(0,Math.min(c-2,Math.floor(o)))),ir[u-1]?(p=u-2,d=1,m=(i-r[u-1])/(r[u-1]-r[u-2])):d=s-(p=Math.max(0,Math.min(u-2,Math.floor(s)))),g&&(t.dxydi(v,f,p,h,d),l[0]+=v[0]*g,l[1]+=v[1]*g),m&&(t.dxydj(v,f,p,h,d),l[0]+=v[0]*m,l[1]+=v[1]*m)}return l},t.c2p=function(t,e,r){return[e.c2p(t[0]),r.c2p(t[1])]},t.p2x=function(t,e,r){return[e.p2c(t[0]),r.p2c(t[1])]},t.dadi=function(t){var r=Math.max(0,Math.min(e.length-2,t));return e[r+1]-e[r]},t.dbdj=function(t){var e=Math.max(0,Math.min(r.length-2,t));return r[e+1]-r[e]},t.dxyda=function(e,r,n,i){var a=t.dxydi(null,e,r,n,i),o=t.dadi(e,n);return[a[0]/o,a[1]/o]},t.dxydb=function(e,r,n,i){var a=t.dxydj(null,e,r,n,i),o=t.dbdj(r,i);return[a[0]/o,a[1]/o]},t.dxyda_rough=function(e,r,n){var i=v*(n||.1),a=t.ab2xy(e+i,r,!0),o=t.ab2xy(e-i,r,!0);return[.5*(a[0]-o[0])/i,.5*(a[1]-o[1])/i]},t.dxydb_rough=function(e,r,n){var i=y*(n||.1),a=t.ab2xy(e,r+i,!0),o=t.ab2xy(e,r-i,!0);return[.5*(a[0]-o[0])/i,.5*(a[1]-o[1])/i]},t.dpdx=function(t){return t._m},t.dpdy=function(t){return t._m}}},{"../../lib/search":798,"./compute_control_points":974,"./constants":975,"./create_i_derivative_evaluator":976,"./create_j_derivative_evaluator":977,"./create_spline_evaluator":978}],987:[function(t,e,r){"use strict";var n=t("../../lib");e.exports=function(t,e,r){var i,a,o,s=[],l=[],c=t[0].length,u=t.length;function f(e,r){var n,i=0,a=0;return e>0&&void 0!==(n=t[r][e-1])&&(a++,i+=n),e0&&void 0!==(n=t[r-1][e])&&(a++,i+=n),r0&&a0&&i1e-5);return n.log("Smoother converged to",k,"after",M,"iterations"),t}},{"../../lib":778}],988:[function(t,e,r){"use strict";var n=t("../../lib").isArray1D;e.exports=function(t,e,r){var i=r("x"),a=i&&i.length,o=r("y"),s=o&&o.length;if(!a&&!s)return!1;if(e._cheater=!i,a&&!n(i)||s&&!n(o))e._length=null;else{var l=a?i.length:1/0;s&&(l=Math.min(l,o.length)),e.a&&e.a.length&&(l=Math.min(l,e.a.length)),e.b&&e.b.length&&(l=Math.min(l,e.b.length)),e._length=l}return!0}},{"../../lib":778}],989:[function(t,e,r){"use strict";var n=t("../../plots/template_attributes").hovertemplateAttrs,i=t("../scattergeo/attributes"),a=t("../../components/colorscale/attributes"),o=t("../../plots/attributes"),s=t("../../components/color/attributes").defaultLine,l=t("../../lib/extend").extendFlat,c=i.marker.line;e.exports=l({locations:{valType:"data_array",editType:"calc"},locationmode:i.locationmode,z:{valType:"data_array",editType:"calc"},geojson:l({},i.geojson,{}),featureidkey:i.featureidkey,text:l({},i.text,{}),hovertext:l({},i.hovertext,{}),marker:{line:{color:l({},c.color,{dflt:s}),width:l({},c.width,{dflt:1}),editType:"calc"},opacity:{valType:"number",arrayOk:!0,min:0,max:1,dflt:1,editType:"style"},editType:"calc"},selected:{marker:{opacity:i.selected.marker.opacity,editType:"plot"},editType:"plot"},unselected:{marker:{opacity:i.unselected.marker.opacity,editType:"plot"},editType:"plot"},hoverinfo:l({},o.hoverinfo,{editType:"calc",flags:["location","z","text","name"]}),hovertemplate:n(),showlegend:l({},o.showlegend,{dflt:!1})},a("",{cLetter:"z",editTypeOverride:"calc"}))},{"../../components/color/attributes":642,"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/template_attributes":906,"../scattergeo/attributes":1229}],990:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("../../constants/numerical").BADNUM,a=t("../../components/colorscale/calc"),o=t("../scatter/arrays_to_calcdata"),s=t("../scatter/calc_selection");function l(t){return t&&"string"==typeof t}e.exports=function(t,e){var r,c=e._length,u=new Array(c);r=e.geojson?function(t){return l(t)||n(t)}:l;for(var f=0;f")}(t,f,o),[t]}},{"../../lib":778,"../../plots/cartesian/axes":828,"./attributes":989}],994:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),colorbar:t("../heatmap/colorbar"),calc:t("./calc"),calcGeoJSON:t("./plot").calcGeoJSON,plot:t("./plot").plot,style:t("./style").style,styleOnSelect:t("./style").styleOnSelect,hoverPoints:t("./hover"),eventData:t("./event_data"),selectPoints:t("./select"),moduleType:"trace",name:"choropleth",basePlotModule:t("../../plots/geo"),categories:["geo","noOpacity","showLegend"],meta:{}}},{"../../plots/geo":860,"../heatmap/colorbar":1068,"./attributes":989,"./calc":990,"./defaults":991,"./event_data":992,"./hover":993,"./plot":995,"./select":996,"./style":997}],995:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../lib"),a=t("../../lib/geo_location_utils"),o=t("../../lib/topojson_utils").getTopojsonFeatures,s=t("../../plots/cartesian/autorange").findExtremes,l=t("./style").style;e.exports={calcGeoJSON:function(t,e){for(var r=t[0].trace,n=e[r.geo],i=n._subplot,l=r.locationmode,c=r._length,u="geojson-id"===l?a.extractTraceFeature(t):o(r,i.topojson),f=[],h=[],p=0;p=0;n--){var i=r[n].id;if("string"==typeof i&&0===i.indexOf("water"))for(var a=n+1;a=0;r--)t.removeLayer(e[r][1])},s.dispose=function(){var t=this.subplot.map;this._removeLayers(),t.removeSource(this.sourceId)},e.exports=function(t,e){var r=e[0].trace,i=new o(t,r.uid),a=i.sourceId,s=n(e),l=i.below=t.belowLookup["trace-"+r.uid];return t.map.addSource(a,{type:"geojson",data:s.geojson}),i._addLayers(s,l),e[0].trace._glTrace=i,i}},{"../../plots/mapbox/constants":883,"./convert":999}],1003:[function(t,e,r){"use strict";var n=t("../../components/colorscale/attributes"),i=t("../../plots/template_attributes").hovertemplateAttrs,a=t("../mesh3d/attributes"),o=t("../../plots/attributes"),s=t("../../lib/extend").extendFlat,l={x:{valType:"data_array",editType:"calc+clearAxisTypes"},y:{valType:"data_array",editType:"calc+clearAxisTypes"},z:{valType:"data_array",editType:"calc+clearAxisTypes"},u:{valType:"data_array",editType:"calc"},v:{valType:"data_array",editType:"calc"},w:{valType:"data_array",editType:"calc"},sizemode:{valType:"enumerated",values:["scaled","absolute"],editType:"calc",dflt:"scaled"},sizeref:{valType:"number",editType:"calc",min:0},anchor:{valType:"enumerated",editType:"calc",values:["tip","tail","cm","center"],dflt:"cm"},text:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertemplate:i({editType:"calc"},{keys:["norm"]}),showlegend:s({},o.showlegend,{dflt:!1})};s(l,n("",{colorAttr:"u/v/w norm",showScaleDflt:!0,editTypeOverride:"calc"}));["opacity","lightposition","lighting"].forEach((function(t){l[t]=a[t]})),l.hoverinfo=s({},o.hoverinfo,{editType:"calc",flags:["x","y","z","u","v","w","norm","text","name"],dflt:"x+y+z+norm+text+name"}),l.transforms=void 0,e.exports=l},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/template_attributes":906,"../mesh3d/attributes":1128}],1004:[function(t,e,r){"use strict";var n=t("../../components/colorscale/calc");e.exports=function(t,e){for(var r=e.u,i=e.v,a=e.w,o=Math.min(e.x.length,e.y.length,e.z.length,r.length,i.length,a.length),s=-1/0,l=1/0,c=0;co.level||o.starts.length&&a===o.level)}break;case"constraint":if(n.prefixBoundary=!1,n.edgepaths.length)return;var s=n.x.length,l=n.y.length,c=-1/0,u=1/0;for(r=0;r":p>c&&(n.prefixBoundary=!0);break;case"<":(pc||n.starts.length&&h===u)&&(n.prefixBoundary=!0);break;case"][":f=Math.min(p[0],p[1]),h=Math.max(p[0],p[1]),fc&&(n.prefixBoundary=!0)}}}},{}],1011:[function(t,e,r){"use strict";var n=t("../../components/colorscale"),i=t("./make_color_map"),a=t("./end_plus");e.exports={min:"zmin",max:"zmax",calc:function(t,e,r){var o=e.contours,s=e.line,l=o.size||1,c=o.coloring,u=i(e,{isColorbar:!0});if("heatmap"===c){var f=n.extractOpts(e);r._fillgradient=f.reversescale?n.flipScale(f.colorscale):f.colorscale,r._zrange=[f.min,f.max]}else"fill"===c&&(r._fillcolor=u);r._line={color:"lines"===c?u:s.color,width:!1!==o.showlines?s.width:0,dash:s.dash},r._levels={start:o.start,end:a(o),size:l}}}},{"../../components/colorscale":655,"./end_plus":1019,"./make_color_map":1024}],1012:[function(t,e,r){"use strict";e.exports={BOTTOMSTART:[1,9,13,104,713],TOPSTART:[4,6,7,104,713],LEFTSTART:[8,12,14,208,1114],RIGHTSTART:[2,3,11,208,1114],NEWDELTA:[null,[-1,0],[0,-1],[-1,0],[1,0],null,[0,-1],[-1,0],[0,1],[0,1],null,[0,1],[1,0],[1,0],[0,-1]],CHOOSESADDLE:{104:[4,1],208:[2,8],713:[7,13],1114:[11,14]},SADDLEREMAINDER:{1:4,2:8,4:1,7:13,8:2,11:14,13:7,14:11},LABELDISTANCE:2,LABELINCREASE:10,LABELMIN:3,LABELMAX:10,LABELOPTIMIZER:{EDGECOST:1,ANGLECOST:1,NEIGHBORCOST:5,SAMELEVELFACTOR:10,SAMELEVELDISTANCE:5,MAXCOST:100,INITIALSEARCHPOINTS:10,ITERATIONS:5}}},{}],1013:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("./label_defaults"),a=t("../../components/color"),o=a.addOpacity,s=a.opacity,l=t("../../constants/filter_ops"),c=l.CONSTRAINT_REDUCTION,u=l.COMPARISON_OPS2;e.exports=function(t,e,r,a,l,f){var h,p,d,g=e.contours,m=r("contours.operation");(g._operation=c[m],function(t,e){var r;-1===u.indexOf(e.operation)?(t("contours.value",[0,1]),Array.isArray(e.value)?e.value.length>2?e.value=e.value.slice(2):0===e.length?e.value=[0,1]:e.length<2?(r=parseFloat(e.value[0]),e.value=[r,r+1]):e.value=[parseFloat(e.value[0]),parseFloat(e.value[1])]:n(e.value)&&(r=parseFloat(e.value),e.value=[r,r+1])):(t("contours.value",0),n(e.value)||(Array.isArray(e.value)?e.value=parseFloat(e.value[0]):e.value=0))}(r,g),"="===m?h=g.showlines=!0:(h=r("contours.showlines"),d=r("fillcolor",o((t.line||{}).color||l,.5))),h)&&(p=r("line.color",d&&s(d)?o(e.fillcolor,1):l),r("line.width",2),r("line.dash"));r("line.smoothing"),i(r,a,p,f)}},{"../../components/color":643,"../../constants/filter_ops":749,"./label_defaults":1023,"fast-isnumeric":241}],1014:[function(t,e,r){"use strict";var n=t("../../constants/filter_ops"),i=t("fast-isnumeric");function a(t,e){var r,a=Array.isArray(e);function o(t){return i(t)?+t:null}return-1!==n.COMPARISON_OPS2.indexOf(t)?r=o(a?e[0]:e):-1!==n.INTERVAL_OPS.indexOf(t)?r=a?[o(e[0]),o(e[1])]:[o(e),o(e)]:-1!==n.SET_OPS.indexOf(t)&&(r=a?e.map(o):[o(e)]),r}function o(t){return function(e){e=a(t,e);var r=Math.min(e[0],e[1]),n=Math.max(e[0],e[1]);return{start:r,end:n,size:n-r}}}function s(t){return function(e){return{start:e=a(t,e),end:1/0,size:1/0}}}e.exports={"[]":o("[]"),"][":o("]["),">":s(">"),"<":s("<"),"=":s("=")}},{"../../constants/filter_ops":749,"fast-isnumeric":241}],1015:[function(t,e,r){"use strict";e.exports=function(t,e,r,n){var i=n("contours.start"),a=n("contours.end"),o=!1===i||!1===a,s=r("contours.size");!(o?e.autocontour=!0:r("autocontour",!1))&&s||r("ncontours")}},{}],1016:[function(t,e,r){"use strict";var n=t("../../lib");function i(t){return n.extendFlat({},t,{edgepaths:n.extendDeep([],t.edgepaths),paths:n.extendDeep([],t.paths),starts:n.extendDeep([],t.starts)})}e.exports=function(t,e){var r,a,o,s=function(t){return t.reverse()},l=function(t){return t};switch(e){case"=":case"<":return t;case">":for(1!==t.length&&n.warn("Contour data invalid for the specified inequality operation."),a=t[0],r=0;r1e3){n.warn("Too many contours, clipping at 1000",t);break}return l}},{"../../lib":778,"./constraint_mapping":1014,"./end_plus":1019}],1019:[function(t,e,r){"use strict";e.exports=function(t){return t.end+t.size/1e6}},{}],1020:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./constants");function a(t,e,r,n){return Math.abs(t[0]-e[0])20&&e?208===t||1114===t?n=0===r[0]?1:-1:a=0===r[1]?1:-1:-1!==i.BOTTOMSTART.indexOf(t)?a=1:-1!==i.LEFTSTART.indexOf(t)?n=1:-1!==i.TOPSTART.indexOf(t)?a=-1:n=-1;return[n,a]}(f,r,e),p=[s(t,e,[-h[0],-h[1]])],d=t.z.length,g=t.z[0].length,m=e.slice(),v=h.slice();for(c=0;c<1e4;c++){if(f>20?(f=i.CHOOSESADDLE[f][(h[0]||h[1])<0?0:1],t.crossings[u]=i.SADDLEREMAINDER[f]):delete t.crossings[u],!(h=i.NEWDELTA[f])){n.log("Found bad marching index:",f,e,t.level);break}p.push(s(t,e,h)),e[0]+=h[0],e[1]+=h[1],u=e.join(","),a(p[p.length-1],p[p.length-2],o,l)&&p.pop();var y=h[0]&&(e[0]<0||e[0]>g-2)||h[1]&&(e[1]<0||e[1]>d-2);if(e[0]===m[0]&&e[1]===m[1]&&h[0]===v[0]&&h[1]===v[1]||r&&y)break;f=t.crossings[u]}1e4===c&&n.log("Infinite loop in contour?");var x,b,_,w,T,k,M,A,S,E,C,L,I,P,z,O=a(p[0],p[p.length-1],o,l),D=0,R=.2*t.smoothing,F=[],B=0;for(c=1;c=B;c--)if((x=F[c])=B&&x+F[b]A&&S--,t.edgepaths[S]=C.concat(p,E));break}V||(t.edgepaths[A]=p.concat(E))}for(A=0;At?0:1)+(e[0][1]>t?0:2)+(e[1][1]>t?0:4)+(e[1][0]>t?0:8);return 5===r||10===r?t>(e[0][0]+e[0][1]+e[1][0]+e[1][1])/4?5===r?713:1114:5===r?104:208:15===r?0:r}e.exports=function(t){var e,r,a,o,s,l,c,u,f,h=t[0].z,p=h.length,d=h[0].length,g=2===p||2===d;for(r=0;r=0&&(n=y,s=l):Math.abs(r[1]-n[1])<.01?Math.abs(r[1]-y[1])<.01&&(y[0]-r[0])*(n[0]-y[0])>=0&&(n=y,s=l):i.log("endpt to newendpt is not vert. or horz.",r,n,y)}if(r=n,s>=0)break;f+="L"+n}if(s===t.edgepaths.length){i.log("unclosed perimeter path");break}h=s,(d=-1===p.indexOf(h))&&(h=p[0],f+="Z")}for(h=0;hn.center?n.right-s:s-n.left)/(u+Math.abs(Math.sin(c)*o)),p=(l>n.middle?n.bottom-l:l-n.top)/(Math.abs(f)+Math.cos(c)*o);if(h<1||p<1)return 1/0;var d=v.EDGECOST*(1/(h-1)+1/(p-1));d+=v.ANGLECOST*c*c;for(var g=s-u,m=l-f,y=s+u,x=l+f,b=0;b2*v.MAXCOST)break;p&&(s/=2),l=(o=c-s/2)+1.5*s}if(h<=v.MAXCOST)return u},r.addLabelData=function(t,e,r,n){var i=e.fontSize,a=e.width+i/3,o=Math.max(0,e.height-i/3),s=t.x,l=t.y,c=t.theta,u=Math.sin(c),f=Math.cos(c),h=function(t,e){return[s+t*f-e*u,l+t*u+e*f]},p=[h(-a/2,-o/2),h(-a/2,o/2),h(a/2,o/2),h(a/2,-o/2)];r.push({text:e.text,x:s,y:l,dy:e.dy,theta:c,level:e.level,width:a,height:o}),n.push(p)},r.drawLabels=function(t,e,r,a,o){var l=t.selectAll("text").data(e,(function(t){return t.text+","+t.x+","+t.y+","+t.theta}));if(l.exit().remove(),l.enter().append("text").attr({"data-notex":1,"text-anchor":"middle"}).each((function(t){var e=t.x+Math.sin(t.theta)*t.dy,i=t.y-Math.cos(t.theta)*t.dy;n.select(this).text(t.text).attr({x:e,y:i,transform:"rotate("+180*t.theta/Math.PI+" "+e+" "+i+")"}).call(s.convertToTspans,r)})),o){for(var c="",u=0;ur.end&&(r.start=r.end=(r.start+r.end)/2),t._input.contours||(t._input.contours={}),i.extendFlat(t._input.contours,{start:r.start,end:r.end,size:r.size}),t._input.autocontour=!0}else if("constraint"!==r.type){var c,u=r.start,f=r.end,h=t._input.contours;if(u>f&&(r.start=h.start=f,f=r.end=h.end=u,u=r.start),!(r.size>0))c=u===f?1:a(u,f,t.ncontours).dtick,h.size=r.size=c}}},{"../../lib":778,"../../plots/cartesian/axes":828}],1028:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../components/drawing"),a=t("../heatmap/style"),o=t("./make_color_map");e.exports=function(t){var e=n.select(t).selectAll("g.contour");e.style("opacity",(function(t){return t[0].trace.opacity})),e.each((function(t){var e=n.select(this),r=t[0].trace,a=r.contours,s=r.line,l=a.size||1,c=a.start,u="constraint"===a.type,f=!u&&"lines"===a.coloring,h=!u&&"fill"===a.coloring,p=f||h?o(r):null;e.selectAll("g.contourlevel").each((function(t){n.select(this).selectAll("path").call(i.lineGroupStyle,s.width,f?p(t.level):s.color,s.dash)}));var d=a.labelfont;if(e.selectAll("g.contourlabels text").each((function(t){i.font(n.select(this),{family:d.family,size:d.size,color:d.color||(f?p(t.level):s.color)})})),u)e.selectAll("g.contourfill path").style("fill",r.fillcolor);else if(h){var g;e.selectAll("g.contourfill path").style("fill",(function(t){return void 0===g&&(g=t.level),p(t.level+.5*l)})),void 0===g&&(g=c),e.selectAll("g.contourbg path").style("fill",p(g-.5*l))}})),a(t)}},{"../../components/drawing":665,"../heatmap/style":1077,"./make_color_map":1024,d3:169}],1029:[function(t,e,r){"use strict";var n=t("../../components/colorscale/defaults"),i=t("./label_defaults");e.exports=function(t,e,r,a,o){var s,l=r("contours.coloring"),c="";"fill"===l&&(s=r("contours.showlines")),!1!==s&&("lines"!==l&&(c=r("line.color","#000")),r("line.width",.5),r("line.dash")),"none"!==l&&(!0!==t.showlegend&&(e.showlegend=!1),e._dfltShowLegend=!1,n(t,e,a,r,{prefix:"",cLetter:"z"})),r("line.smoothing"),i(r,a,c,o)}},{"../../components/colorscale/defaults":653,"./label_defaults":1023}],1030:[function(t,e,r){"use strict";var n=t("../heatmap/attributes"),i=t("../contour/attributes"),a=t("../../components/colorscale/attributes"),o=t("../../lib/extend").extendFlat,s=i.contours;e.exports=o({carpet:{valType:"string",editType:"calc"},z:n.z,a:n.x,a0:n.x0,da:n.dx,b:n.y,b0:n.y0,db:n.dy,text:n.text,hovertext:n.hovertext,transpose:n.transpose,atype:n.xtype,btype:n.ytype,fillcolor:i.fillcolor,autocontour:i.autocontour,ncontours:i.ncontours,contours:{type:s.type,start:s.start,end:s.end,size:s.size,coloring:{valType:"enumerated",values:["fill","lines","none"],dflt:"fill",editType:"calc"},showlines:s.showlines,showlabels:s.showlabels,labelfont:s.labelfont,labelformat:s.labelformat,operation:s.operation,value:s.value,editType:"calc",impliedEdits:{autocontour:!1}},line:{color:i.line.color,width:i.line.width,dash:i.line.dash,smoothing:i.line.smoothing,editType:"plot"},transforms:void 0},a("",{cLetter:"z",autoColorDflt:!1}))},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../contour/attributes":1008,"../heatmap/attributes":1065}],1031:[function(t,e,r){"use strict";var n=t("../../components/colorscale/calc"),i=t("../../lib"),a=t("../heatmap/convert_column_xyz"),o=t("../heatmap/clean_2d_array"),s=t("../heatmap/interp2d"),l=t("../heatmap/find_empties"),c=t("../heatmap/make_bound_array"),u=t("./defaults"),f=t("../carpet/lookup_carpetid"),h=t("../contour/set_contours");e.exports=function(t,e){var r=e._carpetTrace=f(t,e);if(r&&r.visible&&"legendonly"!==r.visible){if(!e.a||!e.b){var p=t.data[r.index],d=t.data[e.index];d.a||(d.a=p.a),d.b||(d.b=p.b),u(d,e,e._defaultColor,t._fullLayout)}var g=function(t,e){var r,u,f,h,p,d,g,m=e._carpetTrace,v=m.aaxis,y=m.baxis;v._minDtick=0,y._minDtick=0,i.isArray1D(e.z)&&a(e,v,y,"a","b",["z"]);r=e._a=e._a||e.a,h=e._b=e._b||e.b,r=r?v.makeCalcdata(e,"_a"):[],h=h?y.makeCalcdata(e,"_b"):[],u=e.a0||0,f=e.da||1,p=e.b0||0,d=e.db||1,g=e._z=o(e._z||e.z,e.transpose),e._emptypoints=l(g),s(g,e._emptypoints);var x=i.maxRowLength(g),b="scaled"===e.xtype?"":r,_=c(e,b,u,f,x,v),w="scaled"===e.ytype?"":h,T=c(e,w,p,d,g.length,y),k={a:_,b:T,z:g};"levels"===e.contours.type&&"none"!==e.contours.coloring&&n(t,e,{vals:g,containerStr:"",cLetter:"z"});return[k]}(t,e);return h(e,e._z),g}}},{"../../components/colorscale/calc":651,"../../lib":778,"../carpet/lookup_carpetid":981,"../contour/set_contours":1027,"../heatmap/clean_2d_array":1067,"../heatmap/convert_column_xyz":1069,"../heatmap/find_empties":1071,"../heatmap/interp2d":1074,"../heatmap/make_bound_array":1075,"./defaults":1032}],1032:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../heatmap/xyz_defaults"),a=t("./attributes"),o=t("../contour/constraint_defaults"),s=t("../contour/contours_defaults"),l=t("../contour/style_defaults");e.exports=function(t,e,r,c){function u(r,i){return n.coerce(t,e,a,r,i)}if(u("carpet"),t.a&&t.b){if(!i(t,e,u,c,"a","b"))return void(e.visible=!1);u("text"),"constraint"===u("contours.type")?o(t,e,u,c,r,{hasHover:!1}):(s(t,e,u,(function(r){return n.coerce2(t,e,a,r)})),l(t,e,u,c,{hasHover:!1}))}else e._defaultColor=r,e._length=null}},{"../../lib":778,"../contour/constraint_defaults":1013,"../contour/contours_defaults":1015,"../contour/style_defaults":1029,"../heatmap/xyz_defaults":1079,"./attributes":1030}],1033:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),colorbar:t("../contour/colorbar"),calc:t("./calc"),plot:t("./plot"),style:t("../contour/style"),moduleType:"trace",name:"contourcarpet",basePlotModule:t("../../plots/cartesian"),categories:["cartesian","svg","carpet","contour","symbols","showLegend","hasLines","carpetDependent","noHover","noSortingByValue"],meta:{}}},{"../../plots/cartesian":841,"../contour/colorbar":1011,"../contour/style":1028,"./attributes":1030,"./calc":1031,"./defaults":1032,"./plot":1034}],1034:[function(t,e,r){"use strict";var n=t("d3"),i=t("../carpet/map_1d_array"),a=t("../carpet/makepath"),o=t("../../components/drawing"),s=t("../../lib"),l=t("../contour/make_crossings"),c=t("../contour/find_all_paths"),u=t("../contour/plot"),f=t("../contour/constants"),h=t("../contour/convert_to_constraints"),p=t("../contour/empty_pathinfo"),d=t("../contour/close_boundaries"),g=t("../carpet/lookup_carpetid"),m=t("../carpet/axis_aligned_line");function v(t,e,r){var n=t.getPointAtLength(e),i=t.getPointAtLength(r),a=i.x-n.x,o=i.y-n.y,s=Math.sqrt(a*a+o*o);return[a/s,o/s]}function y(t){var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[t[0]/e,t[1]/e]}function x(t,e){var r=Math.abs(t[0]*e[0]+t[1]*e[1]);return Math.sqrt(1-r*r)/r}e.exports=function(t,e,r,b){var _=e.xaxis,w=e.yaxis;s.makeTraceGroups(b,r,"contour").each((function(r){var b=n.select(this),T=r[0],k=T.trace,M=k._carpetTrace=g(t,k),A=t.calcdata[M.index][0];if(M.visible&&"legendonly"!==M.visible){var S=T.a,E=T.b,C=k.contours,L=p(C,e,T),I="constraint"===C.type,P=C._operation,z=I?"="===P?"lines":"fill":C.coloring,O=[[S[0],E[E.length-1]],[S[S.length-1],E[E.length-1]],[S[S.length-1],E[0]],[S[0],E[0]]];l(L);var D=1e-8*(S[S.length-1]-S[0]),R=1e-8*(E[E.length-1]-E[0]);c(L,D,R);var F,B,N,j,U=L;"constraint"===C.type&&(U=h(L,P)),function(t,e){var r,n,i,a,o,s,l,c,u;for(r=0;r=0;j--)F=A.clipsegments[j],B=i([],F.x,_.c2p),N=i([],F.y,w.c2p),B.reverse(),N.reverse(),V.push(a(B,N,F.bicubic));var q="M"+V.join("L")+"Z";!function(t,e,r,n,o,l){var c,u,f,h,p=s.ensureSingle(t,"g","contourbg").selectAll("path").data("fill"!==l||o?[]:[0]);p.enter().append("path"),p.exit().remove();var d=[];for(h=0;h=0&&(h=C,d=g):Math.abs(f[1]-h[1])=0&&(h=C,d=g):s.log("endpt to newendpt is not vert. or horz.",f,h,C)}if(d>=0)break;y+=S(f,h),f=h}if(d===e.edgepaths.length){s.log("unclosed perimeter path");break}u=d,(b=-1===x.indexOf(u))&&(u=x[0],y+=S(f,h)+"Z",f=null)}for(u=0;um&&(n.max=m);n.len=n.max-n.min}(this,r,t,n,c,e.height),!(n.len<(e.width+e.height)*f.LABELMIN)))for(var i=Math.min(Math.ceil(n.len/P),f.LABELMAX),a=0;a0?+p[u]:0),f.push({type:"Feature",geometry:{type:"Point",coordinates:v},properties:y})}}var b=o.extractOpts(e),_=b.reversescale?o.flipScale(b.colorscale):b.colorscale,w=_[0][1],T=["interpolate",["linear"],["heatmap-density"],0,a.opacity(w)<1?w:a.addOpacity(w,0)];for(u=1;u<_.length;u++)T.push(_[u][0],_[u][1]);var k=["interpolate",["linear"],["get","z"],b.min,0,b.max,1];return i.extendFlat(c.heatmap.paint,{"heatmap-weight":d?k:1/(b.max-b.min),"heatmap-color":T,"heatmap-radius":g?{type:"identity",property:"r"}:e.radius,"heatmap-opacity":e.opacity}),c.geojson={type:"FeatureCollection",features:f},c.heatmap.layout.visibility="visible",c}},{"../../components/color":643,"../../components/colorscale":655,"../../constants/numerical":753,"../../lib":778,"../../lib/geojson_utils":772,"fast-isnumeric":241}],1038:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../components/colorscale/defaults"),a=t("./attributes");e.exports=function(t,e,r,o){function s(r,i){return n.coerce(t,e,a,r,i)}var l=s("lon")||[],c=s("lat")||[],u=Math.min(l.length,c.length);u?(e._length=u,s("z"),s("radius"),s("below"),s("text"),s("hovertext"),s("hovertemplate"),i(t,e,o,s,{prefix:"",cLetter:"z"})):e.visible=!1}},{"../../components/colorscale/defaults":653,"../../lib":778,"./attributes":1035}],1039:[function(t,e,r){"use strict";e.exports=function(t,e){return t.lon=e.lon,t.lat=e.lat,t.z=e.z,t}},{}],1040:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../plots/cartesian/axes"),a=t("../scattermapbox/hover");e.exports=function(t,e,r){var o=a(t,e,r);if(o){var s=o[0],l=s.cd,c=l[0].trace,u=l[s.index];if(delete s.color,"z"in u){var f=s.subplot.mockAxis;s.z=u.z,s.zLabel=i.tickText(f,f.c2l(u.z),"hover").text}return s.extraText=function(t,e,r){if(t.hovertemplate)return;var i=(e.hi||t.hoverinfo).split("+"),a=-1!==i.indexOf("all"),o=-1!==i.indexOf("lon"),s=-1!==i.indexOf("lat"),l=e.lonlat,c=[];function u(t){return t+"\xb0"}a||o&&s?c.push("("+u(l[0])+", "+u(l[1])+")"):o?c.push(r.lon+u(l[0])):s&&c.push(r.lat+u(l[1]));(a||-1!==i.indexOf("text"))&&n.fillText(e,t,c);return c.join("
    ")}(c,u,l[0].t.labels),[s]}}},{"../../lib":778,"../../plots/cartesian/axes":828,"../scattermapbox/hover":1257}],1041:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),colorbar:t("../heatmap/colorbar"),formatLabels:t("../scattermapbox/format_labels"),calc:t("./calc"),plot:t("./plot"),hoverPoints:t("./hover"),eventData:t("./event_data"),getBelow:function(t,e){for(var r=e.getMapLayers(),n=0;n=0;r--)t.removeLayer(e[r][1])},o.dispose=function(){var t=this.subplot.map;this._removeLayers(),t.removeSource(this.sourceId)},e.exports=function(t,e){var r=e[0].trace,i=new a(t,r.uid),o=i.sourceId,s=n(e),l=i.below=t.belowLookup["trace-"+r.uid];return t.map.addSource(o,{type:"geojson",data:s.geojson}),i._addLayers(s,l),i}},{"../../plots/mapbox/constants":883,"./convert":1037}],1043:[function(t,e,r){"use strict";var n=t("../../lib");e.exports=function(t,e){for(var r=0;r"),s.color=function(t,e){var r=t.marker,i=e.mc||r.color,a=e.mlc||r.line.color,o=e.mlw||r.line.width;if(n(i))return i;if(n(a)&&o)return a}(c,f),[s]}}},{"../../components/color":643,"../../lib":778,"../bar/hover":928}],1051:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),layoutAttributes:t("./layout_attributes"),supplyDefaults:t("./defaults").supplyDefaults,crossTraceDefaults:t("./defaults").crossTraceDefaults,supplyLayoutDefaults:t("./layout_defaults"),calc:t("./calc"),crossTraceCalc:t("./cross_trace_calc"),plot:t("./plot"),style:t("./style").style,hoverPoints:t("./hover"),eventData:t("./event_data"),selectPoints:t("../bar/select"),moduleType:"trace",name:"funnel",basePlotModule:t("../../plots/cartesian"),categories:["bar-like","cartesian","svg","oriented","showLegend","zoomScale"],meta:{}}},{"../../plots/cartesian":841,"../bar/select":933,"./attributes":1044,"./calc":1045,"./cross_trace_calc":1047,"./defaults":1048,"./event_data":1049,"./hover":1050,"./layout_attributes":1052,"./layout_defaults":1053,"./plot":1054,"./style":1055}],1052:[function(t,e,r){"use strict";e.exports={funnelmode:{valType:"enumerated",values:["stack","group","overlay"],dflt:"stack",editType:"calc"},funnelgap:{valType:"number",min:0,max:1,editType:"calc"},funnelgroupgap:{valType:"number",min:0,max:1,dflt:0,editType:"calc"}}},{}],1053:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./layout_attributes");e.exports=function(t,e,r){var a=!1;function o(r,a){return n.coerce(t,e,i,r,a)}for(var s=0;s path").each((function(t){if(!t.isBlank){var e=s.marker;n.select(this).call(a.fill,t.mc||e.color).call(a.stroke,t.mlc||e.line.color).call(i.dashLine,e.line.dash,t.mlw||e.line.width).style("opacity",s.selectedpoints&&!t.selected?o:1)}})),c(r,s,t),r.selectAll(".regions").each((function(){n.select(this).selectAll("path").style("stroke-width",0).call(a.fill,s.connector.fillcolor)})),r.selectAll(".lines").each((function(){var t=s.connector.line;i.lineGroupStyle(n.select(this).selectAll("path"),t.width,t.color,t.dash)}))}))}}},{"../../components/color":643,"../../components/drawing":665,"../../constants/interactions":752,"../bar/style":935,"../bar/uniform_text":937,d3:169}],1056:[function(t,e,r){"use strict";var n=t("../pie/attributes"),i=t("../../plots/attributes"),a=t("../../plots/domain").attributes,o=t("../../plots/template_attributes").hovertemplateAttrs,s=t("../../plots/template_attributes").texttemplateAttrs,l=t("../../lib/extend").extendFlat;e.exports={labels:n.labels,label0:n.label0,dlabel:n.dlabel,values:n.values,marker:{colors:n.marker.colors,line:{color:l({},n.marker.line.color,{dflt:null}),width:l({},n.marker.line.width,{dflt:1}),editType:"calc"},editType:"calc"},text:n.text,hovertext:n.hovertext,scalegroup:l({},n.scalegroup,{}),textinfo:l({},n.textinfo,{flags:["label","text","value","percent"]}),texttemplate:s({editType:"plot"},{keys:["label","color","value","text","percent"]}),hoverinfo:l({},i.hoverinfo,{flags:["label","text","value","percent","name"]}),hovertemplate:o({},{keys:["label","color","value","text","percent"]}),textposition:l({},n.textposition,{values:["inside","none"],dflt:"inside"}),textfont:n.textfont,insidetextfont:n.insidetextfont,title:{text:n.title.text,font:n.title.font,position:l({},n.title.position,{values:["top left","top center","top right"],dflt:"top center"}),editType:"plot"},domain:a({name:"funnelarea",trace:!0,editType:"calc"}),aspectratio:{valType:"number",min:0,dflt:1,editType:"plot"},baseratio:{valType:"number",min:0,max:1,dflt:.333,editType:"plot"}}},{"../../lib/extend":768,"../../plots/attributes":824,"../../plots/domain":855,"../../plots/template_attributes":906,"../pie/attributes":1161}],1057:[function(t,e,r){"use strict";var n=t("../../plots/plots");r.name="funnelarea",r.plot=function(t,e,i,a){n.plotBasePlot(r.name,t,e,i,a)},r.clean=function(t,e,i,a){n.cleanBasePlot(r.name,t,e,i,a)}},{"../../plots/plots":891}],1058:[function(t,e,r){"use strict";var n=t("../pie/calc");e.exports={calc:function(t,e){return n.calc(t,e)},crossTraceCalc:function(t){n.crossTraceCalc(t,{type:"funnelarea"})}}},{"../pie/calc":1163}],1059:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./attributes"),a=t("../../plots/domain").defaults,o=t("../bar/defaults").handleText,s=t("../pie/defaults").handleLabelsAndValues;e.exports=function(t,e,r,l){function c(r,a){return n.coerce(t,e,i,r,a)}var u=c("labels"),f=c("values"),h=s(u,f),p=h.len;if(e._hasLabels=h.hasLabels,e._hasValues=h.hasValues,!e._hasLabels&&e._hasValues&&(c("label0"),c("dlabel")),p){e._length=p,c("marker.line.width")&&c("marker.line.color",l.paper_bgcolor),c("marker.colors"),c("scalegroup");var d,g=c("text"),m=c("texttemplate");if(m||(d=c("textinfo",Array.isArray(g)?"text+percent":"percent")),c("hovertext"),c("hovertemplate"),m||d&&"none"!==d){var v=c("textposition");o(t,e,l,c,v,{moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1})}a(e,l,c),c("title.text")&&(c("title.position"),n.coerceFont(c,"title.font",l.font)),c("aspectratio"),c("baseratio")}else e.visible=!1}},{"../../lib":778,"../../plots/domain":855,"../bar/defaults":925,"../pie/defaults":1164,"./attributes":1056}],1060:[function(t,e,r){"use strict";e.exports={moduleType:"trace",name:"funnelarea",basePlotModule:t("./base_plot"),categories:["pie-like","funnelarea","showLegend"],attributes:t("./attributes"),layoutAttributes:t("./layout_attributes"),supplyDefaults:t("./defaults"),supplyLayoutDefaults:t("./layout_defaults"),calc:t("./calc").calc,crossTraceCalc:t("./calc").crossTraceCalc,plot:t("./plot"),style:t("./style"),styleOne:t("../pie/style_one"),meta:{}}},{"../pie/style_one":1172,"./attributes":1056,"./base_plot":1057,"./calc":1058,"./defaults":1059,"./layout_attributes":1061,"./layout_defaults":1062,"./plot":1063,"./style":1064}],1061:[function(t,e,r){"use strict";var n=t("../pie/layout_attributes").hiddenlabels;e.exports={hiddenlabels:n,funnelareacolorway:{valType:"colorlist",editType:"calc"},extendfunnelareacolors:{valType:"boolean",dflt:!0,editType:"calc"}}},{"../pie/layout_attributes":1168}],1062:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./layout_attributes");e.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}r("hiddenlabels"),r("funnelareacolorway",e.colorway),r("extendfunnelareacolors")}},{"../../lib":778,"./layout_attributes":1061}],1063:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../components/drawing"),a=t("../../lib"),o=a.strScale,s=a.strTranslate,l=t("../../lib/svg_text_utils"),c=t("../bar/plot").toMoveInsideBar,u=t("../bar/uniform_text"),f=u.recordMinTextSize,h=u.clearMinTextSize,p=t("../pie/helpers"),d=t("../pie/plot"),g=d.attachFxHandlers,m=d.determineInsideTextFont,v=d.layoutAreas,y=d.prerenderTitles,x=d.positionTitleOutside,b=d.formatSliceLabel;function _(t,e){return"l"+(e[0]-t[0])+","+(e[1]-t[1])}e.exports=function(t,e){var r=t._fullLayout;h("funnelarea",r),y(e,t),v(e,r._size),a.makeTraceGroups(r._funnelarealayer,e,"trace").each((function(e){var u=n.select(this),h=e[0],d=h.trace;!function(t){if(!t.length)return;var e=t[0],r=e.trace,n=r.aspectratio,i=r.baseratio;i>.999&&(i=.999);var a,o=Math.pow(i,2),s=e.vTotal,l=s,c=s*o/(1-o)/s;function u(){var t,e={x:t=Math.sqrt(c),y:-t};return[e.x,e.y]}var f,h,p=[];for(p.push(u()),f=t.length-1;f>-1;f--)if(!(h=t[f]).hidden){var d=h.v/l;c+=d,p.push(u())}var g=1/0,m=-1/0;for(f=0;f-1;f--)if(!(h=t[f]).hidden){var M=p[k+=1][0],A=p[k][1];h.TL=[-M,A],h.TR=[M,A],h.BL=w,h.BR=T,h.pxmid=(S=h.TR,E=h.BR,[.5*(S[0]+E[0]),.5*(S[1]+E[1])]),w=h.TL,T=h.TR}var S,E}(e),u.each((function(){var u=n.select(this).selectAll("g.slice").data(e);u.enter().append("g").classed("slice",!0),u.exit().remove(),u.each((function(o,s){if(o.hidden)n.select(this).selectAll("path,g").remove();else{o.pointNumber=o.i,o.curveNumber=d.index;var u=h.cx,v=h.cy,y=n.select(this),x=y.selectAll("path.surface").data([o]);x.enter().append("path").classed("surface",!0).style({"pointer-events":"all"}),y.call(g,t,e);var w="M"+(u+o.TR[0])+","+(v+o.TR[1])+_(o.TR,o.BR)+_(o.BR,o.BL)+_(o.BL,o.TL)+"Z";x.attr("d",w),b(t,o,h);var T=p.castOption(d.textposition,o.pts),k=y.selectAll("g.slicetext").data(o.text&&"none"!==T?[0]:[]);k.enter().append("g").classed("slicetext",!0),k.exit().remove(),k.each((function(){var h=a.ensureSingle(n.select(this),"text","",(function(t){t.attr("data-notex",1)})),p=a.ensureUniformFontSize(t,m(d,o,r.font));h.text(o.text).attr({class:"slicetext",transform:"","text-anchor":"middle"}).call(i.font,p).call(l.convertToTspans,t);var g,y,x,b=i.bBox(h.node()),_=Math.min(o.BL[1],o.BR[1])+v,w=Math.max(o.TL[1],o.TR[1])+v;y=Math.max(o.TL[0],o.BL[0])+u,x=Math.min(o.TR[0],o.BR[0])+u,(g=c(y,x,_,w,b,{isHorizontal:!0,constrained:!0,angle:0,anchor:"middle"})).fontSize=p.size,f(d.type,g,r),e[s].transform=g,h.attr("transform",a.getTextTransform(g))}))}}));var v=n.select(this).selectAll("g.titletext").data(d.title.text?[0]:[]);v.enter().append("g").classed("titletext",!0),v.exit().remove(),v.each((function(){var e=a.ensureSingle(n.select(this),"text","",(function(t){t.attr("data-notex",1)})),c=d.title.text;d._meta&&(c=a.templateString(c,d._meta)),e.text(c).attr({class:"titletext",transform:"","text-anchor":"middle"}).call(i.font,d.title.font).call(l.convertToTspans,t);var u=x(h,r._size);e.attr("transform",s(u.x,u.y)+o(Math.min(1,u.scale))+s(u.tx,u.ty))}))}))}))}},{"../../components/drawing":665,"../../lib":778,"../../lib/svg_text_utils":803,"../bar/plot":932,"../bar/uniform_text":937,"../pie/helpers":1166,"../pie/plot":1170,d3:169}],1064:[function(t,e,r){"use strict";var n=t("d3"),i=t("../pie/style_one"),a=t("../bar/uniform_text").resizeText;e.exports=function(t){var e=t._fullLayout._funnelarealayer.selectAll(".trace");a(t,e,"funnelarea"),e.each((function(t){var e=t[0].trace,r=n.select(this);r.style({opacity:e.opacity}),r.selectAll("path.surface").each((function(t){n.select(this).call(i,t,e)}))}))}},{"../bar/uniform_text":937,"../pie/style_one":1172,d3:169}],1065:[function(t,e,r){"use strict";var n=t("../scatter/attributes"),i=t("../../plots/attributes"),a=t("../../plots/template_attributes").hovertemplateAttrs,o=t("../../components/colorscale/attributes"),s=(t("../../constants/docs").FORMAT_LINK,t("../../lib/extend").extendFlat);e.exports=s({z:{valType:"data_array",editType:"calc"},x:s({},n.x,{impliedEdits:{xtype:"array"}}),x0:s({},n.x0,{impliedEdits:{xtype:"scaled"}}),dx:s({},n.dx,{impliedEdits:{xtype:"scaled"}}),y:s({},n.y,{impliedEdits:{ytype:"array"}}),y0:s({},n.y0,{impliedEdits:{ytype:"scaled"}}),dy:s({},n.dy,{impliedEdits:{ytype:"scaled"}}),xperiod:s({},n.xperiod,{impliedEdits:{xtype:"scaled"}}),yperiod:s({},n.yperiod,{impliedEdits:{ytype:"scaled"}}),xperiod0:s({},n.xperiod0,{impliedEdits:{xtype:"scaled"}}),yperiod0:s({},n.yperiod0,{impliedEdits:{ytype:"scaled"}}),xperiodalignment:s({},n.xperiodalignment,{impliedEdits:{xtype:"scaled"}}),yperiodalignment:s({},n.yperiodalignment,{impliedEdits:{ytype:"scaled"}}),text:{valType:"data_array",editType:"calc"},hovertext:{valType:"data_array",editType:"calc"},transpose:{valType:"boolean",dflt:!1,editType:"calc"},xtype:{valType:"enumerated",values:["array","scaled"],editType:"calc+clearAxisTypes"},ytype:{valType:"enumerated",values:["array","scaled"],editType:"calc+clearAxisTypes"},zsmooth:{valType:"enumerated",values:["fast","best",!1],dflt:!1,editType:"calc"},hoverongaps:{valType:"boolean",dflt:!0,editType:"none"},connectgaps:{valType:"boolean",editType:"calc"},xgap:{valType:"number",dflt:0,min:0,editType:"plot"},ygap:{valType:"number",dflt:0,min:0,editType:"plot"},zhoverformat:{valType:"string",dflt:"",editType:"none"},hovertemplate:a(),showlegend:s({},i.showlegend,{dflt:!1})},{transforms:void 0},o("",{cLetter:"z",autoColorDflt:!1}))},{"../../components/colorscale/attributes":650,"../../constants/docs":748,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/template_attributes":906,"../scatter/attributes":1187}],1066:[function(t,e,r){"use strict";var n=t("../../registry"),i=t("../../lib"),a=t("../../plots/cartesian/axes"),o=t("../../plots/cartesian/align_period"),s=t("../histogram2d/calc"),l=t("../../components/colorscale/calc"),c=t("./convert_column_xyz"),u=t("./clean_2d_array"),f=t("./interp2d"),h=t("./find_empties"),p=t("./make_bound_array"),d=t("../../constants/numerical").BADNUM;function g(t){for(var e=[],r=t.length,n=0;nD){z("x scale is not linear");break}}if(x.length&&"fast"===I){var R=(x[x.length-1]-x[0])/(x.length-1),F=Math.abs(R/100);for(k=0;kF){z("y scale is not linear");break}}}var B=i.maxRowLength(T),N="scaled"===e.xtype?"":r,j=p(e,N,m,v,B,A),U="scaled"===e.ytype?"":x,V=p(e,U,b,_,T.length,S);L||(e._extremes[A._id]=a.findExtremes(A,j),e._extremes[S._id]=a.findExtremes(S,V));var q={x:j,y:V,z:T,text:e._text||e.text,hovertext:e._hovertext||e.hovertext};if(e.xperiodalignment&&y&&(q.orig_x=y),e.yperiodalignment&&w&&(q.orig_y=w),N&&N.length===j.length-1&&(q.xCenter=N),U&&U.length===V.length-1&&(q.yCenter=U),C&&(q.xRanges=M.xRanges,q.yRanges=M.yRanges,q.pts=M.pts),E||l(t,e,{vals:T,cLetter:"z"}),E&&e.contours&&"heatmap"===e.contours.coloring){var H={type:"contour"===e.type?"heatmap":"histogram2d",xcalendar:e.xcalendar,ycalendar:e.ycalendar};q.xfill=p(H,N,m,v,B,A),q.yfill=p(H,U,b,_,T.length,S)}return[q]}},{"../../components/colorscale/calc":651,"../../constants/numerical":753,"../../lib":778,"../../plots/cartesian/align_period":825,"../../plots/cartesian/axes":828,"../../registry":911,"../histogram2d/calc":1098,"./clean_2d_array":1067,"./convert_column_xyz":1069,"./find_empties":1071,"./interp2d":1074,"./make_bound_array":1075}],1067:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("../../lib"),a=t("../../constants/numerical").BADNUM;e.exports=function(t,e,r,o){var s,l,c,u,f,h;function p(t){if(n(t))return+t}if(e&&e.transpose){for(s=0,f=0;f=0;o--)(s=((f[[(r=(a=h[o])[0])-1,i=a[1]]]||g)[2]+(f[[r+1,i]]||g)[2]+(f[[r,i-1]]||g)[2]+(f[[r,i+1]]||g)[2])/20)&&(l[a]=[r,i,s],h.splice(o,1),c=!0);if(!c)throw"findEmpties iterated with no new neighbors";for(a in l)f[a]=l[a],u.push(l[a])}return u.sort((function(t,e){return e[2]-t[2]}))}},{"../../lib":778}],1072:[function(t,e,r){"use strict";var n=t("../../components/fx"),i=t("../../lib"),a=t("../../plots/cartesian/axes"),o=t("../../components/colorscale").extractOpts;e.exports=function(t,e,r,s,l,c){var u,f,h,p,d=t.cd[0],g=d.trace,m=t.xa,v=t.ya,y=d.x,x=d.y,b=d.z,_=d.xCenter,w=d.yCenter,T=d.zmask,k=g.zhoverformat,M=y,A=x;if(!1!==t.index){try{h=Math.round(t.index[1]),p=Math.round(t.index[0])}catch(e){return void i.error("Error hovering on heatmap, pointNumber must be [row,col], found:",t.index)}if(h<0||h>=b[0].length||p<0||p>b.length)return}else{if(n.inbox(e-y[0],e-y[y.length-1],0)>0||n.inbox(r-x[0],r-x[x.length-1],0)>0)return;if(c){var S;for(M=[2*y[0]-y[1]],S=1;Sg&&(v=Math.max(v,Math.abs(t[a][o]-d)/(m-g))))}return v}e.exports=function(t,e){var r,i=1;for(o(t,e),r=0;r.01;r++)i=o(t,e,a(i));return i>.01&&n.log("interp2d didn't converge quickly",i),t}},{"../../lib":778}],1075:[function(t,e,r){"use strict";var n=t("../../registry"),i=t("../../lib").isArrayOrTypedArray;e.exports=function(t,e,r,a,o,s){var l,c,u,f=[],h=n.traceIs(t,"contour"),p=n.traceIs(t,"histogram"),d=n.traceIs(t,"gl2d");if(i(e)&&e.length>1&&!p&&"category"!==s.type){var g=e.length;if(!(g<=o))return h?e.slice(0,o):e.slice(0,o+1);if(h||d)f=e.slice(0,o);else if(1===o)f=[e[0]-.5,e[0]+.5];else{for(f=[1.5*e[0]-.5*e[1]],u=1;u0;)h=p.c2p(T[y]),y--;for(h0;)v=d.c2p(k[y]),y--;if(v0&&(a=!0);for(var l=0;la){var o=a-r[t];return r[t]=a,o}}return 0},max:function(t,e,r,i){var a=i[e];if(n(a)){if(a=Number(a),!n(r[t]))return r[t]=a,a;if(r[t]c?t>o?t>1.1*i?i:t>1.1*a?a:o:t>s?s:t>l?l:c:Math.pow(10,Math.floor(Math.log(t)/Math.LN10))}function p(t,e,r,n,a,s){if(n&&t>o){var l=d(e,a,s),c=d(r,a,s),u=t===i?0:1;return l[u]!==c[u]}return Math.floor(r/t)-Math.floor(e/t)>.1}function d(t,e,r){var n=e.c2d(t,i,r).split("-");return""===n[0]&&(n.unshift(),n[0]="-"+n[0]),n}e.exports=function(t,e,r,n,a){var s,l,c=-1.1*e,h=-.1*e,p=t-h,d=r[0],g=r[1],m=Math.min(f(d+h,d+p,n,a),f(g+h,g+p,n,a)),v=Math.min(f(d+c,d+h,n,a),f(g+c,g+h,n,a));if(m>v&&vo){var y=s===i?1:6,x=s===i?"M12":"M1";return function(e,r){var o=n.c2d(e,i,a),s=o.indexOf("-",y);s>0&&(o=o.substr(0,s));var c=n.d2c(o,0,a);if(cr.r2l(B)&&(j=o.tickIncrement(j,b.size,!0,p)),O.start=r.l2r(j),F||i.nestedProperty(e,v+".start").set(O.start)}var U=b.end,V=r.r2l(z.end),q=void 0!==V;if((b.endFound||q)&&V!==r.r2l(U)){var H=q?V:i.aggNums(Math.max,null,d);O.end=r.l2r(H),q||i.nestedProperty(e,v+".start").set(O.end)}var G="autobin"+s;return!1===e._input[G]&&(e._input[v]=i.extendFlat({},e[v]||{}),delete e._input[G],delete e[G]),[O,d]}e.exports={calc:function(t,e){var r,a,p,d,g=[],m=[],v=o.getFromId(t,"h"===e.orientation?e.yaxis:e.xaxis),y="h"===e.orientation?"y":"x",x={x:"y",y:"x"}[y],b=e[y+"calendar"],_=e.cumulative,w=h(t,e,v,y),T=w[0],k=w[1],M="string"==typeof T.size,A=[],S=M?A:T,E=[],C=[],L=[],I=0,P=e.histnorm,z=e.histfunc,O=-1!==P.indexOf("density");_.enabled&&O&&(P=P.replace(/ ?density$/,""),O=!1);var D,R="max"===z||"min"===z?null:0,F=l.count,B=c[P],N=!1,j=function(t){return v.r2c(t,0,b)};for(i.isArrayOrTypedArray(e[x])&&"count"!==z&&(D=e[x],N="avg"===z,F=l[z]),r=j(T.start),p=j(T.end)+(r-o.tickIncrement(r,T.size,!1,b))/1e6;r=0&&d=0;n--)s(n);else if("increasing"===e){for(n=1;n=0;n--)t[n]+=t[n+1];"exclude"===r&&(t.push(0),t.shift())}}(m,_.direction,_.currentbin);var J=Math.min(g.length,m.length),K=[],Q=0,$=J-1;for(r=0;r=Q;r--)if(m[r]){$=r;break}for(r=Q;r<=$;r++)if(n(g[r])&&n(m[r])){var tt={p:g[r],s:m[r],b:0};_.enabled||(tt.pts=L[r],G?tt.ph0=tt.ph1=L[r].length?k[L[r][0]]:g[r]:(e._computePh=!0,tt.ph0=q(A[r]),tt.ph1=q(A[r+1],!0))),K.push(tt)}return 1===K.length&&(K[0].width1=o.tickIncrement(K[0].p,T.size,!1,b)-K[0].p),s(K,e),i.isArrayOrTypedArray(e.selectedpoints)&&i.tagSelected(K,e,X),K},calcAllAutoBins:h}},{"../../lib":778,"../../plots/cartesian/axes":828,"../../registry":911,"../bar/arrays_to_calcdata":920,"./average":1085,"./bin_functions":1087,"./bin_label_vals":1088,"./norm_functions":1096,"fast-isnumeric":241}],1090:[function(t,e,r){"use strict";e.exports={eventDataKeys:["binNumber"]}},{}],1091:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../plots/cartesian/axis_ids"),a=t("../../registry").traceIs,o=t("../bar/defaults").handleGroupingDefaults,s=n.nestedProperty,l=t("../../plots/cartesian/constraints").getAxisGroup,c=[{aStr:{x:"xbins.start",y:"ybins.start"},name:"start"},{aStr:{x:"xbins.end",y:"ybins.end"},name:"end"},{aStr:{x:"xbins.size",y:"ybins.size"},name:"size"},{aStr:{x:"nbinsx",y:"nbinsy"},name:"nbins"}],u=["x","y"];e.exports=function(t,e){var r,f,h,p,d,g,m,v=e._histogramBinOpts={},y=[],x={},b=[];function _(t,e){return n.coerce(r._input,r,r._module.attributes,t,e)}function w(t){return"v"===t.orientation?"x":"y"}function T(t,r,a){var o=t.uid+"__"+a;r||(r=o);var s=function(t,r){return i.getFromTrace({_fullLayout:e},t,r).type}(t,a),l=t[a+"calendar"]||"",c=v[r],u=!0;c&&(s===c.axType&&l===c.calendar?(u=!1,c.traces.push(t),c.dirs.push(a)):(r=o,s!==c.axType&&n.warn(["Attempted to group the bins of trace",t.index,"set on a","type:"+s,"axis","with bins on","type:"+c.axType,"axis."].join(" ")),l!==c.calendar&&n.warn(["Attempted to group the bins of trace",t.index,"set with a",l,"calendar","with bins",c.calendar?"on a "+c.calendar+" calendar":"w/o a set calendar"].join(" ")))),u&&(v[r]={traces:[t],dirs:[a],axType:s,calendar:t[a+"calendar"]||""}),t["_"+a+"bingroup"]=r}for(d=0;dS&&T.splice(S,T.length-S),A.length>S&&A.splice(S,A.length-S);var E=[],C=[],L=[],I="string"==typeof w.size,P="string"==typeof M.size,z=[],O=[],D=I?z:w,R=P?O:M,F=0,B=[],N=[],j=e.histnorm,U=e.histfunc,V=-1!==j.indexOf("density"),q="max"===U||"min"===U?null:0,H=a.count,G=o[j],Y=!1,W=[],X=[],Z="z"in e?e.z:"marker"in e&&Array.isArray(e.marker.color)?e.marker.color:"";Z&&"count"!==U&&(Y="avg"===U,H=a[U]);var J=w.size,K=x(w.start),Q=x(w.end)+(K-i.tickIncrement(K,J,!1,v))/1e6;for(r=K;r=0&&p=0&&d0||n.inbox(r-o.y0,r-(o.y0+o.h*s.dy),0)>0)){var u,f=Math.floor((e-o.x0)/s.dx),h=Math.floor(Math.abs(r-o.y0)/s.dy);if(s._hasZ?u=o.z[h][f]:s._hasSource&&(u=s._canvas.el.getContext("2d").getImageData(f,h,1,1).data),u){var p,d=o.hi||s.hoverinfo;if(d){var g=d.split("+");-1!==g.indexOf("all")&&(g=["color"]),-1!==g.indexOf("color")&&(p=!0)}var m,v=a.colormodel[s.colormodel],y=v.colormodel||s.colormodel,x=y.length,b=s._scaler(u),_=v.suffix,w=[];(s.hovertemplate||p)&&(w.push("["+[b[0]+_[0],b[1]+_[1],b[2]+_[2]].join(", ")),4===x&&w.push(", "+b[3]+_[3]),w.push("]"),w=w.join(""),t.extraText=y.toUpperCase()+": "+w),Array.isArray(s.hovertext)&&Array.isArray(s.hovertext[h])?m=s.hovertext[h][f]:Array.isArray(s.text)&&Array.isArray(s.text[h])&&(m=s.text[h][f]);var T=c.c2p(o.y0+(h+.5)*s.dy),k=o.x0+(f+.5)*s.dx,M=o.y0+(h+.5)*s.dy,A="["+u.slice(0,s.colormodel.length).join(", ")+"]";return[i.extendFlat(t,{index:[h,f],x0:l.c2p(o.x0+f*s.dx),x1:l.c2p(o.x0+(f+1)*s.dx),y0:T,y1:T,color:b,xVal:k,xLabelVal:k,yVal:M,yLabelVal:M,zLabelVal:A,text:m,hovertemplateLabels:{zLabel:A,colorLabel:w,"color[0]Label":b[0]+_[0],"color[1]Label":b[1]+_[1],"color[2]Label":b[2]+_[2],"color[3]Label":b[3]+_[3]}})]}}}},{"../../components/fx":683,"../../lib":778,"./constants":1108}],1113:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),calc:t("./calc"),plot:t("./plot"),style:t("./style"),hoverPoints:t("./hover"),eventData:t("./event_data"),moduleType:"trace",name:"image",basePlotModule:t("../../plots/cartesian"),categories:["cartesian","svg","2dMap","noSortingByValue"],animatable:!1,meta:{}}},{"../../plots/cartesian":841,"./attributes":1106,"./calc":1107,"./defaults":1109,"./event_data":1110,"./hover":1112,"./plot":1114,"./style":1115}],1114:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../lib"),a=i.strTranslate,o=t("../../constants/xmlns_namespaces"),s=t("./constants"),l=i.isIOS()||i.isSafari()||i.isIE();e.exports=function(t,e,r,c){var u=e.xaxis,f=e.yaxis,h=!(l||t._context._exportedPlot);i.makeTraceGroups(c,r,"im").each((function(e){var r=n.select(this),l=e[0],c=l.trace,p=h&&!c._hasZ&&c._hasSource&&"linear"===u.type&&"linear"===f.type;c._fastImage=p;var d,g,m,v,y,x,b=l.z,_=l.x0,w=l.y0,T=l.w,k=l.h,M=c.dx,A=c.dy;for(x=0;void 0===d&&x0;)g=u.c2p(_+x*M),x--;for(x=0;void 0===v&&x0;)y=f.c2p(w+x*A),x--;if(gP[0];if(z||O){var D=d+S/2,R=v+E/2;L+="transform:"+a(D+"px",R+"px")+"scale("+(z?-1:1)+","+(O?-1:1)+")"+a(-D+"px",-R+"px")+";"}}C.attr("style",L);var F=new Promise((function(t){if(c._hasZ)t();else if(c._hasSource)if(c._canvas&&c._canvas.el.width===T&&c._canvas.el.height===k&&c._canvas.source===c.source)t();else{var e=document.createElement("canvas");e.width=T,e.height=k;var r=e.getContext("2d");c._image=c._image||new Image;var n=c._image;n.onload=function(){r.drawImage(n,0,0),c._canvas={el:e,source:c.source},t()},n.setAttribute("src",c.source)}})).then((function(){var t;if(c._hasZ)t=B((function(t,e){return b[e][t]})).toDataURL("image/png");else if(c._hasSource)if(p)t=c.source;else{var e=c._canvas.el.getContext("2d").getImageData(0,0,T,k).data;t=B((function(t,r){var n=4*(r*T+t);return[e[n],e[n+1],e[n+2],e[n+3]]})).toDataURL("image/png")}C.attr({"xlink:href":t,height:E,width:S,x:d,y:v})}));t._promises.push(F)}function B(t){var e=document.createElement("canvas");e.width=S,e.height=E;var r,n=e.getContext("2d"),a=function(t){return i.constrain(Math.round(u.c2p(_+t*M)-d),0,S)},o=function(t){return i.constrain(Math.round(f.c2p(w+t*A)-v),0,E)},h=s.colormodel[c.colormodel],p=h.colormodel||c.colormodel,g=h.fmt;for(x=0;x0}function _(t){t.each((function(t){m.stroke(n.select(this),t.line.color)})).each((function(t){m.fill(n.select(this),t.color)})).style("stroke-width",(function(t){return t.line.width}))}function w(t,e,r){var n=t._fullLayout,a=i.extendFlat({type:"linear",ticks:"outside",range:r,showline:!0},e),o={type:"linear",_id:"x"+e._id},s={letter:"x",font:n.font,noHover:!0,noTickson:!0};function l(t,e){return i.coerce(a,o,g,t,e)}return p(a,o,l,s,n),d(a,o,l,s),o}function T(t,e,r){return[Math.min(e/t.width,r/t.height),t,e+"x"+r]}function k(t,e,r,i){var a=document.createElementNS("http://www.w3.org/2000/svg","text"),o=n.select(a);return o.text(t).attr("x",0).attr("y",0).attr("text-anchor",r).attr("data-unformatted",t).call(f.convertToTspans,i).call(c.font,e),c.bBox(o.node())}function M(t,e,r,n,a,o){var s="_cache"+e;t[s]&&t[s].key===a||(t[s]={key:a,value:r});var l=i.aggNums(o,null,[t[s].value,n],2);return t[s].value=l,l}e.exports=function(t,e,r,p){var d,g=t._fullLayout;b(r)&&p&&(d=p()),i.makeTraceGroups(g._indicatorlayer,e,"trace").each((function(e){var p,A,S,E,C,L=e[0].trace,I=n.select(this),P=L._hasGauge,z=L._isAngular,O=L._isBullet,D=L.domain,R={w:g._size.w*(D.x[1]-D.x[0]),h:g._size.h*(D.y[1]-D.y[0]),l:g._size.l+g._size.w*D.x[0],r:g._size.r+g._size.w*(1-D.x[1]),t:g._size.t+g._size.h*(1-D.y[1]),b:g._size.b+g._size.h*D.y[0]},F=R.l+R.w/2,B=R.t+R.h/2,N=Math.min(R.w/2,R.h),j=u.innerRadius*N,U=L.align||"center";if(A=B,P){if(z&&(p=F,A=B+N/2,S=function(t){return function(t,e){var r=Math.sqrt(t.width/2*(t.width/2)+t.height*t.height);return[e/r,t,e]}(t,.9*j)}),O){var V=u.bulletPadding,q=1-u.bulletNumberDomainSize+V;p=R.l+(q+(1-q)*y[U])*R.w,S=function(t){return T(t,(u.bulletNumberDomainSize-V)*R.w,R.h)}}}else p=R.l+y[U]*R.w,S=function(t){return T(t,R.w,R.h)};!function(t,e,r,s){var l,u,p,d=r[0].trace,g=s.numbersX,_=s.numbersY,T=d.align||"center",A=v[T],S=s.transitionOpts,E=s.onComplete,C=i.ensureSingle(e,"g","numbers"),L=[];d._hasNumber&&L.push("number");d._hasDelta&&(L.push("delta"),"left"===d.delta.position&&L.reverse());var I=C.selectAll("text").data(L);function P(e,r,n,i){if(!e.match("s")||n>=0==i>=0||r(n).slice(-1).match(x)||r(i).slice(-1).match(x))return r;var a=e.slice().replace("s","f").replace(/\d+/,(function(t){return parseInt(t)-1})),o=w(t,{tickformat:a});return function(t){return Math.abs(t)<1?h.tickText(o,t).text:r(t)}}I.enter().append("text"),I.attr("text-anchor",(function(){return A})).attr("class",(function(t){return t})).attr("x",null).attr("y",null).attr("dx",null).attr("dy",null),I.exit().remove();var z,O=d.mode+d.align;d._hasDelta&&(z=function(){var e=w(t,{tickformat:d.delta.valueformat},d._range);e.setScale(),h.prepTicks(e);var i=function(t){return h.tickText(e,t).text},a=function(t){return d.delta.relative?t.relativeDelta:t.delta},o=function(t,e){return 0===t||"number"!=typeof t||isNaN(t)?"-":(t>0?d.delta.increasing.symbol:d.delta.decreasing.symbol)+e(t)},s=function(t){return t.delta>=0?d.delta.increasing.color:d.delta.decreasing.color};void 0===d._deltaLastValue&&(d._deltaLastValue=a(r[0]));var l=C.select("text.delta");function p(){l.text(o(a(r[0]),i)).call(m.fill,s(r[0])).call(f.convertToTspans,t)}return l.call(c.font,d.delta.font).call(m.fill,s({delta:d._deltaLastValue})),b(S)?l.transition().duration(S.duration).ease(S.easing).tween("text",(function(){var t=n.select(this),e=a(r[0]),l=d._deltaLastValue,c=P(d.delta.valueformat,i,l,e),u=n.interpolateNumber(l,e);return d._deltaLastValue=e,function(e){t.text(o(u(e),c)),t.call(m.fill,s({delta:u(e)}))}})).each("end",(function(){p(),E&&E()})).each("interrupt",(function(){p(),E&&E()})):p(),u=k(o(a(r[0]),i),d.delta.font,A,t),l}(),O+=d.delta.position+d.delta.font.size+d.delta.font.family+d.delta.valueformat,O+=d.delta.increasing.symbol+d.delta.decreasing.symbol,p=u);d._hasNumber&&(!function(){var e=w(t,{tickformat:d.number.valueformat},d._range);e.setScale(),h.prepTicks(e);var i=function(t){return h.tickText(e,t).text},a=d.number.suffix,o=d.number.prefix,s=C.select("text.number");function u(){var e="number"==typeof r[0].y?o+i(r[0].y)+a:"-";s.text(e).call(c.font,d.number.font).call(f.convertToTspans,t)}b(S)?s.transition().duration(S.duration).ease(S.easing).each("end",(function(){u(),E&&E()})).each("interrupt",(function(){u(),E&&E()})).attrTween("text",(function(){var t=n.select(this),e=n.interpolateNumber(r[0].lastY,r[0].y);d._lastValue=r[0].y;var s=P(d.number.valueformat,i,r[0].lastY,r[0].y);return function(r){t.text(o+s(e(r))+a)}})):u(),l=k(o+i(r[0].y)+a,d.number.font,A,t)}(),O+=d.number.font.size+d.number.font.family+d.number.valueformat+d.number.suffix+d.number.prefix,p=l);if(d._hasDelta&&d._hasNumber){var D,R,F=[(l.left+l.right)/2,(l.top+l.bottom)/2],B=[(u.left+u.right)/2,(u.top+u.bottom)/2],N=.75*d.delta.font.size;"left"===d.delta.position&&(D=M(d,"deltaPos",0,-1*(l.width*y[d.align]+u.width*(1-y[d.align])+N),O,Math.min),R=F[1]-B[1],p={width:l.width+u.width+N,height:Math.max(l.height,u.height),left:u.left+D,right:l.right,top:Math.min(l.top,u.top+R),bottom:Math.max(l.bottom,u.bottom+R)}),"right"===d.delta.position&&(D=M(d,"deltaPos",0,l.width*(1-y[d.align])+u.width*y[d.align]+N,O,Math.max),R=F[1]-B[1],p={width:l.width+u.width+N,height:Math.max(l.height,u.height),left:l.left,right:u.right+D,top:Math.min(l.top,u.top+R),bottom:Math.max(l.bottom,u.bottom+R)}),"bottom"===d.delta.position&&(D=null,R=u.height,p={width:Math.max(l.width,u.width),height:l.height+u.height,left:Math.min(l.left,u.left),right:Math.max(l.right,u.right),top:l.bottom-l.height,bottom:l.bottom+u.height}),"top"===d.delta.position&&(D=null,R=l.top,p={width:Math.max(l.width,u.width),height:l.height+u.height,left:Math.min(l.left,u.left),right:Math.max(l.right,u.right),top:l.bottom-l.height-u.height,bottom:l.bottom}),z.attr({dx:D,dy:R})}(d._hasNumber||d._hasDelta)&&C.attr("transform",(function(){var t=s.numbersScaler(p);O+=t[2];var e,r=M(d,"numbersScale",1,t[0],O,Math.min);d._scaleNumbers||(r=1),e=d._isAngular?_-r*p.bottom:_-r*(p.top+p.bottom)/2,d._numbersTop=r*p.top+e;var n=p[T];"center"===T&&(n=(p.left+p.right)/2);var i=g-r*n;return i=M(d,"numbersTranslate",0,i,O,Math.max),o(i,e)+a(r)}))}(t,I,e,{numbersX:p,numbersY:A,numbersScaler:S,transitionOpts:r,onComplete:d}),P&&(E={range:L.gauge.axis.range,color:L.gauge.bgcolor,line:{color:L.gauge.bordercolor,width:0},thickness:1},C={range:L.gauge.axis.range,color:"rgba(0, 0, 0, 0)",line:{color:L.gauge.bordercolor,width:L.gauge.borderwidth},thickness:1});var H=I.selectAll("g.angular").data(z?e:[]);H.exit().remove();var G=I.selectAll("g.angularaxis").data(z?e:[]);G.exit().remove(),z&&function(t,e,r,i){var a,c,u,f,p=r[0].trace,d=i.size,g=i.radius,m=i.innerRadius,v=i.gaugeBg,y=i.gaugeOutline,x=[d.l+d.w/2,d.t+d.h/2+g/2],T=i.gauge,k=i.layer,M=i.transitionOpts,A=i.onComplete,S=Math.PI/2;function E(t){var e=p.gauge.axis.range[0],r=(t-e)/(p.gauge.axis.range[1]-e)*Math.PI-S;return r<-S?-S:r>S?S:r}function C(t){return n.svg.arc().innerRadius((m+g)/2-t/2*(g-m)).outerRadius((m+g)/2+t/2*(g-m)).startAngle(-S)}function L(t){t.attr("d",(function(t){return C(t.thickness).startAngle(E(t.range[0])).endAngle(E(t.range[1]))()}))}T.enter().append("g").classed("angular",!0),T.attr("transform",o(x[0],x[1])),k.enter().append("g").classed("angularaxis",!0).classed("crisp",!0),k.selectAll("g.xangularaxistick,path,text").remove(),(a=w(t,p.gauge.axis)).type="linear",a.range=p.gauge.axis.range,a._id="xangularaxis",a.setScale();var I=function(t){return(a.range[0]-t.x)/(a.range[1]-a.range[0])*Math.PI+Math.PI},P={},z=h.makeLabelFns(a,0).labelStandoff;P.xFn=function(t){var e=I(t);return Math.cos(e)*z},P.yFn=function(t){var e=I(t),r=Math.sin(e)>0?.2:1;return-Math.sin(e)*(z+t.fontSize*r)+Math.abs(Math.cos(e))*(t.fontSize*l)},P.anchorFn=function(t){var e=I(t),r=Math.cos(e);return Math.abs(r)<.1?"middle":r>0?"start":"end"},P.heightFn=function(t,e,r){var n=I(t);return-.5*(1+Math.sin(n))*r};var O=function(t){return o(x[0]+g*Math.cos(t),x[1]-g*Math.sin(t))};u=function(t){return O(I(t))};if(c=h.calcTicks(a),f=h.getTickSigns(a)[2],a.visible){f="inside"===a.ticks?-1:1;var D=(a.linewidth||1)/2;h.drawTicks(t,a,{vals:c,layer:k,path:"M"+f*D+",0h"+f*a.ticklen,transFn:function(t){var e=I(t);return O(e)+"rotate("+-s(e)+")"}}),h.drawLabels(t,a,{vals:c,layer:k,transFn:u,labelFns:P})}var R=[v].concat(p.gauge.steps),F=T.selectAll("g.bg-arc").data(R);F.enter().append("g").classed("bg-arc",!0).append("path"),F.select("path").call(L).call(_),F.exit().remove();var B=C(p.gauge.bar.thickness),N=T.selectAll("g.value-arc").data([p.gauge.bar]);N.enter().append("g").classed("value-arc",!0).append("path");var j=N.select("path");b(M)?(j.transition().duration(M.duration).ease(M.easing).each("end",(function(){A&&A()})).each("interrupt",(function(){A&&A()})).attrTween("d",(U=B,V=E(r[0].lastY),q=E(r[0].y),function(){var t=n.interpolate(V,q);return function(e){return U.endAngle(t(e))()}})),p._lastValue=r[0].y):j.attr("d","number"==typeof r[0].y?B.endAngle(E(r[0].y)):"M0,0Z");var U,V,q;j.call(_),N.exit().remove(),R=[];var H=p.gauge.threshold.value;H&&R.push({range:[H,H],color:p.gauge.threshold.color,line:{color:p.gauge.threshold.line.color,width:p.gauge.threshold.line.width},thickness:p.gauge.threshold.thickness});var G=T.selectAll("g.threshold-arc").data(R);G.enter().append("g").classed("threshold-arc",!0).append("path"),G.select("path").call(L).call(_),G.exit().remove();var Y=T.selectAll("g.gauge-outline").data([y]);Y.enter().append("g").classed("gauge-outline",!0).append("path"),Y.select("path").call(L).call(_),Y.exit().remove()}(t,0,e,{radius:N,innerRadius:j,gauge:H,layer:G,size:R,gaugeBg:E,gaugeOutline:C,transitionOpts:r,onComplete:d});var Y=I.selectAll("g.bullet").data(O?e:[]);Y.exit().remove();var W=I.selectAll("g.bulletaxis").data(O?e:[]);W.exit().remove(),O&&function(t,e,r,n){var i,a,s,l,c,f=r[0].trace,p=n.gauge,d=n.layer,g=n.gaugeBg,v=n.gaugeOutline,y=n.size,x=f.domain,T=n.transitionOpts,k=n.onComplete;p.enter().append("g").classed("bullet",!0),p.attr("transform",o(y.l,y.t)),d.enter().append("g").classed("bulletaxis",!0).classed("crisp",!0),d.selectAll("g.xbulletaxistick,path,text").remove();var M=y.h,A=f.gauge.bar.thickness*M,S=x.x[0],E=x.x[0]+(x.x[1]-x.x[0])*(f._hasNumber||f._hasDelta?1-u.bulletNumberDomainSize:1);(i=w(t,f.gauge.axis))._id="xbulletaxis",i.domain=[S,E],i.setScale(),a=h.calcTicks(i),s=h.makeTransTickFn(i),l=h.getTickSigns(i)[2],c=y.t+y.h,i.visible&&(h.drawTicks(t,i,{vals:"inside"===i.ticks?h.clipEnds(i,a):a,layer:d,path:h.makeTickPath(i,c,l),transFn:s}),h.drawLabels(t,i,{vals:a,layer:d,transFn:s,labelFns:h.makeLabelFns(i,c)}));function C(t){t.attr("width",(function(t){return Math.max(0,i.c2p(t.range[1])-i.c2p(t.range[0]))})).attr("x",(function(t){return i.c2p(t.range[0])})).attr("y",(function(t){return.5*(1-t.thickness)*M})).attr("height",(function(t){return t.thickness*M}))}var L=[g].concat(f.gauge.steps),I=p.selectAll("g.bg-bullet").data(L);I.enter().append("g").classed("bg-bullet",!0).append("rect"),I.select("rect").call(C).call(_),I.exit().remove();var P=p.selectAll("g.value-bullet").data([f.gauge.bar]);P.enter().append("g").classed("value-bullet",!0).append("rect"),P.select("rect").attr("height",A).attr("y",(M-A)/2).call(_),b(T)?P.select("rect").transition().duration(T.duration).ease(T.easing).each("end",(function(){k&&k()})).each("interrupt",(function(){k&&k()})).attr("width",Math.max(0,i.c2p(Math.min(f.gauge.axis.range[1],r[0].y)))):P.select("rect").attr("width","number"==typeof r[0].y?Math.max(0,i.c2p(Math.min(f.gauge.axis.range[1],r[0].y))):0);P.exit().remove();var z=r.filter((function(){return f.gauge.threshold.value})),O=p.selectAll("g.threshold-bullet").data(z);O.enter().append("g").classed("threshold-bullet",!0).append("line"),O.select("line").attr("x1",i.c2p(f.gauge.threshold.value)).attr("x2",i.c2p(f.gauge.threshold.value)).attr("y1",(1-f.gauge.threshold.thickness)/2*M).attr("y2",(1-(1-f.gauge.threshold.thickness)/2)*M).call(m.stroke,f.gauge.threshold.line.color).style("stroke-width",f.gauge.threshold.line.width),O.exit().remove();var D=p.selectAll("g.gauge-outline").data([v]);D.enter().append("g").classed("gauge-outline",!0).append("rect"),D.select("rect").call(C).call(_),D.exit().remove()}(t,0,e,{gauge:Y,layer:W,size:R,gaugeBg:E,gaugeOutline:C,transitionOpts:r,onComplete:d});var X=I.selectAll("text.title").data(e);X.exit().remove(),X.enter().append("text").classed("title",!0),X.attr("text-anchor",(function(){return O?v.right:v[L.title.align]})).text(L.title.text).call(c.font,L.title.font).call(f.convertToTspans,t),X.attr("transform",(function(){var t,e=R.l+R.w*y[L.title.align],r=u.titlePadding,n=c.bBox(X.node());if(P){if(z)if(L.gauge.axis.visible)t=c.bBox(G.node()).top-r-n.bottom;else t=R.t+R.h/2-N/2-n.bottom-r;O&&(t=A-(n.top+n.bottom)/2,e=R.l-u.bulletPadding*R.w)}else t=L._numbersTop-r-n.bottom;return o(e,t)}))}))}},{"../../components/color":643,"../../components/drawing":665,"../../constants/alignment":745,"../../lib":778,"../../lib/svg_text_utils":803,"../../plots/cartesian/axes":828,"../../plots/cartesian/axis_defaults":830,"../../plots/cartesian/layout_attributes":842,"../../plots/cartesian/position_defaults":845,"./constants":1119,d3:169}],1123:[function(t,e,r){"use strict";var n=t("../../components/colorscale/attributes"),i=t("../../plots/template_attributes").hovertemplateAttrs,a=t("../mesh3d/attributes"),o=t("../../plots/attributes"),s=t("../../lib/extend").extendFlat,l=t("../../plot_api/edit_types").overrideAll;var c=e.exports=l(s({x:{valType:"data_array"},y:{valType:"data_array"},z:{valType:"data_array"},value:{valType:"data_array"},isomin:{valType:"number"},isomax:{valType:"number"},surface:{show:{valType:"boolean",dflt:!0},count:{valType:"integer",dflt:2,min:1},fill:{valType:"number",min:0,max:1,dflt:1},pattern:{valType:"flaglist",flags:["A","B","C","D","E"],extras:["all","odd","even"],dflt:"all"}},spaceframe:{show:{valType:"boolean",dflt:!1},fill:{valType:"number",min:0,max:1,dflt:.15}},slices:{x:{show:{valType:"boolean",dflt:!1},locations:{valType:"data_array",dflt:[]},fill:{valType:"number",min:0,max:1,dflt:1}},y:{show:{valType:"boolean",dflt:!1},locations:{valType:"data_array",dflt:[]},fill:{valType:"number",min:0,max:1,dflt:1}},z:{show:{valType:"boolean",dflt:!1},locations:{valType:"data_array",dflt:[]},fill:{valType:"number",min:0,max:1,dflt:1}}},caps:{x:{show:{valType:"boolean",dflt:!0},fill:{valType:"number",min:0,max:1,dflt:1}},y:{show:{valType:"boolean",dflt:!0},fill:{valType:"number",min:0,max:1,dflt:1}},z:{show:{valType:"boolean",dflt:!0},fill:{valType:"number",min:0,max:1,dflt:1}}},text:{valType:"string",dflt:"",arrayOk:!0},hovertext:{valType:"string",dflt:"",arrayOk:!0},hovertemplate:i(),showlegend:s({},o.showlegend,{dflt:!1})},n("",{colorAttr:"`value`",showScaleDflt:!0,editTypeOverride:"calc"}),{opacity:a.opacity,lightposition:a.lightposition,lighting:a.lighting,flatshading:a.flatshading,contour:a.contour,hoverinfo:s({},o.hoverinfo)}),"calc","nested");c.flatshading.dflt=!0,c.lighting.facenormalsepsilon.dflt=0,c.x.editType=c.y.editType=c.z.editType=c.value.editType="calc+clearAxisTypes",c.transforms=void 0},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plot_api/edit_types":810,"../../plots/attributes":824,"../../plots/template_attributes":906,"../mesh3d/attributes":1128}],1124:[function(t,e,r){"use strict";var n=t("../../components/colorscale/calc"),i=t("../streamtube/calc").processGrid,a=t("../streamtube/calc").filter;e.exports=function(t,e){e._len=Math.min(e.x.length,e.y.length,e.z.length,e.value.length),e._x=a(e.x,e._len),e._y=a(e.y,e._len),e._z=a(e.z,e._len),e._value=a(e.value,e._len);var r=i(e);e._gridFill=r.fill,e._Xs=r.Xs,e._Ys=r.Ys,e._Zs=r.Zs,e._len=r.len;for(var o=1/0,s=-1/0,l=0;l0;r--){var n=Math.min(e[r],e[r-1]),i=Math.max(e[r],e[r-1]);if(i>n&&n-1}function R(t,e){return null===t?e:t}function F(e,r,n){L();var i,a,o,l=[r],c=[n];if(s>=1)l=[r],c=[n];else if(s>0){var u=function(t,e){var r=t[0],n=t[1],i=t[2],a=function(t,e,r){for(var n=[],i=0;i-1?n[p]:C(d,g,v);h[p]=x>-1?x:P(d,g,v,R(e,y))}i=h[0],a=h[1],o=h[2],t._meshI.push(i),t._meshJ.push(a),t._meshK.push(o),++m}}function B(t,e,r,n){var i=t[3];in&&(i=n);for(var a=(t[3]-i)/(t[3]-e[3]+1e-9),o=[],s=0;s<4;s++)o[s]=(1-a)*t[s]+a*e[s];return o}function N(t,e,r){return t>=e&&t<=r}function j(t){var e=.001*(E-S);return t>=S-e&&t<=E+e}function U(e){for(var r=[],n=0;n<4;n++){var i=e[n];r.push([t._x[i],t._y[i],t._z[i],t._value[i]])}return r}function V(t,e,r,n,i,a){a||(a=1),r=[-1,-1,-1];var o=!1,s=[N(e[0][3],n,i),N(e[1][3],n,i),N(e[2][3],n,i)];if(!s[0]&&!s[1]&&!s[2])return!1;var l=function(t,e,r){return j(e[0][3])&&j(e[1][3])&&j(e[2][3])?(F(t,e,r),!0):a<3&&V(t,e,r,S,E,++a)};if(s[0]&&s[1]&&s[2])return l(t,e,r)||o;var c=!1;return[[0,1,2],[2,0,1],[1,2,0]].forEach((function(a){if(s[a[0]]&&s[a[1]]&&!s[a[2]]){var u=e[a[0]],f=e[a[1]],h=e[a[2]],p=B(h,u,n,i),d=B(h,f,n,i);o=l(t,[d,p,u],[-1,-1,r[a[0]]])||o,o=l(t,[u,f,d],[r[a[0]],r[a[1]],-1])||o,c=!0}})),c||[[0,1,2],[1,2,0],[2,0,1]].forEach((function(a){if(s[a[0]]&&!s[a[1]]&&!s[a[2]]){var u=e[a[0]],f=e[a[1]],h=e[a[2]],p=B(f,u,n,i),d=B(h,u,n,i);o=l(t,[d,p,u],[-1,-1,r[a[0]]])||o,c=!0}})),o}function q(t,e,r,n){var i=!1,a=U(e),o=[N(a[0][3],r,n),N(a[1][3],r,n),N(a[2][3],r,n),N(a[3][3],r,n)];if(!(o[0]||o[1]||o[2]||o[3]))return i;if(o[0]&&o[1]&&o[2]&&o[3])return g&&(i=function(t,e,r){var n=function(n,i,a){F(t,[e[n],e[i],e[a]],[r[n],r[i],r[a]])};n(0,1,2),n(3,0,1),n(2,3,0),n(1,2,3)}(t,a,e)||i),i;var s=!1;return[[0,1,2,3],[3,0,1,2],[2,3,0,1],[1,2,3,0]].forEach((function(l){if(o[l[0]]&&o[l[1]]&&o[l[2]]&&!o[l[3]]){var c=a[l[0]],u=a[l[1]],f=a[l[2]],h=a[l[3]];if(g)i=F(t,[c,u,f],[e[l[0]],e[l[1]],e[l[2]]])||i;else{var p=B(h,c,r,n),d=B(h,u,r,n),m=B(h,f,r,n);i=F(null,[p,d,m],[-1,-1,-1])||i}s=!0}})),s?i:([[0,1,2,3],[1,2,3,0],[2,3,0,1],[3,0,1,2],[0,2,3,1],[1,3,2,0]].forEach((function(l){if(o[l[0]]&&o[l[1]]&&!o[l[2]]&&!o[l[3]]){var c=a[l[0]],u=a[l[1]],f=a[l[2]],h=a[l[3]],p=B(f,c,r,n),d=B(f,u,r,n),m=B(h,u,r,n),v=B(h,c,r,n);g?(i=F(t,[c,v,p],[e[l[0]],-1,-1])||i,i=F(t,[u,d,m],[e[l[1]],-1,-1])||i):i=function(t,e,r){var n=function(n,i,a){F(t,[e[n],e[i],e[a]],[r[n],r[i],r[a]])};n(0,1,2),n(2,3,0)}(null,[p,d,m,v],[-1,-1,-1,-1])||i,s=!0}})),s||[[0,1,2,3],[1,2,3,0],[2,3,0,1],[3,0,1,2]].forEach((function(l){if(o[l[0]]&&!o[l[1]]&&!o[l[2]]&&!o[l[3]]){var c=a[l[0]],u=a[l[1]],f=a[l[2]],h=a[l[3]],p=B(u,c,r,n),d=B(f,c,r,n),m=B(h,c,r,n);g?(i=F(t,[c,p,d],[e[l[0]],-1,-1])||i,i=F(t,[c,d,m],[e[l[0]],-1,-1])||i,i=F(t,[c,m,p],[e[l[0]],-1,-1])||i):i=F(null,[p,d,m],[-1,-1,-1])||i,s=!0}})),i)}function H(t,e,r,n,i,a,o,s,l,c,u){var f=!1;return d&&(D(t,"A")&&(f=q(null,[e,r,n,a],c,u)||f),D(t,"B")&&(f=q(null,[r,n,i,l],c,u)||f),D(t,"C")&&(f=q(null,[r,a,o,l],c,u)||f),D(t,"D")&&(f=q(null,[n,a,s,l],c,u)||f),D(t,"E")&&(f=q(null,[r,n,a,l],c,u)||f)),g&&(f=q(t,[r,n,a,l],c,u)||f),f}function G(t,e,r,n,i,a,o,s){return[!0===s[0]||V(t,U([e,r,n]),[e,r,n],a,o),!0===s[1]||V(t,U([n,i,e]),[n,i,e],a,o)]}function Y(t,e,r,n,i,a,o,s,l){return s?G(t,e,r,i,n,a,o,l):G(t,r,i,n,e,a,o,l)}function W(t,e,r,n,i,a,o){var s,l,c,u,f=!1,h=function(){f=V(t,[s,l,c],[-1,-1,-1],i,a)||f,f=V(t,[c,u,s],[-1,-1,-1],i,a)||f},p=o[0],d=o[1],g=o[2];return p&&(s=z(U([k(e,r-0,n-0)])[0],U([k(e-1,r-0,n-0)])[0],p),l=z(U([k(e,r-0,n-1)])[0],U([k(e-1,r-0,n-1)])[0],p),c=z(U([k(e,r-1,n-1)])[0],U([k(e-1,r-1,n-1)])[0],p),u=z(U([k(e,r-1,n-0)])[0],U([k(e-1,r-1,n-0)])[0],p),h()),d&&(s=z(U([k(e-0,r,n-0)])[0],U([k(e-0,r-1,n-0)])[0],d),l=z(U([k(e-0,r,n-1)])[0],U([k(e-0,r-1,n-1)])[0],d),c=z(U([k(e-1,r,n-1)])[0],U([k(e-1,r-1,n-1)])[0],d),u=z(U([k(e-1,r,n-0)])[0],U([k(e-1,r-1,n-0)])[0],d),h()),g&&(s=z(U([k(e-0,r-0,n)])[0],U([k(e-0,r-0,n-1)])[0],g),l=z(U([k(e-0,r-1,n)])[0],U([k(e-0,r-1,n-1)])[0],g),c=z(U([k(e-1,r-1,n)])[0],U([k(e-1,r-1,n-1)])[0],g),u=z(U([k(e-1,r-0,n)])[0],U([k(e-1,r-0,n-1)])[0],g),h()),f}function X(t,e,r,n,i,a,o,s,l,c,u,f){var h=t;return f?(d&&"even"===t&&(h=null),H(h,e,r,n,i,a,o,s,l,c,u)):(d&&"odd"===t&&(h=null),H(h,l,s,o,a,i,n,r,e,c,u))}function Z(t,e,r,n,i){for(var a=[],o=0,s=0;sMath.abs(d-A)?[M,d]:[d,A];$(e,T[0],T[1])}}var C=[[Math.min(S,A),Math.max(S,A)],[Math.min(M,E),Math.max(M,E)]];["x","y","z"].forEach((function(e){for(var r=[],n=0;n0&&(u.push(p.id),"x"===e?f.push([p.distRatio,0,0]):"y"===e?f.push([0,p.distRatio,0]):f.push([0,0,p.distRatio]))}else c=nt(1,"x"===e?b-1:"y"===e?_-1:w-1);u.length>0&&(r[i]="x"===e?tt(null,u,a,o,f,r[i]):"y"===e?et(null,u,a,o,f,r[i]):rt(null,u,a,o,f,r[i]),i++),c.length>0&&(r[i]="x"===e?Z(null,c,a,o,r[i]):"y"===e?J(null,c,a,o,r[i]):K(null,c,a,o,r[i]),i++)}var d=t.caps[e];d.show&&d.fill&&(O(d.fill),r[i]="x"===e?Z(null,[0,b-1],a,o,r[i]):"y"===e?J(null,[0,_-1],a,o,r[i]):K(null,[0,w-1],a,o,r[i]),i++)}})),0===m&&I(),t._meshX=n,t._meshY=i,t._meshZ=a,t._meshIntensity=o,t._Xs=v,t._Ys=y,t._Zs=x}(),t}e.exports={findNearestOnAxis:l,generateIsoMeshes:h,createIsosurfaceTrace:function(t,e){var r=t.glplot.gl,i=n({gl:r}),a=new c(t,i,e.uid);return i._trace=a,a.update(e),t.glplot.add(i),a}}},{"../../components/colorscale":655,"../../lib/gl_format_color":774,"../../lib/str2rgbarray":802,"../../plots/gl3d/zip3":881,"gl-mesh3d":309}],1126:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../registry"),a=t("./attributes"),o=t("../../components/colorscale/defaults");function s(t,e,r,n,a){var s=a("isomin"),l=a("isomax");null!=l&&null!=s&&s>l&&(e.isomin=null,e.isomax=null);var c=a("x"),u=a("y"),f=a("z"),h=a("value");c&&c.length&&u&&u.length&&f&&f.length&&h&&h.length?(i.getComponentMethod("calendars","handleTraceDefaults")(t,e,["x","y","z"],n),["x","y","z"].forEach((function(t){var e="caps."+t;a(e+".show")&&a(e+".fill");var r="slices."+t;a(r+".show")&&(a(r+".fill"),a(r+".locations"))})),a("spaceframe.show")&&a("spaceframe.fill"),a("surface.show")&&(a("surface.count"),a("surface.fill"),a("surface.pattern")),a("contour.show")&&(a("contour.color"),a("contour.width")),["text","hovertext","hovertemplate","lighting.ambient","lighting.diffuse","lighting.specular","lighting.roughness","lighting.fresnel","lighting.vertexnormalsepsilon","lighting.facenormalsepsilon","lightposition.x","lightposition.y","lightposition.z","flatshading","opacity"].forEach((function(t){a(t)})),o(t,e,n,a,{prefix:"",cLetter:"c"}),e._length=null):e.visible=!1}e.exports={supplyDefaults:function(t,e,r,i){s(t,e,r,i,(function(r,i){return n.coerce(t,e,a,r,i)}))},supplyIsoDefaults:s}},{"../../components/colorscale/defaults":653,"../../lib":778,"../../registry":911,"./attributes":1123}],1127:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults").supplyDefaults,calc:t("./calc"),colorbar:{min:"cmin",max:"cmax"},plot:t("./convert").createIsosurfaceTrace,moduleType:"trace",name:"isosurface",basePlotModule:t("../../plots/gl3d"),categories:["gl3d","showLegend"],meta:{}}},{"../../plots/gl3d":870,"./attributes":1123,"./calc":1124,"./convert":1125,"./defaults":1126}],1128:[function(t,e,r){"use strict";var n=t("../../components/colorscale/attributes"),i=t("../../plots/template_attributes").hovertemplateAttrs,a=t("../surface/attributes"),o=t("../../plots/attributes"),s=t("../../lib/extend").extendFlat;e.exports=s({x:{valType:"data_array",editType:"calc+clearAxisTypes"},y:{valType:"data_array",editType:"calc+clearAxisTypes"},z:{valType:"data_array",editType:"calc+clearAxisTypes"},i:{valType:"data_array",editType:"calc"},j:{valType:"data_array",editType:"calc"},k:{valType:"data_array",editType:"calc"},text:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertemplate:i({editType:"calc"}),delaunayaxis:{valType:"enumerated",values:["x","y","z"],dflt:"z",editType:"calc"},alphahull:{valType:"number",dflt:-1,editType:"calc"},intensity:{valType:"data_array",editType:"calc"},intensitymode:{valType:"enumerated",values:["vertex","cell"],dflt:"vertex",editType:"calc"},color:{valType:"color",editType:"calc"},vertexcolor:{valType:"data_array",editType:"calc"},facecolor:{valType:"data_array",editType:"calc"},transforms:void 0},n("",{colorAttr:"`intensity`",showScaleDflt:!0,editTypeOverride:"calc"}),{opacity:a.opacity,flatshading:{valType:"boolean",dflt:!1,editType:"calc"},contour:{show:s({},a.contours.x.show,{}),color:a.contours.x.color,width:a.contours.x.width,editType:"calc"},lightposition:{x:s({},a.lightposition.x,{dflt:1e5}),y:s({},a.lightposition.y,{dflt:1e5}),z:s({},a.lightposition.z,{dflt:0}),editType:"calc"},lighting:s({vertexnormalsepsilon:{valType:"number",min:0,max:1,dflt:1e-12,editType:"calc"},facenormalsepsilon:{valType:"number",min:0,max:1,dflt:1e-6,editType:"calc"},editType:"calc"},a.lighting),hoverinfo:s({},o.hoverinfo,{editType:"calc"}),showlegend:s({},o.showlegend,{dflt:!1})})},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/template_attributes":906,"../surface/attributes":1311}],1129:[function(t,e,r){"use strict";var n=t("../../components/colorscale/calc");e.exports=function(t,e){e.intensity&&n(t,e,{vals:e.intensity,containerStr:"",cLetter:"c"})}},{"../../components/colorscale/calc":651}],1130:[function(t,e,r){"use strict";var n=t("gl-mesh3d"),i=t("delaunay-triangulate"),a=t("alpha-shape"),o=t("convex-hull"),s=t("../../lib/gl_format_color").parseColorScale,l=t("../../lib/str2rgbarray"),c=t("../../components/colorscale").extractOpts,u=t("../../plots/gl3d/zip3");function f(t,e,r){this.scene=t,this.uid=r,this.mesh=e,this.name="",this.color="#fff",this.data=null,this.showContour=!1}var h=f.prototype;function p(t){for(var e=[],r=t.length,n=0;n=e-.5)return!1;return!0}h.handlePick=function(t){if(t.object===this.mesh){var e=t.index=t.data.index;t.data._cellCenter?t.traceCoordinate=t.data.dataCoordinate:t.traceCoordinate=[this.data.x[e],this.data.y[e],this.data.z[e]];var r=this.data.hovertext||this.data.text;return Array.isArray(r)&&void 0!==r[e]?t.textLabel=r[e]:r&&(t.textLabel=r),!0}},h.update=function(t){var e=this.scene,r=e.fullSceneLayout;this.data=t;var n,f=t.x.length,h=u(d(r.xaxis,t.x,e.dataScale[0],t.xcalendar),d(r.yaxis,t.y,e.dataScale[1],t.ycalendar),d(r.zaxis,t.z,e.dataScale[2],t.zcalendar));if(t.i&&t.j&&t.k){if(t.i.length!==t.j.length||t.j.length!==t.k.length||!m(t.i,f)||!m(t.j,f)||!m(t.k,f))return;n=u(g(t.i),g(t.j),g(t.k))}else n=0===t.alphahull?o(h):t.alphahull>0?a(t.alphahull,h):function(t,e){for(var r=["x","y","z"].indexOf(t),n=[],a=e.length,o=0;ov):m=M>w,v=M;var A=c(w,T,k,M);A.pos=_,A.yc=(w+M)/2,A.i=b,A.dir=m?"increasing":"decreasing",A.x=A.pos,A.y=[k,T],y&&(A.orig_p=r[b]),d&&(A.tx=e.text[b]),g&&(A.htx=e.hovertext[b]),x.push(A)}else x.push({pos:_,empty:!0})}return e._extremes[l._id]=a.findExtremes(l,n.concat(h,f),{padded:!0}),x.length&&(x[0].t={labels:{open:i(t,"open:")+" ",high:i(t,"high:")+" ",low:i(t,"low:")+" ",close:i(t,"close:")+" "}}),x}e.exports={calc:function(t,e){var r=a.getFromId(t,e.xaxis),i=a.getFromId(t,e.yaxis),s=function(t,e,r){var i=r._minDiff;if(!i){var a,s=t._fullData,l=[];for(i=1/0,a=0;a"+c.labels[x]+n.hoverLabelText(s,b):((y=i.extendFlat({},h)).y0=y.y1=_,y.yLabelVal=b,y.yLabel=c.labels[x]+n.hoverLabelText(s,b),y.name="",f.push(y),m[b]=y)}return f}function h(t,e,r,i){var a=t.cd,o=t.ya,l=a[0].trace,f=a[0].t,h=u(t,e,r,i);if(!h)return[];var p=a[h.index],d=h.index=p.i,g=p.dir;function m(t){return f.labels[t]+n.hoverLabelText(o,l[t][d])}var v=p.hi||l.hoverinfo,y=v.split("+"),x="all"===v,b=x||-1!==y.indexOf("y"),_=x||-1!==y.indexOf("text"),w=b?[m("open"),m("high"),m("low"),m("close")+" "+c[g]]:[];return _&&s(p,l,w),h.extraText=w.join("
    "),h.y0=h.y1=o.c2p(p.yc,!0),[h]}e.exports={hoverPoints:function(t,e,r,n){return t.cd[0].trace.hoverlabel.split?f(t,e,r,n):h(t,e,r,n)},hoverSplit:f,hoverOnPoints:h}},{"../../components/color":643,"../../components/fx":683,"../../constants/delta.js":747,"../../lib":778,"../../plots/cartesian/axes":828}],1137:[function(t,e,r){"use strict";e.exports={moduleType:"trace",name:"ohlc",basePlotModule:t("../../plots/cartesian"),categories:["cartesian","svg","showLegend"],meta:{},attributes:t("./attributes"),supplyDefaults:t("./defaults"),calc:t("./calc").calc,plot:t("./plot"),style:t("./style"),hoverPoints:t("./hover").hoverPoints,selectPoints:t("./select")}},{"../../plots/cartesian":841,"./attributes":1133,"./calc":1134,"./defaults":1135,"./hover":1136,"./plot":1139,"./select":1140,"./style":1141}],1138:[function(t,e,r){"use strict";var n=t("../../registry"),i=t("../../lib");e.exports=function(t,e,r,a){var o=r("x"),s=r("open"),l=r("high"),c=r("low"),u=r("close");if(r("hoverlabel.split"),n.getComponentMethod("calendars","handleTraceDefaults")(t,e,["x"],a),s&&l&&c&&u){var f=Math.min(s.length,l.length,c.length,u.length);return o&&(f=Math.min(f,i.minRowLength(o))),e._length=f,f}}},{"../../lib":778,"../../registry":911}],1139:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../lib");e.exports=function(t,e,r,a){var o=e.yaxis,s=e.xaxis,l=!!s.rangebreaks;i.makeTraceGroups(a,r,"trace ohlc").each((function(t){var e=n.select(this),r=t[0],a=r.t;if(!0!==r.trace.visible||a.empty)e.remove();else{var c=a.tickLen,u=e.selectAll("path").data(i.identity);u.enter().append("path"),u.exit().remove(),u.attr("d",(function(t){if(t.empty)return"M0,0Z";var e=s.c2p(t.pos-c,!0),r=s.c2p(t.pos+c,!0),n=l?(e+r)/2:s.c2p(t.pos,!0);return"M"+e+","+o.c2p(t.o,!0)+"H"+n+"M"+n+","+o.c2p(t.h,!0)+"V"+o.c2p(t.l,!0)+"M"+r+","+o.c2p(t.c,!0)+"H"+n}))}}))}},{"../../lib":778,d3:169}],1140:[function(t,e,r){"use strict";e.exports=function(t,e){var r,n=t.cd,i=t.xaxis,a=t.yaxis,o=[],s=n[0].t.bPos||0;if(!1===e)for(r=0;r=t.length)return!1;if(void 0!==e[t[r]])return!1;e[t[r]]=!0}return!0}(t.map((function(t){return t.displayindex}))))for(e=0;e0;c&&(o="array");var u=r("categoryorder",o);"array"===u?(r("categoryarray"),r("ticktext")):(delete t.categoryarray,delete t.ticktext),c||"array"!==u||(e.categoryorder="trace")}}e.exports=function(t,e,r,f){function h(r,i){return n.coerce(t,e,l,r,i)}var p=s(t,e,{name:"dimensions",handleItemDefaults:u}),d=function(t,e,r,o,s){s("line.shape"),s("line.hovertemplate");var l=s("line.color",o.colorway[0]);if(i(t,"line")&&n.isArrayOrTypedArray(l)){if(l.length)return s("line.colorscale"),a(t,e,o,s,{prefix:"line.",cLetter:"c"}),l.length;e.line.color=r}return 1/0}(t,e,r,f,h);o(e,f,h),Array.isArray(p)&&p.length||(e.visible=!1),c(e,p,"values",d),h("hoveron"),h("hovertemplate"),h("arrangement"),h("bundlecolors"),h("sortpaths"),h("counts");var g={family:f.font.family,size:Math.round(f.font.size),color:f.font.color};n.coerceFont(h,"labelfont",g);var m={family:f.font.family,size:Math.round(f.font.size/1.2),color:f.font.color};n.coerceFont(h,"tickfont",m)}},{"../../components/colorscale/defaults":653,"../../components/colorscale/helpers":654,"../../lib":778,"../../plots/array_container_defaults":823,"../../plots/domain":855,"../parcoords/merge_length":1158,"./attributes":1142}],1146:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),calc:t("./calc"),plot:t("./plot"),colorbar:{container:"line",min:"cmin",max:"cmax"},moduleType:"trace",name:"parcats",basePlotModule:t("./base_plot"),categories:["noOpacity"],meta:{}}},{"./attributes":1142,"./base_plot":1143,"./calc":1144,"./defaults":1145,"./plot":1148}],1147:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../plot_api/plot_api"),a=t("../../components/fx"),o=t("../../lib"),s=o.strTranslate,l=t("../../components/drawing"),c=t("tinycolor2"),u=t("../../lib/svg_text_utils");function f(t,e,r,i){var a=t.map(R.bind(0,e,r)),c=i.selectAll("g.parcatslayer").data([null]);c.enter().append("g").attr("class","parcatslayer").style("pointer-events","all");var f=c.selectAll("g.trace.parcats").data(a,h),v=f.enter().append("g").attr("class","trace parcats");f.attr("transform",(function(t){return s(t.x,t.y)})),v.append("g").attr("class","paths");var y=f.select("g.paths").selectAll("path.path").data((function(t){return t.paths}),h);y.attr("fill",(function(t){return t.model.color}));var _=y.enter().append("path").attr("class","path").attr("stroke-opacity",0).attr("fill",(function(t){return t.model.color})).attr("fill-opacity",0);b(_),y.attr("d",(function(t){return t.svgD})),_.empty()||y.sort(d),y.exit().remove(),y.on("mouseover",g).on("mouseout",m).on("click",x),v.append("g").attr("class","dimensions");var k=f.select("g.dimensions").selectAll("g.dimension").data((function(t){return t.dimensions}),h);k.enter().append("g").attr("class","dimension"),k.attr("transform",(function(t){return s(t.x,0)})),k.exit().remove();var M=k.selectAll("g.category").data((function(t){return t.categories}),h),A=M.enter().append("g").attr("class","category");M.attr("transform",(function(t){return s(0,t.y)})),A.append("rect").attr("class","catrect").attr("pointer-events","none"),M.select("rect.catrect").attr("fill","none").attr("width",(function(t){return t.width})).attr("height",(function(t){return t.height})),w(A);var S=M.selectAll("rect.bandrect").data((function(t){return t.bands}),h);S.each((function(){o.raiseToTop(this)})),S.attr("fill",(function(t){return t.color}));var z=S.enter().append("rect").attr("class","bandrect").attr("stroke-opacity",0).attr("fill",(function(t){return t.color})).attr("fill-opacity",0);S.attr("fill",(function(t){return t.color})).attr("width",(function(t){return t.width})).attr("height",(function(t){return t.height})).attr("y",(function(t){return t.y})).attr("cursor",(function(t){return"fixed"===t.parcatsViewModel.arrangement?"default":"perpendicular"===t.parcatsViewModel.arrangement?"ns-resize":"move"})),T(z),S.exit().remove(),A.append("text").attr("class","catlabel").attr("pointer-events","none");var O=e._fullLayout.paper_bgcolor;M.select("text.catlabel").attr("text-anchor",(function(t){return p(t)?"start":"end"})).attr("alignment-baseline","middle").style("text-shadow",O+" -1px 1px 2px, "+O+" 1px 1px 2px, "+O+" 1px -1px 2px, "+O+" -1px -1px 2px").style("fill","rgb(0, 0, 0)").attr("x",(function(t){return p(t)?t.width+5:-5})).attr("y",(function(t){return t.height/2})).text((function(t){return t.model.categoryLabel})).each((function(t){l.font(n.select(this),t.parcatsViewModel.categorylabelfont),u.convertToTspans(n.select(this),e)})),A.append("text").attr("class","dimlabel"),M.select("text.dimlabel").attr("text-anchor","middle").attr("alignment-baseline","baseline").attr("cursor",(function(t){return"fixed"===t.parcatsViewModel.arrangement?"default":"ew-resize"})).attr("x",(function(t){return t.width/2})).attr("y",-5).text((function(t,e){return 0===e?t.parcatsViewModel.model.dimensions[t.model.dimensionInd].dimensionLabel:null})).each((function(t){l.font(n.select(this),t.parcatsViewModel.labelfont)})),M.selectAll("rect.bandrect").on("mouseover",E).on("mouseout",C),M.exit().remove(),k.call(n.behavior.drag().origin((function(t){return{x:t.x,y:0}})).on("dragstart",L).on("drag",I).on("dragend",P)),f.each((function(t){t.traceSelection=n.select(this),t.pathSelection=n.select(this).selectAll("g.paths").selectAll("path.path"),t.dimensionSelection=n.select(this).selectAll("g.dimensions").selectAll("g.dimension")})),f.exit().remove()}function h(t){return t.key}function p(t){var e=t.parcatsViewModel.dimensions.length,r=t.parcatsViewModel.dimensions[e-1].model.dimensionInd;return t.model.dimensionInd===r}function d(t,e){return t.model.rawColor>e.model.rawColor?1:t.model.rawColor"),C=n.mouse(f)[0];a.loneHover({trace:h,x:b-d.left+g.left,y:w-d.top+g.top,text:E,color:t.model.color,borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontSize:10,fontColor:T,idealAlign:C1&&h.displayInd===f.dimensions.length-1?(i=c.left,a="left"):(i=c.left+c.width,a="right");var g=u.model.count,m=u.model.categoryLabel,v=g/u.parcatsViewModel.model.count,y={countLabel:g,categoryLabel:m,probabilityLabel:v.toFixed(3)},x=[];-1!==u.parcatsViewModel.hoverinfoItems.indexOf("count")&&x.push(["Count:",y.countLabel].join(" ")),-1!==u.parcatsViewModel.hoverinfoItems.indexOf("probability")&&x.push(["P("+y.categoryLabel+"):",y.probabilityLabel].join(" "));var b=x.join("
    ");return{trace:p,x:o*(i-e.left),y:s*(d-e.top),text:b,color:"lightgray",borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontSize:12,fontColor:"black",idealAlign:a,hovertemplate:p.hovertemplate,hovertemplateLabels:y,eventData:[{data:p._input,fullData:p,count:g,category:m,probability:v}]}}function E(t){if(!t.parcatsViewModel.dragDimension&&-1===t.parcatsViewModel.hoverinfoItems.indexOf("skip")){if(n.mouse(this)[1]<-1)return;var e,r=t.parcatsViewModel.graphDiv,i=r._fullLayout,s=i._paperdiv.node().getBoundingClientRect(),l=t.parcatsViewModel.hoveron;if("color"===l?(!function(t){var e=n.select(t).datum(),r=k(e);_(r),r.each((function(){o.raiseToTop(this)})),n.select(t.parentNode).selectAll("rect.bandrect").filter((function(t){return t.color===e.color})).each((function(){o.raiseToTop(this),n.select(this).attr("stroke","black").attr("stroke-width",1.5)}))}(this),A(this,"plotly_hover",n.event)):(!function(t){n.select(t.parentNode).selectAll("rect.bandrect").each((function(t){var e=k(t);_(e),e.each((function(){o.raiseToTop(this)}))})),n.select(t.parentNode).select("rect.catrect").attr("stroke","black").attr("stroke-width",2.5)}(this),M(this,"plotly_hover",n.event)),-1===t.parcatsViewModel.hoverinfoItems.indexOf("none"))"category"===l?e=S(r,s,this):"color"===l?e=function(t,e,r){t._fullLayout._calcInverseTransform(t);var i,a,o=t._fullLayout._invScaleX,s=t._fullLayout._invScaleY,l=r.getBoundingClientRect(),u=n.select(r).datum(),f=u.categoryViewModel,h=f.parcatsViewModel,p=h.model.dimensions[f.model.dimensionInd],d=h.trace,g=l.y+l.height/2;h.dimensions.length>1&&p.displayInd===h.dimensions.length-1?(i=l.left,a="left"):(i=l.left+l.width,a="right");var m=f.model.categoryLabel,v=u.parcatsViewModel.model.count,y=0;u.categoryViewModel.bands.forEach((function(t){t.color===u.color&&(y+=t.count)}));var x=f.model.count,b=0;h.pathSelection.each((function(t){t.model.color===u.color&&(b+=t.model.count)}));var _=y/v,w=y/b,T=y/x,k={countLabel:v,categoryLabel:m,probabilityLabel:_.toFixed(3)},M=[];-1!==f.parcatsViewModel.hoverinfoItems.indexOf("count")&&M.push(["Count:",k.countLabel].join(" ")),-1!==f.parcatsViewModel.hoverinfoItems.indexOf("probability")&&(M.push("P(color \u2229 "+m+"): "+k.probabilityLabel),M.push("P("+m+" | color): "+w.toFixed(3)),M.push("P(color | "+m+"): "+T.toFixed(3)));var A=M.join("
    "),S=c.mostReadable(u.color,["black","white"]);return{trace:d,x:o*(i-e.left),y:s*(g-e.top),text:A,color:u.color,borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontColor:S,fontSize:10,idealAlign:a,hovertemplate:d.hovertemplate,hovertemplateLabels:k,eventData:[{data:d._input,fullData:d,category:m,count:v,probability:_,categorycount:x,colorcount:b,bandcolorcount:y}]}}(r,s,this):"dimension"===l&&(e=function(t,e,r){var i=[];return n.select(r.parentNode.parentNode).selectAll("g.category").select("rect.catrect").each((function(){i.push(S(t,e,this))})),i}(r,s,this)),e&&a.loneHover(e,{container:i._hoverlayer.node(),outerContainer:i._paper.node(),gd:r})}}function C(t){var e=t.parcatsViewModel;if(!e.dragDimension&&(b(e.pathSelection),w(e.dimensionSelection.selectAll("g.category")),T(e.dimensionSelection.selectAll("g.category").selectAll("rect.bandrect")),a.loneUnhover(e.graphDiv._fullLayout._hoverlayer.node()),e.pathSelection.sort(d),-1===e.hoverinfoItems.indexOf("skip"))){"color"===t.parcatsViewModel.hoveron?A(this,"plotly_unhover",n.event):M(this,"plotly_unhover",n.event)}}function L(t){"fixed"!==t.parcatsViewModel.arrangement&&(t.dragDimensionDisplayInd=t.model.displayInd,t.initialDragDimensionDisplayInds=t.parcatsViewModel.model.dimensions.map((function(t){return t.displayInd})),t.dragHasMoved=!1,t.dragCategoryDisplayInd=null,n.select(this).selectAll("g.category").select("rect.catrect").each((function(e){var r=n.mouse(this)[0],i=n.mouse(this)[1];-2<=r&&r<=e.width+2&&-2<=i&&i<=e.height+2&&(t.dragCategoryDisplayInd=e.model.displayInd,t.initialDragCategoryDisplayInds=t.model.categories.map((function(t){return t.displayInd})),e.model.dragY=e.y,o.raiseToTop(this.parentNode),n.select(this.parentNode).selectAll("rect.bandrect").each((function(e){e.yf.y+f.height/2&&(o.model.displayInd=f.model.displayInd,f.model.displayInd=l),t.dragCategoryDisplayInd=o.model.displayInd}if(null===t.dragCategoryDisplayInd||"freeform"===t.parcatsViewModel.arrangement){a.model.dragX=n.event.x;var h=t.parcatsViewModel.dimensions[r],p=t.parcatsViewModel.dimensions[i];void 0!==h&&a.model.dragXp.x&&(a.model.displayInd=p.model.displayInd,p.model.displayInd=t.dragDimensionDisplayInd),t.dragDimensionDisplayInd=a.model.displayInd}N(t.parcatsViewModel),B(t.parcatsViewModel),D(t.parcatsViewModel),O(t.parcatsViewModel)}}function P(t){if("fixed"!==t.parcatsViewModel.arrangement&&null!==t.dragDimensionDisplayInd){n.select(this).selectAll("text").attr("font-weight","normal");var e={},r=z(t.parcatsViewModel),a=t.parcatsViewModel.model.dimensions.map((function(t){return t.displayInd})),o=t.initialDragDimensionDisplayInds.some((function(t,e){return t!==a[e]}));o&&a.forEach((function(r,n){var i=t.parcatsViewModel.model.dimensions[n].containerInd;e["dimensions["+i+"].displayindex"]=r}));var s=!1;if(null!==t.dragCategoryDisplayInd){var l=t.model.categories.map((function(t){return t.displayInd}));if(s=t.initialDragCategoryDisplayInds.some((function(t,e){return t!==l[e]}))){var c=t.model.categories.slice().sort((function(t,e){return t.displayInd-e.displayInd})),u=c.map((function(t){return t.categoryValue})),f=c.map((function(t){return t.categoryLabel}));e["dimensions["+t.model.containerInd+"].categoryarray"]=[u],e["dimensions["+t.model.containerInd+"].ticktext"]=[f],e["dimensions["+t.model.containerInd+"].categoryorder"]="array"}}if(-1===t.parcatsViewModel.hoverinfoItems.indexOf("skip")&&!t.dragHasMoved&&t.potentialClickBand&&("color"===t.parcatsViewModel.hoveron?A(t.potentialClickBand,"plotly_click",n.event.sourceEvent):M(t.potentialClickBand,"plotly_click",n.event.sourceEvent)),t.model.dragX=null,null!==t.dragCategoryDisplayInd)t.parcatsViewModel.dimensions[t.dragDimensionDisplayInd].categories[t.dragCategoryDisplayInd].model.dragY=null,t.dragCategoryDisplayInd=null;t.dragDimensionDisplayInd=null,t.parcatsViewModel.dragDimension=null,t.dragHasMoved=null,t.potentialClickBand=null,N(t.parcatsViewModel),B(t.parcatsViewModel),n.transition().duration(300).ease("cubic-in-out").each((function(){D(t.parcatsViewModel,!0),O(t.parcatsViewModel,!0)})).each("end",(function(){(o||s)&&i.restyle(t.parcatsViewModel.graphDiv,e,[r])}))}}function z(t){for(var e,r=t.graphDiv._fullData,n=0;n=0;s--)u+="C"+c[s]+","+(e[s+1]+i)+" "+l[s]+","+(e[s]+i)+" "+(t[s]+r[s])+","+(e[s]+i),u+="l-"+r[s]+",0 ";return u+="Z"}function B(t){var e=t.dimensions,r=t.model,n=e.map((function(t){return t.categories.map((function(t){return t.y}))})),i=t.model.dimensions.map((function(t){return t.categories.map((function(t){return t.displayInd}))})),a=t.model.dimensions.map((function(t){return t.displayInd})),o=t.dimensions.map((function(t){return t.model.dimensionInd})),s=e.map((function(t){return t.x})),l=e.map((function(t){return t.width})),c=[];for(var u in r.paths)r.paths.hasOwnProperty(u)&&c.push(r.paths[u]);function f(t){var e=t.categoryInds.map((function(t,e){return i[e][t]}));return o.map((function(t){return e[t]}))}c.sort((function(e,r){var n=f(e),i=f(r);return"backward"===t.sortpaths&&(n.reverse(),i.reverse()),n.push(e.valueInds[0]),i.push(r.valueInds[0]),t.bundlecolors&&(n.unshift(e.rawColor),i.unshift(r.rawColor)),ni?1:0}));for(var h=new Array(c.length),p=e[0].model.count,d=e[0].categories.map((function(t){return t.height})).reduce((function(t,e){return t+e})),g=0;g0?d*(v.count/p):0;for(var y,x=new Array(n.length),b=0;b1?(t.width-80-16)/(n-1):0)*i;var a,o,s,l,c,u=[],f=t.model.maxCats,h=e.categories.length,p=e.count,d=t.height-8*(f-1),g=8*(f-h)/2,m=e.categories.map((function(t){return{displayInd:t.displayInd,categoryInd:t.categoryInd}}));for(m.sort((function(t,e){return t.displayInd-e.displayInd})),c=0;c0?o.count/p*d:0,s={key:o.valueInds[0],model:o,width:16,height:a,y:null!==o.dragY?o.dragY:g,bands:[],parcatsViewModel:t},g=g+a+8,u.push(s);return{key:e.dimensionInd,x:null!==e.dragX?e.dragX:r,y:0,width:16,model:e,categories:u,parcatsViewModel:t,dragCategoryDisplayInd:null,dragDimensionDisplayInd:null,initialDragDimensionDisplayInds:null,initialDragCategoryDisplayInds:null,dragHasMoved:null,potentialClickBand:null}}e.exports=function(t,e,r,n){f(r,t,n,e)}},{"../../components/drawing":665,"../../components/fx":683,"../../lib":778,"../../lib/svg_text_utils":803,"../../plot_api/plot_api":814,d3:169,tinycolor2:576}],1148:[function(t,e,r){"use strict";var n=t("./parcats");e.exports=function(t,e,r,i){var a=t._fullLayout,o=a._paper,s=a._size;n(t,o,e,{width:s.w,height:s.h,margin:{t:s.t,r:s.r,b:s.b,l:s.l}},r,i)}},{"./parcats":1147}],1149:[function(t,e,r){"use strict";var n=t("../../components/colorscale/attributes"),i=t("../../plots/cartesian/layout_attributes"),a=t("../../plots/font_attributes"),o=t("../../plots/domain").attributes,s=t("../../lib/extend").extendFlat,l=t("../../plot_api/plot_template").templatedArray;e.exports={domain:o({name:"parcoords",trace:!0,editType:"plot"}),labelangle:{valType:"angle",dflt:0,editType:"plot"},labelside:{valType:"enumerated",values:["top","bottom"],dflt:"top",editType:"plot"},labelfont:a({editType:"plot"}),tickfont:a({editType:"plot"}),rangefont:a({editType:"plot"}),dimensions:l("dimension",{label:{valType:"string",editType:"plot"},tickvals:s({},i.tickvals,{editType:"plot"}),ticktext:s({},i.ticktext,{editType:"plot"}),tickformat:s({},i.tickformat,{editType:"plot"}),visible:{valType:"boolean",dflt:!0,editType:"plot"},range:{valType:"info_array",items:[{valType:"number",editType:"plot"},{valType:"number",editType:"plot"}],editType:"plot"},constraintrange:{valType:"info_array",freeLength:!0,dimensions:"1-2",items:[{valType:"number",editType:"plot"},{valType:"number",editType:"plot"}],editType:"plot"},multiselect:{valType:"boolean",dflt:!0,editType:"plot"},values:{valType:"data_array",editType:"calc"},editType:"calc"}),line:s({editType:"calc"},n("line",{colorscaleDflt:"Viridis",autoColorDflt:!1,editTypeOverride:"calc"}))}},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plot_api/plot_template":817,"../../plots/cartesian/layout_attributes":842,"../../plots/domain":855,"../../plots/font_attributes":856}],1150:[function(t,e,r){"use strict";var n=t("./constants"),i=t("d3"),a=t("../../lib/gup").keyFun,o=t("../../lib/gup").repeat,s=t("../../lib").sorterAsc,l=t("../../lib").strTranslate,c=n.bar.snapRatio;function u(t,e){return t*(1-c)+e*c}var f=n.bar.snapClose;function h(t,e){return t*(1-f)+e*f}function p(t,e,r,n){if(function(t,e){for(var r=0;r=e[r][0]&&t<=e[r][1])return!0;return!1}(r,n))return r;var i=t?-1:1,a=0,o=e.length-1;if(i<0){var s=a;a=o,o=s}for(var l=e[a],c=l,f=a;i*fe){h=r;break}}if(a=u,isNaN(a)&&(a=isNaN(f)||isNaN(h)?isNaN(f)?h:f:e-c[f][1]t[1]+r||e=.9*t[1]+.1*t[0]?"n":e<=.9*t[0]+.1*t[1]?"s":"ns"}(d,e);g&&(o.interval=l[a],o.intervalPix=d,o.region=g)}}if(t.ordinal&&!o.region){var m=t.unitTickvals,y=t.unitToPaddedPx.invert(e);for(r=0;r=x[0]&&y<=x[1]){o.clickableOrdinalRange=x;break}}}return o}function w(t,e){i.event.sourceEvent.stopPropagation();var r=e.height-i.mouse(t)[1]-2*n.verticalPadding,a=e.brush.svgBrush;a.wasDragged=!0,a._dragging=!0,a.grabbingBar?a.newExtent=[r-a.grabPoint,r+a.barLength-a.grabPoint].map(e.unitToPaddedPx.invert):a.newExtent=[a.startExtent,e.unitToPaddedPx.invert(r)].sort(s),e.brush.filterSpecified=!0,a.extent=a.stayingIntervals.concat([a.newExtent]),a.brushCallback(e),b(t.parentNode)}function T(t,e){var r=_(e,e.height-i.mouse(t)[1]-2*n.verticalPadding),a="crosshair";r.clickableOrdinalRange?a="pointer":r.region&&(a=r.region+"-resize"),i.select(document.body).style("cursor",a)}function k(t){t.on("mousemove",(function(t){i.event.preventDefault(),t.parent.inBrushDrag||T(this,t)})).on("mouseleave",(function(t){t.parent.inBrushDrag||y()})).call(i.behavior.drag().on("dragstart",(function(t){!function(t,e){i.event.sourceEvent.stopPropagation();var r=e.height-i.mouse(t)[1]-2*n.verticalPadding,a=e.unitToPaddedPx.invert(r),o=e.brush,s=_(e,r),l=s.interval,c=o.svgBrush;if(c.wasDragged=!1,c.grabbingBar="ns"===s.region,c.grabbingBar){var u=l.map(e.unitToPaddedPx);c.grabPoint=r-u[0]-n.verticalPadding,c.barLength=u[1]-u[0]}c.clickableOrdinalRange=s.clickableOrdinalRange,c.stayingIntervals=e.multiselect&&o.filterSpecified?o.filter.getConsolidated():[],l&&(c.stayingIntervals=c.stayingIntervals.filter((function(t){return t[0]!==l[0]&&t[1]!==l[1]}))),c.startExtent=s.region?l["s"===s.region?1:0]:a,e.parent.inBrushDrag=!0,c.brushStartCallback()}(this,t)})).on("drag",(function(t){w(this,t)})).on("dragend",(function(t){!function(t,e){var r=e.brush,n=r.filter,a=r.svgBrush;a._dragging||(T(t,e),w(t,e),e.brush.svgBrush.wasDragged=!1),a._dragging=!1,i.event.sourceEvent.stopPropagation();var o=a.grabbingBar;if(a.grabbingBar=!1,a.grabLocation=void 0,e.parent.inBrushDrag=!1,y(),!a.wasDragged)return a.wasDragged=void 0,a.clickableOrdinalRange?r.filterSpecified&&e.multiselect?a.extent.push(a.clickableOrdinalRange):(a.extent=[a.clickableOrdinalRange],r.filterSpecified=!0):o?(a.extent=a.stayingIntervals,0===a.extent.length&&A(r)):A(r),a.brushCallback(e),b(t.parentNode),void a.brushEndCallback(r.filterSpecified?n.getConsolidated():[]);var s=function(){n.set(n.getConsolidated())};if(e.ordinal){var l=e.unitTickvals;l[l.length-1]a.newExtent[0];a.extent=a.stayingIntervals.concat(c?[a.newExtent]:[]),a.extent.length||A(r),a.brushCallback(e),c?b(t.parentNode,s):(s(),b(t.parentNode))}else s();a.brushEndCallback(r.filterSpecified?n.getConsolidated():[])}(this,t)})))}function M(t,e){return t[0]-e[0]}function A(t){t.filterSpecified=!1,t.svgBrush.extent=[[-1/0,1/0]]}function S(t){for(var e,r=t.slice(),n=[],i=r.shift();i;){for(e=i.slice();(i=r.shift())&&i[0]<=e[1];)e[1]=Math.max(e[1],i[1]);n.push(e)}return 1===n.length&&n[0][0]>n[0][1]&&(n=[]),n}e.exports={makeBrush:function(t,e,r,n,i,a){var o,l=function(){var t,e,r=[];return{set:function(n){1===(r=n.map((function(t){return t.slice().sort(s)})).sort(M)).length&&r[0][0]===-1/0&&r[0][1]===1/0&&(r=[[0,-1]]),t=S(r),e=r.reduce((function(t,e){return[Math.min(t[0],e[0]),Math.max(t[1],e[1])]}),[1/0,-1/0])},get:function(){return r.slice()},getConsolidated:function(){return t},getBounds:function(){return e}}}();return l.set(r),{filter:l,filterSpecified:e,svgBrush:{extent:[],brushStartCallback:n,brushCallback:(o=i,function(t){var e=t.brush,r=function(t){return t.svgBrush.extent.map((function(t){return t.slice()}))}(e).slice();e.filter.set(r),o()}),brushEndCallback:a}}},ensureAxisBrush:function(t){var e=t.selectAll("."+n.cn.axisBrush).data(o,a);e.enter().append("g").classed(n.cn.axisBrush,!0),function(t){var e=t.selectAll(".background").data(o);e.enter().append("rect").classed("background",!0).call(d).call(g).style("pointer-events","auto").attr("transform",l(0,n.verticalPadding)),e.call(k).attr("height",(function(t){return t.height-n.verticalPadding}));var r=t.selectAll(".highlight-shadow").data(o);r.enter().append("line").classed("highlight-shadow",!0).attr("x",-n.bar.width/2).attr("stroke-width",n.bar.width+n.bar.strokeWidth).attr("stroke",n.bar.strokeColor).attr("opacity",n.bar.strokeOpacity).attr("stroke-linecap","butt"),r.attr("y1",(function(t){return t.height})).call(x);var i=t.selectAll(".highlight").data(o);i.enter().append("line").classed("highlight",!0).attr("x",-n.bar.width/2).attr("stroke-width",n.bar.width-n.bar.strokeWidth).attr("stroke",n.bar.fillColor).attr("opacity",n.bar.fillOpacity).attr("stroke-linecap","butt"),i.attr("y1",(function(t){return t.height})).call(x)}(e)},cleanRanges:function(t,e){if(Array.isArray(t[0])?(t=t.map((function(t){return t.sort(s)})),t=e.multiselect?S(t.sort(M)):[t[0]]):t=[t.sort(s)],e.tickvals){var r=e.tickvals.slice().sort(s);if(!(t=t.map((function(t){var e=[p(0,r,t[0],[]),p(1,r,t[1],[])];if(e[1]>e[0])return e})).filter((function(t){return t}))).length)return}return t.length>1?t:t[0]}}},{"../../lib":778,"../../lib/gup":775,"./constants":1153,d3:169}],1151:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../plots/get_data").getModuleCalcData,a=t("./plot"),o=t("../../constants/xmlns_namespaces");r.name="parcoords",r.plot=function(t){var e=i(t.calcdata,"parcoords")[0];e.length&&a(t,e)},r.clean=function(t,e,r,n){var i=n._has&&n._has("parcoords"),a=e._has&&e._has("parcoords");i&&!a&&(n._paperdiv.selectAll(".parcoords").remove(),n._glimages.selectAll("*").remove())},r.toSVG=function(t){var e=t._fullLayout._glimages,r=n.select(t).selectAll(".svg-container");r.filter((function(t,e){return e===r.size()-1})).selectAll(".gl-canvas-context, .gl-canvas-focus").each((function(){var t=this.toDataURL("image/png");e.append("svg:image").attr({xmlns:o.svg,"xlink:href":t,preserveAspectRatio:"none",x:0,y:0,width:this.width,height:this.height})})),window.setTimeout((function(){n.selectAll("#filterBarPattern").attr("id","filterBarPattern")}),60)}},{"../../constants/xmlns_namespaces":754,"../../plots/get_data":865,"./plot":1160,d3:169}],1152:[function(t,e,r){"use strict";var n=t("../../lib").isArrayOrTypedArray,i=t("../../components/colorscale"),a=t("../../lib/gup").wrap;e.exports=function(t,e){var r,o;return i.hasColorscale(e,"line")&&n(e.line.color)?(r=e.line.color,o=i.extractOpts(e.line).colorscale,i.calc(t,e,{vals:r,containerStr:"line",cLetter:"c"})):(r=function(t){for(var e=new Array(t),r=0;rf&&(n.log("parcoords traces support up to "+f+" dimensions at the moment"),d.splice(f));var g=s(t,e,{name:"dimensions",layout:l,handleItemDefaults:p}),m=function(t,e,r,o,s){var l=s("line.color",r);if(i(t,"line")&&n.isArrayOrTypedArray(l)){if(l.length)return s("line.colorscale"),a(t,e,o,s,{prefix:"line.",cLetter:"c"}),l.length;e.line.color=r}return 1/0}(t,e,r,l,u);o(e,l,u),Array.isArray(g)&&g.length||(e.visible=!1),h(e,g,"values",m);var v={family:l.font.family,size:Math.round(l.font.size/1.2),color:l.font.color};n.coerceFont(u,"labelfont",v),n.coerceFont(u,"tickfont",v),n.coerceFont(u,"rangefont",v),u("labelangle"),u("labelside")}},{"../../components/colorscale/defaults":653,"../../components/colorscale/helpers":654,"../../lib":778,"../../plots/array_container_defaults":823,"../../plots/cartesian/axes":828,"../../plots/domain":855,"./attributes":1149,"./axisbrush":1150,"./constants":1153,"./merge_length":1158}],1155:[function(t,e,r){"use strict";var n=t("../../lib").isTypedArray;r.convertTypedArray=function(t){return n(t)?Array.prototype.slice.call(t):t},r.isOrdinal=function(t){return!!t.tickvals},r.isVisible=function(t){return t.visible||!("visible"in t)}},{"../../lib":778}],1156:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),calc:t("./calc"),plot:t("./plot"),colorbar:{container:"line",min:"cmin",max:"cmax"},moduleType:"trace",name:"parcoords",basePlotModule:t("./base_plot"),categories:["gl","regl","noOpacity","noHover"],meta:{}}},{"./attributes":1149,"./base_plot":1151,"./calc":1152,"./defaults":1154,"./plot":1160}],1157:[function(t,e,r){"use strict";var n=t("glslify"),i=n(["precision highp float;\n#define GLSLIFY 1\n\nvarying vec4 fragColor;\n\nattribute vec4 p01_04, p05_08, p09_12, p13_16,\n p17_20, p21_24, p25_28, p29_32,\n p33_36, p37_40, p41_44, p45_48,\n p49_52, p53_56, p57_60, colors;\n\nuniform mat4 dim0A, dim1A, dim0B, dim1B, dim0C, dim1C, dim0D, dim1D,\n loA, hiA, loB, hiB, loC, hiC, loD, hiD;\n\nuniform vec2 resolution, viewBoxPos, viewBoxSize;\nuniform sampler2D mask, palette;\nuniform float maskHeight;\nuniform float drwLayer; // 0: context, 1: focus, 2: pick\nuniform vec4 contextColor;\n\nbool isPick = (drwLayer > 1.5);\nbool isContext = (drwLayer < 0.5);\n\nconst vec4 ZEROS = vec4(0.0, 0.0, 0.0, 0.0);\nconst vec4 UNITS = vec4(1.0, 1.0, 1.0, 1.0);\n\nfloat val(mat4 p, mat4 v) {\n return dot(matrixCompMult(p, v) * UNITS, UNITS);\n}\n\nfloat axisY(float ratio, mat4 A, mat4 B, mat4 C, mat4 D) {\n float y1 = val(A, dim0A) + val(B, dim0B) + val(C, dim0C) + val(D, dim0D);\n float y2 = val(A, dim1A) + val(B, dim1B) + val(C, dim1C) + val(D, dim1D);\n return y1 * (1.0 - ratio) + y2 * ratio;\n}\n\nint iMod(int a, int b) {\n return a - b * (a / b);\n}\n\nbool fOutside(float p, float lo, float hi) {\n return (lo < hi) && (lo > p || p > hi);\n}\n\nbool vOutside(vec4 p, vec4 lo, vec4 hi) {\n return (\n fOutside(p[0], lo[0], hi[0]) ||\n fOutside(p[1], lo[1], hi[1]) ||\n fOutside(p[2], lo[2], hi[2]) ||\n fOutside(p[3], lo[3], hi[3])\n );\n}\n\nbool mOutside(mat4 p, mat4 lo, mat4 hi) {\n return (\n vOutside(p[0], lo[0], hi[0]) ||\n vOutside(p[1], lo[1], hi[1]) ||\n vOutside(p[2], lo[2], hi[2]) ||\n vOutside(p[3], lo[3], hi[3])\n );\n}\n\nbool outsideBoundingBox(mat4 A, mat4 B, mat4 C, mat4 D) {\n return mOutside(A, loA, hiA) ||\n mOutside(B, loB, hiB) ||\n mOutside(C, loC, hiC) ||\n mOutside(D, loD, hiD);\n}\n\nbool outsideRasterMask(mat4 A, mat4 B, mat4 C, mat4 D) {\n mat4 pnts[4];\n pnts[0] = A;\n pnts[1] = B;\n pnts[2] = C;\n pnts[3] = D;\n\n for(int i = 0; i < 4; ++i) {\n for(int j = 0; j < 4; ++j) {\n for(int k = 0; k < 4; ++k) {\n if(0 == iMod(\n int(255.0 * texture2D(mask,\n vec2(\n (float(i * 2 + j / 2) + 0.5) / 8.0,\n (pnts[i][j][k] * (maskHeight - 1.0) + 1.0) / maskHeight\n ))[3]\n ) / int(pow(2.0, float(iMod(j * 4 + k, 8)))),\n 2\n )) return true;\n }\n }\n }\n return false;\n}\n\nvec4 position(bool isContext, float v, mat4 A, mat4 B, mat4 C, mat4 D) {\n float x = 0.5 * sign(v) + 0.5;\n float y = axisY(x, A, B, C, D);\n float z = 1.0 - abs(v);\n\n z += isContext ? 0.0 : 2.0 * float(\n outsideBoundingBox(A, B, C, D) ||\n outsideRasterMask(A, B, C, D)\n );\n\n return vec4(\n 2.0 * (vec2(x, y) * viewBoxSize + viewBoxPos) / resolution - 1.0,\n z,\n 1.0\n );\n}\n\nvoid main() {\n mat4 A = mat4(p01_04, p05_08, p09_12, p13_16);\n mat4 B = mat4(p17_20, p21_24, p25_28, p29_32);\n mat4 C = mat4(p33_36, p37_40, p41_44, p45_48);\n mat4 D = mat4(p49_52, p53_56, p57_60, ZEROS);\n\n float v = colors[3];\n\n gl_Position = position(isContext, v, A, B, C, D);\n\n fragColor =\n isContext ? vec4(contextColor) :\n isPick ? vec4(colors.rgb, 1.0) : texture2D(palette, vec2(abs(v), 0.5));\n}\n"]),a=n(["precision highp float;\n#define GLSLIFY 1\n\nvarying vec4 fragColor;\n\nvoid main() {\n gl_FragColor = fragColor;\n}\n"]),o=t("./constants").maxDimensionCount,s=t("../../lib"),l=new Uint8Array(4),c=new Uint8Array(4),u={shape:[256,1],format:"rgba",type:"uint8",mag:"nearest",min:"nearest"};function f(t,e,r,n,i){var a=t._gl;a.enable(a.SCISSOR_TEST),a.scissor(e,r,n,i),t.clear({color:[0,0,0,0],depth:1})}function h(t,e,r,n,i,a){var o=a.key;r.drawCompleted||(!function(t){t.read({x:0,y:0,width:1,height:1,data:l})}(t),r.drawCompleted=!0),function s(l){var c=Math.min(n,i-l*n);0===l&&(window.cancelAnimationFrame(r.currentRafs[o]),delete r.currentRafs[o],f(t,a.scissorX,a.scissorY,a.scissorWidth,a.viewBoxSize[1])),r.clearOnly||(a.count=2*c,a.offset=2*l*n,e(a),l*n+c>>8*e)%256/255}function g(t,e,r){for(var n=new Array(8*e),i=0,a=0;au&&(u=t[i].dim1.canvasX,o=i);0===s&&f(T,0,0,r.canvasWidth,r.canvasHeight);var p=function(t){var e,r,n,i=[[],[]];for(n=0;n<64;n++){var a=!t&&ni._length&&(A=A.slice(0,i._length));var E,C=i.tickvals;function L(t,e){return{val:t,text:E[e]}}function I(t,e){return t.val-e.val}if(Array.isArray(C)&&C.length){E=i.ticktext,Array.isArray(E)&&E.length?E.length>C.length?E=E.slice(0,C.length):C.length>E.length&&(C=C.slice(0,E.length)):E=C.map(n.format(i.tickformat));for(var P=1;P=r||l>=a)return;var c=t.lineLayer.readPixel(s,a-1-l),u=0!==c[3],f=u?c[2]+256*(c[1]+256*c[0]):null,h={x:s,y:l,clientX:e.clientX,clientY:e.clientY,dataIndex:t.model.key,curveNumber:f};f!==R&&(u?i.hover(h):i.unhover&&i.unhover(h),R=f)}})),D.style("opacity",(function(t){return t.pick?0:1})),h.style("background","rgba(255, 255, 255, 0)");var F=h.selectAll("."+v.cn.parcoords).data(A,p);F.exit().remove(),F.enter().append("g").classed(v.cn.parcoords,!0).style("shape-rendering","crispEdges").style("pointer-events","none"),F.attr("transform",(function(t){return l(t.model.translateX,t.model.translateY)}));var B=F.selectAll("."+v.cn.parcoordsControlView).data(d,p);B.enter().append("g").classed(v.cn.parcoordsControlView,!0),B.attr("transform",(function(t){return l(t.model.pad.l,t.model.pad.t)}));var N=B.selectAll("."+v.cn.yAxis).data((function(t){return t.dimensions}),p);N.enter().append("g").classed(v.cn.yAxis,!0),B.each((function(t){P(N,t)})),D.each((function(t){if(t.viewModel){!t.lineLayer||i?t.lineLayer=x(this,t):t.lineLayer.update(t),(t.key||0===t.key)&&(t.viewModel[t.key]=t.lineLayer);var e=!t.context||i;t.lineLayer.render(t.viewModel.panels,e)}})),N.attr("transform",(function(t){return l(t.xScale(t.xIndex),0)})),N.call(n.behavior.drag().origin((function(t){return t})).on("drag",(function(t){var e=t.parent;M.linePickActive(!1),t.x=Math.max(-v.overdrag,Math.min(t.model.width+v.overdrag,n.event.x)),t.canvasX=t.x*t.model.canvasPixelRatio,N.sort((function(t,e){return t.x-e.x})).each((function(e,r){e.xIndex=r,e.x=t===e?e.x:e.xScale(e.xIndex),e.canvasX=e.x*e.model.canvasPixelRatio})),P(N,e),N.filter((function(e){return 0!==Math.abs(t.xIndex-e.xIndex)})).attr("transform",(function(t){return l(t.xScale(t.xIndex),0)})),n.select(this).attr("transform",l(t.x,0)),N.each((function(r,n,i){i===t.parent.key&&(e.dimensions[n]=r)})),e.contextLayer&&e.contextLayer.render(e.panels,!1,!S(e)),e.focusLayer.render&&e.focusLayer.render(e.panels)})).on("dragend",(function(t){var e=t.parent;t.x=t.xScale(t.xIndex),t.canvasX=t.x*t.model.canvasPixelRatio,P(N,e),n.select(this).attr("transform",(function(t){return l(t.x,0)})),e.contextLayer&&e.contextLayer.render(e.panels,!1,!S(e)),e.focusLayer&&e.focusLayer.render(e.panels),e.pickLayer&&e.pickLayer.render(e.panels,!0),M.linePickActive(!0),i&&i.axesMoved&&i.axesMoved(e.key,e.dimensions.map((function(t){return t.crossfilterDimensionIndex})))}))),N.exit().remove();var j=N.selectAll("."+v.cn.axisOverlays).data(d,p);j.enter().append("g").classed(v.cn.axisOverlays,!0),j.selectAll("."+v.cn.axis).remove();var U=j.selectAll("."+v.cn.axis).data(d,p);U.enter().append("g").classed(v.cn.axis,!0),U.each((function(t){var e=t.model.height/t.model.tickDistance,r=t.domainScale,i=r.domain();n.select(this).call(n.svg.axis().orient("left").tickSize(4).outerTickSize(2).ticks(e,t.tickFormat).tickValues(t.ordinal?i:null).tickFormat((function(e){return m.isOrdinal(t)?e:z(t.model.dimensions[t.visibleIndex],e)})).scale(r)),u.font(U.selectAll("text"),t.model.tickFont)})),U.selectAll(".domain, .tick>line").attr("fill","none").attr("stroke","black").attr("stroke-opacity",.25).attr("stroke-width","1px"),U.selectAll("text").style("text-shadow","1px 1px 1px #fff, -1px -1px 1px #fff, 1px -1px 1px #fff, -1px 1px 1px #fff").style("cursor","default");var V=j.selectAll("."+v.cn.axisHeading).data(d,p);V.enter().append("g").classed(v.cn.axisHeading,!0);var q=V.selectAll("."+v.cn.axisTitle).data(d,p);q.enter().append("text").classed(v.cn.axisTitle,!0).attr("text-anchor","middle").style("cursor","ew-resize").style("pointer-events","auto"),q.text((function(t){return t.label})).each((function(e){var r=n.select(this);u.font(r,e.model.labelFont),c.convertToTspans(r,t)})).attr("transform",(function(t){var e=I(t.model.labelAngle,t.model.labelSide),r=v.axisTitleOffset;return(e.dir>0?"":l(0,2*r+t.model.height))+s(e.degrees)+l(-r*e.dx,-r*e.dy)})).attr("text-anchor",(function(t){var e=I(t.model.labelAngle,t.model.labelSide);return 2*Math.abs(e.dx)>Math.abs(e.dy)?e.dir*e.dx<0?"start":"end":"middle"}));var H=j.selectAll("."+v.cn.axisExtent).data(d,p);H.enter().append("g").classed(v.cn.axisExtent,!0);var G=H.selectAll("."+v.cn.axisExtentTop).data(d,p);G.enter().append("g").classed(v.cn.axisExtentTop,!0),G.attr("transform",l(0,-v.axisExtentOffset));var Y=G.selectAll("."+v.cn.axisExtentTopText).data(d,p);Y.enter().append("text").classed(v.cn.axisExtentTopText,!0).call(L),Y.text((function(t){return O(t,!0)})).each((function(t){u.font(n.select(this),t.model.rangeFont)}));var W=H.selectAll("."+v.cn.axisExtentBottom).data(d,p);W.enter().append("g").classed(v.cn.axisExtentBottom,!0),W.attr("transform",(function(t){return l(0,t.model.height+v.axisExtentOffset)}));var X=W.selectAll("."+v.cn.axisExtentBottomText).data(d,p);X.enter().append("text").classed(v.cn.axisExtentBottomText,!0).attr("dy","0.75em").call(L),X.text((function(t){return O(t,!1)})).each((function(t){u.font(n.select(this),t.model.rangeFont)})),y.ensureAxisBrush(j)}},{"../../components/colorscale":655,"../../components/drawing":665,"../../lib":778,"../../lib/gup":775,"../../lib/svg_text_utils":803,"../../plots/cartesian/axes":828,"./axisbrush":1150,"./constants":1153,"./helpers":1155,"./lines":1157,"color-rgba":127,d3:169}],1160:[function(t,e,r){"use strict";var n=t("./parcoords"),i=t("../../lib/prepare_regl"),a=t("./helpers").isVisible;function o(t,e,r){var n=e.indexOf(r),i=t.indexOf(n);return-1===i&&(i+=e.length),i}e.exports=function(t,e){var r=t._fullLayout;if(i(t)){var s={},l={},c={},u={},f=r._size;e.forEach((function(e,r){var n=e[0].trace;c[r]=n.index;var i=u[r]=n._fullInput.index;s[r]=t.data[i].dimensions,l[r]=t.data[i].dimensions.slice()}));n(t,e,{width:f.w,height:f.h,margin:{t:f.t,r:f.r,b:f.b,l:f.l}},{filterChanged:function(e,n,i){var a=l[e][n],o=i.map((function(t){return t.slice()})),s="dimensions["+n+"].constraintrange",f=r._tracePreGUI[t._fullData[c[e]]._fullInput.uid];if(void 0===f[s]){var h=a.constraintrange;f[s]=h||null}var p=t._fullData[c[e]].dimensions[n];o.length?(1===o.length&&(o=o[0]),a.constraintrange=o,p.constraintrange=o.slice(),o=[o]):(delete a.constraintrange,delete p.constraintrange,o=null);var d={};d[s]=o,t.emit("plotly_restyle",[d,[u[e]]])},hover:function(e){t.emit("plotly_hover",e)},unhover:function(e){t.emit("plotly_unhover",e)},axesMoved:function(e,r){var n=function(t,e){return function(r,n){return o(t,e,r)-o(t,e,n)}}(r,l[e].filter(a));s[e].sort(n),l[e].filter((function(t){return!a(t)})).sort((function(t){return l[e].indexOf(t)})).forEach((function(t){s[e].splice(s[e].indexOf(t),1),s[e].splice(l[e].indexOf(t),0,t)})),t.emit("plotly_restyle",[{dimensions:[s[e]]},[u[e]]])}})}}},{"../../lib/prepare_regl":791,"./helpers":1155,"./parcoords":1159}],1161:[function(t,e,r){"use strict";var n=t("../../plots/attributes"),i=t("../../plots/domain").attributes,a=t("../../plots/font_attributes"),o=t("../../components/color/attributes"),s=t("../../plots/template_attributes").hovertemplateAttrs,l=t("../../plots/template_attributes").texttemplateAttrs,c=t("../../lib/extend").extendFlat,u=a({editType:"plot",arrayOk:!0,colorEditType:"plot"});e.exports={labels:{valType:"data_array",editType:"calc"},label0:{valType:"number",dflt:0,editType:"calc"},dlabel:{valType:"number",dflt:1,editType:"calc"},values:{valType:"data_array",editType:"calc"},marker:{colors:{valType:"data_array",editType:"calc"},line:{color:{valType:"color",dflt:o.defaultLine,arrayOk:!0,editType:"style"},width:{valType:"number",min:0,dflt:0,arrayOk:!0,editType:"style"},editType:"calc"},editType:"calc"},text:{valType:"data_array",editType:"plot"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"style"},scalegroup:{valType:"string",dflt:"",editType:"calc"},textinfo:{valType:"flaglist",flags:["label","text","value","percent"],extras:["none"],editType:"calc"},hoverinfo:c({},n.hoverinfo,{flags:["label","text","value","percent","name"]}),hovertemplate:s({},{keys:["label","color","value","percent","text"]}),texttemplate:l({editType:"plot"},{keys:["label","color","value","percent","text"]}),textposition:{valType:"enumerated",values:["inside","outside","auto","none"],dflt:"auto",arrayOk:!0,editType:"plot"},textfont:c({},u,{}),insidetextorientation:{valType:"enumerated",values:["horizontal","radial","tangential","auto"],dflt:"auto",editType:"plot"},insidetextfont:c({},u,{}),outsidetextfont:c({},u,{}),automargin:{valType:"boolean",dflt:!1,editType:"plot"},title:{text:{valType:"string",dflt:"",editType:"plot"},font:c({},u,{}),position:{valType:"enumerated",values:["top left","top center","top right","middle center","bottom left","bottom center","bottom right"],editType:"plot"},editType:"plot"},domain:i({name:"pie",trace:!0,editType:"calc"}),hole:{valType:"number",min:0,max:1,dflt:0,editType:"calc"},sort:{valType:"boolean",dflt:!0,editType:"calc"},direction:{valType:"enumerated",values:["clockwise","counterclockwise"],dflt:"counterclockwise",editType:"calc"},rotation:{valType:"number",min:-360,max:360,dflt:0,editType:"calc"},pull:{valType:"number",min:0,max:1,dflt:0,arrayOk:!0,editType:"calc"},_deprecated:{title:{valType:"string",dflt:"",editType:"calc"},titlefont:c({},u,{}),titleposition:{valType:"enumerated",values:["top left","top center","top right","middle center","bottom left","bottom center","bottom right"],editType:"calc"}}}},{"../../components/color/attributes":642,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/domain":855,"../../plots/font_attributes":856,"../../plots/template_attributes":906}],1162:[function(t,e,r){"use strict";var n=t("../../plots/plots");r.name="pie",r.plot=function(t,e,i,a){n.plotBasePlot(r.name,t,e,i,a)},r.clean=function(t,e,i,a){n.cleanBasePlot(r.name,t,e,i,a)}},{"../../plots/plots":891}],1163:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("tinycolor2"),a=t("../../components/color"),o={};function s(t){return function(e,r){return!!e&&(!!(e=i(e)).isValid()&&(e=a.addOpacity(e,e.getAlpha()),t[r]||(t[r]=e),e))}}function l(t,e){var r,n=JSON.stringify(t),a=e[n];if(!a){for(a=t.slice(),r=0;r0){s=!0;break}}s||(o=0)}return{hasLabels:r,hasValues:a,len:o}}e.exports={handleLabelsAndValues:l,supplyDefaults:function(t,e,r,n){function c(r,n){return i.coerce(t,e,a,r,n)}var u=l(c("labels"),c("values")),f=u.len;if(e._hasLabels=u.hasLabels,e._hasValues=u.hasValues,!e._hasLabels&&e._hasValues&&(c("label0"),c("dlabel")),f){e._length=f,c("marker.line.width")&&c("marker.line.color"),c("marker.colors"),c("scalegroup");var h,p=c("text"),d=c("texttemplate");if(d||(h=c("textinfo",Array.isArray(p)?"text+percent":"percent")),c("hovertext"),c("hovertemplate"),d||h&&"none"!==h){var g=c("textposition");s(t,e,n,c,g,{moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1}),(Array.isArray(g)||"auto"===g||"outside"===g)&&c("automargin"),("inside"===g||"auto"===g||Array.isArray(g))&&c("insidetextorientation")}o(e,n,c);var m=c("hole");if(c("title.text")){var v=c("title.position",m?"middle center":"top center");m||"middle center"!==v||(e.title.position="top center"),i.coerceFont(c,"title.font",n.font)}c("sort"),c("direction"),c("rotation"),c("pull")}else e.visible=!1}}},{"../../lib":778,"../../plots/domain":855,"../bar/defaults":925,"./attributes":1161,"fast-isnumeric":241}],1165:[function(t,e,r){"use strict";var n=t("../../components/fx/helpers").appendArrayMultiPointValues;e.exports=function(t,e){var r={curveNumber:e.index,pointNumbers:t.pts,data:e._input,fullData:e,label:t.label,color:t.color,value:t.v,percent:t.percent,text:t.text,v:t.v};return 1===t.pts.length&&(r.pointNumber=r.i=t.pts[0]),n(r,e,t.pts),"funnelarea"===e.type&&(delete r.v,delete r.i),r}},{"../../components/fx/helpers":679}],1166:[function(t,e,r){"use strict";var n=t("../../lib");function i(t){return-1!==t.indexOf("e")?t.replace(/[.]?0+e/,"e"):-1!==t.indexOf(".")?t.replace(/[.]?0+$/,""):t}r.formatPiePercent=function(t,e){var r=i((100*t).toPrecision(3));return n.numSeparate(r,e)+"%"},r.formatPieValue=function(t,e){var r=i(t.toPrecision(10));return n.numSeparate(r,e)},r.getFirstFilled=function(t,e){if(Array.isArray(t))for(var r=0;r"),name:u.hovertemplate||-1!==f.indexOf("name")?u.name:void 0,idealAlign:t.pxmid[0]<0?"left":"right",color:m.castOption(b.bgcolor,t.pts)||t.color,borderColor:m.castOption(b.bordercolor,t.pts),fontFamily:m.castOption(_.family,t.pts),fontSize:m.castOption(_.size,t.pts),fontColor:m.castOption(_.color,t.pts),nameLength:m.castOption(b.namelength,t.pts),textAlign:m.castOption(b.align,t.pts),hovertemplate:m.castOption(u.hovertemplate,t.pts),hovertemplateLabels:t,eventData:[v(t,u)]},{container:r._hoverlayer.node(),outerContainer:r._paper.node(),gd:e}),o._hasHoverLabel=!0}o._hasHoverEvent=!0,e.emit("plotly_hover",{points:[v(t,u)],event:n.event})}})),t.on("mouseout",(function(t){var r=e._fullLayout,i=e._fullData[o.index],s=n.select(this).datum();o._hasHoverEvent&&(t.originalEvent=n.event,e.emit("plotly_unhover",{points:[v(s,i)],event:n.event}),o._hasHoverEvent=!1),o._hasHoverLabel&&(a.loneUnhover(r._hoverlayer.node()),o._hasHoverLabel=!1)})),t.on("click",(function(t){var r=e._fullLayout,i=e._fullData[o.index];e._dragging||!1===r.hovermode||(e._hoverdata=[v(t,i)],a.click(e,n.event))}))}function b(t,e,r){var n=m.castOption(t.insidetextfont.color,e.pts);!n&&t._input.textfont&&(n=m.castOption(t._input.textfont.color,e.pts));var i=m.castOption(t.insidetextfont.family,e.pts)||m.castOption(t.textfont.family,e.pts)||r.family,a=m.castOption(t.insidetextfont.size,e.pts)||m.castOption(t.textfont.size,e.pts)||r.size;return{color:n||o.contrast(e.color),family:i,size:a}}function _(t,e){for(var r,n,i=0;ie&&e>n||r=-4;m-=2)v(Math.PI*m,"tan");for(m=4;m>=-4;m-=2)v(Math.PI*(m+1),"tan")}if(f||p){for(m=4;m>=-4;m-=2)v(Math.PI*(m+1.5),"rad");for(m=4;m>=-4;m-=2)v(Math.PI*(m+.5),"rad")}}if(s||d||f){var y=Math.sqrt(t.width*t.width+t.height*t.height);if((a={scale:i*n*2/y,rCenter:1-i,rotate:0}).textPosAngle=(e.startangle+e.stopangle)/2,a.scale>=1)return a;g.push(a)}(d||p)&&((a=T(t,n,o,l,c)).textPosAngle=(e.startangle+e.stopangle)/2,g.push(a)),(d||h)&&((a=k(t,n,o,l,c)).textPosAngle=(e.startangle+e.stopangle)/2,g.push(a));for(var x=0,b=0,_=0;_=1)break}return g[x]}function T(t,e,r,n,i){e=Math.max(0,e-2*g);var a=t.width/t.height,o=S(a,n,e,r);return{scale:2*o/t.height,rCenter:M(a,o/e),rotate:A(i)}}function k(t,e,r,n,i){e=Math.max(0,e-2*g);var a=t.height/t.width,o=S(a,n,e,r);return{scale:2*o/t.width,rCenter:M(a,o/e),rotate:A(i+Math.PI/2)}}function M(t,e){return Math.cos(e)-t*e}function A(t){return(180/Math.PI*t+720)%180-90}function S(t,e,r,n){var i=t+1/(2*Math.tan(e));return r*Math.min(1/(Math.sqrt(i*i+.5)+i),n/(Math.sqrt(t*t+n/2)+t))}function E(t,e){return t.v!==e.vTotal||e.trace.hole?Math.min(1/(1+1/Math.sin(t.halfangle)),t.ring/2):1}function C(t,e){var r=e.pxmid[0],n=e.pxmid[1],i=t.width/2,a=t.height/2;return r<0&&(i*=-1),n<0&&(a*=-1),{scale:1,rCenter:1,rotate:0,x:i+Math.abs(a)*(i>0?1:-1)/2,y:a/(1+r*r/(n*n)),outside:!0}}function L(t,e){var r,n,i,a=t.trace,o={x:t.cx,y:t.cy},s={tx:0,ty:0};s.ty+=a.title.font.size,i=P(a),-1!==a.title.position.indexOf("top")?(o.y-=(1+i)*t.r,s.ty-=t.titleBox.height):-1!==a.title.position.indexOf("bottom")&&(o.y+=(1+i)*t.r);var l,c,u=(l=t.r,c=t.trace.aspectratio,l/(void 0===c?1:c)),f=e.w*(a.domain.x[1]-a.domain.x[0])/2;return-1!==a.title.position.indexOf("left")?(f+=u,o.x-=(1+i)*u,s.tx+=t.titleBox.width/2):-1!==a.title.position.indexOf("center")?f*=2:-1!==a.title.position.indexOf("right")&&(f+=u,o.x+=(1+i)*u,s.tx-=t.titleBox.width/2),r=f/t.titleBox.width,n=I(t,e)/t.titleBox.height,{x:o.x,y:o.y,scale:Math.min(r,n),tx:s.tx,ty:s.ty}}function I(t,e){var r=t.trace,n=e.h*(r.domain.y[1]-r.domain.y[0]);return Math.min(t.titleBox.height,n/2)}function P(t){var e,r=t.pull;if(!r)return 0;if(Array.isArray(r))for(r=0,e=0;er&&(r=t.pull[e]);return r}function z(t,e){for(var r=[],n=0;n1?(c=r.r,u=c/i.aspectratio):(u=r.r,c=u*i.aspectratio),c*=(1+i.baseratio)/2,l=c*u}o=Math.min(o,l/r.vTotal)}for(n=0;n")}if(a){var x=l.castOption(i,e.i,"texttemplate");if(x){var b=function(t){return{label:t.label,value:t.v,valueLabel:m.formatPieValue(t.v,n.separators),percent:t.v/r.vTotal,percentLabel:m.formatPiePercent(t.v/r.vTotal,n.separators),color:t.color,text:t.text,customdata:l.castOption(i,t.i,"customdata")}}(e),_=m.getFirstFilled(i.text,e.pts);(y(_)||""===_)&&(b.text=_),e.text=l.texttemplateString(x,b,t._fullLayout._d3locale,b,i._meta||{})}else e.text=""}}function R(t,e){var r=t.rotate*Math.PI/180,n=Math.cos(r),i=Math.sin(r),a=(e.left+e.right)/2,o=(e.top+e.bottom)/2;t.textX=a*n-o*i,t.textY=a*i+o*n,t.noCenter=!0}e.exports={plot:function(t,e){var r=t._fullLayout,a=r._size;d("pie",r),_(e,t),z(e,a);var h=l.makeTraceGroups(r._pielayer,e,"trace").each((function(e){var h=n.select(this),d=e[0],g=d.trace;!function(t){var e,r,n,i=t[0],a=i.r,o=i.trace,s=m.getRotationAngle(o.rotation),l=2*Math.PI/i.vTotal,c="px0",u="px1";if("counterclockwise"===o.direction){for(e=0;ei.vTotal/2?1:0,r.halfangle=Math.PI*Math.min(r.v/i.vTotal,.5),r.ring=1-o.hole,r.rInscribed=E(r,i))}(e),h.attr("stroke-linejoin","round"),h.each((function(){var v=n.select(this).selectAll("g.slice").data(e);v.enter().append("g").classed("slice",!0),v.exit().remove();var y=[[[],[]],[[],[]]],_=!1;v.each((function(i,a){if(i.hidden)n.select(this).selectAll("path,g").remove();else{i.pointNumber=i.i,i.curveNumber=g.index,y[i.pxmid[1]<0?0:1][i.pxmid[0]<0?0:1].push(i);var o=d.cx,c=d.cy,u=n.select(this),h=u.selectAll("path.surface").data([i]);if(h.enter().append("path").classed("surface",!0).style({"pointer-events":"all"}),u.call(x,t,e),g.pull){var v=+m.castOption(g.pull,i.pts)||0;v>0&&(o+=v*i.pxmid[0],c+=v*i.pxmid[1])}i.cxFinal=o,i.cyFinal=c;var T=g.hole;if(i.v===d.vTotal){var k="M"+(o+i.px0[0])+","+(c+i.px0[1])+L(i.px0,i.pxmid,!0,1)+L(i.pxmid,i.px0,!0,1)+"Z";T?h.attr("d","M"+(o+T*i.px0[0])+","+(c+T*i.px0[1])+L(i.px0,i.pxmid,!1,T)+L(i.pxmid,i.px0,!1,T)+"Z"+k):h.attr("d",k)}else{var M=L(i.px0,i.px1,!0,1);if(T){var A=1-T;h.attr("d","M"+(o+T*i.px1[0])+","+(c+T*i.px1[1])+L(i.px1,i.px0,!1,T)+"l"+A*i.px0[0]+","+A*i.px0[1]+M+"Z")}else h.attr("d","M"+o+","+c+"l"+i.px0[0]+","+i.px0[1]+M+"Z")}D(t,i,d);var S=m.castOption(g.textposition,i.pts),E=u.selectAll("g.slicetext").data(i.text&&"none"!==S?[0]:[]);E.enter().append("g").classed("slicetext",!0),E.exit().remove(),E.each((function(){var u=l.ensureSingle(n.select(this),"text","",(function(t){t.attr("data-notex",1)})),h=l.ensureUniformFontSize(t,"outside"===S?function(t,e,r){var n=m.castOption(t.outsidetextfont.color,e.pts)||m.castOption(t.textfont.color,e.pts)||r.color,i=m.castOption(t.outsidetextfont.family,e.pts)||m.castOption(t.textfont.family,e.pts)||r.family,a=m.castOption(t.outsidetextfont.size,e.pts)||m.castOption(t.textfont.size,e.pts)||r.size;return{color:n,family:i,size:a}}(g,i,r.font):b(g,i,r.font));u.text(i.text).attr({class:"slicetext",transform:"","text-anchor":"middle"}).call(s.font,h).call(f.convertToTspans,t);var v,y=s.bBox(u.node());if("outside"===S)v=C(y,i);else if(v=w(y,i,d),"auto"===S&&v.scale<1){var x=l.ensureUniformFontSize(t,g.outsidetextfont);u.call(s.font,x),v=C(y=s.bBox(u.node()),i)}var T=v.textPosAngle,k=void 0===T?i.pxmid:O(d.r,T);if(v.targetX=o+k[0]*v.rCenter+(v.x||0),v.targetY=c+k[1]*v.rCenter+(v.y||0),R(v,y),v.outside){var M=v.targetY;i.yLabelMin=M-y.height/2,i.yLabelMid=M,i.yLabelMax=M+y.height/2,i.labelExtraX=0,i.labelExtraY=0,_=!0}v.fontSize=h.size,p(g.type,v,r),e[a].transform=v,u.attr("transform",l.getTextTransform(v))}))}function L(t,e,r,n){var a=n*(e[0]-t[0]),o=n*(e[1]-t[1]);return"a"+n*d.r+","+n*d.r+" 0 "+i.largeArc+(r?" 1 ":" 0 ")+a+","+o}}));var T=n.select(this).selectAll("g.titletext").data(g.title.text?[0]:[]);if(T.enter().append("g").classed("titletext",!0),T.exit().remove(),T.each((function(){var e,r=l.ensureSingle(n.select(this),"text","",(function(t){t.attr("data-notex",1)})),i=g.title.text;g._meta&&(i=l.templateString(i,g._meta)),r.text(i).attr({class:"titletext",transform:"","text-anchor":"middle"}).call(s.font,g.title.font).call(f.convertToTspans,t),e="middle center"===g.title.position?function(t){var e=Math.sqrt(t.titleBox.width*t.titleBox.width+t.titleBox.height*t.titleBox.height);return{x:t.cx,y:t.cy,scale:t.trace.hole*t.r*2/e,tx:0,ty:-t.titleBox.height/2+t.trace.title.font.size}}(d):L(d,a),r.attr("transform",u(e.x,e.y)+c(Math.min(1,e.scale))+u(e.tx,e.ty))})),_&&function(t,e){var r,n,i,a,o,s,l,c,u,f,h,p,d;function g(t,e){return t.pxmid[1]-e.pxmid[1]}function v(t,e){return e.pxmid[1]-t.pxmid[1]}function y(t,r){r||(r={});var i,c,u,h,p=r.labelExtraY+(n?r.yLabelMax:r.yLabelMin),d=n?t.yLabelMin:t.yLabelMax,g=n?t.yLabelMax:t.yLabelMin,v=t.cyFinal+o(t.px0[1],t.px1[1]),y=p-d;if(y*l>0&&(t.labelExtraY=y),Array.isArray(e.pull))for(c=0;c=(m.castOption(e.pull,u.pts)||0)||((t.pxmid[1]-u.pxmid[1])*l>0?(y=u.cyFinal+o(u.px0[1],u.px1[1])-d-t.labelExtraY)*l>0&&(t.labelExtraY+=y):(g+t.labelExtraY-v)*l>0&&(i=3*s*Math.abs(c-f.indexOf(t)),(h=u.cxFinal+a(u.px0[0],u.px1[0])+i-(t.cxFinal+t.pxmid[0])-t.labelExtraX)*s>0&&(t.labelExtraX+=h)))}for(n=0;n<2;n++)for(i=n?g:v,o=n?Math.max:Math.min,l=n?1:-1,r=0;r<2;r++){for(a=r?Math.max:Math.min,s=r?1:-1,(c=t[n][r]).sort(i),u=t[1-n][r],f=u.concat(c),p=[],h=0;hMath.abs(f)?s+="l"+f*t.pxmid[0]/t.pxmid[1]+","+f+"H"+(a+t.labelExtraX+c):s+="l"+t.labelExtraX+","+u+"v"+(f-u)+"h"+c}else s+="V"+(t.yLabelMid+t.labelExtraY)+"h"+c;l.ensureSingle(r,"path","textline").call(o.stroke,e.outsidetextfont.color).attr({"stroke-width":Math.min(2,e.outsidetextfont.size/8),d:s,fill:"none"})}else r.select("path.textline").remove()}))}(v,g),_&&g.automargin){var k=s.bBox(h.node()),M=g.domain,A=a.w*(M.x[1]-M.x[0]),S=a.h*(M.y[1]-M.y[0]),E=(.5*A-d.r)/a.w,I=(.5*S-d.r)/a.h;i.autoMargin(t,"pie."+g.uid+".automargin",{xl:M.x[0]-E,xr:M.x[1]+E,yb:M.y[0]-I,yt:M.y[1]+I,l:Math.max(d.cx-d.r-k.left,0),r:Math.max(k.right-(d.cx+d.r),0),b:Math.max(k.bottom-(d.cy+d.r),0),t:Math.max(d.cy-d.r-k.top,0),pad:5})}}))}));setTimeout((function(){h.selectAll("tspan").each((function(){var t=n.select(this);t.attr("dy")&&t.attr("dy",t.attr("dy"))}))}),0)},formatSliceLabel:D,transformInsideText:w,determineInsideTextFont:b,positionTitleOutside:L,prerenderTitles:_,layoutAreas:z,attachFxHandlers:x,computeTransform:R}},{"../../components/color":643,"../../components/drawing":665,"../../components/fx":683,"../../lib":778,"../../lib/svg_text_utils":803,"../../plots/plots":891,"../bar/constants":923,"../bar/uniform_text":937,"./event_data":1165,"./helpers":1166,d3:169}],1171:[function(t,e,r){"use strict";var n=t("d3"),i=t("./style_one"),a=t("../bar/uniform_text").resizeText;e.exports=function(t){var e=t._fullLayout._pielayer.selectAll(".trace");a(t,e,"pie"),e.each((function(t){var e=t[0].trace,r=n.select(this);r.style({opacity:e.opacity}),r.selectAll("path.surface").each((function(t){n.select(this).call(i,t,e)}))}))}},{"../bar/uniform_text":937,"./style_one":1172,d3:169}],1172:[function(t,e,r){"use strict";var n=t("../../components/color"),i=t("./helpers").castOption;e.exports=function(t,e,r){var a=r.marker.line,o=i(a.color,e.pts)||n.defaultLine,s=i(a.width,e.pts)||0;t.style("stroke-width",s).call(n.fill,e.color).call(n.stroke,o)}},{"../../components/color":643,"./helpers":1166}],1173:[function(t,e,r){"use strict";var n=t("../scatter/attributes");e.exports={x:n.x,y:n.y,xy:{valType:"data_array",editType:"calc"},indices:{valType:"data_array",editType:"calc"},xbounds:{valType:"data_array",editType:"calc"},ybounds:{valType:"data_array",editType:"calc"},text:n.text,marker:{color:{valType:"color",arrayOk:!1,editType:"calc"},opacity:{valType:"number",min:0,max:1,dflt:1,arrayOk:!1,editType:"calc"},blend:{valType:"boolean",dflt:null,editType:"calc"},sizemin:{valType:"number",min:.1,max:2,dflt:.5,editType:"calc"},sizemax:{valType:"number",min:.1,dflt:20,editType:"calc"},border:{color:{valType:"color",arrayOk:!1,editType:"calc"},arearatio:{valType:"number",min:0,max:1,dflt:0,editType:"calc"},editType:"calc"},editType:"calc"},transforms:void 0}},{"../scatter/attributes":1187}],1174:[function(t,e,r){"use strict";var n=t("gl-pointcloud2d"),i=t("../../lib/str2rgbarray"),a=t("../../plots/cartesian/autorange").findExtremes,o=t("../scatter/get_trace_color");function s(t,e){this.scene=t,this.uid=e,this.type="pointcloud",this.pickXData=[],this.pickYData=[],this.xData=[],this.yData=[],this.textLabels=[],this.color="rgb(0, 0, 0)",this.name="",this.hoverinfo="all",this.idToIndex=new Int32Array(0),this.bounds=[0,0,0,0],this.pointcloudOptions={positions:new Float32Array(0),idToIndex:this.idToIndex,sizemin:.5,sizemax:12,color:[0,0,0,1],areaRatio:1,borderColor:[0,0,0,1]},this.pointcloud=n(t.glplot,this.pointcloudOptions),this.pointcloud._trace=this}var l=s.prototype;l.handlePick=function(t){var e=this.idToIndex[t.pointId];return{trace:this,dataCoord:t.dataCoord,traceCoord:this.pickXYData?[this.pickXYData[2*e],this.pickXYData[2*e+1]]:[this.pickXData[e],this.pickYData[e]],textLabel:Array.isArray(this.textLabels)?this.textLabels[e]:this.textLabels,color:this.color,name:this.name,pointIndex:e,hoverinfo:this.hoverinfo}},l.update=function(t){this.index=t.index,this.textLabels=t.text,this.name=t.name,this.hoverinfo=t.hoverinfo,this.bounds=[1/0,1/0,-1/0,-1/0],this.updateFast(t),this.color=o(t,{})},l.updateFast=function(t){var e,r,n,o,s,l,c=this.xData=this.pickXData=t.x,u=this.yData=this.pickYData=t.y,f=this.pickXYData=t.xy,h=t.xbounds&&t.ybounds,p=t.indices,d=this.bounds;if(f){if(n=f,e=f.length>>>1,h)d[0]=t.xbounds[0],d[2]=t.xbounds[1],d[1]=t.ybounds[0],d[3]=t.ybounds[1];else for(l=0;ld[2]&&(d[2]=o),sd[3]&&(d[3]=s);if(p)r=p;else for(r=new Int32Array(e),l=0;ld[2]&&(d[2]=o),sd[3]&&(d[3]=s);this.idToIndex=r,this.pointcloudOptions.idToIndex=r,this.pointcloudOptions.positions=n;var g=i(t.marker.color),m=i(t.marker.border.color),v=t.opacity*t.marker.opacity;g[3]*=v,this.pointcloudOptions.color=g;var y=t.marker.blend;if(null===y){y=c.length<100||u.length<100}this.pointcloudOptions.blend=y,m[3]*=v,this.pointcloudOptions.borderColor=m;var x=t.marker.sizemin,b=Math.max(t.marker.sizemax,t.marker.sizemin);this.pointcloudOptions.sizeMin=x,this.pointcloudOptions.sizeMax=b,this.pointcloudOptions.areaRatio=t.marker.border.arearatio,this.pointcloud.update(this.pointcloudOptions);var _=this.scene.xaxis,w=this.scene.yaxis,T=b/2||.5;t._extremes[_._id]=a(_,[d[0],d[2]],{ppad:T}),t._extremes[w._id]=a(w,[d[1],d[3]],{ppad:T})},l.dispose=function(){this.pointcloud.dispose()},e.exports=function(t,e){var r=new s(t,e.uid);return r.update(e),r}},{"../../lib/str2rgbarray":802,"../../plots/cartesian/autorange":827,"../scatter/get_trace_color":1197,"gl-pointcloud2d":324}],1175:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./attributes");e.exports=function(t,e,r){function a(r,a){return n.coerce(t,e,i,r,a)}a("x"),a("y"),a("xbounds"),a("ybounds"),t.xy&&t.xy instanceof Float32Array&&(e.xy=t.xy),t.indices&&t.indices instanceof Int32Array&&(e.indices=t.indices),a("text"),a("marker.color",r),a("marker.opacity"),a("marker.blend"),a("marker.sizemin"),a("marker.sizemax"),a("marker.border.color",r),a("marker.border.arearatio"),e._length=null}},{"../../lib":778,"./attributes":1173}],1176:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),calc:t("../scatter3d/calc"),plot:t("./convert"),moduleType:"trace",name:"pointcloud",basePlotModule:t("../../plots/gl2d"),categories:["gl","gl2d","showLegend"],meta:{}}},{"../../plots/gl2d":868,"../scatter3d/calc":1216,"./attributes":1173,"./convert":1174,"./defaults":1175}],1177:[function(t,e,r){"use strict";var n=t("../../plots/font_attributes"),i=t("../../plots/attributes"),a=t("../../components/color/attributes"),o=t("../../components/fx/attributes"),s=t("../../plots/domain").attributes,l=t("../../plots/template_attributes").hovertemplateAttrs,c=t("../../components/colorscale/attributes"),u=t("../../plot_api/plot_template").templatedArray,f=t("../../lib/extend").extendFlat,h=t("../../plot_api/edit_types").overrideAll;t("../../constants/docs").FORMAT_LINK;(e.exports=h({hoverinfo:f({},i.hoverinfo,{flags:[],arrayOk:!1}),hoverlabel:o.hoverlabel,domain:s({name:"sankey",trace:!0}),orientation:{valType:"enumerated",values:["v","h"],dflt:"h"},valueformat:{valType:"string",dflt:".3s"},valuesuffix:{valType:"string",dflt:""},arrangement:{valType:"enumerated",values:["snap","perpendicular","freeform","fixed"],dflt:"snap"},textfont:n({}),customdata:void 0,node:{label:{valType:"data_array",dflt:[]},groups:{valType:"info_array",impliedEdits:{x:[],y:[]},dimensions:2,freeLength:!0,dflt:[],items:{valType:"number",editType:"calc"}},x:{valType:"data_array",dflt:[]},y:{valType:"data_array",dflt:[]},color:{valType:"color",arrayOk:!0},customdata:{valType:"data_array",editType:"calc"},line:{color:{valType:"color",dflt:a.defaultLine,arrayOk:!0},width:{valType:"number",min:0,dflt:.5,arrayOk:!0}},pad:{valType:"number",arrayOk:!1,min:0,dflt:20},thickness:{valType:"number",arrayOk:!1,min:1,dflt:20},hoverinfo:{valType:"enumerated",values:["all","none","skip"],dflt:"all"},hoverlabel:o.hoverlabel,hovertemplate:l({},{keys:["value","label"]})},link:{label:{valType:"data_array",dflt:[]},color:{valType:"color",arrayOk:!0},customdata:{valType:"data_array",editType:"calc"},line:{color:{valType:"color",dflt:a.defaultLine,arrayOk:!0},width:{valType:"number",min:0,dflt:0,arrayOk:!0}},source:{valType:"data_array",dflt:[]},target:{valType:"data_array",dflt:[]},value:{valType:"data_array",dflt:[]},hoverinfo:{valType:"enumerated",values:["all","none","skip"],dflt:"all"},hoverlabel:o.hoverlabel,hovertemplate:l({},{keys:["value","label"]}),colorscales:u("concentrationscales",{editType:"calc",label:{valType:"string",editType:"calc",dflt:""},cmax:{valType:"number",editType:"calc",dflt:1},cmin:{valType:"number",editType:"calc",dflt:0},colorscale:f(c().colorscale,{dflt:[[0,"white"],[1,"black"]]})})}},"calc","nested")).transforms=void 0},{"../../components/color/attributes":642,"../../components/colorscale/attributes":650,"../../components/fx/attributes":674,"../../constants/docs":748,"../../lib/extend":768,"../../plot_api/edit_types":810,"../../plot_api/plot_template":817,"../../plots/attributes":824,"../../plots/domain":855,"../../plots/font_attributes":856,"../../plots/template_attributes":906}],1178:[function(t,e,r){"use strict";var n=t("../../plot_api/edit_types").overrideAll,i=t("../../plots/get_data").getModuleCalcData,a=t("./plot"),o=t("../../components/fx/layout_attributes"),s=t("../../lib/setcursor"),l=t("../../components/dragelement"),c=t("../../plots/cartesian/select").prepSelect,u=t("../../lib"),f=t("../../registry");function h(t,e){var r=t._fullData[e],n=t._fullLayout,i=n.dragmode,a="pan"===n.dragmode?"move":"crosshair",o=r._bgRect;if("pan"!==i&&"zoom"!==i){s(o,a);var h={_id:"x",c2p:u.identity,_offset:r._sankey.translateX,_length:r._sankey.width},p={_id:"y",c2p:u.identity,_offset:r._sankey.translateY,_length:r._sankey.height},d={gd:t,element:o.node(),plotinfo:{id:e,xaxis:h,yaxis:p,fillRangeItems:u.noop},subplot:e,xaxes:[h],yaxes:[p],doneFnCompleted:function(r){var n,i=t._fullData[e],a=i.node.groups.slice(),o=[];function s(t){for(var e=i._sankey.graph.nodes,r=0;ry&&(y=a.source[e]),a.target[e]>y&&(y=a.target[e]);var x,b=y+1;t.node._count=b;var _=t.node.groups,w={};for(e=0;e<_.length;e++){var T=_[e];for(x=0;x0&&s(E,b)&&s(C,b)&&(!w.hasOwnProperty(E)||!w.hasOwnProperty(C)||w[E]!==w[C])){w.hasOwnProperty(C)&&(C=w[C]),w.hasOwnProperty(E)&&(E=w[E]),C=+C,h[E=+E]=h[C]=!0;var L="";a.label&&a.label[e]&&(L=a.label[e]);var I=null;L&&p.hasOwnProperty(L)&&(I=p[L]),c.push({pointNumber:e,label:L,color:u?a.color[e]:a.color,customdata:f?a.customdata[e]:a.customdata,concentrationscale:I,source:E,target:C,value:+S}),A.source.push(E),A.target.push(C)}}var P=b+_.length,z=o(r.color),O=o(r.customdata),D=[];for(e=0;eb-1,childrenNodes:[],pointNumber:e,label:R,color:z?r.color[e]:r.color,customdata:O?r.customdata[e]:r.customdata})}var F=!1;return function(t,e,r){for(var a=i.init2dArray(t,0),o=0;o1}))}(P,A.source,A.target)&&(F=!0),{circular:F,links:c,nodes:D,groups:_,groupLookup:w}}e.exports=function(t,e){var r=c(e);return a({circular:r.circular,_nodes:r.nodes,_links:r.links,_groups:r.groups,_groupLookup:r.groupLookup})}},{"../../components/colorscale":655,"../../lib":778,"../../lib/gup":775,"strongly-connected-components":569}],1180:[function(t,e,r){"use strict";e.exports={nodeTextOffsetHorizontal:4,nodeTextOffsetVertical:3,nodePadAcross:10,sankeyIterations:50,forceIterations:5,forceTicksPerFrame:10,duration:500,ease:"linear",cn:{sankey:"sankey",sankeyLinks:"sankey-links",sankeyLink:"sankey-link",sankeyNodeSet:"sankey-node-set",sankeyNode:"sankey-node",nodeRect:"node-rect",nodeCapture:"node-capture",nodeCentered:"node-entered",nodeLabelGuide:"node-label-guide",nodeLabel:"node-label",nodeLabelTextPath:"node-label-text-path"}}},{}],1181:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./attributes"),a=t("../../components/color"),o=t("tinycolor2"),s=t("../../plots/domain").defaults,l=t("../../components/fx/hoverlabel_defaults"),c=t("../../plot_api/plot_template"),u=t("../../plots/array_container_defaults");function f(t,e){function r(r,a){return n.coerce(t,e,i.link.colorscales,r,a)}r("label"),r("cmin"),r("cmax"),r("colorscale")}e.exports=function(t,e,r,h){function p(r,a){return n.coerce(t,e,i,r,a)}var d=n.extendDeep(h.hoverlabel,t.hoverlabel),g=t.node,m=c.newContainer(e,"node");function v(t,e){return n.coerce(g,m,i.node,t,e)}v("label"),v("groups"),v("x"),v("y"),v("pad"),v("thickness"),v("line.color"),v("line.width"),v("hoverinfo",t.hoverinfo),l(g,m,v,d),v("hovertemplate");var y=h.colorway;v("color",m.label.map((function(t,e){return a.addOpacity(function(t){return y[t%y.length]}(e),.8)}))),v("customdata");var x=t.link||{},b=c.newContainer(e,"link");function _(t,e){return n.coerce(x,b,i.link,t,e)}_("label"),_("source"),_("target"),_("value"),_("line.color"),_("line.width"),_("hoverinfo",t.hoverinfo),l(x,b,_,d),_("hovertemplate");var w,T=o(h.paper_bgcolor).getLuminance()<.333?"rgba(255, 255, 255, 0.6)":"rgba(0, 0, 0, 0.2)";_("color",n.repeat(T,b.value.length)),_("customdata"),u(x,b,{name:"colorscales",handleItemDefaults:f}),s(e,h,p),p("orientation"),p("valueformat"),p("valuesuffix"),m.x.length&&m.y.length&&(w="freeform"),p("arrangement",w),n.coerceFont(p,"textfont",n.extendFlat({},h.font)),e._length=null}},{"../../components/color":643,"../../components/fx/hoverlabel_defaults":681,"../../lib":778,"../../plot_api/plot_template":817,"../../plots/array_container_defaults":823,"../../plots/domain":855,"./attributes":1177,tinycolor2:576}],1182:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),calc:t("./calc"),plot:t("./plot"),moduleType:"trace",name:"sankey",basePlotModule:t("./base_plot"),selectPoints:t("./select.js"),categories:["noOpacity"],meta:{}}},{"./attributes":1177,"./base_plot":1178,"./calc":1179,"./defaults":1181,"./plot":1183,"./select.js":1185}],1183:[function(t,e,r){"use strict";var n=t("d3"),i=t("./render"),a=t("../../components/fx"),o=t("../../components/color"),s=t("../../lib"),l=t("./constants").cn,c=s._;function u(t){return""!==t}function f(t,e){return t.filter((function(t){return t.key===e.traceId}))}function h(t,e){n.select(t).select("path").style("fill-opacity",e),n.select(t).select("rect").style("fill-opacity",e)}function p(t){n.select(t).select("text.name").style("fill","black")}function d(t){return function(e){return-1!==t.node.sourceLinks.indexOf(e.link)||-1!==t.node.targetLinks.indexOf(e.link)}}function g(t){return function(e){return-1!==e.node.sourceLinks.indexOf(t.link)||-1!==e.node.targetLinks.indexOf(t.link)}}function m(t,e,r){e&&r&&f(r,e).selectAll("."+l.sankeyLink).filter(d(e)).call(y.bind(0,e,r,!1))}function v(t,e,r){e&&r&&f(r,e).selectAll("."+l.sankeyLink).filter(d(e)).call(x.bind(0,e,r,!1))}function y(t,e,r,n){var i=n.datum().link.label;n.style("fill-opacity",(function(t){if(!t.link.concentrationscale)return.4})),i&&f(e,t).selectAll("."+l.sankeyLink).filter((function(t){return t.link.label===i})).style("fill-opacity",(function(t){if(!t.link.concentrationscale)return.4})),r&&f(e,t).selectAll("."+l.sankeyNode).filter(g(t)).call(m)}function x(t,e,r,n){var i=n.datum().link.label;n.style("fill-opacity",(function(t){return t.tinyColorAlpha})),i&&f(e,t).selectAll("."+l.sankeyLink).filter((function(t){return t.link.label===i})).style("fill-opacity",(function(t){return t.tinyColorAlpha})),r&&f(e,t).selectAll(l.sankeyNode).filter(g(t)).call(v)}function b(t,e){var r=t.hoverlabel||{},n=s.nestedProperty(r,e).get();return!Array.isArray(n)&&n}e.exports=function(t,e){for(var r=t._fullLayout,s=r._paper,f=r._size,d=0;d"),color:b(s,"bgcolor")||o.addOpacity(d.color,1),borderColor:b(s,"bordercolor"),fontFamily:b(s,"font.family"),fontSize:b(s,"font.size"),fontColor:b(s,"font.color"),nameLength:b(s,"namelength"),textAlign:b(s,"align"),idealAlign:n.event.x"),color:b(o,"bgcolor")||i.tinyColorHue,borderColor:b(o,"bordercolor"),fontFamily:b(o,"font.family"),fontSize:b(o,"font.size"),fontColor:b(o,"font.color"),nameLength:b(o,"namelength"),textAlign:b(o,"align"),idealAlign:"left",hovertemplate:o.hovertemplate,hovertemplateLabels:v,eventData:[i.node]},{container:r._hoverlayer.node(),outerContainer:r._paper.node(),gd:t});h(_,.85),p(_)}}},unhover:function(e,i,o){!1!==t._fullLayout.hovermode&&(n.select(e).call(v,i,o),"skip"!==i.node.trace.node.hoverinfo&&(i.node.fullData=i.node.trace,t.emit("plotly_unhover",{event:n.event,points:[i.node]})),a.loneUnhover(r._hoverlayer.node()))},select:function(e,r,i){var o=r.node;o.originalEvent=n.event,t._hoverdata=[o],n.select(e).call(v,r,i),a.click(t,{target:!0})}}})}},{"../../components/color":643,"../../components/fx":683,"../../lib":778,"./constants":1180,"./render":1184,d3:169}],1184:[function(t,e,r){"use strict";var n=t("./constants"),i=t("d3"),a=t("tinycolor2"),o=t("../../components/color"),s=t("../../components/drawing"),l=t("@plotly/d3-sankey"),c=t("@plotly/d3-sankey-circular"),u=t("d3-force"),f=t("../../lib"),h=f.strTranslate,p=t("../../lib/gup"),d=p.keyFun,g=p.repeat,m=p.unwrap,v=t("d3-interpolate").interpolateNumber,y=t("../../registry");function x(t,e,r){var i,o=m(e),s=o.trace,u=s.domain,h="h"===s.orientation,p=s.node.pad,d=s.node.thickness,g=t.width*(u.x[1]-u.x[0]),v=t.height*(u.y[1]-u.y[0]),y=o._nodes,x=o._links,b=o.circular;(i=b?c.sankeyCircular().circularLinkGap(0):l.sankey()).iterations(n.sankeyIterations).size(h?[g,v]:[v,g]).nodeWidth(d).nodePadding(p).nodeId((function(t){return t.pointNumber})).nodes(y).links(x);var _,w,T,k=i();for(var M in i.nodePadding()=i||(r=i-e.y0)>1e-6&&(e.y0+=r,e.y1+=r),i=e.y1+p}))}(function(t){var e,r,n=t.map((function(t,e){return{x0:t.x0,index:e}})).sort((function(t,e){return t.x0-e.x0})),i=[],a=-1,o=-1/0;for(_=0;_o+d&&(a+=1,e=s.x0),o=s.x0,i[a]||(i[a]=[]),i[a].push(s),r=e-s.x0,s.x0+=r,s.x1+=r}return i}(y=k.nodes));i.update(k)}return{circular:b,key:r,trace:s,guid:f.randstr(),horizontal:h,width:g,height:v,nodePad:s.node.pad,nodeLineColor:s.node.line.color,nodeLineWidth:s.node.line.width,linkLineColor:s.link.line.color,linkLineWidth:s.link.line.width,valueFormat:s.valueformat,valueSuffix:s.valuesuffix,textFont:s.textfont,translateX:u.x[0]*t.width+t.margin.l,translateY:t.height-u.y[1]*t.height+t.margin.t,dragParallel:h?v:g,dragPerpendicular:h?g:v,arrangement:s.arrangement,sankey:i,graph:k,forceLayouts:{},interactionState:{dragInProgress:!1,hovered:!1}}}function b(t,e,r){var n=a(e.color),i=e.source.label+"|"+e.target.label+"__"+r;return e.trace=t.trace,e.curveNumber=t.trace.index,{circular:t.circular,key:i,traceId:t.key,pointNumber:e.pointNumber,link:e,tinyColorHue:o.tinyRGB(n),tinyColorAlpha:n.getAlpha(),linkPath:_,linkLineColor:t.linkLineColor,linkLineWidth:t.linkLineWidth,valueFormat:t.valueFormat,valueSuffix:t.valueSuffix,sankey:t.sankey,parent:t,interactionState:t.interactionState,flow:e.flow}}function _(){return function(t){if(t.link.circular)return e=t.link,r=e.width/2,n=e.circularPathData,"top"===e.circularLinkType?"M "+n.targetX+" "+(n.targetY+r)+" L"+n.rightInnerExtent+" "+(n.targetY+r)+"A"+(n.rightLargeArcRadius+r)+" "+(n.rightSmallArcRadius+r)+" 0 0 1 "+(n.rightFullExtent-r)+" "+(n.targetY-n.rightSmallArcRadius)+"L"+(n.rightFullExtent-r)+" "+n.verticalRightInnerExtent+"A"+(n.rightLargeArcRadius+r)+" "+(n.rightLargeArcRadius+r)+" 0 0 1 "+n.rightInnerExtent+" "+(n.verticalFullExtent-r)+"L"+n.leftInnerExtent+" "+(n.verticalFullExtent-r)+"A"+(n.leftLargeArcRadius+r)+" "+(n.leftLargeArcRadius+r)+" 0 0 1 "+(n.leftFullExtent+r)+" "+n.verticalLeftInnerExtent+"L"+(n.leftFullExtent+r)+" "+(n.sourceY-n.leftSmallArcRadius)+"A"+(n.leftLargeArcRadius+r)+" "+(n.leftSmallArcRadius+r)+" 0 0 1 "+n.leftInnerExtent+" "+(n.sourceY+r)+"L"+n.sourceX+" "+(n.sourceY+r)+"L"+n.sourceX+" "+(n.sourceY-r)+"L"+n.leftInnerExtent+" "+(n.sourceY-r)+"A"+(n.leftLargeArcRadius-r)+" "+(n.leftSmallArcRadius-r)+" 0 0 0 "+(n.leftFullExtent-r)+" "+(n.sourceY-n.leftSmallArcRadius)+"L"+(n.leftFullExtent-r)+" "+n.verticalLeftInnerExtent+"A"+(n.leftLargeArcRadius-r)+" "+(n.leftLargeArcRadius-r)+" 0 0 0 "+n.leftInnerExtent+" "+(n.verticalFullExtent+r)+"L"+n.rightInnerExtent+" "+(n.verticalFullExtent+r)+"A"+(n.rightLargeArcRadius-r)+" "+(n.rightLargeArcRadius-r)+" 0 0 0 "+(n.rightFullExtent+r)+" "+n.verticalRightInnerExtent+"L"+(n.rightFullExtent+r)+" "+(n.targetY-n.rightSmallArcRadius)+"A"+(n.rightLargeArcRadius-r)+" "+(n.rightSmallArcRadius-r)+" 0 0 0 "+n.rightInnerExtent+" "+(n.targetY-r)+"L"+n.targetX+" "+(n.targetY-r)+"Z":"M "+n.targetX+" "+(n.targetY-r)+" L"+n.rightInnerExtent+" "+(n.targetY-r)+"A"+(n.rightLargeArcRadius+r)+" "+(n.rightSmallArcRadius+r)+" 0 0 0 "+(n.rightFullExtent-r)+" "+(n.targetY+n.rightSmallArcRadius)+"L"+(n.rightFullExtent-r)+" "+n.verticalRightInnerExtent+"A"+(n.rightLargeArcRadius+r)+" "+(n.rightLargeArcRadius+r)+" 0 0 0 "+n.rightInnerExtent+" "+(n.verticalFullExtent+r)+"L"+n.leftInnerExtent+" "+(n.verticalFullExtent+r)+"A"+(n.leftLargeArcRadius+r)+" "+(n.leftLargeArcRadius+r)+" 0 0 0 "+(n.leftFullExtent+r)+" "+n.verticalLeftInnerExtent+"L"+(n.leftFullExtent+r)+" "+(n.sourceY+n.leftSmallArcRadius)+"A"+(n.leftLargeArcRadius+r)+" "+(n.leftSmallArcRadius+r)+" 0 0 0 "+n.leftInnerExtent+" "+(n.sourceY-r)+"L"+n.sourceX+" "+(n.sourceY-r)+"L"+n.sourceX+" "+(n.sourceY+r)+"L"+n.leftInnerExtent+" "+(n.sourceY+r)+"A"+(n.leftLargeArcRadius-r)+" "+(n.leftSmallArcRadius-r)+" 0 0 1 "+(n.leftFullExtent-r)+" "+(n.sourceY+n.leftSmallArcRadius)+"L"+(n.leftFullExtent-r)+" "+n.verticalLeftInnerExtent+"A"+(n.leftLargeArcRadius-r)+" "+(n.leftLargeArcRadius-r)+" 0 0 1 "+n.leftInnerExtent+" "+(n.verticalFullExtent-r)+"L"+n.rightInnerExtent+" "+(n.verticalFullExtent-r)+"A"+(n.rightLargeArcRadius-r)+" "+(n.rightLargeArcRadius-r)+" 0 0 1 "+(n.rightFullExtent+r)+" "+n.verticalRightInnerExtent+"L"+(n.rightFullExtent+r)+" "+(n.targetY+n.rightSmallArcRadius)+"A"+(n.rightLargeArcRadius-r)+" "+(n.rightSmallArcRadius-r)+" 0 0 1 "+n.rightInnerExtent+" "+(n.targetY+r)+"L"+n.targetX+" "+(n.targetY+r)+"Z";var e,r,n,i=t.link.source.x1,a=t.link.target.x0,o=v(i,a),s=o(.5),l=o(.5),c=t.link.y0-t.link.width/2,u=t.link.y0+t.link.width/2,f=t.link.y1-t.link.width/2,h=t.link.y1+t.link.width/2;return"M"+i+","+c+"C"+s+","+c+" "+l+","+f+" "+a+","+f+"L"+a+","+h+"C"+l+","+h+" "+s+","+u+" "+i+","+u+"Z"}}function w(t,e){var r=a(e.color),i=n.nodePadAcross,s=t.nodePad/2;e.dx=e.x1-e.x0,e.dy=e.y1-e.y0;var l=e.dx,c=Math.max(.5,e.dy),u="node_"+e.pointNumber;return e.group&&(u=f.randstr()),e.trace=t.trace,e.curveNumber=t.trace.index,{index:e.pointNumber,key:u,partOfGroup:e.partOfGroup||!1,group:e.group,traceId:t.key,trace:t.trace,node:e,nodePad:t.nodePad,nodeLineColor:t.nodeLineColor,nodeLineWidth:t.nodeLineWidth,textFont:t.textFont,size:t.horizontal?t.height:t.width,visibleWidth:Math.ceil(l),visibleHeight:c,zoneX:-i,zoneY:-s,zoneWidth:l+2*i,zoneHeight:c+2*s,labelY:t.horizontal?e.dy/2+1:e.dx/2+1,left:1===e.originalLayer,sizeAcross:t.width,forceLayouts:t.forceLayouts,horizontal:t.horizontal,darkBackground:r.getBrightness()<=128,tinyColorHue:o.tinyRGB(r),tinyColorAlpha:r.getAlpha(),valueFormat:t.valueFormat,valueSuffix:t.valueSuffix,sankey:t.sankey,graph:t.graph,arrangement:t.arrangement,uniqueNodeLabelPathId:[t.guid,t.key,u].join("_"),interactionState:t.interactionState,figure:t}}function T(t){t.attr("transform",(function(t){return h(t.node.x0.toFixed(3),t.node.y0.toFixed(3))}))}function k(t){t.call(T)}function M(t,e){t.call(k),e.attr("d",_())}function A(t){t.attr("width",(function(t){return t.node.x1-t.node.x0})).attr("height",(function(t){return t.visibleHeight}))}function S(t){return t.link.width>1||t.linkLineWidth>0}function E(t){return h(t.translateX,t.translateY)+(t.horizontal?"matrix(1 0 0 1 0 0)":"matrix(0 1 1 0 0 0)")}function C(t){return h(t.horizontal?0:t.labelY,t.horizontal?t.labelY:0)}function L(t){return i.svg.line()([[t.horizontal?t.left?-t.sizeAcross:t.visibleWidth+n.nodeTextOffsetHorizontal:n.nodeTextOffsetHorizontal,0],[t.horizontal?t.left?-n.nodeTextOffsetHorizontal:t.sizeAcross:t.visibleHeight-n.nodeTextOffsetHorizontal,0]])}function I(t){return t.horizontal?"matrix(1 0 0 1 0 0)":"matrix(0 1 1 0 0 0)"}function P(t){return t.horizontal?"scale(1 1)":"scale(-1 1)"}function z(t){return t.darkBackground&&!t.horizontal?"rgb(255,255,255)":"rgb(0,0,0)"}function O(t){return t.horizontal&&t.left?"100%":"0%"}function D(t,e,r){t.on(".basic",null).on("mouseover.basic",(function(t){t.interactionState.dragInProgress||t.partOfGroup||(r.hover(this,t,e),t.interactionState.hovered=[this,t])})).on("mousemove.basic",(function(t){t.interactionState.dragInProgress||t.partOfGroup||(r.follow(this,t),t.interactionState.hovered=[this,t])})).on("mouseout.basic",(function(t){t.interactionState.dragInProgress||t.partOfGroup||(r.unhover(this,t,e),t.interactionState.hovered=!1)})).on("click.basic",(function(t){t.interactionState.hovered&&(r.unhover(this,t,e),t.interactionState.hovered=!1),t.interactionState.dragInProgress||t.partOfGroup||r.select(this,t,e)}))}function R(t,e,r,a){var o=i.behavior.drag().origin((function(t){return{x:t.node.x0+t.visibleWidth/2,y:t.node.y0+t.visibleHeight/2}})).on("dragstart",(function(i){if("fixed"!==i.arrangement&&(f.ensureSingle(a._fullLayout._infolayer,"g","dragcover",(function(t){a._fullLayout._dragCover=t})),f.raiseToTop(this),i.interactionState.dragInProgress=i.node,B(i.node),i.interactionState.hovered&&(r.nodeEvents.unhover.apply(0,i.interactionState.hovered),i.interactionState.hovered=!1),"snap"===i.arrangement)){var o=i.traceId+"|"+i.key;i.forceLayouts[o]?i.forceLayouts[o].alpha(1):function(t,e,r,i){!function(t){for(var e=0;e0&&i.forceLayouts[e].alpha(0)}}(0,e,a,r)).stop()}(0,o,i),function(t,e,r,i,a){window.requestAnimationFrame((function o(){var s;for(s=0;s0)window.requestAnimationFrame(o);else{var l=r.node.originalX;r.node.x0=l-r.visibleWidth/2,r.node.x1=l+r.visibleWidth/2,F(r,a)}}))}(t,e,i,o,a)}})).on("drag",(function(r){if("fixed"!==r.arrangement){var n=i.event.x,a=i.event.y;"snap"===r.arrangement?(r.node.x0=n-r.visibleWidth/2,r.node.x1=n+r.visibleWidth/2,r.node.y0=a-r.visibleHeight/2,r.node.y1=a+r.visibleHeight/2):("freeform"===r.arrangement&&(r.node.x0=n-r.visibleWidth/2,r.node.x1=n+r.visibleWidth/2),a=Math.max(0,Math.min(r.size-r.visibleHeight/2,a)),r.node.y0=a-r.visibleHeight/2,r.node.y1=a+r.visibleHeight/2),B(r.node),"snap"!==r.arrangement&&(r.sankey.update(r.graph),M(t.filter(N(r)),e))}})).on("dragend",(function(t){if("fixed"!==t.arrangement){t.interactionState.dragInProgress=!1;for(var e=0;e5?t.node.label:""})).attr("text-anchor",(function(t){return t.horizontal&&t.left?"end":"start"})),q.transition().ease(n.ease).duration(n.duration).attr("startOffset",O).style("fill",z)}},{"../../components/color":643,"../../components/drawing":665,"../../lib":778,"../../lib/gup":775,"../../registry":911,"./constants":1180,"@plotly/d3-sankey":56,"@plotly/d3-sankey-circular":55,d3:169,"d3-force":160,"d3-interpolate":162,tinycolor2:576}],1185:[function(t,e,r){"use strict";e.exports=function(t,e){for(var r=[],n=t.cd[0].trace,i=n._sankey.graph.nodes,a=0;al&&E[v].gap;)v--;for(x=E[v].s,g=E.length-1;g>v;g--)E[g].s=x;for(;lA[u]&&u=0;i--){var a=t[i];if("scatter"===a.type&&a.xaxis===r.xaxis&&a.yaxis===r.yaxis){a.opacity=void 0;break}}}}}},{}],1194:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../registry"),a=t("./attributes"),o=t("./constants"),s=t("./subtypes"),l=t("./xy_defaults"),c=t("./period_defaults"),u=t("./stack_defaults"),f=t("./marker_defaults"),h=t("./line_defaults"),p=t("./line_shape_defaults"),d=t("./text_defaults"),g=t("./fillcolor_defaults");e.exports=function(t,e,r,m){function v(r,i){return n.coerce(t,e,a,r,i)}var y=l(t,e,m,v);if(y||(e.visible=!1),e.visible){c(t,e,m,v);var x=u(t,e,m,v),b=!x&&yG!=(F=P[L][1])>=G&&(O=P[L-1][0],D=P[L][0],F-R&&(z=O+(D-O)*(G-R)/(F-R),U=Math.min(U,z),V=Math.max(V,z)));U=Math.max(U,0),V=Math.min(V,h._length);var Y=s.defaultLine;return s.opacity(f.fillcolor)?Y=f.fillcolor:s.opacity((f.line||{}).color)&&(Y=f.line.color),n.extendFlat(t,{distance:t.maxHoverDistance,x0:U,x1:V,y0:G,y1:G,color:Y,hovertemplate:!1}),delete t.index,f.text&&!Array.isArray(f.text)?t.text=String(f.text):t.text=f.name,[t]}}}},{"../../components/color":643,"../../components/fx":683,"../../lib":778,"../../registry":911,"./get_trace_color":1197}],1199:[function(t,e,r){"use strict";var n=t("./subtypes");e.exports={hasLines:n.hasLines,hasMarkers:n.hasMarkers,hasText:n.hasText,isBubble:n.isBubble,attributes:t("./attributes"),supplyDefaults:t("./defaults"),crossTraceDefaults:t("./cross_trace_defaults"),calc:t("./calc").calc,crossTraceCalc:t("./cross_trace_calc"),arraysToCalcdata:t("./arrays_to_calcdata"),plot:t("./plot"),colorbar:t("./marker_colorbar"),formatLabels:t("./format_labels"),style:t("./style").style,styleOnSelect:t("./style").styleOnSelect,hoverPoints:t("./hover"),selectPoints:t("./select"),animatable:!0,moduleType:"trace",name:"scatter",basePlotModule:t("../../plots/cartesian"),categories:["cartesian","svg","symbols","errorBarsOK","showLegend","scatter-like","zoomScale"],meta:{}}},{"../../plots/cartesian":841,"./arrays_to_calcdata":1186,"./attributes":1187,"./calc":1188,"./cross_trace_calc":1192,"./cross_trace_defaults":1193,"./defaults":1194,"./format_labels":1196,"./hover":1198,"./marker_colorbar":1205,"./plot":1208,"./select":1209,"./style":1211,"./subtypes":1212}],1200:[function(t,e,r){"use strict";var n=t("../../lib").isArrayOrTypedArray,i=t("../../components/colorscale/helpers").hasColorscale,a=t("../../components/colorscale/defaults");e.exports=function(t,e,r,o,s,l){var c=(t.marker||{}).color;(s("line.color",r),i(t,"line"))?a(t,e,o,s,{prefix:"line.",cLetter:"c"}):s("line.color",!n(c)&&c||r);s("line.width"),(l||{}).noDash||s("line.dash")}},{"../../components/colorscale/defaults":653,"../../components/colorscale/helpers":654,"../../lib":778}],1201:[function(t,e,r){"use strict";var n=t("../../constants/numerical"),i=n.BADNUM,a=n.LOG_CLIP,o=a+.5,s=a-.5,l=t("../../lib"),c=l.segmentsIntersect,u=l.constrain,f=t("./constants");e.exports=function(t,e){var r,n,a,h,p,d,g,m,v,y,x,b,_,w,T,k,M,A,S=e.xaxis,E=e.yaxis,C="log"===S.type,L="log"===E.type,I=S._length,P=E._length,z=e.connectGaps,O=e.baseTolerance,D=e.shape,R="linear"===D,F=e.fill&&"none"!==e.fill,B=[],N=f.minTolerance,j=t.length,U=new Array(j),V=0;function q(r){var n=t[r];if(!n)return!1;var a=e.linearized?S.l2p(n.x):S.c2p(n.x),l=e.linearized?E.l2p(n.y):E.c2p(n.y);if(a===i){if(C&&(a=S.c2p(n.x,!0)),a===i)return!1;L&&l===i&&(a*=Math.abs(S._m*P*(S._m>0?o:s)/(E._m*I*(E._m>0?o:s)))),a*=1e3}if(l===i){if(L&&(l=E.c2p(n.y,!0)),l===i)return!1;l*=1e3}return[a,l]}function H(t,e,r,n){var i=r-t,a=n-e,o=.5-t,s=.5-e,l=i*i+a*a,c=i*o+a*s;if(c>0&&crt||t[1]it)return[u(t[0],et,rt),u(t[1],nt,it)]}function st(t,e){return t[0]===e[0]&&(t[0]===et||t[0]===rt)||(t[1]===e[1]&&(t[1]===nt||t[1]===it)||void 0)}function lt(t,e,r){return function(n,i){var a=ot(n),o=ot(i),s=[];if(a&&o&&st(a,o))return s;a&&s.push(a),o&&s.push(o);var c=2*l.constrain((n[t]+i[t])/2,e,r)-((a||n)[t]+(o||i)[t]);c&&((a&&o?c>0==a[t]>o[t]?a:o:a||o)[t]+=c);return s}}function ct(t){var e=t[0],r=t[1],n=e===U[V-1][0],i=r===U[V-1][1];if(!n||!i)if(V>1){var a=e===U[V-2][0],o=r===U[V-2][1];n&&(e===et||e===rt)&&a?o?V--:U[V-1]=t:i&&(r===nt||r===it)&&o?a?V--:U[V-1]=t:U[V++]=t}else U[V++]=t}function ut(t){U[V-1][0]!==t[0]&&U[V-1][1]!==t[1]&&ct([Z,J]),ct(t),K=null,Z=J=0}function ft(t){if(M=t[0]/I,A=t[1]/P,W=t[0]rt?rt:0,X=t[1]it?it:0,W||X){if(V)if(K){var e=$(K,t);e.length>1&&(ut(e[0]),U[V++]=e[1])}else Q=$(U[V-1],t)[0],U[V++]=Q;else U[V++]=[W||t[0],X||t[1]];var r=U[V-1];W&&X&&(r[0]!==W||r[1]!==X)?(K&&(Z!==W&&J!==X?ct(Z&&J?(n=K,a=(i=t)[0]-n[0],o=(i[1]-n[1])/a,(n[1]*i[0]-i[1]*n[0])/a>0?[o>0?et:rt,it]:[o>0?rt:et,nt]):[Z||W,J||X]):Z&&J&&ct([Z,J])),ct([W,X])):Z-W&&J-X&&ct([W||Z,X||J]),K=t,Z=W,J=X}else K&&ut($(K,t)[0]),U[V++]=t;var n,i,a,o}for("linear"===D||"spline"===D?$=function(t,e){for(var r=[],n=0,i=0;i<4;i++){var a=at[i],o=c(t[0],t[1],e[0],e[1],a[0],a[1],a[2],a[3]);o&&(!n||Math.abs(o.x-r[0][0])>1||Math.abs(o.y-r[0][1])>1)&&(o=[o.x,o.y],n&&Y(o,t)G(d,ht))break;a=d,(_=v[0]*m[0]+v[1]*m[1])>x?(x=_,h=d,g=!1):_=t.length||!d)break;ft(d),n=d}}else ft(h)}K&&ct([Z||K[0],J||K[1]]),B.push(U.slice(0,V))}return B}},{"../../constants/numerical":753,"../../lib":778,"./constants":1191}],1202:[function(t,e,r){"use strict";e.exports=function(t,e,r){"spline"===r("line.shape")&&r("line.smoothing")}},{}],1203:[function(t,e,r){"use strict";var n={tonextx:1,tonexty:1,tonext:1};e.exports=function(t,e,r){var i,a,o,s,l,c={},u=!1,f=-1,h=0,p=-1;for(a=0;a=0?l=p:(l=p=h,h++),l0?Math.max(e,i):0}}},{"fast-isnumeric":241}],1205:[function(t,e,r){"use strict";e.exports={container:"marker",min:"cmin",max:"cmax"}},{}],1206:[function(t,e,r){"use strict";var n=t("../../components/color"),i=t("../../components/colorscale/helpers").hasColorscale,a=t("../../components/colorscale/defaults"),o=t("./subtypes");e.exports=function(t,e,r,s,l,c){var u=o.isBubble(t),f=(t.line||{}).color;(c=c||{},f&&(r=f),l("marker.symbol"),l("marker.opacity",u?.7:1),l("marker.size"),l("marker.color",r),i(t,"marker")&&a(t,e,s,l,{prefix:"marker.",cLetter:"c"}),c.noSelect||(l("selected.marker.color"),l("unselected.marker.color"),l("selected.marker.size"),l("unselected.marker.size")),c.noLine||(l("marker.line.color",f&&!Array.isArray(f)&&e.marker.color!==f?f:u?n.background:n.defaultLine),i(t,"marker.line")&&a(t,e,s,l,{prefix:"marker.line.",cLetter:"c"}),l("marker.line.width",u?1:0)),u&&(l("marker.sizeref"),l("marker.sizemin"),l("marker.sizemode")),c.gradient)&&("none"!==l("marker.gradient.type")&&l("marker.gradient.color"))}},{"../../components/color":643,"../../components/colorscale/defaults":653,"../../components/colorscale/helpers":654,"./subtypes":1212}],1207:[function(t,e,r){"use strict";var n=t("../../lib").dateTick0,i=t("../../constants/numerical").ONEWEEK;function a(t,e){return n(e,t%i==0?1:0)}e.exports=function(t,e,r,n,i){if(i||(i={x:!0,y:!0}),i.x){var o=n("xperiod");o&&(n("xperiod0",a(o,e.xcalendar)),n("xperiodalignment"))}if(i.y){var s=n("yperiod");s&&(n("yperiod0",a(s,e.ycalendar)),n("yperiodalignment"))}}},{"../../constants/numerical":753,"../../lib":778}],1208:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../registry"),a=t("../../lib"),o=a.ensureSingle,s=a.identity,l=t("../../components/drawing"),c=t("./subtypes"),u=t("./line_points"),f=t("./link_traces"),h=t("../../lib/polygon").tester;function p(t,e,r,f,p,d,g){var m;!function(t,e,r,i,o){var s=r.xaxis,l=r.yaxis,u=n.extent(a.simpleMap(s.range,s.r2c)),f=n.extent(a.simpleMap(l.range,l.r2c)),h=i[0].trace;if(!c.hasMarkers(h))return;var p=h.marker.maxdisplayed;if(0===p)return;var d=i.filter((function(t){return t.x>=u[0]&&t.x<=u[1]&&t.y>=f[0]&&t.y<=f[1]})),g=Math.ceil(d.length/p),m=0;o.forEach((function(t,r){var n=t[0].trace;c.hasMarkers(n)&&n.marker.maxdisplayed>0&&r0;function y(t){return v?t.transition():t}var x=r.xaxis,b=r.yaxis,_=f[0].trace,w=_.line,T=n.select(d),k=o(T,"g","errorbars"),M=o(T,"g","lines"),A=o(T,"g","points"),S=o(T,"g","text");if(i.getComponentMethod("errorbars","plot")(t,k,r,g),!0===_.visible){var E,C;y(T).style("opacity",_.opacity);var L=_.fill.charAt(_.fill.length-1);"x"!==L&&"y"!==L&&(L=""),f[0][r.isRangePlot?"nodeRangePlot3":"node3"]=T;var I,P,z="",O=[],D=_._prevtrace;D&&(z=D._prevRevpath||"",C=D._nextFill,O=D._polygons);var R,F,B,N,j,U,V,q="",H="",G=[],Y=a.noop;if(E=_._ownFill,c.hasLines(_)||"none"!==_.fill){for(C&&C.datum(f),-1!==["hv","vh","hvh","vhv"].indexOf(w.shape)?(R=l.steps(w.shape),F=l.steps(w.shape.split("").reverse().join(""))):R=F="spline"===w.shape?function(t){var e=t[t.length-1];return t.length>1&&t[0][0]===e[0]&&t[0][1]===e[1]?l.smoothclosed(t.slice(1),w.smoothing):l.smoothopen(t,w.smoothing)}:function(t){return"M"+t.join("L")},B=function(t){return F(t.reverse())},G=u(f,{xaxis:x,yaxis:b,connectGaps:_.connectgaps,baseTolerance:Math.max(w.width||1,3)/4,shape:w.shape,simplify:w.simplify,fill:_.fill}),V=_._polygons=new Array(G.length),m=0;m1){var r=n.select(this);if(r.datum(f),t)y(r.style("opacity",0).attr("d",I).call(l.lineGroupStyle)).style("opacity",1);else{var i=y(r);i.attr("d",I),l.singleLineStyle(f,i)}}}}}var W=M.selectAll(".js-line").data(G);y(W.exit()).style("opacity",0).remove(),W.each(Y(!1)),W.enter().append("path").classed("js-line",!0).style("vector-effect","non-scaling-stroke").call(l.lineGroupStyle).each(Y(!0)),l.setClipUrl(W,r.layerClipId,t),G.length?(E?(E.datum(f),N&&U&&(L?("y"===L?N[1]=U[1]=b.c2p(0,!0):"x"===L&&(N[0]=U[0]=x.c2p(0,!0)),y(E).attr("d","M"+U+"L"+N+"L"+q.substr(1)).call(l.singleFillStyle)):y(E).attr("d",q+"Z").call(l.singleFillStyle))):C&&("tonext"===_.fill.substr(0,6)&&q&&z?("tonext"===_.fill?y(C).attr("d",q+"Z"+z+"Z").call(l.singleFillStyle):y(C).attr("d",q+"L"+z.substr(1)+"Z").call(l.singleFillStyle),_._polygons=_._polygons.concat(O)):(Z(C),_._polygons=null)),_._prevRevpath=H,_._prevPolygons=V):(E?Z(E):C&&Z(C),_._polygons=_._prevRevpath=_._prevPolygons=null),A.datum(f),S.datum(f),function(e,i,a){var o,u=a[0].trace,f=c.hasMarkers(u),h=c.hasText(u),p=tt(u),d=et,g=et;if(f||h){var m=s,_=u.stackgroup,w=_&&"infer zero"===t._fullLayout._scatterStackOpts[x._id+b._id][_].stackgaps;u.marker.maxdisplayed||u._needsCull?m=w?K:J:_&&!w&&(m=Q),f&&(d=m),h&&(g=m)}var T,k=(o=e.selectAll("path.point").data(d,p)).enter().append("path").classed("point",!0);v&&k.call(l.pointStyle,u,t).call(l.translatePoints,x,b).style("opacity",0).transition().style("opacity",1),o.order(),f&&(T=l.makePointStyleFns(u)),o.each((function(e){var i=n.select(this),a=y(i);l.translatePoint(e,a,x,b)?(l.singlePointStyle(e,a,u,T,t),r.layerClipId&&l.hideOutsideRangePoint(e,a,x,b,u.xcalendar,u.ycalendar),u.customdata&&i.classed("plotly-customdata",null!==e.data&&void 0!==e.data)):a.remove()})),v?o.exit().transition().style("opacity",0).remove():o.exit().remove(),(o=i.selectAll("g").data(g,p)).enter().append("g").classed("textpoint",!0).append("text"),o.order(),o.each((function(t){var e=n.select(this),i=y(e.select("text"));l.translatePoint(t,i,x,b)?r.layerClipId&&l.hideOutsideRangePoint(t,e,x,b,u.xcalendar,u.ycalendar):e.remove()})),o.selectAll("text").call(l.textPointStyle,u,t).each((function(t){var e=x.c2p(t.x),r=b.c2p(t.y);n.select(this).selectAll("tspan.line").each((function(){y(n.select(this)).attr({x:e,y:r})}))})),o.exit().remove()}(A,S,f);var X=!1===_.cliponaxis?null:r.layerClipId;l.setClipUrl(A,X,t),l.setClipUrl(S,X,t)}function Z(t){y(t).attr("d","M0,0Z")}function J(t){return t.filter((function(t){return!t.gap&&t.vis}))}function K(t){return t.filter((function(t){return t.vis}))}function Q(t){return t.filter((function(t){return!t.gap}))}function $(t){return t.id}function tt(t){if(t.ids)return $}function et(){return!1}}e.exports=function(t,e,r,i,a,c){var u,h,d=!a,g=!!a&&a.duration>0,m=f(t,e,r);((u=i.selectAll("g.trace").data(m,(function(t){return t[0].trace.uid}))).enter().append("g").attr("class",(function(t){return"trace scatter trace"+t[0].trace.uid})).style("stroke-miterlimit",2),u.order(),function(t,e,r){e.each((function(e){var i=o(n.select(this),"g","fills");l.setClipUrl(i,r.layerClipId,t);var a=e[0].trace,c=[];a._ownfill&&c.push("_ownFill"),a._nexttrace&&c.push("_nextFill");var u=i.selectAll("g").data(c,s);u.enter().append("g"),u.exit().each((function(t){a[t]=null})).remove(),u.order().each((function(t){a[t]=o(n.select(this),"path","js-fill")}))}))}(t,u,e),g)?(c&&(h=c()),n.transition().duration(a.duration).ease(a.easing).each("end",(function(){h&&h()})).each("interrupt",(function(){h&&h()})).each((function(){i.selectAll("g.trace").each((function(r,n){p(t,n,e,r,m,this,a)}))}))):u.each((function(r,n){p(t,n,e,r,m,this,a)}));d&&u.exit().remove(),i.selectAll("path:not([d])").remove()}},{"../../components/drawing":665,"../../lib":778,"../../lib/polygon":790,"../../registry":911,"./line_points":1201,"./link_traces":1203,"./subtypes":1212,d3:169}],1209:[function(t,e,r){"use strict";var n=t("./subtypes");e.exports=function(t,e){var r,i,a,o,s=t.cd,l=t.xaxis,c=t.yaxis,u=[],f=s[0].trace;if(!n.hasMarkers(f)&&!n.hasText(f))return[];if(!1===e)for(r=0;r0){var h=i.c2l(u);i._lowerLogErrorBound||(i._lowerLogErrorBound=h),i._lowerErrorBound=Math.min(i._lowerLogErrorBound,h)}}else o[s]=[-l[0]*r,l[1]*r]}return o}e.exports=function(t,e,r){var n=[i(t.x,t.error_x,e[0],r.xaxis),i(t.y,t.error_y,e[1],r.yaxis),i(t.z,t.error_z,e[2],r.zaxis)],a=function(t){for(var e=0;e-1?-1:t.indexOf("right")>-1?1:0}function b(t){return null==t?0:t.indexOf("top")>-1?-1:t.indexOf("bottom")>-1?1:0}function _(t,e){return e(4*t)}function w(t){return p[t]}function T(t,e,r,n,i){var a=null;if(l.isArrayOrTypedArray(t)){a=[];for(var o=0;o=0){var g=function(t,e,r){var n,i=(r+1)%3,a=(r+2)%3,o=[],l=[];for(n=0;n=0&&f("surfacecolor",h||p);for(var d=["x","y","z"],g=0;g<3;++g){var m="projection."+d[g];f(m+".show")&&(f(m+".opacity"),f(m+".scale"))}var v=n.getComponentMethod("errorbars","supplyDefaults");v(t,e,h||p||r,{axis:"z"}),v(t,e,h||p||r,{axis:"y",inherit:"z"}),v(t,e,h||p||r,{axis:"x",inherit:"z"})}else e.visible=!1}},{"../../lib":778,"../../registry":911,"../scatter/line_defaults":1200,"../scatter/marker_defaults":1206,"../scatter/subtypes":1212,"../scatter/text_defaults":1213,"./attributes":1215}],1220:[function(t,e,r){"use strict";e.exports={plot:t("./convert"),attributes:t("./attributes"),markerSymbols:t("../../constants/gl3d_markers"),supplyDefaults:t("./defaults"),colorbar:[{container:"marker",min:"cmin",max:"cmax"},{container:"line",min:"cmin",max:"cmax"}],calc:t("./calc"),moduleType:"trace",name:"scatter3d",basePlotModule:t("../../plots/gl3d"),categories:["gl3d","symbols","showLegend","scatter-like"],meta:{}}},{"../../constants/gl3d_markers":751,"../../plots/gl3d":870,"./attributes":1215,"./calc":1216,"./convert":1218,"./defaults":1219}],1221:[function(t,e,r){"use strict";var n=t("../scatter/attributes"),i=t("../../plots/attributes"),a=t("../../plots/template_attributes").hovertemplateAttrs,o=t("../../plots/template_attributes").texttemplateAttrs,s=t("../../components/colorscale/attributes"),l=t("../../lib/extend").extendFlat,c=n.marker,u=n.line,f=c.line;e.exports={carpet:{valType:"string",editType:"calc"},a:{valType:"data_array",editType:"calc"},b:{valType:"data_array",editType:"calc"},mode:l({},n.mode,{dflt:"markers"}),text:l({},n.text,{}),texttemplate:o({editType:"plot"},{keys:["a","b","text"]}),hovertext:l({},n.hovertext,{}),line:{color:u.color,width:u.width,dash:u.dash,shape:l({},u.shape,{values:["linear","spline"]}),smoothing:u.smoothing,editType:"calc"},connectgaps:n.connectgaps,fill:l({},n.fill,{values:["none","toself","tonext"],dflt:"none"}),fillcolor:n.fillcolor,marker:l({symbol:c.symbol,opacity:c.opacity,maxdisplayed:c.maxdisplayed,size:c.size,sizeref:c.sizeref,sizemin:c.sizemin,sizemode:c.sizemode,line:l({width:f.width,editType:"calc"},s("marker.line")),gradient:c.gradient,editType:"calc"},s("marker")),textfont:n.textfont,textposition:n.textposition,selected:n.selected,unselected:n.unselected,hoverinfo:l({},i.hoverinfo,{flags:["a","b","text","name"]}),hoveron:n.hoveron,hovertemplate:a()}},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/template_attributes":906,"../scatter/attributes":1187}],1222:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("../scatter/colorscale_calc"),a=t("../scatter/arrays_to_calcdata"),o=t("../scatter/calc_selection"),s=t("../scatter/calc").calcMarkerSize,l=t("../carpet/lookup_carpetid");e.exports=function(t,e){var r=e._carpetTrace=l(t,e);if(r&&r.visible&&"legendonly"!==r.visible){var c;e.xaxis=r.xaxis,e.yaxis=r.yaxis;var u,f,h=e._length,p=new Array(h),d=!1;for(c=0;c")}return o}function y(t,e){var r;r=t.labelprefix&&t.labelprefix.length>0?t.labelprefix.replace(/ = $/,""):t._hovertitle,m.push(r+": "+e.toFixed(3)+t.labelsuffix)}}},{"../../lib":778,"../scatter/hover":1198}],1227:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),colorbar:t("../scatter/marker_colorbar"),formatLabels:t("./format_labels"),calc:t("./calc"),plot:t("./plot"),style:t("../scatter/style").style,styleOnSelect:t("../scatter/style").styleOnSelect,hoverPoints:t("./hover"),selectPoints:t("../scatter/select"),eventData:t("./event_data"),moduleType:"trace",name:"scattercarpet",basePlotModule:t("../../plots/cartesian"),categories:["svg","carpet","symbols","showLegend","carpetDependent","zoomScale"],meta:{}}},{"../../plots/cartesian":841,"../scatter/marker_colorbar":1205,"../scatter/select":1209,"../scatter/style":1211,"./attributes":1221,"./calc":1222,"./defaults":1223,"./event_data":1224,"./format_labels":1225,"./hover":1226,"./plot":1228}],1228:[function(t,e,r){"use strict";var n=t("../scatter/plot"),i=t("../../plots/cartesian/axes"),a=t("../../components/drawing");e.exports=function(t,e,r,o){var s,l,c,u=r[0][0].carpet,f={xaxis:i.getFromId(t,u.xaxis||"x"),yaxis:i.getFromId(t,u.yaxis||"y"),plot:e.plot};for(n(t,f,r,o),s=0;s")}(c,g,t,l[0].t.labels),t.hovertemplate=c.hovertemplate,[t]}}},{"../../components/fx":683,"../../constants/numerical":753,"../../lib":778,"../scatter/get_trace_color":1197,"./attributes":1229}],1235:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),colorbar:t("../scatter/marker_colorbar"),formatLabels:t("./format_labels"),calc:t("./calc"),calcGeoJSON:t("./plot").calcGeoJSON,plot:t("./plot").plot,style:t("./style"),styleOnSelect:t("../scatter/style").styleOnSelect,hoverPoints:t("./hover"),eventData:t("./event_data"),selectPoints:t("./select"),moduleType:"trace",name:"scattergeo",basePlotModule:t("../../plots/geo"),categories:["geo","symbols","showLegend","scatter-like"],meta:{}}},{"../../plots/geo":860,"../scatter/marker_colorbar":1205,"../scatter/style":1211,"./attributes":1229,"./calc":1230,"./defaults":1231,"./event_data":1232,"./format_labels":1233,"./hover":1234,"./plot":1236,"./select":1237,"./style":1238}],1236:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../lib"),a=t("../../lib/topojson_utils").getTopojsonFeatures,o=t("../../lib/geojson_utils"),s=t("../../lib/geo_location_utils"),l=t("../../plots/cartesian/autorange").findExtremes,c=t("../../constants/numerical").BADNUM,u=t("../scatter/calc").calcMarkerSize,f=t("../scatter/subtypes"),h=t("./style");e.exports={calcGeoJSON:function(t,e){var r,n,i=t[0].trace,o=e[i.geo],f=o._subplot,h=i._length;if(Array.isArray(i.locations)){var p=i.locationmode,d="geojson-id"===p?s.extractTraceFeature(t):a(i,f.topojson);for(r=0;r=m,k=2*w,M={},A=x.makeCalcdata(e,"x"),S=b.makeCalcdata(e,"y"),E=s(e,x,"x",A),C=s(e,b,"y",S);e._x=E,e._y=C,e.xperiodalignment&&(e._origX=A),e.yperiodalignment&&(e._origY=S);var L=new Array(k);for(r=0;r1&&i.extendFlat(s.line,p.linePositions(t,r,n));if(s.errorX||s.errorY){var l=p.errorBarPositions(t,r,n,a,o);s.errorX&&i.extendFlat(s.errorX,l.x),s.errorY&&i.extendFlat(s.errorY,l.y)}s.text&&(i.extendFlat(s.text,{positions:n},p.textPosition(t,r,s.text,s.marker)),i.extendFlat(s.textSel,{positions:n},p.textPosition(t,r,s.text,s.markerSel)),i.extendFlat(s.textUnsel,{positions:n},p.textPosition(t,r,s.text,s.markerUnsel)));return s}(t,0,e,L,E,C),O=d(t,_);return f(y,e),T?z.marker&&(P=2*(z.marker.sizeAvg||Math.max(z.marker.size,3))):P=c(e,w),u(t,e,x,b,E,C,P),z.errorX&&v(e,x,z.errorX),z.errorY&&v(e,b,z.errorY),z.fill&&!O.fill2d&&(O.fill2d=!0),z.marker&&!O.scatter2d&&(O.scatter2d=!0),z.line&&!O.line2d&&(O.line2d=!0),!z.errorX&&!z.errorY||O.error2d||(O.error2d=!0),z.text&&!O.glText&&(O.glText=!0),z.marker&&(z.marker.snap=w),O.lineOptions.push(z.line),O.errorXOptions.push(z.errorX),O.errorYOptions.push(z.errorY),O.fillOptions.push(z.fill),O.markerOptions.push(z.marker),O.markerSelectedOptions.push(z.markerSel),O.markerUnselectedOptions.push(z.markerUnsel),O.textOptions.push(z.text),O.textSelectedOptions.push(z.textSel),O.textUnselectedOptions.push(z.textUnsel),O.selectBatch.push([]),O.unselectBatch.push([]),M._scene=O,M.index=O.count,M.x=E,M.y=C,M.positions=L,O.count++,[{x:!1,y:!1,t:M,trace:e}]}},{"../../constants/numerical":753,"../../lib":778,"../../plots/cartesian/align_period":825,"../../plots/cartesian/autorange":827,"../../plots/cartesian/axis_ids":831,"../scatter/calc":1188,"../scatter/colorscale_calc":1190,"./constants":1241,"./convert":1242,"./scene_update":1250,"@plotly/point-cluster":57}],1241:[function(t,e,r){"use strict";e.exports={TOO_MANY_POINTS:1e5,SYMBOL_SDF_SIZE:200,SYMBOL_SIZE:20,SYMBOL_STROKE:1,DOT_RE:/-dot/,OPEN_RE:/-open/,DASHES:{solid:[1],dot:[1,1],dash:[4,1],longdash:[8,1],dashdot:[4,1,1,1],longdashdot:[8,1,1,1]}}},{}],1242:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("svg-path-sdf"),a=t("color-normalize"),o=t("../../registry"),s=t("../../lib"),l=t("../../components/drawing"),c=t("../../plots/cartesian/axis_ids"),u=t("../../lib/gl_format_color").formatColor,f=t("../scatter/subtypes"),h=t("../scatter/make_bubble_size_func"),p=t("./helpers"),d=t("./constants"),g=t("../../constants/interactions").DESELECTDIM,m={start:1,left:1,end:-1,right:-1,middle:0,center:0,bottom:1,top:-1},v=t("../../components/fx/helpers").appendArrayPointValue;function y(t,e){var r,i=t._fullLayout,a=e._length,o=e.textfont,l=e.textposition,c=Array.isArray(l)?l:[l],u=o.color,f=o.size,h=o.family,p={},d=e.texttemplate;if(d){p.text=[];var g=i._d3locale,m=Array.isArray(d),y=m?Math.min(d.length,a):a,x=m?function(t){return d[t]}:function(){return d};for(r=0;rd.TOO_MANY_POINTS||f.hasMarkers(e)?"rect":"round";if(c&&e.connectgaps){var h=n[0],p=n[1];for(i=0;i1?l[i]:l[0]:l,d=Array.isArray(c)?c.length>1?c[i]:c[0]:c,g=m[p],v=m[d],y=u?u/.8+1:0,x=-v*y-.5*v;o.offset[i]=[g*y/h,x/h]}}return o}}},{"../../components/drawing":665,"../../components/fx/helpers":679,"../../constants/interactions":752,"../../lib":778,"../../lib/gl_format_color":774,"../../plots/cartesian/axis_ids":831,"../../registry":911,"../scatter/make_bubble_size_func":1204,"../scatter/subtypes":1212,"./constants":1241,"./helpers":1246,"color-normalize":125,"fast-isnumeric":241,"svg-path-sdf":574}],1243:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../registry"),a=t("./helpers"),o=t("./attributes"),s=t("../scatter/constants"),l=t("../scatter/subtypes"),c=t("../scatter/xy_defaults"),u=t("../scatter/period_defaults"),f=t("../scatter/marker_defaults"),h=t("../scatter/line_defaults"),p=t("../scatter/fillcolor_defaults"),d=t("../scatter/text_defaults");e.exports=function(t,e,r,g){function m(r,i){return n.coerce(t,e,o,r,i)}var v=!!t.marker&&a.isOpenSymbol(t.marker.symbol),y=l.isBubble(t),x=c(t,e,g,m);if(x){u(t,e,g,m);var b=x100},r.isDotSymbol=function(t){return"string"==typeof t?n.DOT_RE.test(t):t>200}},{"./constants":1241}],1247:[function(t,e,r){"use strict";var n=t("../../registry"),i=t("../../lib"),a=t("../scatter/get_trace_color");function o(t,e,r,o){var s=t.xa,l=t.ya,c=t.distance,u=t.dxy,f=t.index,h={pointNumber:f,x:e[f],y:r[f]};h.tx=Array.isArray(o.text)?o.text[f]:o.text,h.htx=Array.isArray(o.hovertext)?o.hovertext[f]:o.hovertext,h.data=Array.isArray(o.customdata)?o.customdata[f]:o.customdata,h.tp=Array.isArray(o.textposition)?o.textposition[f]:o.textposition;var p=o.textfont;p&&(h.ts=i.isArrayOrTypedArray(p.size)?p.size[f]:p.size,h.tc=Array.isArray(p.color)?p.color[f]:p.color,h.tf=Array.isArray(p.family)?p.family[f]:p.family);var d=o.marker;d&&(h.ms=i.isArrayOrTypedArray(d.size)?d.size[f]:d.size,h.mo=i.isArrayOrTypedArray(d.opacity)?d.opacity[f]:d.opacity,h.mx=i.isArrayOrTypedArray(d.symbol)?d.symbol[f]:d.symbol,h.mc=i.isArrayOrTypedArray(d.color)?d.color[f]:d.color);var g=d&&d.line;g&&(h.mlc=Array.isArray(g.color)?g.color[f]:g.color,h.mlw=i.isArrayOrTypedArray(g.width)?g.width[f]:g.width);var m=d&&d.gradient;m&&"none"!==m.type&&(h.mgt=Array.isArray(m.type)?m.type[f]:m.type,h.mgc=Array.isArray(m.color)?m.color[f]:m.color);var v=s.c2p(h.x,!0),y=l.c2p(h.y,!0),x=h.mrc||1,b=o.hoverlabel;b&&(h.hbg=Array.isArray(b.bgcolor)?b.bgcolor[f]:b.bgcolor,h.hbc=Array.isArray(b.bordercolor)?b.bordercolor[f]:b.bordercolor,h.hts=i.isArrayOrTypedArray(b.font.size)?b.font.size[f]:b.font.size,h.htc=Array.isArray(b.font.color)?b.font.color[f]:b.font.color,h.htf=Array.isArray(b.font.family)?b.font.family[f]:b.font.family,h.hnl=i.isArrayOrTypedArray(b.namelength)?b.namelength[f]:b.namelength);var _=o.hoverinfo;_&&(h.hi=Array.isArray(_)?_[f]:_);var w=o.hovertemplate;w&&(h.ht=Array.isArray(w)?w[f]:w);var T={};T[t.index]=h;var k=o._origX,M=o._origY,A=i.extendFlat({},t,{color:a(o,h),x0:v-x,x1:v+x,xLabelVal:k?k[f]:h.x,y0:y-x,y1:y+x,yLabelVal:M?M[f]:h.y,cd:T,distance:c,spikeDistance:u,hovertemplate:h.ht});return h.htx?A.text=h.htx:h.tx?A.text=h.tx:o.text&&(A.text=o.text),i.fillText(h,o,A),n.getComponentMethod("errorbars","hoverInfo")(h,o,A),A}e.exports={hoverPoints:function(t,e,r,n){var i,a,s,l,c,u,f,h,p,d=t.cd,g=d[0].t,m=d[0].trace,v=t.xa,y=t.ya,x=g.x,b=g.y,_=v.c2p(e),w=y.c2p(r),T=t.distance;if(g.tree){var k=v.p2c(_-T),M=v.p2c(_+T),A=y.p2c(w-T),S=y.p2c(w+T);i="x"===n?g.tree.range(Math.min(k,M),Math.min(y._rl[0],y._rl[1]),Math.max(k,M),Math.max(y._rl[0],y._rl[1])):g.tree.range(Math.min(k,M),Math.min(A,S),Math.max(k,M),Math.max(A,S))}else i=g.ids;var E=T;if("x"===n)for(c=0;c-1;c--)s=x[i[c]],l=b[i[c]],u=v.c2p(s)-_,f=y.c2p(l)-w,(h=Math.sqrt(u*u+f*f))v.glText.length){var w=b-v.glText.length;for(d=0;dr&&(isNaN(e[n])||isNaN(e[n+1]));)n-=2;t.positions=e.slice(r,n+2)}return t})),v.line2d.update(v.lineOptions)),v.error2d){var k=(v.errorXOptions||[]).concat(v.errorYOptions||[]);v.error2d.update(k)}v.scatter2d&&v.scatter2d.update(v.markerOptions),v.fillOrder=s.repeat(null,b),v.fill2d&&(v.fillOptions=v.fillOptions.map((function(t,e){var n=r[e];if(t&&n&&n[0]&&n[0].trace){var i,a,o=n[0],s=o.trace,l=o.t,c=v.lineOptions[e],u=[];s._ownfill&&u.push(e),s._nexttrace&&u.push(e+1),u.length&&(v.fillOrder[e]=u);var f,h,p=[],d=c&&c.positions||l.positions;if("tozeroy"===s.fill){for(f=0;ff&&isNaN(d[h+1]);)h-=2;0!==d[f+1]&&(p=[d[f],0]),p=p.concat(d.slice(f,h+2)),0!==d[h+1]&&(p=p.concat([d[h],0]))}else if("tozerox"===s.fill){for(f=0;ff&&isNaN(d[h]);)h-=2;0!==d[f]&&(p=[0,d[f+1]]),p=p.concat(d.slice(f,h+2)),0!==d[h]&&(p=p.concat([0,d[h+1]]))}else if("toself"===s.fill||"tonext"===s.fill){for(p=[],i=0,a=0;a-1;for(d=0;d=0?Math.floor((e+180)/360):Math.ceil((e-180)/360)),d=e-p;if(n.getClosest(l,(function(t){var e=t.lonlat;if(e[0]===s)return 1/0;var n=i.modHalf(e[0],360),a=e[1],o=h.project([n,a]),l=o.x-u.c2p([d,a]),c=o.y-f.c2p([n,r]),p=Math.max(3,t.mrc||0);return Math.max(Math.sqrt(l*l+c*c)-p,1-3/p)}),t),!1!==t.index){var g=l[t.index],m=g.lonlat,v=[i.modHalf(m[0],360)+p,m[1]],y=u.c2p(v),x=f.c2p(v),b=g.mrc||1;t.x0=y-b,t.x1=y+b,t.y0=x-b,t.y1=x+b;var _={};_[c.subplot]={_subplot:h};var w=c._module.formatLabels(g,c,_);return t.lonLabel=w.lonLabel,t.latLabel=w.latLabel,t.color=a(c,g),t.extraText=function(t,e,r){if(t.hovertemplate)return;var n=(e.hi||t.hoverinfo).split("+"),i=-1!==n.indexOf("all"),a=-1!==n.indexOf("lon"),s=-1!==n.indexOf("lat"),l=e.lonlat,c=[];function u(t){return t+"\xb0"}i||a&&s?c.push("("+u(l[0])+", "+u(l[1])+")"):a?c.push(r.lon+u(l[0])):s&&c.push(r.lat+u(l[1]));(i||-1!==n.indexOf("text"))&&o(e,t,c);return c.join("
    ")}(c,g,l[0].t.labels),t.hovertemplate=c.hovertemplate,[t]}}},{"../../components/fx":683,"../../constants/numerical":753,"../../lib":778,"../scatter/get_trace_color":1197}],1258:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),colorbar:t("../scatter/marker_colorbar"),formatLabels:t("./format_labels"),calc:t("../scattergeo/calc"),plot:t("./plot"),hoverPoints:t("./hover"),eventData:t("./event_data"),selectPoints:t("./select"),styleOnSelect:function(t,e){e&&e[0].trace._glTrace.update(e)},moduleType:"trace",name:"scattermapbox",basePlotModule:t("../../plots/mapbox"),categories:["mapbox","gl","symbols","showLegend","scatter-like"],meta:{}}},{"../../plots/mapbox":885,"../scatter/marker_colorbar":1205,"../scattergeo/calc":1230,"./attributes":1252,"./defaults":1254,"./event_data":1255,"./format_labels":1256,"./hover":1257,"./plot":1259,"./select":1260}],1259:[function(t,e,r){"use strict";var n=t("./convert"),i=t("../../plots/mapbox/constants").traceLayerPrefix,a=["fill","line","circle","symbol"];function o(t,e){this.type="scattermapbox",this.subplot=t,this.uid=e,this.sourceIds={fill:"source-"+e+"-fill",line:"source-"+e+"-line",circle:"source-"+e+"-circle",symbol:"source-"+e+"-symbol"},this.layerIds={fill:i+e+"-fill",line:i+e+"-line",circle:i+e+"-circle",symbol:i+e+"-symbol"},this.below=null}var s=o.prototype;s.addSource=function(t,e){this.subplot.map.addSource(this.sourceIds[t],{type:"geojson",data:e.geojson})},s.setSourceData=function(t,e){this.subplot.map.getSource(this.sourceIds[t]).setData(e.geojson)},s.addLayer=function(t,e,r){this.subplot.addLayer({type:t,id:this.layerIds[t],source:this.sourceIds[t],layout:e.layout,paint:e.paint},r)},s.update=function(t){var e,r,i,o=this.subplot,s=o.map,l=n(o.gd,t),c=o.belowLookup["trace-"+this.uid];if(c!==this.below){for(e=a.length-1;e>=0;e--)r=a[e],s.removeLayer(this.layerIds[r]);for(e=0;e=0;e--){var r=a[e];t.removeLayer(this.layerIds[r]),t.removeSource(this.sourceIds[r])}},e.exports=function(t,e){for(var r=e[0].trace,i=new o(t,r.uid),s=n(t.gd,e),l=i.below=t.belowLookup["trace-"+r.uid],c=0;c")}}e.exports={hoverPoints:function(t,e,r,a){var o=n(t,e,r,a);if(o&&!1!==o[0].index){var s=o[0];if(void 0===s.index)return o;var l=t.subplot,c=s.cd[s.index],u=s.trace;if(l.isPtInside(c))return s.xLabelVal=void 0,s.yLabelVal=void 0,i(c,u,l,s),s.hovertemplate=u.hovertemplate,o}},makeHoverPointText:i}},{"../scatter/hover":1198}],1266:[function(t,e,r){"use strict";e.exports={moduleType:"trace",name:"scatterpolar",basePlotModule:t("../../plots/polar"),categories:["polar","symbols","showLegend","scatter-like"],attributes:t("./attributes"),supplyDefaults:t("./defaults").supplyDefaults,colorbar:t("../scatter/marker_colorbar"),formatLabels:t("./format_labels"),calc:t("./calc"),plot:t("./plot"),style:t("../scatter/style").style,styleOnSelect:t("../scatter/style").styleOnSelect,hoverPoints:t("./hover").hoverPoints,selectPoints:t("../scatter/select"),meta:{}}},{"../../plots/polar":894,"../scatter/marker_colorbar":1205,"../scatter/select":1209,"../scatter/style":1211,"./attributes":1261,"./calc":1262,"./defaults":1263,"./format_labels":1264,"./hover":1265,"./plot":1267}],1267:[function(t,e,r){"use strict";var n=t("../scatter/plot"),i=t("../../constants/numerical").BADNUM;e.exports=function(t,e,r){for(var a=e.layers.frontplot.select("g.scatterlayer"),o={xaxis:e.xaxis,yaxis:e.yaxis,plot:e.framework,layerClipId:e._hasClipOnAxisFalse?e.clipIds.forTraces:null},s=e.radialAxis,l=e.angularAxis,c=0;c=c&&(y.marker.cluster=d.tree),y.marker&&(y.markerSel.positions=y.markerUnsel.positions=y.marker.positions=_),y.line&&_.length>1&&l.extendFlat(y.line,s.linePositions(t,p,_)),y.text&&(l.extendFlat(y.text,{positions:_},s.textPosition(t,p,y.text,y.marker)),l.extendFlat(y.textSel,{positions:_},s.textPosition(t,p,y.text,y.markerSel)),l.extendFlat(y.textUnsel,{positions:_},s.textPosition(t,p,y.text,y.markerUnsel))),y.fill&&!h.fill2d&&(h.fill2d=!0),y.marker&&!h.scatter2d&&(h.scatter2d=!0),y.line&&!h.line2d&&(h.line2d=!0),y.text&&!h.glText&&(h.glText=!0),h.lineOptions.push(y.line),h.fillOptions.push(y.fill),h.markerOptions.push(y.marker),h.markerSelectedOptions.push(y.markerSel),h.markerUnselectedOptions.push(y.markerUnsel),h.textOptions.push(y.text),h.textSelectedOptions.push(y.textSel),h.textUnselectedOptions.push(y.textUnsel),h.selectBatch.push([]),h.unselectBatch.push([]),d.x=w,d.y=T,d.rawx=w,d.rawy=T,d.r=m,d.theta=v,d.positions=_,d._scene=h,d.index=h.count,h.count++}})),a(t,e,r)}}},{"../../lib":778,"../scattergl/constants":1241,"../scattergl/convert":1242,"../scattergl/plot":1249,"../scattergl/scene_update":1250,"@plotly/point-cluster":57,"fast-isnumeric":241}],1275:[function(t,e,r){"use strict";var n=t("../../plots/template_attributes").hovertemplateAttrs,i=t("../../plots/template_attributes").texttemplateAttrs,a=t("../scatter/attributes"),o=t("../../plots/attributes"),s=t("../../components/colorscale/attributes"),l=t("../../components/drawing/attributes").dash,c=t("../../lib/extend").extendFlat,u=a.marker,f=a.line,h=u.line;e.exports={a:{valType:"data_array",editType:"calc"},b:{valType:"data_array",editType:"calc"},c:{valType:"data_array",editType:"calc"},sum:{valType:"number",dflt:0,min:0,editType:"calc"},mode:c({},a.mode,{dflt:"markers"}),text:c({},a.text,{}),texttemplate:i({editType:"plot"},{keys:["a","b","c","text"]}),hovertext:c({},a.hovertext,{}),line:{color:f.color,width:f.width,dash:l,shape:c({},f.shape,{values:["linear","spline"]}),smoothing:f.smoothing,editType:"calc"},connectgaps:a.connectgaps,cliponaxis:a.cliponaxis,fill:c({},a.fill,{values:["none","toself","tonext"],dflt:"none"}),fillcolor:a.fillcolor,marker:c({symbol:u.symbol,opacity:u.opacity,maxdisplayed:u.maxdisplayed,size:u.size,sizeref:u.sizeref,sizemin:u.sizemin,sizemode:u.sizemode,line:c({width:h.width,editType:"calc"},s("marker.line")),gradient:u.gradient,editType:"calc"},s("marker")),textfont:a.textfont,textposition:a.textposition,selected:a.selected,unselected:a.unselected,hoverinfo:c({},o.hoverinfo,{flags:["a","b","c","text","name"]}),hoveron:a.hoveron,hovertemplate:n()}},{"../../components/colorscale/attributes":650,"../../components/drawing/attributes":664,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/template_attributes":906,"../scatter/attributes":1187}],1276:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("../scatter/colorscale_calc"),a=t("../scatter/arrays_to_calcdata"),o=t("../scatter/calc_selection"),s=t("../scatter/calc").calcMarkerSize,l=["a","b","c"],c={a:["b","c"],b:["a","c"],c:["a","b"]};e.exports=function(t,e){var r,u,f,h,p,d,g=t._fullLayout[e.subplot].sum,m=e.sum||g,v={a:e.a,b:e.b,c:e.c};for(r=0;r"),o.hovertemplate=h.hovertemplate,a}function x(t,e){v.push(t._hovertitle+": "+e)}}},{"../scatter/hover":1198}],1281:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),colorbar:t("../scatter/marker_colorbar"),formatLabels:t("./format_labels"),calc:t("./calc"),plot:t("./plot"),style:t("../scatter/style").style,styleOnSelect:t("../scatter/style").styleOnSelect,hoverPoints:t("./hover"),selectPoints:t("../scatter/select"),eventData:t("./event_data"),moduleType:"trace",name:"scatterternary",basePlotModule:t("../../plots/ternary"),categories:["ternary","symbols","showLegend","scatter-like"],meta:{}}},{"../../plots/ternary":907,"../scatter/marker_colorbar":1205,"../scatter/select":1209,"../scatter/style":1211,"./attributes":1275,"./calc":1276,"./defaults":1277,"./event_data":1278,"./format_labels":1279,"./hover":1280,"./plot":1282}],1282:[function(t,e,r){"use strict";var n=t("../scatter/plot");e.exports=function(t,e,r){var i=e.plotContainer;i.select(".scatterlayer").selectAll("*").remove();var a={xaxis:e.xaxis,yaxis:e.yaxis,plot:i,layerClipId:e._hasClipOnAxisFalse?e.clipIdRelative:null},o=e.layers.frontplot.select("g.scatterlayer");n(t,a,r,o)}},{"../scatter/plot":1208}],1283:[function(t,e,r){"use strict";var n=t("../scatter/attributes"),i=t("../../components/colorscale/attributes"),a=t("../../plots/template_attributes").hovertemplateAttrs,o=t("../scattergl/attributes"),s=t("../../plots/cartesian/constants").idRegex,l=t("../../plot_api/plot_template").templatedArray,c=t("../../lib/extend").extendFlat,u=n.marker,f=u.line,h=c(i("marker.line",{editTypeOverride:"calc"}),{width:c({},f.width,{editType:"calc"}),editType:"calc"}),p=c(i("marker"),{symbol:u.symbol,size:c({},u.size,{editType:"markerSize"}),sizeref:u.sizeref,sizemin:u.sizemin,sizemode:u.sizemode,opacity:u.opacity,colorbar:u.colorbar,line:h,editType:"calc"});function d(t){return{valType:"info_array",freeLength:!0,editType:"calc",items:{valType:"subplotid",regex:s[t],editType:"plot"}}}p.color.editType=p.cmin.editType=p.cmax.editType="style",e.exports={dimensions:l("dimension",{visible:{valType:"boolean",dflt:!0,editType:"calc"},label:{valType:"string",editType:"calc"},values:{valType:"data_array",editType:"calc+clearAxisTypes"},axis:{type:{valType:"enumerated",values:["linear","log","date","category"],editType:"calc+clearAxisTypes"},matches:{valType:"boolean",dflt:!1,editType:"calc"},editType:"calc+clearAxisTypes"},editType:"calc+clearAxisTypes"}),text:c({},o.text,{}),hovertext:c({},o.hovertext,{}),hovertemplate:a(),marker:p,xaxes:d("x"),yaxes:d("y"),diagonal:{visible:{valType:"boolean",dflt:!0,editType:"calc"},editType:"calc"},showupperhalf:{valType:"boolean",dflt:!0,editType:"calc"},showlowerhalf:{valType:"boolean",dflt:!0,editType:"calc"},selected:{marker:o.selected.marker,editType:"calc"},unselected:{marker:o.unselected.marker,editType:"calc"},opacity:o.opacity}},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plot_api/plot_template":817,"../../plots/cartesian/constants":834,"../../plots/template_attributes":906,"../scatter/attributes":1187,"../scattergl/attributes":1239}],1284:[function(t,e,r){"use strict";var n=t("regl-line2d"),i=t("../../registry"),a=t("../../lib/prepare_regl"),o=t("../../plots/get_data").getModuleCalcData,s=t("../../plots/cartesian"),l=t("../../plots/cartesian/axis_ids").getFromId,c=t("../../plots/cartesian/axes").shouldShowZeroLine;function u(t,e,r){for(var n=r.matrixOptions.data.length,i=e._visibleDims,a=r.viewOpts.ranges=new Array(n),o=0;oh?2*(b.sizeAvg||Math.max(b.size,3)):a(e,x),p=0;pa&&l||i-1,A=!0;if(o(x)||!!p.selectedpoints||M){var S=p._length;if(p.selectedpoints){g.selectBatch=p.selectedpoints;var E=p.selectedpoints,C={};for(l=0;l1&&(u=g[y-1],h=m[y-1],d=v[y-1]),e=0;eu?"-":"+")+"x")).replace("y",(f>h?"-":"+")+"y")).replace("z",(p>d?"-":"+")+"z");var C=function(){y=0,A=[],S=[],E=[]};(!y||y2?t.slice(1,e-1):2===e?[(t[0]+t[1])/2]:t}function p(t){var e=t.length;return 1===e?[.5,.5]:[t[1]-t[0],t[e-1]-t[e-2]]}function d(t,e){var r=t.fullSceneLayout,i=t.dataScale,u=e._len,f={};function d(t,e){var n=r[e],o=i[c[e]];return a.simpleMap(t,(function(t){return n.d2l(t)*o}))}if(f.vectors=l(d(e._u,"xaxis"),d(e._v,"yaxis"),d(e._w,"zaxis"),u),!u)return{positions:[],cells:[]};var g=d(e._Xs,"xaxis"),m=d(e._Ys,"yaxis"),v=d(e._Zs,"zaxis");if(f.meshgrid=[g,m,v],f.gridFill=e._gridFill,e._slen)f.startingPositions=l(d(e._startsX,"xaxis"),d(e._startsY,"yaxis"),d(e._startsZ,"zaxis"));else{for(var y=m[0],x=h(g),b=h(v),_=new Array(x.length*b.length),w=0,T=0;T=0};v?(r=Math.min(m.length,x.length),l=function(t){return M(m[t])&&A(t)},f=function(t){return String(m[t])}):(r=Math.min(y.length,x.length),l=function(t){return M(y[t])&&A(t)},f=function(t){return String(y[t])}),_&&(r=Math.min(r,b.length));for(var S=0;S1){for(var I=a.randstr(),P=0;P"),name:k||z("name")?l.name:void 0,color:T("hoverlabel.bgcolor")||y.color,borderColor:T("hoverlabel.bordercolor"),fontFamily:T("hoverlabel.font.family"),fontSize:T("hoverlabel.font.size"),fontColor:T("hoverlabel.font.color"),nameLength:T("hoverlabel.namelength"),textAlign:T("hoverlabel.align"),hovertemplate:k,hovertemplateLabels:L,eventData:[f(i,l,h.eventDataKeys)]};m&&(R.x0=S-i.rInscribed*i.rpx1,R.x1=S+i.rInscribed*i.rpx1,R.idealAlign=i.pxmid[0]<0?"left":"right"),v&&(R.x=S,R.idealAlign=S<0?"left":"right"),o.loneHover(R,{container:a._hoverlayer.node(),outerContainer:a._paper.node(),gd:r}),d._hasHoverLabel=!0}if(v){var F=t.select("path.surface");h.styleOne(F,i,l,{hovered:!0})}d._hasHoverEvent=!0,r.emit("plotly_hover",{points:[f(i,l,h.eventDataKeys)],event:n.event})}})),t.on("mouseout",(function(e){var i=r._fullLayout,a=r._fullData[d.index],s=n.select(this).datum();if(d._hasHoverEvent&&(e.originalEvent=n.event,r.emit("plotly_unhover",{points:[f(s,a,h.eventDataKeys)],event:n.event}),d._hasHoverEvent=!1),d._hasHoverLabel&&(o.loneUnhover(i._hoverlayer.node()),d._hasHoverLabel=!1),v){var l=t.select("path.surface");h.styleOne(l,s,a,{hovered:!1})}})),t.on("click",(function(t){var e=r._fullLayout,a=r._fullData[d.index],s=m&&(c.isHierarchyRoot(t)||c.isLeaf(t)),u=c.getPtId(t),p=c.isEntry(t)?c.findEntryWithChild(g,u):c.findEntryWithLevel(g,u),v=c.getPtId(p),y={points:[f(t,a,h.eventDataKeys)],event:n.event};s||(y.nextLevel=v);var x=l.triggerHandler(r,"plotly_"+d.type+"click",y);if(!1!==x&&e.hovermode&&(r._hoverdata=[f(t,a,h.eventDataKeys)],o.click(r,n.event)),!s&&!1!==x&&!r._dragging&&!r._transitioning){i.call("_storeDirectGUIEdit",a,e._tracePreGUI[a.uid],{level:a.level});var b={data:[{level:v}],traces:[d.index]},_={frame:{redraw:!1,duration:h.transitionTime},transition:{duration:h.transitionTime,easing:h.transitionEasing},mode:"immediate",fromcurrent:!0};o.loneUnhover(e._hoverlayer.node()),i.call("animate",r,b,_)}}))}},{"../../components/fx":683,"../../components/fx/helpers":679,"../../lib":778,"../../lib/events":767,"../../registry":911,"../pie/helpers":1166,"./helpers":1305,d3:169}],1305:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../components/color"),a=t("../../lib/setcursor"),o=t("../pie/helpers");function s(t){return t.data.data.pid}r.findEntryWithLevel=function(t,e){var n;return e&&t.eachAfter((function(t){if(r.getPtId(t)===e)return n=t.copy()})),n||t},r.findEntryWithChild=function(t,e){var n;return t.eachAfter((function(t){for(var i=t.children||[],a=0;a0)},r.getMaxDepth=function(t){return t.maxdepth>=0?t.maxdepth:1/0},r.isHeader=function(t,e){return!(r.isLeaf(t)||t.depth===e._maxDepth-1)},r.getParent=function(t,e){return r.findEntryWithLevel(t,s(e))},r.listPath=function(t,e){var n=t.parent;if(!n)return[];var i=e?[n.data[e]]:[n];return r.listPath(n,e).concat(i)},r.getPath=function(t){return r.listPath(t,"label").join("/")+"/"},r.formatValue=o.formatPieValue,r.formatPercent=function(t,e){var r=n.formatPercent(t,0);return"0%"===r&&(r=o.formatPiePercent(t,e)),r}},{"../../components/color":643,"../../lib":778,"../../lib/setcursor":799,"../pie/helpers":1166}],1306:[function(t,e,r){"use strict";e.exports={moduleType:"trace",name:"sunburst",basePlotModule:t("./base_plot"),categories:[],animatable:!0,attributes:t("./attributes"),layoutAttributes:t("./layout_attributes"),supplyDefaults:t("./defaults"),supplyLayoutDefaults:t("./layout_defaults"),calc:t("./calc").calc,crossTraceCalc:t("./calc").crossTraceCalc,plot:t("./plot").plot,style:t("./style").style,colorbar:t("../scatter/marker_colorbar"),meta:{}}},{"../scatter/marker_colorbar":1205,"./attributes":1299,"./base_plot":1300,"./calc":1301,"./defaults":1303,"./layout_attributes":1307,"./layout_defaults":1308,"./plot":1309,"./style":1310}],1307:[function(t,e,r){"use strict";e.exports={sunburstcolorway:{valType:"colorlist",editType:"calc"},extendsunburstcolors:{valType:"boolean",dflt:!0,editType:"calc"}}},{}],1308:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./layout_attributes");e.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}r("sunburstcolorway",e.colorway),r("extendsunburstcolors")}},{"../../lib":778,"./layout_attributes":1307}],1309:[function(t,e,r){"use strict";var n=t("d3"),i=t("d3-hierarchy"),a=t("../../components/drawing"),o=t("../../lib"),s=t("../../lib/svg_text_utils"),l=t("../bar/uniform_text"),c=l.recordMinTextSize,u=l.clearMinTextSize,f=t("../pie/plot"),h=t("../pie/helpers").getRotationAngle,p=f.computeTransform,d=f.transformInsideText,g=t("./style").styleOne,m=t("../bar/style").resizeText,v=t("./fx"),y=t("./constants"),x=t("./helpers");function b(t,e,l,u){var f=t._fullLayout,m=!f.uniformtext.mode&&x.hasTransition(u),b=n.select(l).selectAll("g.slice"),w=e[0],T=w.trace,k=w.hierarchy,M=x.findEntryWithLevel(k,T.level),A=x.getMaxDepth(T),S=f._size,E=T.domain,C=S.w*(E.x[1]-E.x[0]),L=S.h*(E.y[1]-E.y[0]),I=.5*Math.min(C,L),P=w.cx=S.l+S.w*(E.x[1]+E.x[0])/2,z=w.cy=S.t+S.h*(1-E.y[0])-L/2;if(!M)return b.remove();var O=null,D={};m&&b.each((function(t){D[x.getPtId(t)]={rpx0:t.rpx0,rpx1:t.rpx1,x0:t.x0,x1:t.x1,transform:t.transform},!O&&x.isEntry(t)&&(O=t)}));var R=function(t){return i.partition().size([2*Math.PI,t.height+1])(t)}(M).descendants(),F=M.height+1,B=0,N=A;w.hasMultipleRoots&&x.isHierarchyRoot(M)&&(R=R.slice(1),F-=1,B=1,N+=1),R=R.filter((function(t){return t.y1<=N}));var j=h(T.rotation);j&&R.forEach((function(t){t.x0+=j,t.x1+=j}));var U=Math.min(F,A),V=function(t){return(t-B)/U*I},q=function(t,e){return[t*Math.cos(e),-t*Math.sin(e)]},H=function(t){return o.pathAnnulus(t.rpx0,t.rpx1,t.x0,t.x1,P,z)},G=function(t){return P+_(t)[0]*(t.transform.rCenter||0)+(t.transform.x||0)},Y=function(t){return z+_(t)[1]*(t.transform.rCenter||0)+(t.transform.y||0)};(b=b.data(R,x.getPtId)).enter().append("g").classed("slice",!0),m?b.exit().transition().each((function(){var t=n.select(this);t.select("path.surface").transition().attrTween("d",(function(t){var e=function(t){var e,r=x.getPtId(t),i=D[r],a=D[x.getPtId(M)];if(a){var o=(t.x1>a.x1?2*Math.PI:0)+j;e=t.rpx1W?2*Math.PI:0)+j;e={x0:a,x1:a}}else e={rpx0:I,rpx1:I},o.extendFlat(e,J(t));else e={rpx0:0,rpx1:0};else e={x0:j,x1:j};return n.interpolate(e,i)}(t);return function(t){return H(e(t))}})):u.attr("d",H),l.call(v,M,t,e,{eventDataKeys:y.eventDataKeys,transitionTime:y.CLICK_TRANSITION_TIME,transitionEasing:y.CLICK_TRANSITION_EASING}).call(x.setSliceCursor,t,{hideOnRoot:!0,hideOnLeaves:!0,isTransitioning:t._transitioning}),u.call(g,i,T);var h=o.ensureSingle(l,"g","slicetext"),b=o.ensureSingle(h,"text","",(function(t){t.attr("data-notex",1)})),_=o.ensureUniformFontSize(t,x.determineTextFont(T,i,f.font));b.text(r.formatSliceLabel(i,M,T,e,f)).classed("slicetext",!0).attr("text-anchor","middle").call(a.font,_).call(s.convertToTspans,t);var k=a.bBox(b.node());i.transform=d(k,i,w),i.transform.targetX=G(i),i.transform.targetY=Y(i);var A=function(t,e){var r=t.transform;return p(r,e),r.fontSize=_.size,c(T.type,r,f),o.getTextTransform(r)};m?b.transition().attrTween("transform",(function(t){var e=function(t){var e,r=D[x.getPtId(t)],i=t.transform;if(r)e=r;else if(e={rpx1:t.rpx1,transform:{textPosAngle:i.textPosAngle,scale:0,rotate:i.rotate,rCenter:i.rCenter,x:i.x,y:i.y}},O)if(t.parent)if(W){var a=t.x1>W?2*Math.PI:0;e.x0=e.x1=a}else o.extendFlat(e,J(t));else e.x0=e.x1=j;else e.x0=e.x1=j;var s=n.interpolate(e.transform.textPosAngle,t.transform.textPosAngle),l=n.interpolate(e.rpx1,t.rpx1),u=n.interpolate(e.x0,t.x0),h=n.interpolate(e.x1,t.x1),p=n.interpolate(e.transform.scale,i.scale),d=n.interpolate(e.transform.rotate,i.rotate),g=0===i.rCenter?3:0===e.transform.rCenter?1/3:1,m=n.interpolate(e.transform.rCenter,i.rCenter);return function(t){var e=l(t),r=u(t),n=h(t),a=function(t){return m(Math.pow(t,g))}(t),o={pxmid:q(e,(r+n)/2),rpx1:e,transform:{textPosAngle:s(t),rCenter:a,x:i.x,y:i.y}};return c(T.type,i,f),{transform:{targetX:G(o),targetY:Y(o),scale:p(t),rotate:d(t),rCenter:a}}}}(t);return function(t){return A(e(t),k)}})):b.attr("transform",A(i,k))}))}function _(t){return e=t.rpx1,r=t.transform.textPosAngle,[e*Math.sin(r),-e*Math.cos(r)];var e,r}r.plot=function(t,e,r,i){var a,o,s=t._fullLayout,l=s._sunburstlayer,c=!r,f=!s.uniformtext.mode&&x.hasTransition(r);(u("sunburst",s),(a=l.selectAll("g.trace.sunburst").data(e,(function(t){return t[0].trace.uid}))).enter().append("g").classed("trace",!0).classed("sunburst",!0).attr("stroke-linejoin","round"),a.order(),f)?(i&&(o=i()),n.transition().duration(r.duration).ease(r.easing).each("end",(function(){o&&o()})).each("interrupt",(function(){o&&o()})).each((function(){l.selectAll("g.trace").each((function(e){b(t,e,this,r)}))}))):(a.each((function(e){b(t,e,this,r)})),s.uniformtext.mode&&m(t,s._sunburstlayer.selectAll(".trace"),"sunburst"));c&&a.exit().remove()},r.formatSliceLabel=function(t,e,r,n,i){var a=r.texttemplate,s=r.textinfo;if(!(a||s&&"none"!==s))return"";var l=i.separators,c=n[0],u=t.data.data,f=c.hierarchy,h=x.isHierarchyRoot(t),p=x.getParent(f,t),d=x.getValue(t);if(!a){var g,m=s.split("+"),v=function(t){return-1!==m.indexOf(t)},y=[];if(v("label")&&u.label&&y.push(u.label),u.hasOwnProperty("v")&&v("value")&&y.push(x.formatValue(u.v,l)),!h){v("current path")&&y.push(x.getPath(t.data));var b=0;v("percent parent")&&b++,v("percent entry")&&b++,v("percent root")&&b++;var _=b>1;if(b){var w,T=function(t){g=x.formatPercent(w,l),_&&(g+=" of "+t),y.push(g)};v("percent parent")&&!h&&(w=d/x.getValue(p),T("parent")),v("percent entry")&&(w=d/x.getValue(e),T("entry")),v("percent root")&&(w=d/x.getValue(f),T("root"))}}return v("text")&&(g=o.castOption(r,u.i,"text"),o.isValidTextValue(g)&&y.push(g)),y.join("
    ")}var k=o.castOption(r,u.i,"texttemplate");if(!k)return"";var M={};u.label&&(M.label=u.label),u.hasOwnProperty("v")&&(M.value=u.v,M.valueLabel=x.formatValue(u.v,l)),M.currentPath=x.getPath(t.data),h||(M.percentParent=d/x.getValue(p),M.percentParentLabel=x.formatPercent(M.percentParent,l),M.parent=x.getPtLabel(p)),M.percentEntry=d/x.getValue(e),M.percentEntryLabel=x.formatPercent(M.percentEntry,l),M.entry=x.getPtLabel(e),M.percentRoot=d/x.getValue(f),M.percentRootLabel=x.formatPercent(M.percentRoot,l),M.root=x.getPtLabel(f),u.hasOwnProperty("color")&&(M.color=u.color);var A=o.castOption(r,u.i,"text");return(o.isValidTextValue(A)||""===A)&&(M.text=A),M.customdata=o.castOption(r,u.i,"customdata"),o.texttemplateString(k,M,i._d3locale,M,r._meta||{})}},{"../../components/drawing":665,"../../lib":778,"../../lib/svg_text_utils":803,"../bar/style":935,"../bar/uniform_text":937,"../pie/helpers":1166,"../pie/plot":1170,"./constants":1302,"./fx":1304,"./helpers":1305,"./style":1310,d3:169,"d3-hierarchy":161}],1310:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../components/color"),a=t("../../lib"),o=t("../bar/uniform_text").resizeText;function s(t,e,r){var n=e.data.data,o=!e.children,s=n.i,l=a.castOption(r,s,"marker.line.color")||i.defaultLine,c=a.castOption(r,s,"marker.line.width")||0;t.style("stroke-width",c).call(i.fill,n.color).call(i.stroke,l).style("opacity",o?r.leaf.opacity:null)}e.exports={style:function(t){var e=t._fullLayout._sunburstlayer.selectAll(".trace");o(t,e,"sunburst"),e.each((function(t){var e=n.select(this),r=t[0].trace;e.style("opacity",r.opacity),e.selectAll("path.surface").each((function(t){n.select(this).call(s,t,r)}))}))},styleOne:s}},{"../../components/color":643,"../../lib":778,"../bar/uniform_text":937,d3:169}],1311:[function(t,e,r){"use strict";var n=t("../../components/color"),i=t("../../components/colorscale/attributes"),a=t("../../plots/template_attributes").hovertemplateAttrs,o=t("../../plots/attributes"),s=t("../../lib/extend").extendFlat,l=t("../../plot_api/edit_types").overrideAll;function c(t){return{show:{valType:"boolean",dflt:!1},start:{valType:"number",dflt:null,editType:"plot"},end:{valType:"number",dflt:null,editType:"plot"},size:{valType:"number",dflt:null,min:0,editType:"plot"},project:{x:{valType:"boolean",dflt:!1},y:{valType:"boolean",dflt:!1},z:{valType:"boolean",dflt:!1}},color:{valType:"color",dflt:n.defaultLine},usecolormap:{valType:"boolean",dflt:!1},width:{valType:"number",min:1,max:16,dflt:2},highlight:{valType:"boolean",dflt:!0},highlightcolor:{valType:"color",dflt:n.defaultLine},highlightwidth:{valType:"number",min:1,max:16,dflt:2}}}var u=e.exports=l(s({z:{valType:"data_array"},x:{valType:"data_array"},y:{valType:"data_array"},text:{valType:"string",dflt:"",arrayOk:!0},hovertext:{valType:"string",dflt:"",arrayOk:!0},hovertemplate:a(),connectgaps:{valType:"boolean",dflt:!1,editType:"calc"},surfacecolor:{valType:"data_array"}},i("",{colorAttr:"z or surfacecolor",showScaleDflt:!0,autoColorDflt:!1,editTypeOverride:"calc"}),{contours:{x:c(),y:c(),z:c()},hidesurface:{valType:"boolean",dflt:!1},lightposition:{x:{valType:"number",min:-1e5,max:1e5,dflt:10},y:{valType:"number",min:-1e5,max:1e5,dflt:1e4},z:{valType:"number",min:-1e5,max:1e5,dflt:0}},lighting:{ambient:{valType:"number",min:0,max:1,dflt:.8},diffuse:{valType:"number",min:0,max:1,dflt:.8},specular:{valType:"number",min:0,max:2,dflt:.05},roughness:{valType:"number",min:0,max:1,dflt:.5},fresnel:{valType:"number",min:0,max:5,dflt:.2}},opacity:{valType:"number",min:0,max:1,dflt:1},opacityscale:{valType:"any",editType:"calc"},_deprecated:{zauto:s({},i.zauto,{}),zmin:s({},i.zmin,{}),zmax:s({},i.zmax,{})},hoverinfo:s({},o.hoverinfo),showlegend:s({},o.showlegend,{dflt:!1})}),"calc","nested");u.x.editType=u.y.editType=u.z.editType="calc+clearAxisTypes",u.transforms=void 0},{"../../components/color":643,"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plot_api/edit_types":810,"../../plots/attributes":824,"../../plots/template_attributes":906}],1312:[function(t,e,r){"use strict";var n=t("../../components/colorscale/calc");e.exports=function(t,e){e.surfacecolor?n(t,e,{vals:e.surfacecolor,containerStr:"",cLetter:"c"}):n(t,e,{vals:e.z,containerStr:"",cLetter:"c"})}},{"../../components/colorscale/calc":651}],1313:[function(t,e,r){"use strict";var n=t("gl-surface3d"),i=t("ndarray"),a=t("ndarray-linear-interpolate").d2,o=t("../heatmap/interp2d"),s=t("../heatmap/find_empties"),l=t("../../lib").isArrayOrTypedArray,c=t("../../lib/gl_format_color").parseColorScale,u=t("../../lib/str2rgbarray"),f=t("../../components/colorscale").extractOpts;function h(t,e,r){this.scene=t,this.uid=r,this.surface=e,this.data=null,this.showContour=[!1,!1,!1],this.contourStart=[null,null,null],this.contourEnd=[null,null,null],this.contourSize=[0,0,0],this.minValues=[1/0,1/0,1/0],this.maxValues=[-1/0,-1/0,-1/0],this.dataScaleX=1,this.dataScaleY=1,this.refineData=!0,this.objectOffset=[0,0,0]}var p=h.prototype;p.getXat=function(t,e,r,n){var i=l(this.data.x)?l(this.data.x[0])?this.data.x[e][t]:this.data.x[t]:t;return void 0===r?i:n.d2l(i,0,r)},p.getYat=function(t,e,r,n){var i=l(this.data.y)?l(this.data.y[0])?this.data.y[e][t]:this.data.y[e]:e;return void 0===r?i:n.d2l(i,0,r)},p.getZat=function(t,e,r,n){var i=this.data.z[e][t];return null===i&&this.data.connectgaps&&this.data._interpolatedZ&&(i=this.data._interpolatedZ[e][t]),void 0===r?i:n.d2l(i,0,r)},p.handlePick=function(t){if(t.object===this.surface){var e=(t.data.index[0]-1)/this.dataScaleX-1,r=(t.data.index[1]-1)/this.dataScaleY-1,n=Math.max(Math.min(Math.round(e),this.data.z[0].length-1),0),i=Math.max(Math.min(Math.round(r),this.data._ylength-1),0);t.index=[n,i],t.traceCoordinate=[this.getXat(n,i),this.getYat(n,i),this.getZat(n,i)],t.dataCoordinate=[this.getXat(n,i,this.data.xcalendar,this.scene.fullSceneLayout.xaxis),this.getYat(n,i,this.data.ycalendar,this.scene.fullSceneLayout.yaxis),this.getZat(n,i,this.data.zcalendar,this.scene.fullSceneLayout.zaxis)];for(var a=0;a<3;a++){var o=t.dataCoordinate[a];null!=o&&(t.dataCoordinate[a]*=this.scene.dataScale[a])}var s=this.data.hovertext||this.data.text;return Array.isArray(s)&&s[i]&&void 0!==s[i][n]?t.textLabel=s[i][n]:t.textLabel=s||"",t.data.dataCoordinate=t.dataCoordinate.slice(),this.surface.highlight(t.data),this.scene.glplot.spikes.position=t.dataCoordinate,!0}};var d=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999];function g(t,e){if(t0){r=d[n];break}return r}function y(t,e){if(!(t<1||e<1)){for(var r=m(t),n=m(e),i=1,a=0;a_;)r--,r/=v(r),++r1?n:1},p.refineCoords=function(t){for(var e=this.dataScaleX,r=this.dataScaleY,n=t[0].shape[0],a=t[0].shape[1],o=0|Math.floor(t[0].shape[0]*e+1),s=0|Math.floor(t[0].shape[1]*r+1),l=1+n+1,c=1+a+1,u=i(new Float32Array(l*c),[l,c]),f=[1/e,0,0,0,1/r,0,0,0,1],h=0;h0&&null!==this.contourStart[t]&&null!==this.contourEnd[t]&&this.contourEnd[t]>this.contourStart[t]))for(i[t]=!0,e=this.contourStart[t];ea&&(this.minValues[e]=a),this.maxValues[e]",maxDimensionCount:60,overdrag:45,releaseTransitionDuration:120,releaseTransitionEase:"cubic-out",scrollbarCaptureWidth:18,scrollbarHideDelay:1e3,scrollbarHideDuration:1e3,scrollbarOffset:5,scrollbarWidth:8,transitionDuration:100,transitionEase:"cubic-out",uplift:5,wrapSpacer:" ",wrapSplitCharacter:" ",cn:{table:"table",tableControlView:"table-control-view",scrollBackground:"scroll-background",yColumn:"y-column",columnBlock:"column-block",scrollAreaClip:"scroll-area-clip",scrollAreaClipRect:"scroll-area-clip-rect",columnBoundary:"column-boundary",columnBoundaryClippath:"column-boundary-clippath",columnBoundaryRect:"column-boundary-rect",columnCells:"column-cells",columnCell:"column-cell",cellRect:"cell-rect",cellText:"cell-text",cellTextHolder:"cell-text-holder",scrollbarKit:"scrollbar-kit",scrollbar:"scrollbar",scrollbarSlider:"scrollbar-slider",scrollbarGlyph:"scrollbar-glyph",scrollbarCaptureZone:"scrollbar-capture-zone"}}},{}],1320:[function(t,e,r){"use strict";var n=t("./constants"),i=t("../../lib/extend").extendFlat,a=t("fast-isnumeric");function o(t){if(Array.isArray(t)){for(var e=0,r=0;r=e||c===t.length-1)&&(n[i]=o,o.key=l++,o.firstRowIndex=s,o.lastRowIndex=c,o={firstRowIndex:null,lastRowIndex:null,rows:[]},i+=a,s=c+1,a=0);return n}e.exports=function(t,e){var r=l(e.cells.values),p=function(t){return t.slice(e.header.values.length,t.length)},d=l(e.header.values);d.length&&!d[0].length&&(d[0]=[""],d=l(d));var g=d.concat(p(r).map((function(){return c((d[0]||[""]).length)}))),m=e.domain,v=Math.floor(t._fullLayout._size.w*(m.x[1]-m.x[0])),y=Math.floor(t._fullLayout._size.h*(m.y[1]-m.y[0])),x=e.header.values.length?g[0].map((function(){return e.header.height})):[n.emptyHeaderHeight],b=r.length?r[0].map((function(){return e.cells.height})):[],_=x.reduce(s,0),w=h(b,y-_+n.uplift),T=f(h(x,_),[]),k=f(w,T),M={},A=e._fullInput.columnorder.concat(p(r.map((function(t,e){return e})))),S=g.map((function(t,r){var n=Array.isArray(e.columnwidth)?e.columnwidth[Math.min(r,e.columnwidth.length-1)]:e.columnwidth;return a(n)?Number(n):1})),E=S.reduce(s,0);S=S.map((function(t){return t/E*v}));var C=Math.max(o(e.header.line.width),o(e.cells.line.width)),L={key:e.uid+t._context.staticPlot,translateX:m.x[0]*t._fullLayout._size.w,translateY:t._fullLayout._size.h*(1-m.y[1]),size:t._fullLayout._size,width:v,maxLineWidth:C,height:y,columnOrder:A,groupHeight:y,rowBlocks:k,headerRowBlocks:T,scrollY:0,cells:i({},e.cells,{values:r}),headerCells:i({},e.header,{values:g}),gdColumns:g.map((function(t){return t[0]})),gdColumnsOriginalOrder:g.map((function(t){return t[0]})),prevPages:[0,0],scrollbarState:{scrollbarScrollInProgress:!1},columns:g.map((function(t,e){var r=M[t];return M[t]=(r||0)+1,{key:t+"__"+M[t],label:t,specIndex:e,xIndex:A[e],xScale:u,x:void 0,calcdata:void 0,columnWidth:S[e]}}))};return L.columns.forEach((function(t){t.calcdata=L,t.x=u(t)})),L}},{"../../lib/extend":768,"./constants":1319,"fast-isnumeric":241}],1321:[function(t,e,r){"use strict";var n=t("../../lib/extend").extendFlat;r.splitToPanels=function(t){var e=[0,0],r=n({},t,{key:"header",type:"header",page:0,prevPages:e,currentRepaint:[null,null],dragHandle:!0,values:t.calcdata.headerCells.values[t.specIndex],rowBlocks:t.calcdata.headerRowBlocks,calcdata:n({},t.calcdata,{cells:t.calcdata.headerCells})});return[n({},t,{key:"cells1",type:"cells",page:0,prevPages:e,currentRepaint:[null,null],dragHandle:!1,values:t.calcdata.cells.values[t.specIndex],rowBlocks:t.calcdata.rowBlocks}),n({},t,{key:"cells2",type:"cells",page:1,prevPages:e,currentRepaint:[null,null],dragHandle:!1,values:t.calcdata.cells.values[t.specIndex],rowBlocks:t.calcdata.rowBlocks}),r]},r.splitToCells=function(t){var e=function(t){var e=t.rowBlocks[t.page],r=e?e.rows[0].rowIndex:0,n=e?r+e.rows.length:0;return[r,n]}(t);return(t.values||[]).slice(e[0],e[1]).map((function(r,n){return{keyWithinBlock:n+("string"==typeof r&&r.match(/[<$&> ]/)?"_keybuster_"+Math.random():""),key:e[0]+n,column:t,calcdata:t.calcdata,page:t.page,rowBlocks:t.rowBlocks,value:r}}))}},{"../../lib/extend":768}],1322:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./attributes"),a=t("../../plots/domain").defaults;e.exports=function(t,e,r,o){function s(r,a){return n.coerce(t,e,i,r,a)}a(e,o,s),s("columnwidth"),s("header.values"),s("header.format"),s("header.align"),s("header.prefix"),s("header.suffix"),s("header.height"),s("header.line.width"),s("header.line.color"),s("header.fill.color"),n.coerceFont(s,"header.font",n.extendFlat({},o.font)),function(t,e){for(var r=t.columnorder||[],n=t.header.values.length,i=r.slice(0,n),a=i.slice().sort((function(t,e){return t-e})),o=i.map((function(t){return a.indexOf(t)})),s=o.length;s/i),l=!o||s;t.mayHaveMarkup=o&&a.match(/[<&>]/);var c,u="string"==typeof(c=a)&&c.match(n.latexCheck);t.latex=u;var f,h,p=u?"":w(t.calcdata.cells.prefix,e,r)||"",d=u?"":w(t.calcdata.cells.suffix,e,r)||"",g=u?null:w(t.calcdata.cells.format,e,r)||null,m=p+(g?i.format(g)(t.value):t.value)+d;if(t.wrappingNeeded=!t.wrapped&&!l&&!u&&(f=_(m)),t.cellHeightMayIncrease=s||u||t.mayHaveMarkup||(void 0===f?_(m):f),t.needsConvertToTspans=t.mayHaveMarkup||t.wrappingNeeded||t.latex,t.wrappingNeeded){var v=(" "===n.wrapSplitCharacter?m.replace(/i&&n.push(a),i+=l}return n}(i,l,s);1===u.length&&(u[0]===i.length-1?u.unshift(u[0]-1):u.push(u[0]+1)),u[0]%2&&u.reverse(),e.each((function(t,e){t.page=u[e],t.scrollY=l})),e.attr("transform",(function(t){var e=O(t.rowBlocks,t.page)-t.scrollY;return c(0,e)})),t&&(C(t,r,e,u,n.prevPages,n,0),C(t,r,e,u,n.prevPages,n,1),y(r,t))}}function E(t,e,r,a){return function(o){var s=o.calcdata?o.calcdata:o,l=e.filter((function(t){return s.key===t.key})),c=r||s.scrollbarState.dragMultiplier,u=s.scrollY;s.scrollY=void 0===a?s.scrollY+c*i.event.dy:a;var f=l.selectAll("."+n.cn.yColumn).selectAll("."+n.cn.columnBlock).filter(k);return S(t,f,l),s.scrollY===u}}function C(t,e,r,n,i,a,o){n[o]!==i[o]&&(clearTimeout(a.currentRepaint[o]),a.currentRepaint[o]=setTimeout((function(){var a=r.filter((function(t,e){return e===o&&n[e]!==i[e]}));x(t,e,a,r),i[o]=n[o]})))}function L(t,e,r,a){return function(){var o=i.select(e.parentNode);o.each((function(t){var e=t.fragments;o.selectAll("tspan.line").each((function(t,r){e[r].width=this.getComputedTextLength()}));var r,i,a=e[e.length-1].width,s=e.slice(0,-1),l=[],c=0,u=t.column.columnWidth-2*n.cellPad;for(t.value="";s.length;)c+(i=(r=s.shift()).width+a)>u&&(t.value+=l.join(n.wrapSpacer)+n.lineBreaker,l=[],c=0),l.push(r.text),c+=i;c&&(t.value+=l.join(n.wrapSpacer)),t.wrapped=!0})),o.selectAll("tspan.line").remove(),b(o.select("."+n.cn.cellText),r,t,a),i.select(e.parentNode.parentNode).call(z)}}function I(t,e,r,a,o){return function(){if(!o.settledY){var s=i.select(e.parentNode),l=F(o),u=o.key-l.firstRowIndex,f=l.rows[u].rowHeight,h=o.cellHeightMayIncrease?e.parentNode.getBoundingClientRect().height+2*n.cellPad:f,p=Math.max(h,f);p-l.rows[u].rowHeight&&(l.rows[u].rowHeight=p,t.selectAll("."+n.cn.columnCell).call(z),S(null,t.filter(k),0),y(r,a,!0)),s.attr("transform",(function(){var t=this.parentNode.getBoundingClientRect(),e=i.select(this.parentNode).select("."+n.cn.cellRect).node().getBoundingClientRect(),r=this.transform.baseVal.consolidate(),a=e.top-t.top+(r?r.matrix.f:n.cellPad);return c(P(o,i.select(this.parentNode).select("."+n.cn.cellTextHolder).node().getBoundingClientRect().width),a)})),o.settledY=!0}}}function P(t,e){switch(t.align){case"left":return n.cellPad;case"right":return t.column.columnWidth-(e||0)-n.cellPad;case"center":return(t.column.columnWidth-(e||0))/2;default:return n.cellPad}}function z(t){t.attr("transform",(function(t){var e=t.rowBlocks[0].auxiliaryBlocks.reduce((function(t,e){return t+D(e,1/0)}),0),r=D(F(t),t.key);return c(0,r+e)})).selectAll("."+n.cn.cellRect).attr("height",(function(t){return(e=F(t),r=t.key,e.rows[r-e.firstRowIndex]).rowHeight;var e,r}))}function O(t,e){for(var r=0,n=e-1;n>=0;n--)r+=R(t[n]);return r}function D(t,e){for(var r=0,n=0;n","<","|","/","\\"],dflt:">",editType:"plot"},thickness:{valType:"number",min:12,editType:"plot"},textfont:u({},s.textfont,{}),editType:"calc"},text:s.text,textinfo:l.textinfo,texttemplate:i({editType:"plot"},{keys:c.eventDataKeys.concat(["label","value"])}),hovertext:s.hovertext,hoverinfo:l.hoverinfo,hovertemplate:n({},{keys:c.eventDataKeys}),textfont:s.textfont,insidetextfont:s.insidetextfont,outsidetextfont:u({},s.outsidetextfont,{}),textposition:{valType:"enumerated",values:["top left","top center","top right","middle left","middle center","middle right","bottom left","bottom center","bottom right"],dflt:"top left",editType:"plot"},sort:s.sort,root:l.root,domain:o({name:"treemap",trace:!0,editType:"calc"})}},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plots/domain":855,"../../plots/template_attributes":906,"../pie/attributes":1161,"../sunburst/attributes":1299,"./constants":1328}],1326:[function(t,e,r){"use strict";var n=t("../../plots/plots");r.name="treemap",r.plot=function(t,e,i,a){n.plotBasePlot(r.name,t,e,i,a)},r.clean=function(t,e,i,a){n.cleanBasePlot(r.name,t,e,i,a)}},{"../../plots/plots":891}],1327:[function(t,e,r){"use strict";var n=t("../sunburst/calc");r.calc=function(t,e){return n.calc(t,e)},r.crossTraceCalc=function(t){return n._runCrossTraceCalc("treemap",t)}},{"../sunburst/calc":1301}],1328:[function(t,e,r){"use strict";e.exports={CLICK_TRANSITION_TIME:750,CLICK_TRANSITION_EASING:"poly",eventDataKeys:["currentPath","root","entry","percentRoot","percentEntry","percentParent"],gapWithPathbar:1}},{}],1329:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./attributes"),a=t("../../components/color"),o=t("../../plots/domain").defaults,s=t("../bar/defaults").handleText,l=t("../bar/constants").TEXTPAD,c=t("../../components/colorscale"),u=c.hasColorscale,f=c.handleDefaults;e.exports=function(t,e,r,c){function h(r,a){return n.coerce(t,e,i,r,a)}var p=h("labels"),d=h("parents");if(p&&p.length&&d&&d.length){var g=h("values");g&&g.length?h("branchvalues"):h("count"),h("level"),h("maxdepth"),"squarify"===h("tiling.packing")&&h("tiling.squarifyratio"),h("tiling.flip"),h("tiling.pad");var m=h("text");h("texttemplate"),e.texttemplate||h("textinfo",Array.isArray(m)?"text+label":"label"),h("hovertext"),h("hovertemplate");var v=h("pathbar.visible");s(t,e,c,h,"auto",{hasPathbar:v,moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1}),h("textposition");var y=-1!==e.textposition.indexOf("bottom");h("marker.line.width")&&h("marker.line.color",c.paper_bgcolor);var x=h("marker.colors"),b=e._hasColorscale=u(t,"marker","colors")||(t.marker||{}).coloraxis;b?f(t,e,c,h,{prefix:"marker.",cLetter:"c"}):h("marker.depthfade",!(x||[]).length);var _=2*e.textfont.size;h("marker.pad.t",y?_/4:_),h("marker.pad.l",_/4),h("marker.pad.r",_/4),h("marker.pad.b",y?_:_/4),b&&f(t,e,c,h,{prefix:"marker.",cLetter:"c"}),e._hovered={marker:{line:{width:2,color:a.contrast(c.paper_bgcolor)}}},v&&(h("pathbar.thickness",e.pathbar.textfont.size+2*l),h("pathbar.side"),h("pathbar.edgeshape")),h("sort"),h("root.color"),o(e,c,h),e._length=null}else e.visible=!1}},{"../../components/color":643,"../../components/colorscale":655,"../../lib":778,"../../plots/domain":855,"../bar/constants":923,"../bar/defaults":925,"./attributes":1325}],1330:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../lib"),a=t("../../components/drawing"),o=t("../../lib/svg_text_utils"),s=t("./partition"),l=t("./style").styleOne,c=t("./constants"),u=t("../sunburst/helpers"),f=t("../sunburst/fx");e.exports=function(t,e,r,h,p){var d=p.barDifY,g=p.width,m=p.height,v=p.viewX,y=p.viewY,x=p.pathSlice,b=p.toMoveInsideSlice,_=p.strTransform,w=p.hasTransition,T=p.handleSlicesExit,k=p.makeUpdateSliceInterpolator,M=p.makeUpdateTextInterpolator,A={},S=t._fullLayout,E=e[0],C=E.trace,L=E.hierarchy,I=g/C._entryDepth,P=u.listPath(r.data,"id"),z=s(L.copy(),[g,m],{packing:"dice",pad:{inner:0,top:0,left:0,right:0,bottom:0}}).descendants();(z=z.filter((function(t){var e=P.indexOf(t.data.id);return-1!==e&&(t.x0=I*e,t.x1=I*(e+1),t.y0=d,t.y1=d+m,t.onPathbar=!0,!0)}))).reverse(),(h=h.data(z,u.getPtId)).enter().append("g").classed("pathbar",!0),T(h,!0,A,[g,m],x),h.order();var O=h;w&&(O=O.transition().each("end",(function(){var e=n.select(this);u.setSliceCursor(e,t,{hideOnRoot:!1,hideOnLeaves:!1,isTransitioning:!1})}))),O.each((function(s){s._hoverX=v(s.x1-Math.min(g,m)/2),s._hoverY=y(s.y1-m/2);var h=n.select(this),p=i.ensureSingle(h,"path","surface",(function(t){t.style("pointer-events","all")}));w?p.transition().attrTween("d",(function(t){var e=k(t,!0,A,[g,m]);return function(t){return x(e(t))}})):p.attr("d",x),h.call(f,r,t,e,{styleOne:l,eventDataKeys:c.eventDataKeys,transitionTime:c.CLICK_TRANSITION_TIME,transitionEasing:c.CLICK_TRANSITION_EASING}).call(u.setSliceCursor,t,{hideOnRoot:!1,hideOnLeaves:!1,isTransitioning:t._transitioning}),p.call(l,s,C,{hovered:!1}),s._text=(u.getPtLabel(s)||"").split("
    ").join(" ")||"";var d=i.ensureSingle(h,"g","slicetext"),T=i.ensureSingle(d,"text","",(function(t){t.attr("data-notex",1)})),E=i.ensureUniformFontSize(t,u.determineTextFont(C,s,S.font,{onPathbar:!0}));T.text(s._text||" ").classed("slicetext",!0).attr("text-anchor","start").call(a.font,E).call(o.convertToTspans,t),s.textBB=a.bBox(T.node()),s.transform=b(s,{fontSize:E.size,onPathbar:!0}),s.transform.fontSize=E.size,w?T.transition().attrTween("transform",(function(t){var e=M(t,!0,A,[g,m]);return function(t){return _(e(t))}})):T.attr("transform",_(s))}))}},{"../../components/drawing":665,"../../lib":778,"../../lib/svg_text_utils":803,"../sunburst/fx":1304,"../sunburst/helpers":1305,"./constants":1328,"./partition":1335,"./style":1337,d3:169}],1331:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../lib"),a=t("../../components/drawing"),o=t("../../lib/svg_text_utils"),s=t("./partition"),l=t("./style").styleOne,c=t("./constants"),u=t("../sunburst/helpers"),f=t("../sunburst/fx"),h=t("../sunburst/plot").formatSliceLabel;e.exports=function(t,e,r,p,d){var g=d.width,m=d.height,v=d.viewX,y=d.viewY,x=d.pathSlice,b=d.toMoveInsideSlice,_=d.strTransform,w=d.hasTransition,T=d.handleSlicesExit,k=d.makeUpdateSliceInterpolator,M=d.makeUpdateTextInterpolator,A=d.prevEntry,S=t._fullLayout,E=e[0].trace,C=-1!==E.textposition.indexOf("left"),L=-1!==E.textposition.indexOf("right"),I=-1!==E.textposition.indexOf("bottom"),P=!I&&!E.marker.pad.t||I&&!E.marker.pad.b,z=s(r,[g,m],{packing:E.tiling.packing,squarifyratio:E.tiling.squarifyratio,flipX:E.tiling.flip.indexOf("x")>-1,flipY:E.tiling.flip.indexOf("y")>-1,pad:{inner:E.tiling.pad,top:E.marker.pad.t,left:E.marker.pad.l,right:E.marker.pad.r,bottom:E.marker.pad.b}}).descendants(),O=1/0,D=-1/0;z.forEach((function(t){var e=t.depth;e>=E._maxDepth?(t.x0=t.x1=(t.x0+t.x1)/2,t.y0=t.y1=(t.y0+t.y1)/2):(O=Math.min(O,e),D=Math.max(D,e))})),p=p.data(z,u.getPtId),E._maxVisibleLayers=isFinite(D)?D-O+1:0,p.enter().append("g").classed("slice",!0),T(p,!1,{},[g,m],x),p.order();var R=null;if(w&&A){var F=u.getPtId(A);p.each((function(t){null===R&&u.getPtId(t)===F&&(R={x0:t.x0,x1:t.x1,y0:t.y0,y1:t.y1})}))}var B=function(){return R||{x0:0,x1:g,y0:0,y1:m}},N=p;return w&&(N=N.transition().each("end",(function(){var e=n.select(this);u.setSliceCursor(e,t,{hideOnRoot:!0,hideOnLeaves:!1,isTransitioning:!1})}))),N.each((function(s){var p=u.isHeader(s,E);s._hoverX=v(s.x1-E.marker.pad.r),s._hoverY=y(I?s.y1-E.marker.pad.b/2:s.y0+E.marker.pad.t/2);var d=n.select(this),T=i.ensureSingle(d,"path","surface",(function(t){t.style("pointer-events","all")}));w?T.transition().attrTween("d",(function(t){var e=k(t,!1,B(),[g,m]);return function(t){return x(e(t))}})):T.attr("d",x),d.call(f,r,t,e,{styleOne:l,eventDataKeys:c.eventDataKeys,transitionTime:c.CLICK_TRANSITION_TIME,transitionEasing:c.CLICK_TRANSITION_EASING}).call(u.setSliceCursor,t,{isTransitioning:t._transitioning}),T.call(l,s,E,{hovered:!1}),s.x0===s.x1||s.y0===s.y1?s._text="":s._text=p?P?"":u.getPtLabel(s)||"":h(s,r,E,e,S)||"";var A=i.ensureSingle(d,"g","slicetext"),z=i.ensureSingle(A,"text","",(function(t){t.attr("data-notex",1)})),O=i.ensureUniformFontSize(t,u.determineTextFont(E,s,S.font));z.text(s._text||" ").classed("slicetext",!0).attr("text-anchor",L?"end":C||p?"start":"middle").call(a.font,O).call(o.convertToTspans,t),s.textBB=a.bBox(z.node()),s.transform=b(s,{fontSize:O.size,isHeader:p}),s.transform.fontSize=O.size,w?z.transition().attrTween("transform",(function(t){var e=M(t,!1,B(),[g,m]);return function(t){return _(e(t))}})):z.attr("transform",_(s))})),R}},{"../../components/drawing":665,"../../lib":778,"../../lib/svg_text_utils":803,"../sunburst/fx":1304,"../sunburst/helpers":1305,"../sunburst/plot":1309,"./constants":1328,"./partition":1335,"./style":1337,d3:169}],1332:[function(t,e,r){"use strict";e.exports={moduleType:"trace",name:"treemap",basePlotModule:t("./base_plot"),categories:[],animatable:!0,attributes:t("./attributes"),layoutAttributes:t("./layout_attributes"),supplyDefaults:t("./defaults"),supplyLayoutDefaults:t("./layout_defaults"),calc:t("./calc").calc,crossTraceCalc:t("./calc").crossTraceCalc,plot:t("./plot"),style:t("./style").style,colorbar:t("../scatter/marker_colorbar"),meta:{}}},{"../scatter/marker_colorbar":1205,"./attributes":1325,"./base_plot":1326,"./calc":1327,"./defaults":1329,"./layout_attributes":1333,"./layout_defaults":1334,"./plot":1336,"./style":1337}],1333:[function(t,e,r){"use strict";e.exports={treemapcolorway:{valType:"colorlist",editType:"calc"},extendtreemapcolors:{valType:"boolean",dflt:!0,editType:"calc"}}},{}],1334:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./layout_attributes");e.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}r("treemapcolorway",e.colorway),r("extendtreemapcolors")}},{"../../lib":778,"./layout_attributes":1333}],1335:[function(t,e,r){"use strict";var n=t("d3-hierarchy");e.exports=function(t,e,r){var i,a=r.flipX,o=r.flipY,s="dice-slice"===r.packing,l=r.pad[o?"bottom":"top"],c=r.pad[a?"right":"left"],u=r.pad[a?"left":"right"],f=r.pad[o?"top":"bottom"];s&&(i=c,c=l,l=i,i=u,u=f,f=i);var h=n.treemap().tile(function(t,e){switch(t){case"squarify":return n.treemapSquarify.ratio(e);case"binary":return n.treemapBinary;case"dice":return n.treemapDice;case"slice":return n.treemapSlice;default:return n.treemapSliceDice}}(r.packing,r.squarifyratio)).paddingInner(r.pad.inner).paddingLeft(c).paddingRight(u).paddingTop(l).paddingBottom(f).size(s?[e[1],e[0]]:e)(t);return(s||a||o)&&function t(e,r,n){var i;n.swapXY&&(i=e.x0,e.x0=e.y0,e.y0=i,i=e.x1,e.x1=e.y1,e.y1=i);n.flipX&&(i=e.x0,e.x0=r[0]-e.x1,e.x1=r[0]-i);n.flipY&&(i=e.y0,e.y0=r[1]-e.y1,e.y1=r[1]-i);var a=e.children;if(a)for(var o=0;o-1?E+I:-(L+I):0,z={x0:C,x1:C,y0:P,y1:P+L},O=function(t,e,r){var n=m.tiling.pad,i=function(t){return t-n<=e.x0},a=function(t){return t+n>=e.x1},o=function(t){return t-n<=e.y0},s=function(t){return t+n>=e.y1};return{x0:i(t.x0-n)?0:a(t.x0-n)?r[0]:t.x0,x1:i(t.x1+n)?0:a(t.x1+n)?r[0]:t.x1,y0:o(t.y0-n)?0:s(t.y0-n)?r[1]:t.y0,y1:o(t.y1+n)?0:s(t.y1+n)?r[1]:t.y1}},D=null,R={},F={},B=null,N=function(t,e){return e?R[g(t)]:F[g(t)]},j=function(t,e,r,n){if(e)return R[g(v)]||z;var i=F[m.level]||r;return function(t){return t.data.depth-y.data.depth=(n-=v.r-o)){var y=(r+n)/2;r=y,n=y}var x;h?i<(x=a-v.b)&&x"===Q?(l.x-=a,c.x-=a,u.x-=a,f.x-=a):"/"===Q?(u.x-=a,f.x-=a,o.x-=a/2,s.x-=a/2):"\\"===Q?(l.x-=a,c.x-=a,o.x-=a/2,s.x-=a/2):"<"===Q&&(o.x-=a,s.x-=a),K(l),K(f),K(o),K(c),K(u),K(s),"M"+Z(l.x,l.y)+"L"+Z(c.x,c.y)+"L"+Z(s.x,s.y)+"L"+Z(u.x,u.y)+"L"+Z(f.x,f.y)+"L"+Z(o.x,o.y)+"Z"},toMoveInsideSlice:$,makeUpdateSliceInterpolator:et,makeUpdateTextInterpolator:rt,handleSlicesExit:nt,hasTransition:T,strTransform:it}):b.remove()}e.exports=function(t,e,r,a){var o,s,l=t._fullLayout,c=l._treemaplayer,h=!r;(u("treemap",l),(o=c.selectAll("g.trace.treemap").data(e,(function(t){return t[0].trace.uid}))).enter().append("g").classed("trace",!0).classed("treemap",!0),o.order(),!l.uniformtext.mode&&i.hasTransition(r))?(a&&(s=a()),n.transition().duration(r.duration).ease(r.easing).each("end",(function(){s&&s()})).each("interrupt",(function(){s&&s()})).each((function(){c.selectAll("g.trace").each((function(e){m(t,e,this,r)}))}))):(o.each((function(e){m(t,e,this,r)})),l.uniformtext.mode&&f(t,l._treemaplayer.selectAll(".trace"),"treemap"));h&&o.exit().remove()}},{"../../lib":778,"../bar/constants":923,"../bar/plot":932,"../bar/style":935,"../bar/uniform_text":937,"../sunburst/helpers":1305,"./constants":1328,"./draw_ancestors":1330,"./draw_descendants":1331,d3:169}],1337:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../components/color"),a=t("../../lib"),o=t("../sunburst/helpers"),s=t("../bar/uniform_text").resizeText;function l(t,e,r,n){var s,l,c=(n||{}).hovered,u=e.data.data,f=u.i,h=u.color,p=o.isHierarchyRoot(e),d=1;if(c)s=r._hovered.marker.line.color,l=r._hovered.marker.line.width;else if(p&&h===r.root.color)d=100,s="rgba(0,0,0,0)",l=0;else if(s=a.castOption(r,f,"marker.line.color")||i.defaultLine,l=a.castOption(r,f,"marker.line.width")||0,!r._hasColorscale&&!e.onPathbar){var g=r.marker.depthfade;if(g){var m,v=i.combine(i.addOpacity(r._backgroundColor,.75),h);if(!0===g){var y=o.getMaxDepth(r);m=isFinite(y)?o.isLeaf(e)?0:r._maxVisibleLayers-(e.data.depth-r._entryDepth):e.data.height+1}else m=e.data.depth-r._entryDepth,r._atRootLevel||m++;if(m>0)for(var x=0;x0){var y,x,b,_,w,T=t.xa,k=t.ya;"h"===h.orientation?(w=e,y="y",b=k,x="x",_=T):(w=r,y="x",b=T,x="y",_=k);var M=f[t.index];if(w>=M.span[0]&&w<=M.span[1]){var A=n.extendFlat({},t),S=_.c2p(w,!0),E=o.getKdeValue(M,h,w),C=o.getPositionOnKdePath(M,h,S),L=b._offset,I=b._length;A[y+"0"]=C[0],A[y+"1"]=C[1],A[x+"0"]=A[x+"1"]=S,A[x+"Label"]=x+": "+i.hoverLabelText(_,w)+", "+f[0].t.labels.kde+" "+E.toFixed(3),A.spikeDistance=v[0].spikeDistance;var P=y+"Spike";A[P]=v[0][P],v[0].spikeDistance=void 0,v[0][P]=void 0,A.hovertemplate=!1,m.push(A),(u={stroke:t.color})[y+"1"]=n.constrain(L+C[0],L,L+I),u[y+"2"]=n.constrain(L+C[1],L,L+I),u[x+"1"]=u[x+"2"]=_._offset+S}}d&&(m=m.concat(v))}-1!==p.indexOf("points")&&(c=a.hoverOnPoints(t,e,r));var z=l.selectAll(".violinline-"+h.uid).data(u?[0]:[]);return z.enter().append("line").classed("violinline-"+h.uid,!0).attr("stroke-width",1.5),z.exit().remove(),z.attr(u),"closest"===s?c?[c]:m:c?(m.push(c),m):m}},{"../../lib":778,"../../plots/cartesian/axes":828,"../box/hover":951,"./helpers":1342}],1344:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),layoutAttributes:t("./layout_attributes"),supplyDefaults:t("./defaults"),crossTraceDefaults:t("../box/defaults").crossTraceDefaults,supplyLayoutDefaults:t("./layout_defaults"),calc:t("./calc"),crossTraceCalc:t("./cross_trace_calc"),plot:t("./plot"),style:t("./style"),styleOnSelect:t("../scatter/style").styleOnSelect,hoverPoints:t("./hover"),selectPoints:t("../box/select"),moduleType:"trace",name:"violin",basePlotModule:t("../../plots/cartesian"),categories:["cartesian","svg","symbols","oriented","box-violin","showLegend","violinLayout","zoomScale"],meta:{}}},{"../../plots/cartesian":841,"../box/defaults":949,"../box/select":956,"../scatter/style":1211,"./attributes":1338,"./calc":1339,"./cross_trace_calc":1340,"./defaults":1341,"./hover":1343,"./layout_attributes":1345,"./layout_defaults":1346,"./plot":1347,"./style":1348}],1345:[function(t,e,r){"use strict";var n=t("../box/layout_attributes"),i=t("../../lib").extendFlat;e.exports={violinmode:i({},n.boxmode,{}),violingap:i({},n.boxgap,{}),violingroupgap:i({},n.boxgroupgap,{})}},{"../../lib":778,"../box/layout_attributes":953}],1346:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./layout_attributes"),a=t("../box/layout_defaults");e.exports=function(t,e,r){a._supply(t,e,r,(function(r,a){return n.coerce(t,e,i,r,a)}),"violin")}},{"../../lib":778,"../box/layout_defaults":954,"./layout_attributes":1345}],1347:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../lib"),a=t("../../components/drawing"),o=t("../box/plot"),s=t("../scatter/line_points"),l=t("./helpers");e.exports=function(t,e,r,c){var u=t._fullLayout,f=e.xaxis,h=e.yaxis;function p(t){var e=s(t,{xaxis:f,yaxis:h,connectGaps:!0,baseTolerance:.75,shape:"spline",simplify:!0,linearized:!0});return a.smoothopen(e[0],1)}i.makeTraceGroups(c,r,"trace violins").each((function(t){var r=n.select(this),a=t[0],s=a.t,c=a.trace;if(!0!==c.visible||s.empty)r.remove();else{var d=s.bPos,g=s.bdPos,m=e[s.valLetter+"axis"],v=e[s.posLetter+"axis"],y="both"===c.side,x=y||"positive"===c.side,b=y||"negative"===c.side,_=r.selectAll("path.violin").data(i.identity);_.enter().append("path").style("vector-effect","non-scaling-stroke").attr("class","violin"),_.exit().remove(),_.each((function(t){var e,r,i,a,o,l,f,h,_=n.select(this),w=t.density,T=w.length,k=v.c2l(t.pos+d,!0),M=v.l2p(k);if(c.width)e=s.maxKDE/g;else{var A=u._violinScaleGroupStats[c.scalegroup];e="count"===c.scalemode?A.maxKDE/g*(A.maxCount/t.pts.length):A.maxKDE/g}if(x){for(f=new Array(T),o=0;o")),c.color=function(t,e){var r=t[e.dir].marker,n=r.color,a=r.line.color,o=r.line.width;if(i(n))return n;if(i(a)&&o)return a}(f,d),[c]}function w(t){return n(p,t)}}},{"../../components/color":643,"../../constants/delta.js":747,"../../plots/cartesian/axes":828,"../bar/hover":928}],1360:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),layoutAttributes:t("./layout_attributes"),supplyDefaults:t("./defaults").supplyDefaults,crossTraceDefaults:t("./defaults").crossTraceDefaults,supplyLayoutDefaults:t("./layout_defaults"),calc:t("./calc"),crossTraceCalc:t("./cross_trace_calc"),plot:t("./plot"),style:t("./style").style,hoverPoints:t("./hover"),eventData:t("./event_data"),selectPoints:t("../bar/select"),moduleType:"trace",name:"waterfall",basePlotModule:t("../../plots/cartesian"),categories:["bar-like","cartesian","svg","oriented","showLegend","zoomScale"],meta:{}}},{"../../plots/cartesian":841,"../bar/select":933,"./attributes":1353,"./calc":1354,"./cross_trace_calc":1356,"./defaults":1357,"./event_data":1358,"./hover":1359,"./layout_attributes":1361,"./layout_defaults":1362,"./plot":1363,"./style":1364}],1361:[function(t,e,r){"use strict";e.exports={waterfallmode:{valType:"enumerated",values:["group","overlay"],dflt:"group",editType:"calc"},waterfallgap:{valType:"number",min:0,max:1,editType:"calc"},waterfallgroupgap:{valType:"number",min:0,max:1,dflt:0,editType:"calc"}}},{}],1362:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./layout_attributes");e.exports=function(t,e,r){var a=!1;function o(r,a){return n.coerce(t,e,i,r,a)}for(var s=0;s0&&(m+=h?"M"+f[0]+","+d[1]+"V"+d[0]:"M"+f[1]+","+d[0]+"H"+f[0]),"between"!==p&&(r.isSum||s path").each((function(t){if(!t.isBlank){var e=s[t.dir].marker;n.select(this).call(a.fill,e.color).call(a.stroke,e.line.color).call(i.dashLine,e.line.dash,e.line.width).style("opacity",s.selectedpoints&&!t.selected?o:1)}})),c(r,s,t),r.selectAll(".lines").each((function(){var t=s.connector.line;i.lineGroupStyle(n.select(this).selectAll("path"),t.width,t.color,t.dash)}))}))}}},{"../../components/color":643,"../../components/drawing":665,"../../constants/interactions":752,"../bar/style":935,"../bar/uniform_text":937,d3:169}],1365:[function(t,e,r){"use strict";var n=t("../plots/cartesian/axes"),i=t("../lib"),a=t("../plot_api/plot_schema"),o=t("./helpers").pointsAccessorFunction,s=t("../constants/numerical").BADNUM;r.moduleType="transform",r.name="aggregate";var l=r.attributes={enabled:{valType:"boolean",dflt:!0,editType:"calc"},groups:{valType:"string",strict:!0,noBlank:!0,arrayOk:!0,dflt:"x",editType:"calc"},aggregations:{_isLinkedToArray:"aggregation",target:{valType:"string",editType:"calc"},func:{valType:"enumerated",values:["count","sum","avg","median","mode","rms","stddev","min","max","first","last","change","range"],dflt:"first",editType:"calc"},funcmode:{valType:"enumerated",values:["sample","population"],dflt:"sample",editType:"calc"},enabled:{valType:"boolean",dflt:!0,editType:"calc"},editType:"calc"},editType:"calc"},c=l.aggregations;function u(t,e,r,a){if(a.enabled){for(var o=a.target,l=i.nestedProperty(e,o),c=l.get(),u=function(t,e){var r=t.func,n=e.d2c,a=e.c2d;switch(r){case"count":return f;case"first":return h;case"last":return p;case"sum":return function(t,e){for(var r=0,i=0;ii&&(i=u,o=c)}}return i?a(o):s};case"rms":return function(t,e){for(var r=0,i=0,o=0;o":return function(t){return h(t)>s};case">=":return function(t){return h(t)>=s};case"[]":return function(t){var e=h(t);return e>=s[0]&&e<=s[1]};case"()":return function(t){var e=h(t);return e>s[0]&&e=s[0]&&es[0]&&e<=s[1]};case"][":return function(t){var e=h(t);return e<=s[0]||e>=s[1]};case")(":return function(t){var e=h(t);return es[1]};case"](":return function(t){var e=h(t);return e<=s[0]||e>s[1]};case")[":return function(t){var e=h(t);return e=s[1]};case"{}":return function(t){return-1!==s.indexOf(h(t))};case"}{":return function(t){return-1===s.indexOf(h(t))}}}(r,a.getDataToCoordFunc(t,e,s,i),h),x={},b={},_=0;d?(m=function(t){x[t.astr]=n.extendDeep([],t.get()),t.set(new Array(f))},v=function(t,e){var r=x[t.astr][e];t.get()[e]=r}):(m=function(t){x[t.astr]=n.extendDeep([],t.get()),t.set([])},v=function(t,e){var r=x[t.astr][e];t.get().push(r)}),k(m);for(var w=o(e.transforms,r),T=0;T1?"%{group} (%{trace})":"%{group}");var l=t.styles,c=o.styles=[];if(l)for(a=0;a0?90:-90),t.lat_ts=t.lat1)}function o(t){var s=this;if(2===arguments.length){var i=arguments[1];"string"==typeof i?"+"===i.charAt(0)?o[t]=kt(arguments[1]):o[t]=zt(arguments[1]):o[t]=i}else if(1===arguments.length){if(Array.isArray(t))return t.map(function(t){Array.isArray(t)?o.apply(s,t):o(t)});if("string"==typeof t){if(t in o)return o[t]}else"EPSG"in t?o["EPSG:"+t.EPSG]=t:"ESRI"in t?o["ESRI:"+t.ESRI]=t:"IAU2000"in t?o["IAU2000:"+t.IAU2000]=t:console.log(t);return}}function l(t){return"string"==typeof t}function u(t){return t in o}function c(t){return Ft.some(function(s){return t.indexOf(s)>-1})}function M(s){var i=t(s,"authority");if(i){var a=t(i,"epsg");return a&&Dt.indexOf(a)>-1}}function f(s){var i=t(s,"extension");if(i)return t(i,"proj4")}function d(t){return"+"===t[0]}function p(t){if(!l(t))return t;if(u(t))return o[t];if(c(t)){var s=zt(t);if(M(s))return o["EPSG:3857"];var i=f(s);return i?kt(i):s}return d(t)?kt(t):void 0}function m(t){return t}function _(t,s){var i=Zt.length;return t.names?(Zt[i]=t,t.names.forEach(function(t){Vt[t.toLowerCase()]=i}),this):(console.log(s),!0)}function y(t,s,i,a){var h=t*t,e=s*s,n=(h-e)/h,r=0;return a?(h=(t*=1-n*(gt+n*(vt+n*bt)))*t,n=0):r=Math.sqrt(n),{es:n,e:r,ep2:(h-e)/e}}function x(s,i,a,h,e){if(!s){var n=t($t,h);n||(n=ts),s=n.a,i=n.b,a=n.rf}return a&&!i&&(i=(1-1/a)*s),(0===a||Math.abs(s-i)3&&(0===r.datum_params[3]&&0===r.datum_params[4]&&0===r.datum_params[5]&&0===r.datum_params[6]||(r.datum_type=dt,r.datum_params[3]*=yt,r.datum_params[4]*=yt,r.datum_params[5]*=yt,r.datum_params[6]=r.datum_params[6]/1e6+1))),n&&(r.datum_type=pt,r.grids=n),r.a=i,r.b=a,r.es=h,r.ep2=e,r}function v(t){return void 0===t?null:t.split(",").map(b)}function b(t){if(0===t.length)return null;var s="@"===t[0];return s&&(t=t.slice(1)),"null"===t?{name:"null",mandatory:!s,grid:null,isNull:!0}:{name:t,mandatory:!s,grid:is[t]||null,isNull:!1}}function w(t){return t/3600*Math.PI/180}function N(t){var s=t.getInt32(8,!1);return 11!==s&&(11!==(s=t.getInt32(8,!0))&&console.warn("Failed to detect nadgrid endian-ness, defaulting to little-endian"),!0)}function A(t,s){return{nFields:t.getInt32(8,s),nSubgridFields:t.getInt32(24,s),nSubgrids:t.getInt32(40,s),shiftType:E(t,56,64).trim(),fromSemiMajorAxis:t.getFloat64(120,s),fromSemiMinorAxis:t.getFloat64(136,s),toSemiMajorAxis:t.getFloat64(152,s),toSemiMinorAxis:t.getFloat64(168,s)}}function E(t,s,i){return String.fromCharCode.apply(null,new Uint8Array(t.buffer.slice(s,i)))}function C(t,s,i){for(var a=[],h=0;h5e-11)&&(t.datum_type===ft?t.datum_params[0]===s.datum_params[0]&&t.datum_params[1]===s.datum_params[1]&&t.datum_params[2]===s.datum_params[2]:t.datum_type!==dt||t.datum_params[0]===s.datum_params[0]&&t.datum_params[1]===s.datum_params[1]&&t.datum_params[2]===s.datum_params[2]&&t.datum_params[3]===s.datum_params[3]&&t.datum_params[4]===s.datum_params[4]&&t.datum_params[5]===s.datum_params[5]&&t.datum_params[6]===s.datum_params[6]))}function k(t,s,i){var a,h,e,n,r=t.x,o=t.y,l=t.z?t.z:0;if(o<-xt&&o>-1.001*xt)o=-xt;else if(o>xt&&o<1.001*xt)o=xt;else{if(o<-xt)return{x:-1/0,y:-1/0,z:t.z};if(o>xt)return{x:1/0,y:1/0,z:t.z}}return r>Math.PI&&(r-=2*Math.PI),h=Math.sin(o),n=Math.cos(o),e=h*h,a=i/Math.sqrt(1-s*e),{x:(a+l)*n*Math.cos(r),y:(a+l)*n*Math.sin(r),z:(a*(1-s)+l)*h}}function q(t,s,i,a){var h,e,n,r,o,l,u,c,M,f,d,p,m,_,y,x,g=t.x,v=t.y,b=t.z?t.z:0;if(h=Math.sqrt(g*g+v*v),e=Math.sqrt(g*g+v*v+b*b),h/i<1e-12){if(_=0,e/i<1e-12)return y=xt,x=-a,{x:t.x,y:t.y,z:t.z}}else _=Math.atan2(v,g);n=b/e,c=(r=h/e)*(1-s)*(o=1/Math.sqrt(1-s*(2-s)*r*r)),M=n*o,m=0;do{m++,l=s*(u=i/Math.sqrt(1-s*M*M))/(u+(x=h*c+b*M-u*(1-s*M*M))),p=(d=n*(o=1/Math.sqrt(1-l*(2-l)*r*r)))*c-(f=r*(1-l)*o)*M,c=f,M=d}while(p*p>1e-24&&m<30);return y=Math.atan(d/Math.abs(f)),{x:_,y:y,z:x}}function R(t,s,i){if(s===ft)return{x:t.x+i[0],y:t.y+i[1],z:t.z+i[2]};if(s===dt){var a=i[0],h=i[1],e=i[2],n=i[3],r=i[4],o=i[5],l=i[6];return{x:l*(t.x-o*t.y+r*t.z)+a,y:l*(o*t.x+t.y-n*t.z)+h,z:l*(-r*t.x+n*t.y+t.z)+e}}}function L(t,s,i){if(s===ft)return{x:t.x-i[0],y:t.y-i[1],z:t.z-i[2]};if(s===dt){var a=i[0],h=i[1],e=i[2],n=i[3],r=i[4],o=i[5],l=i[6],u=(t.x-a)/l,c=(t.y-h)/l,M=(t.z-e)/l;return{x:u+o*c-r*M,y:-o*u+c+n*M,z:r*u-n*c+M}}}function T(t){return t===ft||t===dt}function G(t,s,i){if(null===t.grids||0===t.grids.length)return console.log("Grid shift grids not found"),-1;for(var a={x:-i.x,y:i.y},h={x:Number.NaN,y:Number.NaN},e=[],n=0;na.y||u>a.x||f1e-12&&Math.abs(n.y)>1e-12);if(o<0)return console.log("Inverse grid shift iterator failed to converge."),a;a.x=Ht(e.x+i.ll[0]),a.y=e.y+i.ll[1]}else isNaN(e.x)||(a.x=t.x+e.x,a.y=t.y+e.y);return a}function B(t,s){var i,a={x:t.x/s.del[0],y:t.y/s.del[1]},h={x:Math.floor(a.x),y:Math.floor(a.y)},e={x:a.x-1*h.x,y:a.y-1*h.y},n={x:Number.NaN,y:Number.NaN};if(h.x<0||h.x>=s.lim[0])return n;if(h.y<0||h.y>=s.lim[1])return n;i=h.y*s.lim[0]+h.x;var r={x:s.cvs[i][0],y:s.cvs[i][1]};i++;var o={x:s.cvs[i][0],y:s.cvs[i][1]};i+=s.lim[0];var l={x:s.cvs[i][0],y:s.cvs[i][1]};i--;var u={x:s.cvs[i][0],y:s.cvs[i][1]},c=e.x*e.y,M=e.x*(1-e.y),f=(1-e.x)*(1-e.y),d=(1-e.x)*e.y;return n.x=f*r.x+M*o.x+d*u.x+c*l.x,n.y=f*r.y+M*o.y+d*u.y+c*l.y,n}function z(t){if("function"==typeof Number.isFinite){if(Number.isFinite(t))return;throw new TypeError("coordinates must be finite numbers")}if("number"!=typeof t||t!==t||!isFinite(t))throw new TypeError("coordinates must be finite numbers")}function F(t,s){return(t.datum.datum_type===ft||t.datum.datum_type===dt)&&"WGS84"!==s.datumCode||(s.datum.datum_type===ft||s.datum.datum_type===dt)&&"WGS84"!==t.datumCode}function D(t,s,i,a){var h;if(Array.isArray(i)&&(i=es(i)),ns(i),t.datum&&s.datum&&F(t,s)&&(i=D(t,h=new Projection("WGS84"),i,a),t=h),a&&"enu"!==t.axis&&(i=hs(t,!1,i)),"longlat"===t.projName)i={x:i.x*Nt,y:i.y*Nt,z:i.z||0};else if(t.to_meter&&(i={x:i.x*t.to_meter,y:i.y*t.to_meter,z:i.z||0}),!(i=t.inverse(i)))return;if(t.from_greenwich&&(i.x+=t.from_greenwich),i=as(t.datum,s.datum,i))return s.from_greenwich&&(i={x:i.x-s.from_greenwich,y:i.y,z:i.z||0}),"longlat"===s.projName?i={x:i.x*At,y:i.y*At,z:i.z||0}:(i=s.forward(i),s.to_meter&&(i={x:i.x/s.to_meter,y:i.y/s.to_meter,z:i.z||0})),a&&"enu"!==s.axis?hs(s,!0,i):i}function U(t,s,i,a){var h,e,n;return Array.isArray(i)?(h=D(t,s,i,a)||{x:NaN,y:NaN},i.length>2?void 0!==t.name&&"geocent"===t.name||void 0!==s.name&&"geocent"===s.name?"number"==typeof h.z?[h.x,h.y,h.z].concat(i.splice(3)):[h.x,h.y,i[2]].concat(i.splice(3)):[h.x,h.y].concat(i.splice(2)):[h.x,h.y]):(e=D(t,s,i,a),2===(n=Object.keys(i)).length?e:(n.forEach(function(a){if(void 0!==t.name&&"geocent"===t.name||void 0!==s.name&&"geocent"===s.name){if("x"===a||"y"===a||"z"===a)return}else if("x"===a||"y"===a)return;e[a]=i[a]}),e))}function Q(t){return t instanceof Projection?t:t.oProj?t.oProj:Projection(t)}function W(t,s,i){t=Q(t);var a,h=!1;return void 0===s?(s=t,t=rs,h=!0):(void 0!==s.x||Array.isArray(s))&&(i=s,s=t,t=rs,h=!0),s=Q(s),i?U(t,s,i):(a={forward:function(i,a){return U(t,s,i,a)},inverse:function(i,a){return U(s,t,i,a)}},h&&(a.oProj=s),a)}function H(t,s){return s=s||5,$(V({lat:t[1],lon:t[0]}),s)}function X(t){var s=Z(at(t.toUpperCase()));return s.lat&&s.lon?[s.lon,s.lat]:[(s.left+s.right)/2,(s.top+s.bottom)/2]}function J(t){return t*(Math.PI/180)}function K(t){return t/Math.PI*180}function V(t){var s,i,a,h,e,n,r,o=t.lat,l=t.lon,u=6378137,c=J(o),M=J(l);r=Math.floor((l+180)/6)+1,180===l&&(r=60),o>=56&&o<64&&l>=3&&l<12&&(r=32),o>=72&&o<84&&(l>=0&&l<9?r=31:l>=9&&l<21?r=33:l>=21&&l<33?r=35:l>=33&&l<42&&(r=37)),n=J(6*(r-1)-180+3),s=u/Math.sqrt(1-.00669438*Math.sin(c)*Math.sin(c)),i=Math.tan(c)*Math.tan(c),a=.006739496752268451*Math.cos(c)*Math.cos(c);var f=.9996*s*((h=Math.cos(c)*(M-n))+(1-i+a)*h*h*h/6+(5-18*i+i*i+72*a-.39089081163157013)*h*h*h*h*h/120)+5e5,d=.9996*((e=u*(.9983242984503243*c-.002514607064228144*Math.sin(2*c)+2639046602129982e-21*Math.sin(4*c)-3.418046101696858e-9*Math.sin(6*c)))+s*Math.tan(c)*(h*h/2+(5-i+9*a+4*a*a)*h*h*h*h/24+(61-58*i+i*i+600*a-2.2240339282485886)*h*h*h*h*h*h/720));return o<0&&(d+=1e7),{northing:Math.round(d),easting:Math.round(f),zoneNumber:r,zoneLetter:Y(o)}}function Z(t){var s=t.northing,i=t.easting,a=t.zoneLetter,h=t.zoneNumber;if(h<0||h>60)return null;var e,n,r,o,l,u,c,M,f=6378137,d=(1-Math.sqrt(.99330562))/(1+Math.sqrt(.99330562)),p=i-5e5,m=s;a<"N"&&(m-=1e7),u=6*(h-1)-180+3,M=(c=m/.9996/6367449.145945056)+(3*d/2-27*d*d*d/32)*Math.sin(2*c)+(21*d*d/16-55*d*d*d*d/32)*Math.sin(4*c)+151*d*d*d/96*Math.sin(6*c),e=f/Math.sqrt(1-.00669438*Math.sin(M)*Math.sin(M)),n=Math.tan(M)*Math.tan(M),r=.006739496752268451*Math.cos(M)*Math.cos(M),o=.99330562*f/Math.pow(1-.00669438*Math.sin(M)*Math.sin(M),1.5),l=p/(.9996*e);var _=M-e*Math.tan(M)/o*(l*l/2-(5+3*n+10*r-4*r*r-.06065547077041606)*l*l*l*l/24+(61+90*n+298*r+45*n*n-1.6983531815716497-3*r*r)*l*l*l*l*l*l/720);_=K(_);var y=(l-(1+2*n+r)*l*l*l/6+(5-2*r+28*n-3*r*r+.05391597401814761+24*n*n)*l*l*l*l*l/120)/Math.cos(M);y=u+K(y);var x;if(t.accuracy){var g=Z({northing:t.northing+t.accuracy,easting:t.easting+t.accuracy,zoneLetter:t.zoneLetter,zoneNumber:t.zoneNumber});x={top:g.lat,right:g.lon,bottom:_,left:y}}else x={lat:_,lon:y};return x}function Y(t){var s="Z";return 84>=t&&t>=72?s="X":72>t&&t>=64?s="W":64>t&&t>=56?s="V":56>t&&t>=48?s="U":48>t&&t>=40?s="T":40>t&&t>=32?s="S":32>t&&t>=24?s="R":24>t&&t>=16?s="Q":16>t&&t>=8?s="P":8>t&&t>=0?s="N":0>t&&t>=-8?s="M":-8>t&&t>=-16?s="L":-16>t&&t>=-24?s="K":-24>t&&t>=-32?s="J":-32>t&&t>=-40?s="H":-40>t&&t>=-48?s="G":-48>t&&t>=-56?s="F":-56>t&&t>=-64?s="E":-64>t&&t>=-72?s="D":-72>t&&t>=-80&&(s="C"),s}function $(t,s){var i="00000"+t.easting,a="00000"+t.northing;return t.zoneNumber+t.zoneLetter+tt(t.easting,t.northing,t.zoneNumber)+i.substr(i.length-5,s)+a.substr(a.length-5,s)}function tt(t,s,i){var a=st(i);return it(Math.floor(t/1e5),Math.floor(s/1e5)%20,a)}function st(t){var s=t%os;return 0===s&&(s=os),s}function it(t,s,i){var a=i-1,h=ls.charCodeAt(a),e=us.charCodeAt(a),n=h+t-1,r=e+s,o=!1;return n>ps&&(n=n-ps+cs-1,o=!0),(n===Ms||hMs||(n>Ms||hfs||(n>fs||hps&&(n=n-ps+cs-1),r>ds?(r=r-ds+cs-1,o=!0):o=!1,(r===Ms||eMs||(r>Ms||efs||(r>fs||eds&&(r=r-ds+cs-1),String.fromCharCode(n)+String.fromCharCode(r)}function at(t){if(t&&0===t.length)throw"MGRSPoint coverting from nothing";for(var s,i=t.length,a=null,h="",e=0;!/[A-Z]/.test(s=t.charAt(e));){if(e>=2)throw"MGRSPoint bad conversion from: "+t;h+=s,e++}var n=parseInt(h,10);if(0===e||e+3>i)throw"MGRSPoint bad conversion from: "+t;var r=t.charAt(e++);if(r<="A"||"B"===r||"Y"===r||r>="Z"||"I"===r||"O"===r)throw"MGRSPoint zone letter "+r+" not handled: "+t;a=t.substring(e,e+=2);for(var o=st(n),l=ht(a.charAt(0),o),u=et(a.charAt(1),o);u0&&(M=1e5/Math.pow(10,_),f=t.substring(e,e+_),y=parseFloat(f)*M,d=t.substring(e+_),x=parseFloat(d)*M),p=y+l,m=x+u,{easting:p,northing:m,zoneLetter:r,zoneNumber:n,accuracy:M}}function ht(t,s){for(var i=ls.charCodeAt(s-1),a=1e5,h=!1;i!==t.charCodeAt(0);){if(++i===Ms&&i++,i===fs&&i++,i>ps){if(h)throw"Bad character: "+t;i=cs,h=!0}a+=1e5}return a}function et(t,s){if(t>"V")throw"MGRSPoint given invalid Northing "+t;for(var i=us.charCodeAt(s-1),a=0,h=!1;i!==t.charCodeAt(0);){if(++i===Ms&&i++,i===fs&&i++,i>ds){if(h)throw"Bad character: "+t;i=cs,h=!0}a+=1e5}return a}function nt(t){var s;switch(t){case"C":s=11e5;break;case"D":s=2e6;break;case"E":s=28e5;break;case"F":s=37e5;break;case"G":s=46e5;break;case"H":s=55e5;break;case"J":s=64e5;break;case"K":s=73e5;break;case"L":s=82e5;break;case"M":s=91e5;break;case"N":s=0;break;case"P":s=8e5;break;case"Q":s=17e5;break;case"R":s=26e5;break;case"S":s=35e5;break;case"T":s=44e5;break;case"U":s=53e5;break;case"V":s=62e5;break;case"W":s=7e6;break;case"X":s=79e5;break;default:s=-1}if(s>=0)return s;throw"Invalid zone letter: "+t}function Point(t,s,i){if(!(this instanceof Point))return new Point(t,s,i);if(Array.isArray(t))this.x=t[0],this.y=t[1],this.z=t[2]||0;else if("object"==typeof t)this.x=t.x,this.y=t.y,this.z=t.z||0;else if("string"==typeof t&&void 0===s){var a=t.split(",");this.x=parseFloat(a[0],10),this.y=parseFloat(a[1],10),this.z=parseFloat(a[2],10)||0}else this.x=t,this.y=s,this.z=i||0;console.warn("proj4.Point will be removed in version 3, use proj4.toPoint")}function rt(t){var s=["Hotine_Oblique_Mercator","Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],i="object"==typeof t.PROJECTION?Object.keys(t.PROJECTION)[0]:t.PROJECTION;return"no_uoff"in t||"no_off"in t||-1!==s.indexOf(i)}function ot(t){var s,i=[];return i[0]=t*$s,s=t*t,i[0]+=s*ti,i[1]=s*ii,s*=t,i[0]+=s*si,i[1]+=s*ai,i[2]=s*hi,i}function lt(t,s){var i=t+t;return t+s[0]*Math.sin(i)+s[1]*Math.sin(i+i)+s[2]*Math.sin(i+i+i)}function ut(t,s,i,a){var h;return tEt&&h<=xt+Et?(a.value=Ni.AREA_1,h-=xt):h>xt+Et||h<=-(xt+Et)?(a.value=Ni.AREA_2,h=h>=0?h-Pt:h+Pt):(a.value=Ni.AREA_3,h+=xt)),h}function ct(t,s){var i=t+s;return i<-Pt?i+=Ct:i>+Pt&&(i-=Ct),i}function Mt(t,s,i,a){for(var h=s;a;--a){var e=t(h);if(h-=e,Math.abs(e)=this.text.length)return;t=this.text[this.place++]}switch(this.state){case qt:return this.neutral(t);case 2:return this.keyword(t);case 4:return this.quoted(t);case 5:return this.afterquote(t);case 3:return this.number(t);case-1:return}},s.prototype.afterquote=function(t){if('"'===t)return this.word+='"',void(this.state=4);if(Gt.test(t))return this.word=this.word.trim(),void this.afterItem(t);throw new Error("havn't handled \""+t+'" in afterquote yet, index '+this.place)},s.prototype.afterItem=function(t){return","===t?(null!==this.word&&this.currentObject.push(this.word),this.word=null,void(this.state=qt)):"]"===t?(this.level--,null!==this.word&&(this.currentObject.push(this.word),this.word=null),this.state=qt,this.currentObject=this.stack.pop(),void(this.currentObject||(this.state=-1))):void 0},s.prototype.number=function(t){if(!jt.test(t)){if(Gt.test(t))return this.word=parseFloat(this.word),void this.afterItem(t);throw new Error("havn't handled \""+t+'" in number yet, index '+this.place)}this.word+=t},s.prototype.quoted=function(t){'"'!==t?this.word+=t:this.state=5},s.prototype.keyword=function(t){if(Tt.test(t))this.word+=t;else{if("["===t){var s=[];return s.push(this.word),this.level++,null===this.root?this.root=s:this.currentObject.push(s),this.stack.push(this.currentObject),this.currentObject=s,void(this.state=qt)}if(!Gt.test(t))throw new Error("havn't handled \""+t+'" in keyword yet, index '+this.place);this.afterItem(t)}},s.prototype.neutral=function(t){if(Lt.test(t))return this.word=t,void(this.state=2);if('"'===t)return this.word="",void(this.state=4);if(jt.test(t))return this.word=t,void(this.state=3);{if(!Gt.test(t))throw new Error("havn't handled \""+t+'" in neutral yet, index '+this.place);this.afterItem(t)}},s.prototype.output=function(){for(;this.place90&&i*At<-90&&s*At>180&&s*At<-180)return null;var a,h;if(Math.abs(Math.abs(i)-xt)<=wt)return null;if(this.sphere)a=this.x0+this.a*this.k0*Ht(s-this.long0),h=this.y0+this.a*this.k0*Math.log(Math.tan(Et+.5*i));else{var e=Math.sin(i),n=Xt(this.e,i,e);a=this.x0+this.a*this.k0*Ht(s-this.long0),h=this.y0-this.a*this.k0*Math.log(n)}return t.x=a,t.y=h,t},inverse:function(t){var s,i,a=t.x-this.x0,h=t.y-this.y0;if(this.sphere)i=xt-2*Math.atan(Math.exp(-h/(this.a*this.k0)));else{var e=Math.exp(-h/(this.a*this.k0));if(-9999===(i=Jt(this.e,e)))return null}return s=Ht(this.long0+a/(this.a*this.k0)),t.x=s,t.y=i,t},names:["Mercator","Popular Visualisation Pseudo Mercator","Mercator_1SP","Mercator_Auxiliary_Sphere","merc"]},{init:function(){},forward:m,inverse:m,names:["longlat","identity"]}],Vt={},Zt=[],Yt={start:function(){Kt.forEach(_)},add:_,get:function(t){if(!t)return!1;var s=t.toLowerCase();return void 0!==Vt[s]&&Zt[Vt[s]]?Zt[Vt[s]]:void 0}},$t={};$t.MERIT={a:6378137,rf:298.257,ellipseName:"MERIT 1983"},$t.SGS85={a:6378136,rf:298.257,ellipseName:"Soviet Geodetic System 85"},$t.GRS80={a:6378137,rf:298.257222101,ellipseName:"GRS 1980(IUGG, 1980)"},$t.IAU76={a:6378140,rf:298.257,ellipseName:"IAU 1976"},$t.airy={a:6377563.396,b:6356256.91,ellipseName:"Airy 1830"},$t.APL4={a:6378137,rf:298.25,ellipseName:"Appl. Physics. 1965"},$t.NWL9D={a:6378145,rf:298.25,ellipseName:"Naval Weapons Lab., 1965"},$t.mod_airy={a:6377340.189,b:6356034.446,ellipseName:"Modified Airy"},$t.andrae={a:6377104.43,rf:300,ellipseName:"Andrae 1876 (Den., Iclnd.)"},$t.aust_SA={a:6378160,rf:298.25,ellipseName:"Australian Natl & S. Amer. 1969"},$t.GRS67={a:6378160,rf:298.247167427,ellipseName:"GRS 67(IUGG 1967)"},$t.bessel={a:6377397.155,rf:299.1528128,ellipseName:"Bessel 1841"},$t.bess_nam={a:6377483.865,rf:299.1528128,ellipseName:"Bessel 1841 (Namibia)"},$t.clrk66={a:6378206.4,b:6356583.8,ellipseName:"Clarke 1866"},$t.clrk80={a:6378249.145,rf:293.4663,ellipseName:"Clarke 1880 mod."},$t.clrk58={a:6378293.645208759,rf:294.2606763692654,ellipseName:"Clarke 1858"},$t.CPM={a:6375738.7,rf:334.29,ellipseName:"Comm. des Poids et Mesures 1799"},$t.delmbr={a:6376428,rf:311.5,ellipseName:"Delambre 1810 (Belgium)"},$t.engelis={a:6378136.05,rf:298.2566,ellipseName:"Engelis 1985"},$t.evrst30={a:6377276.345,rf:300.8017,ellipseName:"Everest 1830"},$t.evrst48={a:6377304.063,rf:300.8017,ellipseName:"Everest 1948"},$t.evrst56={a:6377301.243,rf:300.8017,ellipseName:"Everest 1956"},$t.evrst69={a:6377295.664,rf:300.8017,ellipseName:"Everest 1969"},$t.evrstSS={a:6377298.556,rf:300.8017,ellipseName:"Everest (Sabah & Sarawak)"},$t.fschr60={a:6378166,rf:298.3,ellipseName:"Fischer (Mercury Datum) 1960"},$t.fschr60m={a:6378155,rf:298.3,ellipseName:"Fischer 1960"},$t.fschr68={a:6378150,rf:298.3,ellipseName:"Fischer 1968"},$t.helmert={a:6378200,rf:298.3,ellipseName:"Helmert 1906"},$t.hough={a:6378270,rf:297,ellipseName:"Hough"},$t.intl={a:6378388,rf:297,ellipseName:"International 1909 (Hayford)"},$t.kaula={a:6378163,rf:298.24,ellipseName:"Kaula 1961"},$t.lerch={a:6378139,rf:298.257,ellipseName:"Lerch 1979"},$t.mprts={a:6397300,rf:191,ellipseName:"Maupertius 1738"},$t.new_intl={a:6378157.5,b:6356772.2,ellipseName:"New International 1967"},$t.plessis={a:6376523,rf:6355863,ellipseName:"Plessis 1817 (France)"},$t.krass={a:6378245,rf:298.3,ellipseName:"Krassovsky, 1942"},$t.SEasia={a:6378155,b:6356773.3205,ellipseName:"Southeast Asia"},$t.walbeck={a:6376896,b:6355834.8467,ellipseName:"Walbeck"},$t.WGS60={a:6378165,rf:298.3,ellipseName:"WGS 60"},$t.WGS66={a:6378145,rf:298.25,ellipseName:"WGS 66"},$t.WGS7={a:6378135,rf:298.26,ellipseName:"WGS 72"};var ts=$t.WGS84={a:6378137,rf:298.257223563,ellipseName:"WGS 84"};$t.sphere={a:6370997,b:6370997,ellipseName:"Normal Sphere (r=6370997)"};var ss={};ss.wgs84={towgs84:"0,0,0",ellipse:"WGS84",datumName:"WGS84"},ss.ch1903={towgs84:"674.374,15.056,405.346",ellipse:"bessel",datumName:"swiss"},ss.ggrs87={towgs84:"-199.87,74.79,246.62",ellipse:"GRS80",datumName:"Greek_Geodetic_Reference_System_1987"},ss.nad83={towgs84:"0,0,0",ellipse:"GRS80",datumName:"North_American_Datum_1983"},ss.nad27={nadgrids:"@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat",ellipse:"clrk66",datumName:"North_American_Datum_1927"},ss.potsdam={towgs84:"598.1,73.7,418.2,0.202,0.045,-2.455,6.7",ellipse:"bessel",datumName:"Potsdam Rauenberg 1950 DHDN"},ss.carthage={towgs84:"-263.0,6.0,431.0",ellipse:"clark80",datumName:"Carthage 1934 Tunisia"},ss.hermannskogel={towgs84:"577.326,90.129,463.919,5.137,1.474,5.297,2.4232",ellipse:"bessel",datumName:"Hermannskogel"},ss.osni52={towgs84:"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15",ellipse:"airy",datumName:"Irish National"},ss.ire65={towgs84:"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15",ellipse:"mod_airy",datumName:"Ireland 1965"},ss.rassadiran={towgs84:"-133.63,-157.5,-158.62",ellipse:"intl",datumName:"Rassadiran"},ss.nzgd49={towgs84:"59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993",ellipse:"intl",datumName:"New Zealand Geodetic Datum 1949"},ss.osgb36={towgs84:"446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894",ellipse:"airy",datumName:"Airy 1830"},ss.s_jtsk={towgs84:"589,76,480",ellipse:"bessel",datumName:"S-JTSK (Ferro)"},ss.beduaram={towgs84:"-106,-87,188",ellipse:"clrk80",datumName:"Beduaram"},ss.gunung_segara={towgs84:"-403,684,41",ellipse:"bessel",datumName:"Gunung Segara Jakarta"},ss.rnb72={towgs84:"106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1",ellipse:"intl",datumName:"Reseau National Belge 1972"};var is={};Projection.projections=Yt,Projection.projections.start();var as=function(t,s,i){if(O(t,s))return i;if(t.datum_type===_t||s.datum_type===_t)return i;var a=t.a,h=t.es;if(t.datum_type===pt){if(0!==G(t,!1,i))return;a=6378137,h=.0066943799901413165}var e=s.a,n=s.b,r=s.es;return s.datum_type===pt&&(e=6378137,n=6356752.314,r=.0066943799901413165),h!==r||a!==e||T(t.datum_type)||T(s.datum_type)?(i=k(i,h,a),T(t.datum_type)&&(i=R(i,t.datum_type,t.datum_params)),T(s.datum_type)&&(i=L(i,s.datum_type,s.datum_params)),i=q(i,r,e,n),s.datum_type!==pt||0===G(s,!0,i)?i:void 0):i},hs=function(t,s,i){var a,h,e,n=i.x,r=i.y,o=i.z||0,l={};for(e=0;e<3;e++)if(!s||2!==e||void 0!==i.z)switch(0===e?(a=n,h=-1!=="ew".indexOf(t.axis[e])?"x":"y"):1===e?(a=r,h=-1!=="ns".indexOf(t.axis[e])?"y":"x"):(a=o,h="z"),t.axis[e]){case"e":l[h]=a;break;case"w":l[h]=-a;break;case"n":l[h]=a;break;case"s":l[h]=-a;break;case"u":void 0!==i[h]&&(l.z=a);break;case"d":void 0!==i[h]&&(l.z=-a);break;default:return null}return l},es=function(t){var s={x:t[0],y:t[1]};return t.length>2&&(s.z=t[2]),t.length>3&&(s.m=t[3]),s},ns=function(t){z(t.x),z(t.y)},rs=Projection("WGS84"),os=6,ls="AJSAJS",us="AFAFAF",cs=65,Ms=73,fs=79,ds=86,ps=90,ms={forward:H,inverse:function(t){var s=Z(at(t.toUpperCase()));return s.lat&&s.lon?[s.lon,s.lat,s.lon,s.lat]:[s.left,s.bottom,s.right,s.top]},toPoint:X};Point.fromMGRS=function(t){return new Point(X(t))},Point.prototype.toMGRS=function(t){return H([this.x,this.y],t)};var _s=.01068115234375,ys=function(t){var s=[];s[0]=1-t*(.25+t*(.046875+t*(.01953125+t*_s))),s[1]=t*(.75-t*(.046875+t*(.01953125+t*_s)));var i=t*t;return s[2]=i*(.46875-t*(.013020833333333334+.007120768229166667*t)),i*=t,s[3]=i*(.3645833333333333-.005696614583333333*t),s[4]=i*t*.3076171875,s},xs=function(t,s,i,a){return i*=s,s*=s,a[0]*t-i*(a[1]+s*(a[2]+s*(a[3]+s*a[4])))},gs=function(t,s,i){for(var a=1/(1-s),h=t,e=20;e;--e){var n=Math.sin(h),r=1-s*n*n;if(r=(xs(h,n,Math.cos(h),i)-t)*(r*Math.sqrt(r))*a,h-=r,Math.abs(r)wt?Math.tan(e):0,d=Math.pow(f,2),p=Math.pow(d,2);s=1-this.es*Math.pow(r,2),l/=Math.sqrt(s);var m=xs(e,r,o,this.en);i=this.a*(this.k0*l*(1+u/6*(1-d+c+u/20*(5-18*d+p+14*c-58*d*c+u/42*(61+179*p-p*d-479*d)))))+this.x0,a=this.a*(this.k0*(m-this.ml0+r*n*l/2*(1+u/12*(5-d+9*c+4*M+u/30*(61+p-58*d+270*c-330*d*c+u/56*(1385+543*p-p*d-3111*d))))))+this.y0}else{var _=o*Math.sin(n);if(Math.abs(Math.abs(_)-1)=1){if(_-1>wt)return 93;a=0}else a=Math.acos(a);e<0&&(a=-a),a=this.a*this.k0*(a-this.lat0)+this.y0}return t.x=i,t.y=a,t},inverse:function(t){var s,i,a,h,e=(t.x-this.x0)*(1/this.a),n=(t.y-this.y0)*(1/this.a);if(this.es)if(s=this.ml0+n/this.k0,i=gs(s,this.es,this.en),Math.abs(i)wt?Math.tan(i):0,u=this.ep2*Math.pow(o,2),c=Math.pow(u,2),M=Math.pow(l,2),f=Math.pow(M,2);s=1-this.es*Math.pow(r,2);var d=e*Math.sqrt(s)/this.k0,p=Math.pow(d,2);a=i-(s*=l)*p/(1-this.es)*.5*(1-p/12*(5+3*M-9*u*M+u-4*c-p/30*(61+90*M-252*u*M+45*f+46*u-p/56*(1385+3633*M+4095*f+1574*f*M)))),h=Ht(this.long0+d*(1-p/6*(1+2*M+u-p/20*(5+28*M+24*f+8*u*M+6*u-p/42*(61+662*M+1320*f+720*f*M))))/o)}else a=xt*Wt(n),h=0;else{var m=Math.exp(e/this.k0),_=.5*(m-1/m),y=this.lat0+n/this.k0,x=Math.cos(y);s=Math.sqrt((1-Math.pow(x,2))/(1+Math.pow(_,2))),a=Math.asin(s),n<0&&(a=-a),h=0===_&&0===x?0:Ht(Math.atan2(_,x)+this.long0)}return t.x=h,t.y=a,t},names:["Fast_Transverse_Mercator","Fast Transverse Mercator"]},bs=function(t){var s=Math.exp(t);return s=(s-1/s)/2},ws=function(t,s){t=Math.abs(t),s=Math.abs(s);var i=Math.max(t,s),a=Math.min(t,s)/(i||1);return i*Math.sqrt(1+Math.pow(a,2))},Ns=function(t){var s=1+t,i=s-1;return 0===i?t:t*Math.log(s)/i},As=function(t){var s=Math.abs(t);return s=Ns(s*(1+s/(ws(1,s)+1))),t<0?-s:s},Es=function(t,s){for(var i,a=2*Math.cos(2*s),h=t.length-1,e=t[h],n=0;--h>=0;)i=a*e-n+t[h],n=e,e=i;return s+i*Math.sin(2*s)},Cs=function(t,s){for(var i,a=2*Math.cos(s),h=t.length-1,e=t[h],n=0;--h>=0;)i=a*e-n+t[h],n=e,e=i;return Math.sin(s)*i},Ps=function(t){var s=Math.exp(t);return s=(s+1/s)/2},Ss=function(t,s,i){for(var a,h,e=Math.sin(s),n=Math.cos(s),r=bs(i),o=Ps(i),l=2*n*o,u=-2*e*r,c=t.length-1,M=t[c],f=0,d=0,p=0;--c>=0;)a=d,h=f,M=l*(d=M)-a-u*(f=p)+t[c],p=u*d-h+l*f;return l=e*o,u=n*r,[l*M-u*p,l*p+u*M]},Is={init:function(){if(!this.approx&&(isNaN(this.es)||this.es<=0))throw new Error('Incorrect elliptical usage. Try using the +approx option in the proj string, or PROJECTION["Fast_Transverse_Mercator"] in the WKT.');this.approx&&(vs.init.apply(this),this.forward=vs.forward,this.inverse=vs.inverse),this.x0=void 0!==this.x0?this.x0:0,this.y0=void 0!==this.y0?this.y0:0,this.long0=void 0!==this.long0?this.long0:0,this.lat0=void 0!==this.lat0?this.lat0:0,this.cgb=[],this.cbg=[],this.utg=[],this.gtu=[];var t=this.es/(1+Math.sqrt(1-this.es)),s=t/(2-t),i=s;this.cgb[0]=s*(2+s*(-2/3+s*(s*(116/45+s*(26/45+s*(-2854/675)))-2))),this.cbg[0]=s*(s*(2/3+s*(4/3+s*(-82/45+s*(32/45+s*(4642/4725)))))-2),i*=s,this.cgb[1]=i*(7/3+s*(s*(-227/45+s*(2704/315+s*(2323/945)))-1.6)),this.cbg[1]=i*(5/3+s*(-16/15+s*(-13/9+s*(904/315+s*(-1522/945))))),i*=s,this.cgb[2]=i*(56/15+s*(-136/35+s*(-1262/105+s*(73814/2835)))),this.cbg[2]=i*(-26/15+s*(34/21+s*(1.6+s*(-12686/2835)))),i*=s,this.cgb[3]=i*(4279/630+s*(-332/35+s*(-399572/14175))),this.cbg[3]=i*(1237/630+s*(s*(-24832/14175)-2.4)),i*=s,this.cgb[4]=i*(4174/315+s*(-144838/6237)),this.cbg[4]=i*(-734/315+s*(109598/31185)),i*=s,this.cgb[5]=i*(601676/22275),this.cbg[5]=i*(444337/155925),i=Math.pow(s,2),this.Qn=this.k0/(1+s)*(1+i*(.25+i*(1/64+i/256))),this.utg[0]=s*(s*(2/3+s*(-37/96+s*(1/360+s*(81/512+s*(-96199/604800)))))-.5),this.gtu[0]=s*(.5+s*(-2/3+s*(5/16+s*(41/180+s*(-127/288+s*(7891/37800)))))),this.utg[1]=i*(-1/48+s*(-1/15+s*(437/1440+s*(-46/105+s*(1118711/3870720))))),this.gtu[1]=i*(13/48+s*(s*(557/1440+s*(281/630+s*(-1983433/1935360)))-.6)),i*=s,this.utg[2]=i*(-17/480+s*(37/840+s*(209/4480+s*(-5569/90720)))),this.gtu[2]=i*(61/240+s*(-103/140+s*(15061/26880+s*(167603/181440)))),i*=s,this.utg[3]=i*(-4397/161280+s*(11/504+s*(830251/7257600))),this.gtu[3]=i*(49561/161280+s*(-179/168+s*(6601661/7257600))),i*=s,this.utg[4]=i*(-4583/161280+s*(108847/3991680)),this.gtu[4]=i*(34729/80640+s*(-3418889/1995840)),i*=s,this.utg[5]=-.03233083094085698*i,this.gtu[5]=.6650675310896665*i;var a=Es(this.cbg,this.lat0);this.Zb=-this.Qn*(a+Cs(this.gtu,2*a))},forward:function(t){var s=Ht(t.x-this.long0),i=t.y;i=Es(this.cbg,i);var a=Math.sin(i),h=Math.cos(i),e=Math.sin(s),n=Math.cos(s);i=Math.atan2(a,n*h),s=Math.atan2(e*h,ws(a,h*n)),s=As(Math.tan(s));var r=Ss(this.gtu,2*i,2*s);i+=r[0],s+=r[1];var o,l;return Math.abs(s)<=2.623395162778?(o=this.a*(this.Qn*s)+this.x0,l=this.a*(this.Qn*i+this.Zb)+this.y0):(o=1/0,l=1/0),t.x=o,t.y=l,t},inverse:function(t){var s=(t.x-this.x0)*(1/this.a),i=(t.y-this.y0)*(1/this.a);i=(i-this.Zb)/this.Qn,s/=this.Qn;var a,h;if(Math.abs(s)<=2.623395162778){var e=Ss(this.utg,2*i,2*s);i+=e[0],s+=e[1],s=Math.atan(bs(s));var n=Math.sin(i),r=Math.cos(i),o=Math.sin(s),l=Math.cos(s);i=Math.atan2(n*l,ws(o,l*r)),s=Math.atan2(o,l*r),a=Ht(s+this.long0),h=Es(this.cgb,i)}else a=1/0,h=1/0;return t.x=a,t.y=h,t},names:["Extended_Transverse_Mercator","Extended Transverse Mercator","etmerc","Transverse_Mercator","Transverse Mercator","tmerc"]},Os=function(t,s){if(void 0===t){if((t=Math.floor(30*(Ht(s)+Math.PI)/Math.PI)+1)<0)return 0;if(t>60)return 60}return t},ks={init:function(){var t=Os(this.zone,this.long0);if(void 0===t)throw new Error("unknown utm zone");this.lat0=0,this.long0=(6*Math.abs(t)-183)*Nt,this.x0=5e5,this.y0=this.utmSouth?1e7:0,this.k0=.9996,Is.init.apply(this),this.forward=Is.forward,this.inverse=Is.inverse},names:["Universal Transverse Mercator System","utm"],dependsOn:"etmerc"},qs=function(t,s){return Math.pow((1-t)/(1+t),s)},Rs=20,Ls={init:function(){var t=Math.sin(this.lat0),s=Math.cos(this.lat0);s*=s,this.rc=Math.sqrt(1-this.es)/(1-this.es*t*t),this.C=Math.sqrt(1+this.es*s*s/(1-this.es)),this.phic0=Math.asin(t/this.C),this.ratexp=.5*this.C*this.e,this.K=Math.tan(.5*this.phic0+Et)/(Math.pow(Math.tan(.5*this.lat0+Et),this.C)*qs(this.e*t,this.ratexp))},forward:function(t){var s=t.x,i=t.y;return t.y=2*Math.atan(this.K*Math.pow(Math.tan(.5*i+Et),this.C)*qs(this.e*Math.sin(i),this.ratexp))-xt,t.x=this.C*s,t},inverse:function(t){for(var s=t.x/this.C,i=t.y,a=Math.pow(Math.tan(.5*i+Et)/this.K,1/this.C),h=Rs;h>0&&(i=2*Math.atan(a*qs(this.e*Math.sin(t.y),-.5*this.e))-xt,!(Math.abs(i-t.y)<1e-14));--h)t.y=i;return h?(t.x=s,t.y=i,t):null},names:["gauss"]},Ts={init:function(){Ls.init.apply(this),this.rc&&(this.sinc0=Math.sin(this.phic0),this.cosc0=Math.cos(this.phic0),this.R2=2*this.rc,this.title||(this.title="Oblique Stereographic Alternative"))},forward:function(t){var s,i,a,h;return t.x=Ht(t.x-this.long0),Ls.forward.apply(this,[t]),s=Math.sin(t.y),i=Math.cos(t.y),a=Math.cos(t.x),h=this.k0*this.R2/(1+this.sinc0*s+this.cosc0*i*a),t.x=h*i*Math.sin(t.x),t.y=h*(this.cosc0*s-this.sinc0*i*a),t.x=this.a*t.x+this.x0,t.y=this.a*t.y+this.y0,t},inverse:function(t){var s,i,a,h,e;if(t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,t.x/=this.k0,t.y/=this.k0,e=Math.sqrt(t.x*t.x+t.y*t.y)){var n=2*Math.atan2(e,this.R2);s=Math.sin(n),i=Math.cos(n),h=Math.asin(i*this.sinc0+t.y*s*this.cosc0/e),a=Math.atan2(t.x*s,e*this.cosc0*i-t.y*this.sinc0*s)}else h=this.phic0,a=0;return t.x=a,t.y=h,Ls.inverse.apply(this,[t]),t.x=Ht(t.x+this.long0),t},names:["Stereographic_North_Pole","Oblique_Stereographic","Polar_Stereographic","sterea","Oblique Stereographic Alternative","Double_Stereographic"]},Gs={init:function(){this.coslat0=Math.cos(this.lat0),this.sinlat0=Math.sin(this.lat0),this.sphere?1===this.k0&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=wt&&(this.k0=.5*(1+Wt(this.lat0)*Math.sin(this.lat_ts))):(Math.abs(this.coslat0)<=wt&&(this.lat0>0?this.con=1:this.con=-1),this.cons=Math.sqrt(Math.pow(1+this.e,1+this.e)*Math.pow(1-this.e,1-this.e)),1===this.k0&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=wt&&(this.k0=.5*this.cons*Qt(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts))/Xt(this.e,this.con*this.lat_ts,this.con*Math.sin(this.lat_ts))),this.ms1=Qt(this.e,this.sinlat0,this.coslat0),this.X0=2*Math.atan(this.ssfn_(this.lat0,this.sinlat0,this.e))-xt,this.cosX0=Math.cos(this.X0),this.sinX0=Math.sin(this.X0))},forward:function(t){var s,i,a,h,e,n,r=t.x,o=t.y,l=Math.sin(o),u=Math.cos(o),c=Ht(r-this.long0);return Math.abs(Math.abs(r-this.long0)-Math.PI)<=wt&&Math.abs(o+this.lat0)<=wt?(t.x=NaN,t.y=NaN,t):this.sphere?(s=2*this.k0/(1+this.sinlat0*l+this.coslat0*u*Math.cos(c)),t.x=this.a*s*u*Math.sin(c)+this.x0,t.y=this.a*s*(this.coslat0*l-this.sinlat0*u*Math.cos(c))+this.y0,t):(i=2*Math.atan(this.ssfn_(o,l,this.e))-xt,h=Math.cos(i),a=Math.sin(i),Math.abs(this.coslat0)<=wt?(e=Xt(this.e,o*this.con,this.con*l),n=2*this.a*this.k0*e/this.cons,t.x=this.x0+n*Math.sin(r-this.long0),t.y=this.y0-this.con*n*Math.cos(r-this.long0),t):(Math.abs(this.sinlat0)0?this.long0+Math.atan2(t.x,-1*t.y):this.long0+Math.atan2(t.x,t.y):this.long0+Math.atan2(t.x*Math.sin(r),n*this.coslat0*Math.cos(r)-t.y*this.sinlat0*Math.sin(r))),t.x=s,t.y=i,t)}if(Math.abs(this.coslat0)<=wt){if(n<=wt)return i=this.lat0,s=this.long0,t.x=s,t.y=i,t;t.x*=this.con,t.y*=this.con,a=n*this.cons/(2*this.a*this.k0),i=this.con*Jt(this.e,a),s=this.con*Ht(this.con*this.long0+Math.atan2(t.x,-1*t.y))}else h=2*Math.atan(n*this.cosX0/(2*this.a*this.k0*this.ms1)),s=this.long0,n<=wt?e=this.X0:(e=Math.asin(Math.cos(h)*this.sinX0+t.y*Math.sin(h)*this.cosX0/n),s=Ht(this.long0+Math.atan2(t.x*Math.sin(h),n*this.cosX0*Math.cos(h)-t.y*this.sinX0*Math.sin(h)))),i=-1*Jt(this.e,Math.tan(.5*(xt+e)));return t.x=s,t.y=i,t},names:["stere","Stereographic_South_Pole","Polar Stereographic (variant B)"],ssfn_:function(t,s,i){return s*=i,Math.tan(.5*(xt+t))*Math.pow((1-s)/(1+s),.5*i)}},js={init:function(){var t=this.lat0;this.lambda0=this.long0;var s=Math.sin(t),i=this.a,a=1/this.rf,h=2*a-Math.pow(a,2),e=this.e=Math.sqrt(h);this.R=this.k0*i*Math.sqrt(1-h)/(1-h*Math.pow(s,2)),this.alpha=Math.sqrt(1+h/(1-h)*Math.pow(Math.cos(t),4)),this.b0=Math.asin(s/this.alpha);var n=Math.log(Math.tan(Math.PI/4+this.b0/2)),r=Math.log(Math.tan(Math.PI/4+t/2)),o=Math.log((1+e*s)/(1-e*s));this.K=n-this.alpha*r+this.alpha*e/2*o},forward:function(t){var s=Math.log(Math.tan(Math.PI/4-t.y/2)),i=this.e/2*Math.log((1+this.e*Math.sin(t.y))/(1-this.e*Math.sin(t.y))),a=-this.alpha*(s+i)+this.K,h=2*(Math.atan(Math.exp(a))-Math.PI/4),e=this.alpha*(t.x-this.lambda0),n=Math.atan(Math.sin(e)/(Math.sin(this.b0)*Math.tan(h)+Math.cos(this.b0)*Math.cos(e))),r=Math.asin(Math.cos(this.b0)*Math.sin(h)-Math.sin(this.b0)*Math.cos(h)*Math.cos(e));return t.y=this.R/2*Math.log((1+Math.sin(r))/(1-Math.sin(r)))+this.y0,t.x=this.R*n+this.x0,t},inverse:function(t){for(var s=t.x-this.x0,i=t.y-this.y0,a=s/this.R,h=2*(Math.atan(Math.exp(i/this.R))-Math.PI/4),e=Math.asin(Math.cos(this.b0)*Math.sin(h)+Math.sin(this.b0)*Math.cos(h)*Math.cos(a)),n=Math.atan(Math.sin(a)/(Math.cos(this.b0)*Math.cos(a)-Math.sin(this.b0)*Math.tan(h))),r=this.lambda0+n/this.alpha,o=0,l=e,u=-1e3,c=0;Math.abs(l-u)>1e-7;){if(++c>20)return;o=1/this.alpha*(Math.log(Math.tan(Math.PI/4+e/2))-this.K)+this.e*Math.log(Math.tan(Math.PI/4+Math.asin(this.e*Math.sin(l))/2)),u=l,l=2*Math.atan(Math.exp(o))-Math.PI/2}return t.x=r,t.y=l,t},names:["somerc"]},Bs=1e-7,zs={init:function(){var t,s,i,a,h,e,n,r,o,l,u,c=0,M=0,f=0,d=0,p=0,m=0,_=0;this.no_off=rt(this),this.no_rot="no_rot"in this;var y=!1;"alpha"in this&&(y=!0);var x=!1;if("rectified_grid_angle"in this&&(x=!0),y&&(_=this.alpha),x&&(c=this.rectified_grid_angle*Nt),y||x)M=this.longc;else if(f=this.long1,p=this.lat1,d=this.long2,m=this.lat2,Math.abs(p-m)<=Bs||(t=Math.abs(p))<=Bs||Math.abs(t-xt)<=Bs||Math.abs(Math.abs(this.lat0)-xt)<=Bs||Math.abs(Math.abs(m)-xt)<=Bs)throw new Error;var g=1-this.es;s=Math.sqrt(g),Math.abs(this.lat0)>wt?(r=Math.sin(this.lat0),i=Math.cos(this.lat0),t=1-this.es*r*r,this.B=i*i,this.B=Math.sqrt(1+this.es*this.B*this.B/g),this.A=this.B*this.k0*s/t,(h=(a=this.B*s/(i*Math.sqrt(t)))*a-1)<=0?h=0:(h=Math.sqrt(h),this.lat0<0&&(h=-h)),this.E=h+=a,this.E*=Math.pow(Xt(this.e,this.lat0,r),this.B)):(this.B=1/s,this.A=this.k0,this.E=a=h=1),y||x?(y?(u=Math.asin(Math.sin(_)/a),x||(c=_)):(u=c,_=Math.asin(a*Math.sin(u))),this.lam0=M-Math.asin(.5*(h-1/h)*Math.tan(u))/this.B):(e=Math.pow(Xt(this.e,p,Math.sin(p)),this.B),n=Math.pow(Xt(this.e,m,Math.sin(m)),this.B),h=this.E/e,o=(n-e)/(n+e),l=((l=this.E*this.E)-n*e)/(l+n*e),(t=f-d)<-Math.pi?d-=Ct:t>Math.pi&&(d+=Ct),this.lam0=Ht(.5*(f+d)-Math.atan(l*Math.tan(.5*this.B*(f-d))/o)/this.B),u=Math.atan(2*Math.sin(this.B*Ht(f-this.lam0))/(h-1/h)),c=_=Math.asin(a*Math.sin(u))),this.singam=Math.sin(u),this.cosgam=Math.cos(u),this.sinrot=Math.sin(c),this.cosrot=Math.cos(c),this.rB=1/this.B,this.ArB=this.A*this.rB,this.BrA=1/this.ArB,this.no_off?this.u_0=0:(this.u_0=Math.abs(this.ArB*Math.atan(Math.sqrt(a*a-1)/Math.cos(_))),this.lat0<0&&(this.u_0=-this.u_0)),h=.5*u,this.v_pole_n=this.ArB*Math.log(Math.tan(Et-h)),this.v_pole_s=this.ArB*Math.log(Math.tan(Et+h))},forward:function(t){var s,i,a,h,e,n,r,o,l={};if(t.x=t.x-this.lam0,Math.abs(Math.abs(t.y)-xt)>wt){if(e=this.E/Math.pow(Xt(this.e,t.y,Math.sin(t.y)),this.B),n=1/e,s=.5*(e-n),i=.5*(e+n),h=Math.sin(this.B*t.x),a=(s*this.singam-h*this.cosgam)/i,Math.abs(Math.abs(a)-1)0?this.v_pole_n:this.v_pole_s,r=this.ArB*t.y;return this.no_rot?(l.x=r,l.y=o):(r-=this.u_0,l.x=o*this.cosrot+r*this.sinrot,l.y=r*this.cosrot-o*this.sinrot),l.x=this.a*l.x+this.x0,l.y=this.a*l.y+this.y0,l},inverse:function(t){var s,i,a,h,e,n,r,o={};if(t.x=(t.x-this.x0)*(1/this.a),t.y=(t.y-this.y0)*(1/this.a),this.no_rot?(i=t.y,s=t.x):(i=t.x*this.cosrot-t.y*this.sinrot,s=t.y*this.cosrot+t.x*this.sinrot+this.u_0),a=Math.exp(-this.BrA*i),h=.5*(a-1/a),e=.5*(a+1/a),n=Math.sin(this.BrA*s),r=(n*this.cosgam+h*this.singam)/e,Math.abs(Math.abs(r)-1)wt?this.ns=Math.log(a/r)/Math.log(h/o):this.ns=s,isNaN(this.ns)&&(this.ns=s),this.f0=a/(this.ns*Math.pow(h,this.ns)),this.rh=this.a*this.f0*Math.pow(l,this.ns),this.title||(this.title="Lambert Conformal Conic")}},forward:function(t){var s=t.x,i=t.y;Math.abs(2*Math.abs(i)-Math.PI)<=wt&&(i=Wt(i)*(xt-2*wt));var a,h,e=Math.abs(Math.abs(i)-xt);if(e>wt)a=Xt(this.e,i,Math.sin(i)),h=this.a*this.f0*Math.pow(a,this.ns);else{if((e=i*this.ns)<=0)return null;h=0}var n=this.ns*Ht(s-this.long0);return t.x=this.k0*(h*Math.sin(n))+this.x0,t.y=this.k0*(this.rh-h*Math.cos(n))+this.y0,t},inverse:function(t){var s,i,a,h,e,n=(t.x-this.x0)/this.k0,r=this.rh-(t.y-this.y0)/this.k0;this.ns>0?(s=Math.sqrt(n*n+r*r),i=1):(s=-Math.sqrt(n*n+r*r),i=-1);var o=0;if(0!==s&&(o=Math.atan2(i*n,i*r)),0!==s||this.ns>0){if(i=1/this.ns,a=Math.pow(s/(this.a*this.f0),i),-9999===(h=Jt(this.e,a)))return null}else h=-xt;return e=Ht(o/this.ns+this.long0),t.x=e,t.y=h,t},names:["Lambert Tangential Conformal Conic Projection","Lambert_Conformal_Conic","Lambert_Conformal_Conic_1SP","Lambert_Conformal_Conic_2SP","lcc","Lambert Conic Conformal (1SP)","Lambert Conic Conformal (2SP)"]},Ds={init:function(){this.a=6377397.155,this.es=.006674372230614,this.e=Math.sqrt(this.es),this.lat0||(this.lat0=.863937979737193),this.long0||(this.long0=.4334234309119251),this.k0||(this.k0=.9999),this.s45=.785398163397448,this.s90=2*this.s45,this.fi0=this.lat0,this.e2=this.es,this.e=Math.sqrt(this.e2),this.alfa=Math.sqrt(1+this.e2*Math.pow(Math.cos(this.fi0),4)/(1-this.e2)),this.uq=1.04216856380474,this.u0=Math.asin(Math.sin(this.fi0)/this.alfa),this.g=Math.pow((1+this.e*Math.sin(this.fi0))/(1-this.e*Math.sin(this.fi0)),this.alfa*this.e/2),this.k=Math.tan(this.u0/2+this.s45)/Math.pow(Math.tan(this.fi0/2+this.s45),this.alfa)*this.g,this.k1=this.k0,this.n0=this.a*Math.sqrt(1-this.e2)/(1-this.e2*Math.pow(Math.sin(this.fi0),2)),this.s0=1.37008346281555,this.n=Math.sin(this.s0),this.ro0=this.k1*this.n0/Math.tan(this.s0),this.ad=this.s90-this.uq},forward:function(t){var s,i,a,h,e,n,r,o=t.x,l=t.y,u=Ht(o-this.long0);return s=Math.pow((1+this.e*Math.sin(l))/(1-this.e*Math.sin(l)),this.alfa*this.e/2),i=2*(Math.atan(this.k*Math.pow(Math.tan(l/2+this.s45),this.alfa)/s)-this.s45),a=-u*this.alfa,h=Math.asin(Math.cos(this.ad)*Math.sin(i)+Math.sin(this.ad)*Math.cos(i)*Math.cos(a)),e=Math.asin(Math.cos(i)*Math.sin(a)/Math.cos(h)),n=this.n*e,r=this.ro0*Math.pow(Math.tan(this.s0/2+this.s45),this.n)/Math.pow(Math.tan(h/2+this.s45),this.n),t.y=r*Math.cos(n)/1,t.x=r*Math.sin(n)/1,this.czech||(t.y*=-1,t.x*=-1),t},inverse:function(t){var s,i,a,h,e,n,r,o=t.x;t.x=t.y,t.y=o,this.czech||(t.y*=-1,t.x*=-1),e=Math.sqrt(t.x*t.x+t.y*t.y),h=Math.atan2(t.y,t.x)/Math.sin(this.s0),a=2*(Math.atan(Math.pow(this.ro0/e,1/this.n)*Math.tan(this.s0/2+this.s45))-this.s45),s=Math.asin(Math.cos(this.ad)*Math.sin(a)-Math.sin(this.ad)*Math.cos(a)*Math.cos(h)),i=Math.asin(Math.cos(a)*Math.sin(h)/Math.cos(s)),t.x=this.long0-i/this.alfa,n=s,r=0;var l=0;do{t.y=2*(Math.atan(Math.pow(this.k,-1/this.alfa)*Math.pow(Math.tan(s/2+this.s45),1/this.alfa)*Math.pow((1+this.e*Math.sin(n))/(1-this.e*Math.sin(n)),this.e/2))-this.s45),Math.abs(n-t.y)<1e-10&&(r=1),n=t.y,l+=1}while(0===r&&l<15);return l>=15?null:t},names:["Krovak","krovak"]},Us=function(t,s,i,a,h){return t*h-s*Math.sin(2*h)+i*Math.sin(4*h)-a*Math.sin(6*h)},Qs=function(t){return 1-.25*t*(1+t/16*(3+1.25*t))},Ws=function(t){return.375*t*(1+.25*t*(1+.46875*t))},Hs=function(t){return.05859375*t*t*(1+.75*t)},Xs=function(t){return t*t*t*(35/3072)},Js=function(t,s,i){var a=s*i;return t/Math.sqrt(1-a*a)},Ks=function(t){return Math.abs(t)1e-7?(i=t*s,(1-t*t)*(s/(1-i*i)-.5/t*Math.log((1-i)/(1+i)))):2*s},$s=.3333333333333333,ti=.17222222222222222,si=.10257936507936508,ii=.06388888888888888,ai=.0664021164021164,hi=.016415012942191543,ei={init:function(){var t=Math.abs(this.lat0);if(Math.abs(t-xt)0){var s;switch(this.qp=Ys(this.e,1),this.mmf=.5/(1-this.es),this.apa=ot(this.es),this.mode){case this.N_POLE:case this.S_POLE:this.dd=1;break;case this.EQUIT:this.rq=Math.sqrt(.5*this.qp),this.dd=1/this.rq,this.xmf=1,this.ymf=.5*this.qp;break;case this.OBLIQ:this.rq=Math.sqrt(.5*this.qp),s=Math.sin(this.lat0),this.sinb1=Ys(this.e,s)/this.qp,this.cosb1=Math.sqrt(1-this.sinb1*this.sinb1),this.dd=Math.cos(this.lat0)/(Math.sqrt(1-this.es*s*s)*this.rq*this.cosb1),this.ymf=(this.xmf=this.rq)/this.dd,this.xmf*=this.dd}}else this.mode===this.OBLIQ&&(this.sinph0=Math.sin(this.lat0),this.cosph0=Math.cos(this.lat0))},forward:function(t){var s,i,a,h,e,n,r,o,l,u,c=t.x,M=t.y;if(c=Ht(c-this.long0),this.sphere){if(e=Math.sin(M),u=Math.cos(M),a=Math.cos(c),this.mode===this.OBLIQ||this.mode===this.EQUIT){if((i=this.mode===this.EQUIT?1+u*a:1+this.sinph0*e+this.cosph0*u*a)<=wt)return null;s=(i=Math.sqrt(2/i))*u*Math.sin(c),i*=this.mode===this.EQUIT?e:this.cosph0*e-this.sinph0*u*a}else if(this.mode===this.N_POLE||this.mode===this.S_POLE){if(this.mode===this.N_POLE&&(a=-a),Math.abs(M+this.lat0)=0?(s=(l=Math.sqrt(n))*h,i=a*(this.mode===this.S_POLE?l:-l)):s=i=0}}return t.x=this.a*s+this.x0,t.y=this.a*i+this.y0,t},inverse:function(t){t.x-=this.x0,t.y-=this.y0;var s,i,a,h,e,n,r,o=t.x/this.a,l=t.y/this.a;if(this.sphere){var u,c=0,M=0;if(u=Math.sqrt(o*o+l*l),(i=.5*u)>1)return null;switch(i=2*Math.asin(i),this.mode!==this.OBLIQ&&this.mode!==this.EQUIT||(M=Math.sin(i),c=Math.cos(i)),this.mode){case this.EQUIT:i=Math.abs(u)<=wt?0:Math.asin(l*M/u),o*=M,l=c*u;break;case this.OBLIQ:i=Math.abs(u)<=wt?this.lat0:Math.asin(c*this.sinph0+l*M*this.cosph0/u),o*=M*this.cosph0,l=(c-Math.sin(i)*this.sinph0)*u;break;case this.N_POLE:l=-l,i=xt-i;break;case this.S_POLE:i-=xt}s=0!==l||this.mode!==this.EQUIT&&this.mode!==this.OBLIQ?Math.atan2(o,l):0}else{if(r=0,this.mode===this.OBLIQ||this.mode===this.EQUIT){if(o/=this.dd,l*=this.dd,(n=Math.sqrt(o*o+l*l))1&&(t=t>1?1:-1),Math.asin(t)},ri={init:function(){Math.abs(this.lat1+this.lat2)wt?this.ns0=(this.ms1*this.ms1-this.ms2*this.ms2)/(this.qs2-this.qs1):this.ns0=this.con,this.c=this.ms1*this.ms1+this.ns0*this.qs1,this.rh=this.a*Math.sqrt(this.c-this.ns0*this.qs0)/this.ns0)},forward:function(t){var s=t.x,i=t.y;this.sin_phi=Math.sin(i),this.cos_phi=Math.cos(i);var a=Ys(this.e3,this.sin_phi,this.cos_phi),h=this.a*Math.sqrt(this.c-this.ns0*a)/this.ns0,e=this.ns0*Ht(s-this.long0),n=h*Math.sin(e)+this.x0,r=this.rh-h*Math.cos(e)+this.y0;return t.x=n,t.y=r,t},inverse:function(t){var s,i,a,h,e,n;return t.x-=this.x0,t.y=this.rh-t.y+this.y0,this.ns0>=0?(s=Math.sqrt(t.x*t.x+t.y*t.y),a=1):(s=-Math.sqrt(t.x*t.x+t.y*t.y),a=-1),h=0,0!==s&&(h=Math.atan2(a*t.x,a*t.y)),a=s*this.ns0/this.a,this.sphere?n=Math.asin((this.c-a*a)/(2*this.ns0)):(i=(this.c-a*a)/this.ns0,n=this.phi1z(this.e3,i)),e=Ht(h/this.ns0+this.long0),t.x=e,t.y=n,t},names:["Albers_Conic_Equal_Area","Albers","aea"],phi1z:function(t,s){var i,a,h,e,n,r=ni(.5*s);if(t0||Math.abs(e)<=wt?(n=this.x0+1*this.a*i*Math.sin(a)/e,r=this.y0+1*this.a*(this.cos_p14*s-this.sin_p14*i*h)/e):(n=this.x0+this.infinity_dist*i*Math.sin(a),r=this.y0+this.infinity_dist*(this.cos_p14*s-this.sin_p14*i*h)),t.x=n,t.y=r,t},inverse:function(t){var s,i,a,h,e,n;return t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,t.x/=this.k0,t.y/=this.k0,(s=Math.sqrt(t.x*t.x+t.y*t.y))?(h=Math.atan2(s,this.rc),i=Math.sin(h),a=Math.cos(h),n=ni(a*this.sin_p14+t.y*i*this.cos_p14/s),e=Math.atan2(t.x*i,s*this.cos_p14*a-t.y*this.sin_p14*i),e=Ht(this.long0+e)):(n=this.phic0,e=0),t.x=e,t.y=n,t},names:["gnom"]},li=function(t,s){var i=1-(1-t*t)/(2*t)*Math.log((1-t)/(1+t));if(Math.abs(Math.abs(s)-i)<1e-6)return s<0?-1*xt:xt;for(var a,h,e,n,r=Math.asin(.5*s),o=0;o<30;o++)if(h=Math.sin(r),e=Math.cos(r),n=t*h,a=Math.pow(1-n*n,2)/(2*e)*(s/(1-t*t)-h/(1-n*n)+.5/t*Math.log((1-n)/(1+n))),r+=a,Math.abs(a)<=1e-10)return r;return NaN},ui={init:function(){this.sphere||(this.k0=Qt(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)))},forward:function(t){var s,i,a=t.x,h=t.y,e=Ht(a-this.long0);if(this.sphere)s=this.x0+this.a*e*Math.cos(this.lat_ts),i=this.y0+this.a*Math.sin(h)/Math.cos(this.lat_ts);else{var n=Ys(this.e,Math.sin(h));s=this.x0+this.a*this.k0*e,i=this.y0+this.a*n*.5/this.k0}return t.x=s,t.y=i,t},inverse:function(t){t.x-=this.x0,t.y-=this.y0;var s,i;return this.sphere?(s=Ht(this.long0+t.x/this.a/Math.cos(this.lat_ts)),i=Math.asin(t.y/this.a*Math.cos(this.lat_ts))):(i=li(this.e,2*t.y*this.k0/this.a),s=Ht(this.long0+t.x/(this.a*this.k0))),t.x=s,t.y=i,t},names:["cea"]},ci={init:function(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Equidistant Cylindrical (Plate Carre)",this.rc=Math.cos(this.lat_ts)},forward:function(t){var s=t.x,i=t.y,a=Ht(s-this.long0),h=Ks(i-this.lat0);return t.x=this.x0+this.a*a*this.rc,t.y=this.y0+this.a*h,t},inverse:function(t){var s=t.x,i=t.y;return t.x=Ht(this.long0+(s-this.x0)/(this.a*this.rc)),t.y=Ks(this.lat0+(i-this.y0)/this.a),t},names:["Equirectangular","Equidistant_Cylindrical","eqc"]},Mi=20,fi={init:function(){this.temp=this.b/this.a,this.es=1-Math.pow(this.temp,2),this.e=Math.sqrt(this.es),this.e0=Qs(this.es),this.e1=Ws(this.es),this.e2=Hs(this.es),this.e3=Xs(this.es),this.ml0=this.a*Us(this.e0,this.e1,this.e2,this.e3,this.lat0)},forward:function(t){var s,i,a,h=t.x,e=t.y,n=Ht(h-this.long0);if(a=n*Math.sin(e),this.sphere)Math.abs(e)<=wt?(s=this.a*n,i=-1*this.a*this.lat0):(s=this.a*Math.sin(a)/Math.tan(e),i=this.a*(Ks(e-this.lat0)+(1-Math.cos(a))/Math.tan(e)));else if(Math.abs(e)<=wt)s=this.a*n,i=-1*this.ml0;else{var r=Js(this.a,this.e,Math.sin(e))/Math.tan(e);s=r*Math.sin(a),i=this.a*Us(this.e0,this.e1,this.e2,this.e3,e)-this.ml0+r*(1-Math.cos(a))}return t.x=s+this.x0,t.y=i+this.y0,t},inverse:function(t){var s,i,a,h,e,n,r,o,l;if(a=t.x-this.x0,h=t.y-this.y0,this.sphere)if(Math.abs(h+this.a*this.lat0)<=wt)s=Ht(a/this.a+this.long0),i=0;else{n=this.lat0+h/this.a,r=a*a/this.a/this.a+n*n,o=n;var u;for(e=Mi;e;--e)if(u=Math.tan(o),l=-1*(n*(o*u+1)-o-.5*(o*o+r)*u)/((o-n)/u-1),o+=l,Math.abs(l)<=wt){i=o;break}s=Ht(this.long0+Math.asin(a*Math.tan(o)/this.a)/Math.sin(i))}else if(Math.abs(h+this.ml0)<=wt)i=0,s=Ht(this.long0+a/this.a);else{n=(this.ml0+h)/this.a,r=a*a/this.a/this.a+n*n,o=n;var c,M,f,d,p;for(e=Mi;e;--e)if(p=this.e*Math.sin(o),c=Math.sqrt(1-p*p)*Math.tan(o),M=this.a*Us(this.e0,this.e1,this.e2,this.e3,o),f=this.e0-2*this.e1*Math.cos(2*o)+4*this.e2*Math.cos(4*o)-6*this.e3*Math.cos(6*o),d=M/this.a,l=(n*(c*d+1)-d-.5*c*(d*d+r))/(this.es*Math.sin(2*o)*(d*d+r-2*n*d)/(4*c)+(n-d)*(c*f-2/Math.sin(2*o))-f),o-=l,Math.abs(l)<=wt){i=o;break}c=Math.sqrt(1-this.es*Math.pow(Math.sin(i),2))*Math.tan(i),s=Ht(this.long0+Math.asin(a*c/this.a)/Math.sin(i))}return t.x=s,t.y=i,t},names:["Polyconic","poly"]},di={init:function(){this.A=[],this.A[1]=.6399175073,this.A[2]=-.1358797613,this.A[3]=.063294409,this.A[4]=-.02526853,this.A[5]=.0117879,this.A[6]=-.0055161,this.A[7]=.0026906,this.A[8]=-.001333,this.A[9]=67e-5,this.A[10]=-34e-5,this.B_re=[],this.B_im=[],this.B_re[1]=.7557853228,this.B_im[1]=0,this.B_re[2]=.249204646,this.B_im[2]=.003371507,this.B_re[3]=-.001541739,this.B_im[3]=.04105856,this.B_re[4]=-.10162907,this.B_im[4]=.01727609,this.B_re[5]=-.26623489,this.B_im[5]=-.36249218,this.B_re[6]=-.6870983,this.B_im[6]=-1.1651967,this.C_re=[],this.C_im=[],this.C_re[1]=1.3231270439,this.C_im[1]=0,this.C_re[2]=-.577245789,this.C_im[2]=-.007809598,this.C_re[3]=.508307513,this.C_im[3]=-.112208952,this.C_re[4]=-.15094762,this.C_im[4]=.18200602,this.C_re[5]=1.01418179,this.C_im[5]=1.64497696,this.C_re[6]=1.9660549,this.C_im[6]=2.5127645,this.D=[],this.D[1]=1.5627014243,this.D[2]=.5185406398,this.D[3]=-.03333098,this.D[4]=-.1052906,this.D[5]=-.0368594,this.D[6]=.007317,this.D[7]=.0122,this.D[8]=.00394,this.D[9]=-.0013},forward:function(t){var s,i=t.x,a=t.y-this.lat0,h=i-this.long0,e=a/yt*1e-5,n=h,r=1,o=0;for(s=1;s<=10;s++)r*=e,o+=this.A[s]*r;var l,u=o,c=n,M=1,f=0,d=0,p=0;for(s=1;s<=6;s++)l=f*u+M*c,M=M*u-f*c,f=l,d=d+this.B_re[s]*M-this.B_im[s]*f,p=p+this.B_im[s]*M+this.B_re[s]*f;return t.x=p*this.a+this.x0,t.y=d*this.a+this.y0,t},inverse:function(t){var s,i,a=t.x,h=t.y,e=a-this.x0,n=(h-this.y0)/this.a,r=e/this.a,o=1,l=0,u=0,c=0;for(s=1;s<=6;s++)i=l*n+o*r,o=o*n-l*r,l=i,u=u+this.C_re[s]*o-this.C_im[s]*l,c=c+this.C_im[s]*o+this.C_re[s]*l;for(var M=0;M.999999999999&&(i=.999999999999),s=Math.asin(i);var a=Ht(this.long0+t.x/(.900316316158*this.a*Math.cos(s)));a<-Math.PI&&(a=-Math.PI),a>Math.PI&&(a=Math.PI),i=(2*s+Math.sin(2*s))/Math.PI,Math.abs(i)>1&&(i=1);var h=Math.asin(i);return t.x=a,t.y=h,t},names:["Mollweide","moll"]},xi={init:function(){Math.abs(this.lat1+this.lat2)=0?(i=Math.sqrt(t.x*t.x+t.y*t.y),s=1):(i=-Math.sqrt(t.x*t.x+t.y*t.y),s=-1);var e=0;if(0!==i&&(e=Math.atan2(s*t.x,s*t.y)),this.sphere)return h=Ht(this.long0+e/this.ns),a=Ks(this.g-i/this.a),t.x=h,t.y=a,t;var n=this.g-i/this.a;return a=Vs(n,this.e0,this.e1,this.e2,this.e3),h=Ht(this.long0+e/this.ns),t.x=h,t.y=a,t},names:["Equidistant_Conic","eqdc"]},gi={init:function(){this.R=this.a},forward:function(t){var s,i,a=t.x,h=t.y,e=Ht(a-this.long0);Math.abs(h)<=wt&&(s=this.x0+this.R*e,i=this.y0);var n=ni(2*Math.abs(h/Math.PI));(Math.abs(e)<=wt||Math.abs(Math.abs(h)-xt)<=wt)&&(s=this.x0,i=h>=0?this.y0+Math.PI*this.R*Math.tan(.5*n):this.y0+Math.PI*this.R*-Math.tan(.5*n));var r=.5*Math.abs(Math.PI/e-e/Math.PI),o=r*r,l=Math.sin(n),u=Math.cos(n),c=u/(l+u-1),M=c*c,f=c*(2/l-1),d=f*f,p=Math.PI*this.R*(r*(c-d)+Math.sqrt(o*(c-d)*(c-d)-(d+o)*(M-d)))/(d+o);e<0&&(p=-p),s=this.x0+p;var m=o+c;return p=Math.PI*this.R*(f*m-r*Math.sqrt((d+o)*(o+1)-m*m))/(d+o),i=h>=0?this.y0+p:this.y0-p,t.x=s,t.y=i,t},inverse:function(t){var s,i,a,h,e,n,r,o,l,u,c,M,f;return t.x-=this.x0,t.y-=this.y0,c=Math.PI*this.R,a=t.x/c,h=t.y/c,e=a*a+h*h,n=-Math.abs(h)*(1+e),r=n-2*h*h+a*a,o=-2*n+1+2*h*h+e*e,f=h*h/o+(2*r*r*r/o/o/o-9*n*r/o/o)/27,l=(n-r*r/3/o)/o,u=2*Math.sqrt(-l/3),c=3*f/l/u,Math.abs(c)>1&&(c=c>=0?1:-1),M=Math.acos(c)/3,i=t.y>=0?(-u*Math.cos(M+Math.PI/3)-r/3/o)*Math.PI:-(-u*Math.cos(M+Math.PI/3)-r/3/o)*Math.PI,s=Math.abs(a)2*xt*this.a)return;return i=s/this.a,a=Math.sin(i),h=Math.cos(i),e=this.long0,Math.abs(s)<=wt?n=this.lat0:(n=ni(h*this.sin_p12+t.y*a*this.cos_p12/s),r=Math.abs(this.lat0)-xt,e=Ht(Math.abs(r)<=wt?this.lat0>=0?this.long0+Math.atan2(t.x,-t.y):this.long0-Math.atan2(-t.x,t.y):this.long0+Math.atan2(t.x*a,s*this.cos_p12*h-t.y*this.sin_p12*a))),t.x=e,t.y=n,t}return o=Qs(this.es),l=Ws(this.es),u=Hs(this.es),c=Xs(this.es),Math.abs(this.sin_p12-1)<=wt?(M=this.a*Us(o,l,u,c,xt),s=Math.sqrt(t.x*t.x+t.y*t.y),f=M-s,n=Vs(f/this.a,o,l,u,c),e=Ht(this.long0+Math.atan2(t.x,-1*t.y)),t.x=e,t.y=n,t):Math.abs(this.sin_p12+1)<=wt?(M=this.a*Us(o,l,u,c,xt),s=Math.sqrt(t.x*t.x+t.y*t.y),f=s-M,n=Vs(f/this.a,o,l,u,c),e=Ht(this.long0+Math.atan2(t.x,t.y)),t.x=e,t.y=n,t):(s=Math.sqrt(t.x*t.x+t.y*t.y),m=Math.atan2(t.x,t.y),d=Js(this.a,this.e,this.sin_p12),_=Math.cos(m),y=this.e*this.cos_p12*_,x=-y*y/(1-this.es),g=3*this.es*(1-x)*this.sin_p12*this.cos_p12*_/(1-this.es),v=s/d,b=v-x*(1+x)*Math.pow(v,3)/6-g*(1+3*x)*Math.pow(v,4)/24,w=1-x*b*b/2-v*b*b*b/6,p=Math.asin(this.sin_p12*Math.cos(b)+this.cos_p12*Math.sin(b)*_),e=Ht(this.long0+Math.asin(Math.sin(m)*Math.sin(b)/Math.cos(p))),N=Math.sin(p),n=Math.atan2((N-this.es*w*this.sin_p12)*Math.tan(p),N*(1-this.es)),t.x=e,t.y=n,t)},names:["Azimuthal_Equidistant","aeqd"]},bi={init:function(){this.sin_p14=Math.sin(this.lat0),this.cos_p14=Math.cos(this.lat0)},forward:function(t){var s,i,a,h,e,n,r,o=t.x,l=t.y;return a=Ht(o-this.long0),s=Math.sin(l),i=Math.cos(l),h=Math.cos(a),((e=this.sin_p14*s+this.cos_p14*i*h)>0||Math.abs(e)<=wt)&&(n=1*this.a*i*Math.sin(a),r=this.y0+1*this.a*(this.cos_p14*s-this.sin_p14*i*h)),t.x=n,t.y=r,t},inverse:function(t){var s,i,a,h,e,n,r;return t.x-=this.x0,t.y-=this.y0,s=Math.sqrt(t.x*t.x+t.y*t.y),i=ni(s/this.a),a=Math.sin(i),h=Math.cos(i),n=this.long0,Math.abs(s)<=wt?(r=this.lat0,t.x=n,t.y=r,t):(r=ni(h*this.sin_p14+t.y*a*this.cos_p14/s),e=Math.abs(this.lat0)-xt,Math.abs(e)<=wt?(n=Ht(this.lat0>=0?this.long0+Math.atan2(t.x,-t.y):this.long0-Math.atan2(-t.x,t.y)),t.x=n,t.y=r,t):(n=Ht(this.long0+Math.atan2(t.x*a,s*this.cos_p14*h-t.y*this.sin_p14*a)),t.x=n,t.y=r,t))},names:["ortho"]},wi={FRONT:1,RIGHT:2,BACK:3,LEFT:4,TOP:5,BOTTOM:6},Ni={AREA_0:1,AREA_1:2,AREA_2:3,AREA_3:4},Ai={init:function(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Quadrilateralized Spherical Cube",this.lat0>=xt-Et/2?this.face=wi.TOP:this.lat0<=-(xt-Et/2)?this.face=wi.BOTTOM:Math.abs(this.long0)<=Et?this.face=wi.FRONT:Math.abs(this.long0)<=xt+Et?this.face=this.long0>0?wi.RIGHT:wi.LEFT:this.face=wi.BACK,0!==this.es&&(this.one_minus_f=1-(this.a-this.b)/this.a,this.one_minus_f_squared=this.one_minus_f*this.one_minus_f)},forward:function(t){var s,i,a,h,e,n,r={x:0,y:0},o={value:0};if(t.x-=this.long0,s=0!==this.es?Math.atan(this.one_minus_f_squared*Math.tan(t.y)):t.y,i=t.x,this.face===wi.TOP)h=xt-s,i>=Et&&i<=xt+Et?(o.value=Ni.AREA_0,a=i-xt):i>xt+Et||i<=-(xt+Et)?(o.value=Ni.AREA_1,a=i>0?i-Pt:i+Pt):i>-(xt+Et)&&i<=-Et?(o.value=Ni.AREA_2,a=i+xt):(o.value=Ni.AREA_3,a=i);else if(this.face===wi.BOTTOM)h=xt+s,i>=Et&&i<=xt+Et?(o.value=Ni.AREA_0,a=-i+xt):i=-Et?(o.value=Ni.AREA_1,a=-i):i<-Et&&i>=-(xt+Et)?(o.value=Ni.AREA_2,a=-i-xt):(o.value=Ni.AREA_3,a=i>0?-i+Pt:-i-Pt);else{var l,u,c,M,f,d;this.face===wi.RIGHT?i=ct(i,+xt):this.face===wi.BACK?i=ct(i,+Pt):this.face===wi.LEFT&&(i=ct(i,-xt)),M=Math.sin(s),f=Math.cos(s),d=Math.sin(i),l=f*Math.cos(i),u=f*d,c=M,this.face===wi.FRONT?a=ut(h=Math.acos(l),c,u,o):this.face===wi.RIGHT?a=ut(h=Math.acos(u),c,-l,o):this.face===wi.BACK?a=ut(h=Math.acos(-l),c,-u,o):this.face===wi.LEFT?a=ut(h=Math.acos(-u),c,l,o):(h=a=0,o.value=Ni.AREA_0)}return n=Math.atan(12/Pt*(a+Math.acos(Math.sin(a)*Math.cos(Et))-xt)),e=Math.sqrt((1-Math.cos(h))/(Math.cos(n)*Math.cos(n))/(1-Math.cos(Math.atan(1/Math.cos(a))))),o.value===Ni.AREA_1?n+=xt:o.value===Ni.AREA_2?n+=Pt:o.value===Ni.AREA_3&&(n+=1.5*Pt),r.x=e*Math.cos(n),r.y=e*Math.sin(n),r.x=r.x*this.a+this.x0,r.y=r.y*this.a+this.y0,t.x=r.x,t.y=r.y,t},inverse:function(t){var s,i,a,h,e,n,r,o,l,u={lam:0,phi:0},c={value:0};if(t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,i=Math.atan(Math.sqrt(t.x*t.x+t.y*t.y)),s=Math.atan2(t.y,t.x),t.x>=0&&t.x>=Math.abs(t.y)?c.value=Ni.AREA_0:t.y>=0&&t.y>=Math.abs(t.x)?(c.value=Ni.AREA_1,s-=xt):t.x<0&&-t.x>=Math.abs(t.y)?(c.value=Ni.AREA_2,s=s<0?s+Pt:s-Pt):(c.value=Ni.AREA_3,s+=xt),l=Pt/12*Math.tan(s),e=Math.sin(l)/(Math.cos(l)-1/Math.sqrt(2)),n=Math.atan(e),a=Math.cos(s),h=Math.tan(i),(r=1-a*a*h*h*(1-Math.cos(Math.atan(1/Math.cos(n)))))<-1?r=-1:r>1&&(r=1),this.face===wi.TOP)o=Math.acos(r),u.phi=xt-o,c.value===Ni.AREA_0?u.lam=n+xt:c.value===Ni.AREA_1?u.lam=n<0?n+Pt:n-Pt:c.value===Ni.AREA_2?u.lam=n-xt:u.lam=n;else if(this.face===wi.BOTTOM)o=Math.acos(r),u.phi=o-xt,c.value===Ni.AREA_0?u.lam=-n+xt:c.value===Ni.AREA_1?u.lam=-n:c.value===Ni.AREA_2?u.lam=-n-xt:u.lam=n<0?-n-Pt:-n+Pt;else{var M,f,d;l=(M=r)*M,f=(l+=(d=l>=1?0:Math.sqrt(1-l)*Math.sin(n))*d)>=1?0:Math.sqrt(1-l),c.value===Ni.AREA_1?(l=f,f=-d,d=l):c.value===Ni.AREA_2?(f=-f,d=-d):c.value===Ni.AREA_3&&(l=f,f=d,d=-l),this.face===wi.RIGHT?(l=M,M=-f,f=l):this.face===wi.BACK?(M=-M,f=-f):this.face===wi.LEFT&&(l=M,M=f,f=-l),u.phi=Math.acos(-d)-xt,u.lam=Math.atan2(f,M),this.face===wi.RIGHT?u.lam=ct(u.lam,-xt):this.face===wi.BACK?u.lam=ct(u.lam,-Pt):this.face===wi.LEFT&&(u.lam=ct(u.lam,+xt))}if(0!==this.es){var p,m,_;p=u.phi<0?1:0,m=Math.tan(u.phi),_=this.b/Math.sqrt(m*m+this.one_minus_f_squared),u.phi=Math.atan(Math.sqrt(this.a*this.a-_*_)/(this.one_minus_f*_)),p&&(u.phi=-u.phi)}return u.lam+=this.long0,t.x=u.lam,t.y=u.phi,t},names:["Quadrilateralized Spherical Cube","Quadrilateralized_Spherical_Cube","qsc"]},Ei=[[1,2.2199e-17,-715515e-10,31103e-10],[.9986,-482243e-9,-24897e-9,-13309e-10],[.9954,-83103e-8,-448605e-10,-9.86701e-7],[.99,-.00135364,-59661e-9,36777e-10],[.9822,-.00167442,-449547e-11,-572411e-11],[.973,-.00214868,-903571e-10,1.8736e-8],[.96,-.00305085,-900761e-10,164917e-11],[.9427,-.00382792,-653386e-10,-26154e-10],[.9216,-.00467746,-10457e-8,481243e-11],[.8962,-.00536223,-323831e-10,-543432e-11],[.8679,-.00609363,-113898e-9,332484e-11],[.835,-.00698325,-640253e-10,9.34959e-7],[.7986,-.00755338,-500009e-10,9.35324e-7],[.7597,-.00798324,-35971e-9,-227626e-11],[.7186,-.00851367,-701149e-10,-86303e-10],[.6732,-.00986209,-199569e-9,191974e-10],[.6213,-.010418,883923e-10,624051e-11],[.5722,-.00906601,182e-6,624051e-11],[.5322,-.00677797,275608e-9,624051e-11]],Ci=[[-5.20417e-18,.0124,1.21431e-18,-8.45284e-11],[.062,.0124,-1.26793e-9,4.22642e-10],[.124,.0124,5.07171e-9,-1.60604e-9],[.186,.0123999,-1.90189e-8,6.00152e-9],[.248,.0124002,7.10039e-8,-2.24e-8],[.31,.0123992,-2.64997e-7,8.35986e-8],[.372,.0124029,9.88983e-7,-3.11994e-7],[.434,.0123893,-369093e-11,-4.35621e-7],[.4958,.0123198,-102252e-10,-3.45523e-7],[.5571,.0121916,-154081e-10,-5.82288e-7],[.6176,.0119938,-241424e-10,-5.25327e-7],[.6769,.011713,-320223e-10,-5.16405e-7],[.7346,.0113541,-397684e-10,-6.09052e-7],[.7903,.0109107,-489042e-10,-104739e-11],[.8435,.0103431,-64615e-9,-1.40374e-9],[.8936,.00969686,-64636e-9,-8547e-9],[.9394,.00840947,-192841e-9,-42106e-10],[.9761,.00616527,-256e-6,-42106e-10],[1,.00328947,-319159e-9,-42106e-10]],Pi=.8487,Si=1.3523,Ii=At/5,Oi=1/Ii,ki=18,qi=function(t,s){return t[0]+s*(t[1]+s*(t[2]+s*t[3]))},Ri=function(t,s){return t[1]+s*(2*t[2]+3*s*t[3])},Li={init:function(){this.x0=this.x0||0,this.y0=this.y0||0,this.long0=this.long0||0,this.es=0,this.title=this.title||"Robinson"},forward:function(t){var s=Ht(t.x-this.long0),i=Math.abs(t.y),a=Math.floor(i*Ii);a<0?a=0:a>=ki&&(a=ki-1),i=At*(i-Oi*a);var h={x:qi(Ei[a],i)*s,y:qi(Ci[a],i)};return t.y<0&&(h.y=-h.y),h.x=h.x*this.a*Pi+this.x0,h.y=h.y*this.a*Si+this.y0,h},inverse:function(t){var s={x:(t.x-this.x0)/(this.a*Pi),y:Math.abs(t.y-this.y0)/(this.a*Si)};if(s.y>=1)s.x/=Ei[ki][0],s.y=t.y<0?-xt:xt;else{var i=Math.floor(s.y*ki);for(i<0?i=0:i>=ki&&(i=ki-1);;)if(Ci[i][0]>s.y)--i;else{if(!(Ci[i+1][0]<=s.y))break;++i}var a=Ci[i],h=5*(s.y-a[0])/(Ci[i+1][0]-a[0]);h=Mt(function(t){return(qi(a,t)-s.y)/Ri(a,t)},h,wt,100),s.x/=qi(Ei[i],h),s.y=(5*i+h)*Nt,t.y<0&&(s.y=-s.y)}return s.x=Ht(s.x+this.long0),s},names:["Robinson","robin"]},Ti={init:function(){this.name="geocent"},forward:function(t){return k(t,this.es,this.a)},inverse:function(t){return q(t,this.es,this.a,this.b)},names:["Geocentric","geocentric","geocent","Geocent"]},Gi={N_POLE:0,S_POLE:1,EQUIT:2,OBLIQ:3},ji={h:{def:1e5,num:!0},azi:{def:0,num:!0,degrees:!0},tilt:{def:0,num:!0,degrees:!0},long0:{def:0,num:!0},lat0:{def:0,num:!0}},Bi={init:function(){if(Object.keys(ji).forEach(function(t){if(void 0===this[t])this[t]=ji[t].def;else{if(ji[t].num&&isNaN(this[t]))throw new Error("Invalid parameter value, must be numeric "+t+" = "+this[t]);ji[t].num&&(this[t]=parseFloat(this[t]))}ji[t].degrees&&(this[t]=this[t]*Nt)}.bind(this)),Math.abs(Math.abs(this.lat0)-xt)1e10)throw new Error("Invalid height");this.p=1+this.pn1,this.rp=1/this.p,this.h1=1/this.pn1,this.pfact=(this.p+1)*this.h1,this.es=0;var t=this.tilt,s=this.azi;this.cg=Math.cos(s),this.sg=Math.sin(s),this.cw=Math.cos(t),this.sw=Math.sin(t)},forward:function(t){t.x-=this.long0;var s,i,a=Math.sin(t.y),h=Math.cos(t.y),e=Math.cos(t.x);switch(this.mode){case Gi.OBLIQ:i=this.sinph0*a+this.cosph0*h*e;break;case Gi.EQUIT:i=h*e;break;case Gi.S_POLE:i=-a;break;case Gi.N_POLE:i=a}switch(i=this.pn1/(this.p-i),s=i*h*Math.sin(t.x),this.mode){case Gi.OBLIQ:i*=this.cosph0*a-this.sinph0*h*e;break;case Gi.EQUIT:i*=a;break;case Gi.N_POLE:i*=-h*e;break;case Gi.S_POLE:i*=h*e}var n,r;return n=i*this.cg+s*this.sg,r=1/(n*this.sw*this.h1+this.cw),s=(s*this.cg-i*this.sg)*this.cw*r,i=n*r,t.x=s*this.a,t.y=i*this.a,t},inverse:function(t){t.x/=this.a,t.y/=this.a;var s,i,a,h={x:t.x,y:t.y};a=1/(this.pn1-t.y*this.sw),s=this.pn1*t.x*a,i=this.pn1*t.y*this.cw*a,t.x=s*this.cg+i*this.sg,t.y=i*this.cg-s*this.sg;var e=ws(t.x,t.y);if(Math.abs(e)1e10)throw new Error;if(this.radius_g=1+this.radius_g_1,this.C=this.radius_g*this.radius_g-1,0!==this.es){var t=1-this.es,s=1/t;this.radius_p=Math.sqrt(t),this.radius_p2=t,this.radius_p_inv2=s,this.shape="ellipse"}else this.radius_p=1,this.radius_p2=1,this.radius_p_inv2=1,this.shape="sphere";this.title||(this.title="Geostationary Satellite View")},forward:function(t){var s,i,a,h,e=t.x,n=t.y;if(e-=this.long0,"ellipse"===this.shape){n=Math.atan(this.radius_p2*Math.tan(n));var r=this.radius_p/ws(this.radius_p*Math.cos(n),Math.sin(n));if(i=r*Math.cos(e)*Math.cos(n),a=r*Math.sin(e)*Math.cos(n),h=r*Math.sin(n),(this.radius_g-i)*i-a*a-h*h*this.radius_p_inv2<0)return t.x=Number.NaN,t.y=Number.NaN,t;s=this.radius_g-i,this.flip_axis?(t.x=this.radius_g_1*Math.atan(a/ws(h,s)),t.y=this.radius_g_1*Math.atan(h/s)):(t.x=this.radius_g_1*Math.atan(a/s),t.y=this.radius_g_1*Math.atan(h/ws(a,s)))}else"sphere"===this.shape&&(s=Math.cos(n),i=Math.cos(e)*s,a=Math.sin(e)*s,h=Math.sin(n),s=this.radius_g-i,this.flip_axis?(t.x=this.radius_g_1*Math.atan(a/ws(h,s)),t.y=this.radius_g_1*Math.atan(h/s)):(t.x=this.radius_g_1*Math.atan(a/s),t.y=this.radius_g_1*Math.atan(h/ws(a,s))));return t.x=t.x*this.a,t.y=t.y*this.a,t},inverse:function(t){var s,i,a,h,e=-1,n=0,r=0;if(t.x=t.x/this.a,t.y=t.y/this.a,"ellipse"===this.shape){this.flip_axis?(r=Math.tan(t.y/this.radius_g_1),n=Math.tan(t.x/this.radius_g_1)*ws(1,r)):(n=Math.tan(t.x/this.radius_g_1),r=Math.tan(t.y/this.radius_g_1)*ws(1,n));var o=r/this.radius_p;if(s=n*n+o*o+e*e,i=2*this.radius_g*e,(a=i*i-4*s*this.C)<0)return t.x=Number.NaN,t.y=Number.NaN,t;h=(-i-Math.sqrt(a))/(2*s),e=this.radius_g+h*e,n*=h,r*=h,t.x=Math.atan2(n,e),t.y=Math.atan(r*Math.cos(t.x)/e),t.y=Math.atan(this.radius_p_inv2*Math.tan(t.y))}else if("sphere"===this.shape){if(this.flip_axis?(r=Math.tan(t.y/this.radius_g_1),n=Math.tan(t.x/this.radius_g_1)*Math.sqrt(1+r*r)):(n=Math.tan(t.x/this.radius_g_1),r=Math.tan(t.y/this.radius_g_1)*Math.sqrt(1+n*n)),s=n*n+r*r+e*e,i=2*this.radius_g*e,(a=i*i-4*s*this.C)<0)return t.x=Number.NaN,t.y=Number.NaN,t;h=(-i-Math.sqrt(a))/(2*s),e=this.radius_g+h*e,n*=h,r*=h,t.x=Math.atan2(n,e),t.y=Math.atan(r*Math.cos(t.x)/e)}return t.x=t.x+this.long0,t},names:["Geostationary Satellite View","Geostationary_Satellite","geos"]};return W.defaultDatum="WGS84",W.Proj=Projection,W.WGS84=new W.Proj("WGS84"),W.Point=Point,W.toPoint=es,W.defs=o,W.nadgrid=function(t,s){var i=new DataView(s),a=N(i),h=A(i,a);h.nSubgrids>1&&console.log("Only single NTv2 subgrids are currently supported, subsequent sub grids are ignored");var e={header:h,subgrids:C(i,h,a)};return is[t]=e,e},W.transform=D,W.mgrs=ms,W.version="2.8.0",function(proj4){proj4.Proj.projections.add(vs),proj4.Proj.projections.add(Is),proj4.Proj.projections.add(ks),proj4.Proj.projections.add(Ts),proj4.Proj.projections.add(Gs),proj4.Proj.projections.add(js),proj4.Proj.projections.add(zs),proj4.Proj.projections.add(Fs),proj4.Proj.projections.add(Ds),proj4.Proj.projections.add(Zs),proj4.Proj.projections.add(ei),proj4.Proj.projections.add(ri),proj4.Proj.projections.add(oi),proj4.Proj.projections.add(ui),proj4.Proj.projections.add(ci),proj4.Proj.projections.add(fi),proj4.Proj.projections.add(di),proj4.Proj.projections.add(pi),proj4.Proj.projections.add(_i),proj4.Proj.projections.add(yi),proj4.Proj.projections.add(xi),proj4.Proj.projections.add(gi),proj4.Proj.projections.add(vi),proj4.Proj.projections.add(bi),proj4.Proj.projections.add(Ai),proj4.Proj.projections.add(Li),proj4.Proj.projections.add(Ti),proj4.Proj.projections.add(Bi),proj4.Proj.projections.add(zi)}(W),W}); \ No newline at end of file diff --git a/dataedit/static/images/sort_asc.png b/dataedit/static/images/sort_asc.png new file mode 100644 index 0000000000000000000000000000000000000000..e1ba61a8055fcb18273f2468d335572204667b1f GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1|*9D%+3I*bWaz@5R22v2@;zYta_*?F5u6Q zWR@in#&u+WgT?Hi<}D3B3}GOXuX|8Oj3tosHiJ3*4TN zC7>_x-r1O=t(?KoTC+`+>7&2GzdqLHBg&F)2Q?&EGZ+}|Rpsc~9`m>jw35No)z4*} HQ$iB}HK{Sd literal 0 HcmV?d00001 diff --git a/dataedit/static/images/sort_asc_disabled.png b/dataedit/static/images/sort_asc_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..fb11dfe24a6c564cb7ddf8bc96703ebb121df1e7 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S0wixl{&NRX(Vi}jAsXkC6BcOhI9!^3NY?Do zDX;f`c1`y6n0RgO@$!H7chZT&|Jn0dmaqO^XNm-CGtk!Ur<_=Jws3;%W$<+Mb6Mw<&;$T1GdZXL literal 0 HcmV?d00001 diff --git a/dataedit/static/images/sort_both.png b/dataedit/static/images/sort_both.png new file mode 100644 index 0000000000000000000000000000000000000000..af5bc7c5a10b9d6d57cb641aeec752428a07f0ca GIT binary patch literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S0wixl{&NRX6FglULp08Bycxyy87-Q;~nRxO8@-UU*I^KVWyN+&SiMHu5xDOu|HNvwzODfTdXjhVyNu1 z#7^XbGKZ7LW3XeONb$RKLeE*WhqbYpIXPIqK@r4)v+qN8um%99%MPpS9d#7Ed7SL@Bp00i_>zopr0H-Zb Aj{pDw literal 0 HcmV?d00001 diff --git a/dataedit/static/images/sort_desc.png b/dataedit/static/images/sort_desc.png new file mode 100644 index 0000000000000000000000000000000000000000..0e156deb5f61d18f9e2ec5da4f6a8c94a5b4fb41 GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1|*9D%+3I*R8JSj5R22v2@yo z(czD9$NuDl3Ljm9c#_#4$vXUz=f1~&WY3aa=h!;z7fOEN>ySP9QA=6C-^Dmb&tuM= z4Z&=WZU;2WF>e%GI&mWJk^K!jrbro{W;-I>FeCfLGJl3}+Z^2)3Kw?+EoAU?^>bP0 Hl+XkKC^j|Q{b@g3TV7E(Grjn^aLC2o)_ptHrtUEoT$S@q)~)7U@V;W{6)!%@ u>N?4t-1qslpJw9!O?PJ&w0CbyPermissions {% block after-head %} - + - - + + {% endblock after-head %} {% block after-body-bottom-js %} - + - - - - - + + + + + - + + + {% endblock after-body-bottom-js %} \ No newline at end of file From 419caab23e1733b630d3bc177e466a9f94691f86 Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Tue, 23 Aug 2022 07:32:57 +0100 Subject: [PATCH 63/79] removed source mapping --- dataedit/static/dataedit/bootstrap-select.min.js | 1 - 1 file changed, 1 deletion(-) diff --git a/dataedit/static/dataedit/bootstrap-select.min.js b/dataedit/static/dataedit/bootstrap-select.min.js index d2b306379..b9b9e6cbf 100644 --- a/dataedit/static/dataedit/bootstrap-select.min.js +++ b/dataedit/static/dataedit/bootstrap-select.min.js @@ -6,4 +6,3 @@ */ !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){"use strict";function b(a,b){return a.length===b.length&&a.every(function(a,c){return a===b[c]})}function c(a){var b,c=[],d=a&&a.options;if(a.multiple)for(var e=0,f=d.length;e]+>/g,"")),d&&(j=f(j)),j=j.toUpperCase(),g="contains"===c?j.indexOf(b)>=0:j.startsWith(b)))break}return g}function e(a){return parseInt(a,10)||0}function f(b){var c=[{re:/[\xC0-\xC6]/g,ch:"A"},{re:/[\xE0-\xE6]/g,ch:"a"},{re:/[\xC8-\xCB]/g,ch:"E"},{re:/[\xE8-\xEB]/g,ch:"e"},{re:/[\xCC-\xCF]/g,ch:"I"},{re:/[\xEC-\xEF]/g,ch:"i"},{re:/[\xD2-\xD6]/g,ch:"O"},{re:/[\xF2-\xF6]/g,ch:"o"},{re:/[\xD9-\xDC]/g,ch:"U"},{re:/[\xF9-\xFC]/g,ch:"u"},{re:/[\xC7-\xE7]/g,ch:"c"},{re:/[\xD1]/g,ch:"N"},{re:/[\xF1]/g,ch:"n"}];return a.each(c,function(){b=b?b.replace(this.re,this.ch):""}),b}function g(b){var c=arguments,d=b;[].shift.apply(c);var e,f=this.each(function(){var b=a(this);if(b.is("select")){var f=b.data("selectpicker"),g="object"==typeof d&&d;if(f){if(g)for(var h in g)g.hasOwnProperty(h)&&(f.options[h]=g[h])}else{var i=a.extend({},x.DEFAULTS,a.fn.selectpicker.defaults||{},b.data(),g);i.template=a.extend({},x.DEFAULTS.template,a.fn.selectpicker.defaults?a.fn.selectpicker.defaults.template:{},b.data().template,g.template),b.data("selectpicker",f=new x(this,i))}"string"==typeof d&&(e=f[d]instanceof Function?f[d].apply(f,c):f.options[d])}});return void 0!==e?e:f}var h=document.createElement("_");if(h.classList.toggle("c3",!1),h.classList.contains("c3")){var i=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(a,b){return 1 in arguments&&!this.contains(a)==!b?b:i.call(this,a)}}String.prototype.startsWith||function(){var a=function(){try{var a={},b=Object.defineProperty,c=b(a,a,a)&&b}catch(a){}return c}(),b={}.toString,c=function(a){if(null==this)throw new TypeError;var c=String(this);if(a&&"[object RegExp]"==b.call(a))throw new TypeError;var d=c.length,e=String(a),f=e.length,g=arguments.length>1?arguments[1]:void 0,h=g?Number(g):0;h!=h&&(h=0);var i=Math.min(Math.max(h,0),d);if(f+i>d)return!1;for(var j=-1;++j":">",'"':""","'":"'","`":"`"},n={"&":"&","<":"<",">":">",""":'"',"'":"'","`":"`"},o=function(a){var b=function(b){return a[b]},c="(?:"+Object.keys(a).join("|")+")",d=RegExp(c),e=RegExp(c,"g");return function(a){return a=null==a?"":""+a,d.test(a)?a.replace(e,b):a}},p=o(m),q=o(n),r={32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",65:"A",66:"B",67:"C",68:"D",69:"E",70:"F",71:"G",72:"H",73:"I",74:"J",75:"K",76:"L",77:"M",78:"N",79:"O",80:"P",81:"Q",82:"R",83:"S",84:"T",85:"U",86:"V",87:"W",88:"X",89:"Y",90:"Z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9"},s={ESCAPE:27,ENTER:13,SPACE:32,TAB:9,ARROW_UP:38,ARROW_DOWN:40},t={};t.full=(a.fn.dropdown.Constructor.VERSION||"").split(" ")[0].split("."),t.major=t.full[0];var u={DISABLED:"disabled",DIVIDER:"4"===t.major?"dropdown-divider":"divider",SHOW:"4"===t.major?"show":"open",DROPUP:"dropup",MENURIGHT:"dropdown-menu-right",MENULEFT:"dropdown-menu-left",BUTTONCLASS:"4"===t.major?"btn-light":"btn-default",POPOVERHEADER:"4"===t.major?"popover-header":"popover-title"},v=new RegExp(s.ARROW_UP+"|"+s.ARROW_DOWN),w=new RegExp("^"+s.TAB+"$|"+s.ESCAPE),x=(new RegExp(s.ENTER+"|"+s.SPACE),function(b,c){var d=this;j.useDefault||(a.valHooks.select.set=j._set,j.useDefault=!0),this.$element=a(b),this.$newElement=null,this.$button=null,this.$menu=null,this.options=c,this.selectpicker={main:{map:{newIndex:{},originalIndex:{}}},current:{map:{}},search:{map:{}},view:{},keydown:{keyHistory:"",resetKeyHistory:{start:function(){return setTimeout(function(){d.selectpicker.keydown.keyHistory=""},800)}}}},null===this.options.title&&(this.options.title=this.$element.attr("title"));var e=this.options.windowPadding;"number"==typeof e&&(this.options.windowPadding=[e,e,e,e]),this.val=x.prototype.val,this.render=x.prototype.render,this.refresh=x.prototype.refresh,this.setStyle=x.prototype.setStyle,this.selectAll=x.prototype.selectAll,this.deselectAll=x.prototype.deselectAll,this.destroy=x.prototype.destroy,this.remove=x.prototype.remove,this.show=x.prototype.show,this.hide=x.prototype.hide,this.init()});x.VERSION="1.13.0",x.DEFAULTS={noneSelectedText:"Nothing selected",noneResultsText:"No results matched {0}",countSelectedText:function(a,b){return 1==a?"{0} item selected":"{0} items selected"},maxOptionsText:function(a,b){return[1==a?"Limit reached ({n} item max)":"Limit reached ({n} items max)",1==b?"Group limit reached ({n} item max)":"Group limit reached ({n} items max)"]},selectAllText:"Select All",deselectAllText:"Deselect All",doneButton:!1,doneButtonText:"Close",multipleSeparator:", ",styleBase:"btn",style:"btn-default",size:"auto",title:null,selectedTextFormat:"values",width:!1,container:!1,hideDisabled:!1,showSubtext:!1,showIcon:!0,showContent:!0,dropupAuto:!0,header:!1,liveSearch:!1,liveSearchPlaceholder:null,liveSearchNormalize:!1,liveSearchStyle:"contains",actionsBox:!1,iconBase:"glyphicon",tickIcon:"glyphicon-ok",showTick:!1,template:{caret:''},maxOptions:!1,mobile:!1,selectOnTab:!1,dropdownAlignRight:!1,windowPadding:0,virtualScroll:600},"4"===t.major&&(x.DEFAULTS.style="btn-light",x.DEFAULTS.iconBase="",x.DEFAULTS.tickIcon="bs-ok-default"),x.prototype={constructor:x,init:function(){var a=this,b=this.$element.attr("id");this.$element.addClass("bs-select-hidden"),this.multiple=this.$element.prop("multiple"),this.autofocus=this.$element.prop("autofocus"),this.$newElement=this.createDropdown(),this.createLi(),this.$element.after(this.$newElement).prependTo(this.$newElement),this.$button=this.$newElement.children("button"),this.$menu=this.$newElement.children(".dropdown-menu"),this.$menuInner=this.$menu.children(".inner"),this.$searchbox=this.$menu.find("input"),this.$element.removeClass("bs-select-hidden"),!0===this.options.dropdownAlignRight&&this.$menu.addClass(u.MENURIGHT),void 0!==b&&this.$button.attr("data-id",b),this.checkDisabled(),this.clickListener(),this.options.liveSearch&&this.liveSearchListener(),this.render(),this.setStyle(),this.setWidth(),this.options.container?this.selectPosition():this.$element.on("hide.bs.select",function(){if(a.isVirtual()){var b=a.$menuInner[0],c=b.firstChild.cloneNode(!1);b.replaceChild(c,b.firstChild),b.scrollTop=0}}),this.$menu.data("this",this),this.$newElement.data("this",this),this.options.mobile&&this.mobile(),this.$newElement.on({"hide.bs.dropdown":function(b){a.$menuInner.attr("aria-expanded",!1),a.$element.trigger("hide.bs.select",b)},"hidden.bs.dropdown":function(b){a.$element.trigger("hidden.bs.select",b)},"show.bs.dropdown":function(b){a.$menuInner.attr("aria-expanded",!0),a.$element.trigger("show.bs.select",b)},"shown.bs.dropdown":function(b){a.$element.trigger("shown.bs.select",b)}}),a.$element[0].hasAttribute("required")&&this.$element.on("invalid",function(){a.$button.addClass("bs-invalid"),a.$element.on({"shown.bs.select":function(){a.$element.val(a.$element.val()).off("shown.bs.select")},"rendered.bs.select":function(){this.validity.valid&&a.$button.removeClass("bs-invalid"),a.$element.off("rendered.bs.select")}}),a.$button.on("blur.bs.select",function(){a.$element.focus().blur(),a.$button.off("blur.bs.select")})}),setTimeout(function(){a.$element.trigger("loaded.bs.select")})},createDropdown:function(){var b=this.multiple||this.options.showTick?" show-tick":"",c=this.autofocus?" autofocus":"",d=this.options.header?'
    '+this.options.header+"
    ":"",e=this.options.liveSearch?'':"",f=this.multiple&&this.options.actionsBox?'
    ":"",g=this.multiple&&this.options.doneButton?'
    ":"",h='";return a(h)},setPositionData:function(){this.selectpicker.view.canHighlight=[];for(var a=0;a=this.options.virtualScroll||!0===this.options.virtualScroll},createView:function(c,d){function e(a,d){var e,j,k,l,m,n,o,p=f.selectpicker.current.elements.length,q=[],r=void 0,s=!0,t=f.isVirtual();f.selectpicker.view.scrollTop=a,!0===t&&f.sizeInfo.hasScrollBar&&f.$menu[0].offsetWidth>f.sizeInfo.totalMenuWidth&&(f.sizeInfo.menuWidth=f.$menu[0].offsetWidth,f.sizeInfo.totalMenuWidth=f.sizeInfo.menuWidth+f.sizeInfo.scrollBarWidth,f.$menu.css("min-width",f.sizeInfo.menuWidth)),e=Math.ceil(f.sizeInfo.menuInnerHeight/f.sizeInfo.liHeight*1.5),j=Math.round(p/e)||1;for(var u=0;up-1?0:f.selectpicker.current.data[p-1].position-f.selectpicker.current.data[f.selectpicker.view.position1-1].position,y.firstChild.style.marginTop=w+"px",y.firstChild.style.marginBottom=x+"px"),y.firstChild.appendChild(z)}if(f.prevActiveIndex=f.activeIndex,f.options.liveSearch){if(c&&d){var D,E=0;f.selectpicker.view.canHighlight[E]||(E=1+f.selectpicker.view.canHighlight.slice(1).indexOf(!0)),D=f.selectpicker.view.visibleElements[E],f.selectpicker.view.currentActive&&(f.selectpicker.view.currentActive.classList.remove("active"),f.selectpicker.view.currentActive.firstChild&&f.selectpicker.view.currentActive.firstChild.classList.remove("active")),D&&(D.classList.add("active"),D.firstChild&&D.firstChild.classList.add("active")),f.activeIndex=f.selectpicker.current.map.originalIndex[E]}}else f.$menuInner.focus()}d=d||0;var f=this;this.selectpicker.current=c?this.selectpicker.search:this.selectpicker.main;var g,h,i=[];this.setPositionData(),e(d,!0),this.$menuInner.off("scroll.createView").on("scroll.createView",function(a,b){f.noScroll||e(this.scrollTop,b),f.noScroll=!1}),a(window).off("resize.createView").on("resize.createView",function(){e(f.$menuInner[0].scrollTop)})},createLi:function(){var b,c=this,d=[],e=0,f=0,g=[],h=0,i=0,j=-1;this.selectpicker.view.titleOption||(this.selectpicker.view.titleOption=document.createElement("option"));var k={span:document.createElement("span"),subtext:document.createElement("small"),a:document.createElement("a"),li:document.createElement("li"),whitespace:document.createTextNode(" ")},l=k.span.cloneNode(!1),m=document.createDocumentFragment();l.className=c.options.iconBase+" "+c.options.tickIcon+" check-mark",k.a.appendChild(l),k.a.setAttribute("role","option"),k.subtext.className="text-muted",k.text=k.span.cloneNode(!1),k.text.className="text";var n=function(a,b,c,d){var e=k.li.cloneNode(!1);return a&&(1===a.nodeType||11===a.nodeType?e.appendChild(a):e.innerHTML=a),void 0!==c&&""!==c&&(e.className=c),void 0!==d&&null!==d&&e.classList.add("optgroup-"+d),e},o=function(a,b,c){var d=k.a.cloneNode(!0);return a&&(11===a.nodeType?d.appendChild(a):d.insertAdjacentHTML("beforeend",a)),void 0!==b&""!==b&&(d.className=b),"4"===t.major&&d.classList.add("dropdown-item"),c&&d.setAttribute("style",c),d},q=function(a){var b,d,e=k.text.cloneNode(!1);if(a.optionContent)e.innerHTML=a.optionContent;else{if(e.textContent=a.text,a.optionIcon){var f=k.whitespace.cloneNode(!1);d=k.span.cloneNode(!1),d.className=c.options.iconBase+" "+a.optionIcon,m.appendChild(d),m.appendChild(f)}a.optionSubtext&&(b=k.subtext.cloneNode(!1),b.textContent=a.optionSubtext,e.appendChild(b))}return m.appendChild(e),m},r=function(a){var b,d,e=k.text.cloneNode(!1);if(e.textContent=a.labelEscaped,a.labelIcon){var f=k.whitespace.cloneNode(!1);d=k.span.cloneNode(!1),d.className=c.options.iconBase+" "+a.labelIcon,m.appendChild(d),m.appendChild(f)}return a.labelSubtext&&(b=k.subtext.cloneNode(!1),b.textContent=a.labelSubtext,e.appendChild(b)),m.appendChild(e),m};if(this.options.title&&!this.multiple){j--;var s=this.$element[0],v=!1,w=!this.selectpicker.view.titleOption.parentNode;if(w){this.selectpicker.view.titleOption.className="bs-title-option",this.selectpicker.view.titleOption.value="";v=void 0===a(s.options[s.selectedIndex]).attr("selected")&&void 0===this.$element.data("selected")}(w||0!==this.selectpicker.view.titleOption.index)&&s.insertBefore(this.selectpicker.view.titleOption,s.firstChild),v&&(s.selectedIndex=0)}var x=this.$element.find("option");x.each(function(k){var l=a(this);if(j++,!l.hasClass("bs-title-option")){var m,s,t=l.data(),v=this.className||"",w=p(this.style.cssText),y=t.content,z=this.textContent,A=t.tokens,B=t.subtext,C=t.icon,D=l.parent(),E=D[0],F="OPTGROUP"===E.tagName,G=F&&E.disabled,H=this.disabled||G,I=this.previousElementSibling&&"OPTGROUP"===this.previousElementSibling.tagName,J=D.data();if(!0===t.hidden||c.options.hideDisabled&&(H&&!F||G)){if(m=t.prevHiddenIndex,l.next().data("prevHiddenIndex",void 0!==m?m:k),j--,!I&&void 0!==m){var K=x[m].previousElementSibling;K&&"OPTGROUP"===K.tagName&&!K.disabled&&(I=!0)}return void(I&&"divider"!==g[g.length-1].type&&(j++,d.push(n(!1,0,u.DIVIDER,h+"div")),g.push({type:"divider",optID:h,originalIndex:k})))}if(F&&!0!==t.divider){if(c.options.hideDisabled&&H){if(void 0===J.allOptionsDisabled){var L=D.children();D.data("allOptionsDisabled",L.filter(":disabled").length===L.length)}if(D.data("allOptionsDisabled"))return void j--}var M=" "+E.className||"";if(!this.previousElementSibling){h+=1;var N=E.label,O=p(N),P=J.subtext,Q=J.icon;0!==k&&d.length>0&&(j++,d.push(n(!1,0,u.DIVIDER,h+"div")),g.push({type:"divider",optID:h,originalIndex:k})),j++;var R=r({labelEscaped:O,labelSubtext:P,labelIcon:Q});d.push(n(R,0,"dropdown-header"+M,h)),g.push({content:O,subtext:P,type:"optgroup-label",optID:h,originalIndex:k}),i=j-1}if(c.options.hideDisabled&&H||!0===t.hidden)return void j--;s=q({text:z,optionContent:y,optionSubtext:B,optionIcon:C}),d.push(n(o(s,"opt "+v+M,w),0,"",h)),g.push({content:y||z,subtext:B,tokens:A,type:"option",optID:h,headerIndex:i,lastIndex:i+E.childElementCount,originalIndex:k,data:t}),e++}else if(!0===t.divider)d.push(n(!1,0,"divider")),g.push({type:"divider",originalIndex:k});else{if(!I&&c.options.hideDisabled&&void 0!==(m=t.prevHiddenIndex)){var K=x[m].previousElementSibling;K&&"OPTGROUP"===K.tagName&&!K.disabled&&(I=!0)}I&&"divider"!==g[g.length-1].type&&(j++,d.push(n(!1,0,u.DIVIDER,h+"div")),g.push({type:"divider",optID:h,originalIndex:k})),s=q({text:z,optionContent:y,optionSubtext:B,optionIcon:C}),d.push(n(o(s,v,w))),g.push({content:y||z,subtext:B,tokens:A,type:"option",originalIndex:k,data:t}),e++}c.selectpicker.main.map.newIndex[k]=j,c.selectpicker.main.map.originalIndex[j]=k;var S=g[g.length-1];S.disabled=H;var T=0;S.content&&(T+=S.content.length),S.subtext&&(T+=S.subtext.length),C&&(T+=1),T>f&&(f=T,b=d[d.length-1])}}),this.selectpicker.main.elements=d,this.selectpicker.main.data=g,this.selectpicker.current=this.selectpicker.main,this.selectpicker.view.widestOption=b,this.selectpicker.view.availableOptionsCount=e},findLis:function(){return this.$menuInner.find(".inner > li")},render:function(){var a=this,b=this.$element.find("option"),c=[],d=[];this.togglePlaceholder(),this.tabIndex();for(var e=0,f=this.selectpicker.main.elements.length;e
    ':"";i=a.options.showSubtext&&k.subtext&&!a.multiple?' '+k.subtext+"":"",j=h.title?h.title:k.content&&a.options.showContent?k.content.toString():l+h.innerHTML.trim()+i,d.push(j)}}var m=this.multiple?d.join(this.options.multipleSeparator):d[0];if(c.length>50&&(m+="..."),this.multiple&&-1!==this.options.selectedTextFormat.indexOf("count")){var n=this.options.selectedTextFormat.split(">");if(n.length>1&&c.length>n[1]||1===n.length&&c.length>=2){var o=this.selectpicker.view.availableOptionsCount;m=("function"==typeof this.options.countSelectedText?this.options.countSelectedText(c.length,o):this.options.countSelectedText).replace("{0}",c.length.toString()).replace("{1}",o.toString())}}void 0==this.options.title&&(this.options.title=this.$element[0].title),"static"==this.options.selectedTextFormat&&(m=this.options.title),m||(m=void 0!==this.options.title?this.options.title:this.options.noneSelectedText),this.$button[0].title=q(m.replace(/<[^>]*>?/g,"").trim()),this.$button.find(".filter-option-inner-inner")[0].innerHTML=m,this.$element.trigger("rendered.bs.select")},setStyle:function(a,b){this.$element.attr("class")&&this.$newElement.addClass(this.$element.attr("class").replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi,""));var c=a||this.options.style;"add"==b?this.$button.addClass(c):"remove"==b?this.$button.removeClass(c):(this.$button.removeClass(this.options.style),this.$button.addClass(c))},liHeight:function(b){if(b||!1!==this.options.size&&!this.sizeInfo){this.sizeInfo||(this.sizeInfo={});var c=document.createElement("div"),d=document.createElement("div"),f=document.createElement("div"),g=document.createElement("ul"),h=document.createElement("li"),i=document.createElement("li"),j=document.createElement("li"),k=document.createElement("a"),l=document.createElement("span"),m=this.options.header&&this.$menu.find("."+u.POPOVERHEADER).length>0?this.$menu.find("."+u.POPOVERHEADER)[0].cloneNode(!0):null,n=this.options.liveSearch?document.createElement("div"):null,o=this.options.actionsBox&&this.multiple&&this.$menu.find(".bs-actionsbox").length>0?this.$menu.find(".bs-actionsbox")[0].cloneNode(!0):null,p=this.options.doneButton&&this.multiple&&this.$menu.find(".bs-donebutton").length>0?this.$menu.find(".bs-donebutton")[0].cloneNode(!0):null;if(this.sizeInfo.selectWidth=this.$newElement[0].offsetWidth,l.className="text",k.className="dropdown-item",c.className=this.$menu[0].parentNode.className+" "+u.SHOW,c.style.width=this.sizeInfo.selectWidth+"px",d.className="dropdown-menu "+u.SHOW,f.className="inner "+u.SHOW,g.className="dropdown-menu inner "+("4"===t.major?u.SHOW:""),h.className=u.DIVIDER,i.className="dropdown-header",l.appendChild(document.createTextNode("Inner text")),k.appendChild(l),j.appendChild(k),i.appendChild(l.cloneNode(!0)),this.selectpicker.view.widestOption&&g.appendChild(this.selectpicker.view.widestOption.cloneNode(!0)),g.appendChild(j),g.appendChild(h),g.appendChild(i),m&&d.appendChild(m),n){var q=document.createElement("input");n.className="bs-searchbox",q.className="form-control",n.appendChild(q),d.appendChild(n)}o&&d.appendChild(o),f.appendChild(g),d.appendChild(f),p&&d.appendChild(p),c.appendChild(d),document.body.appendChild(c);var r,s=k.offsetHeight,v=i?i.offsetHeight:0,w=m?m.offsetHeight:0,x=n?n.offsetHeight:0,y=o?o.offsetHeight:0,z=p?p.offsetHeight:0,A=a(h).outerHeight(!0),B=!!window.getComputedStyle&&window.getComputedStyle(d),C=d.offsetWidth,D=B?null:a(d),E={vert:e(B?B.paddingTop:D.css("paddingTop"))+e(B?B.paddingBottom:D.css("paddingBottom"))+e(B?B.borderTopWidth:D.css("borderTopWidth"))+e(B?B.borderBottomWidth:D.css("borderBottomWidth")),horiz:e(B?B.paddingLeft:D.css("paddingLeft"))+e(B?B.paddingRight:D.css("paddingRight"))+e(B?B.borderLeftWidth:D.css("borderLeftWidth"))+e(B?B.borderRightWidth:D.css("borderRightWidth"))},F={vert:E.vert+e(B?B.marginTop:D.css("marginTop"))+e(B?B.marginBottom:D.css("marginBottom"))+2,horiz:E.horiz+e(B?B.marginLeft:D.css("marginLeft"))+e(B?B.marginRight:D.css("marginRight"))+2};f.style.overflowY="scroll",r=d.offsetWidth-C,document.body.removeChild(c),this.sizeInfo.liHeight=s,this.sizeInfo.dropdownHeaderHeight=v,this.sizeInfo.headerHeight=w,this.sizeInfo.searchHeight=x,this.sizeInfo.actionsHeight=y,this.sizeInfo.doneButtonHeight=z,this.sizeInfo.dividerHeight=A,this.sizeInfo.menuPadding=E,this.sizeInfo.menuExtras=F,this.sizeInfo.menuWidth=C,this.sizeInfo.totalMenuWidth=this.sizeInfo.menuWidth,this.sizeInfo.scrollBarWidth=r,this.sizeInfo.selectHeight=this.$newElement[0].offsetHeight,this.setPositionData()}},getSelectPosition:function(){var b,c=this,d=a(window),e=c.$newElement.offset(),f=a(c.options.container);c.options.container&&!f.is("body")?(b=f.offset(),b.top+=parseInt(f.css("borderTopWidth")),b.left+=parseInt(f.css("borderLeftWidth"))):b={top:0,left:0};var g=c.options.windowPadding;this.sizeInfo.selectOffsetTop=e.top-b.top-d.scrollTop(),this.sizeInfo.selectOffsetBot=d.height()-this.sizeInfo.selectOffsetTop-this.sizeInfo.selectHeight-b.top-g[2],this.sizeInfo.selectOffsetLeft=e.left-b.left-d.scrollLeft(),this.sizeInfo.selectOffsetRight=d.width()-this.sizeInfo.selectOffsetLeft-this.sizeInfo.selectWidth-b.left-g[1],this.sizeInfo.selectOffsetTop-=g[0],this.sizeInfo.selectOffsetLeft-=g[3]},setMenuSize:function(a){this.getSelectPosition();var b,c,d,e,f,g,h,i=this.sizeInfo.selectWidth,j=this.sizeInfo.liHeight,k=this.sizeInfo.headerHeight,l=this.sizeInfo.searchHeight,m=this.sizeInfo.actionsHeight,n=this.sizeInfo.doneButtonHeight,o=this.sizeInfo.dividerHeight,p=this.sizeInfo.menuPadding,q=0;if(this.options.dropupAuto&&(h=j*this.selectpicker.current.elements.length+p.vert,this.$newElement.toggleClass(u.DROPUP,this.sizeInfo.selectOffsetTop-this.sizeInfo.selectOffsetBot>this.sizeInfo.menuExtras.vert&&h+this.sizeInfo.menuExtras.vert+50>this.sizeInfo.selectOffsetBot)),"auto"===this.options.size)e=this.selectpicker.current.elements.length>3?3*this.sizeInfo.liHeight+this.sizeInfo.menuExtras.vert-2:0,c=this.sizeInfo.selectOffsetBot-this.sizeInfo.menuExtras.vert,d=e+k+l+m+n,g=Math.max(e-p.vert,0),this.$newElement.hasClass(u.DROPUP)&&(c=this.sizeInfo.selectOffsetTop-this.sizeInfo.menuExtras.vert),f=c,b=c-k-l-m-n-p.vert;else if(this.options.size&&"auto"!=this.options.size&&this.selectpicker.current.elements.length>this.options.size){for(var r=0;rthis.sizeInfo.selectOffsetRight&&this.sizeInfo.selectOffsetRightthis.sizeInfo.menuInnerHeight&&(this.sizeInfo.hasScrollBar=!0,this.sizeInfo.totalMenuWidth=this.sizeInfo.menuWidth+this.sizeInfo.scrollBarWidth,this.$menu.css("min-width",this.sizeInfo.totalMenuWidth)),this.dropdown&&this.dropdown._popper&&this.dropdown._popper.update()},setSize:function(b){if(this.liHeight(b),this.options.header&&this.$menu.css("padding-top",0),!1!==this.options.size){var c,d=this,e=a(window),f=0;this.setMenuSize(),"auto"===this.options.size?(this.$searchbox.off("input.setMenuSize propertychange.setMenuSize").on("input.setMenuSize propertychange.setMenuSize",function(){return d.setMenuSize()}),e.off("resize.setMenuSize scroll.setMenuSize").on("resize.setMenuSize scroll.setMenuSize",function(){return d.setMenuSize()})):this.options.size&&"auto"!=this.options.size&&this.selectpicker.current.elements.length>this.options.size&&(this.$searchbox.off("input.setMenuSize propertychange.setMenuSize"),e.off("resize.setMenuSize scroll.setMenuSize")),b?f=this.$menuInner[0].scrollTop:d.multiple||"number"==typeof(c=d.selectpicker.main.map.newIndex[d.$element[0].selectedIndex])&&!1!==d.options.size&&(f=d.sizeInfo.liHeight*c,f=f-d.sizeInfo.menuInnerHeight/2+d.sizeInfo.liHeight/2),d.createView(!1,f)}},setWidth:function(){var a=this;"auto"===this.options.width?requestAnimationFrame(function(){a.$menu.css("min-width","0"),a.liHeight(),a.setMenuSize();var b=a.$newElement.clone().appendTo("body"),c=b.css("width","auto").children("button").outerWidth();b.remove(),a.sizeInfo.selectWidth=Math.max(a.sizeInfo.totalMenuWidth,c),a.$newElement.css("width",a.sizeInfo.selectWidth+"px")}):"fit"===this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width","").addClass("fit-width")):this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width",this.options.width)):(this.$menu.css("min-width",""),this.$newElement.css("width","")),this.$newElement.hasClass("fit-width")&&"fit"!==this.options.width&&this.$newElement.removeClass("fit-width")},selectPosition:function(){this.$bsContainer=a('
    ');var b,c,d,e=this,f=a(this.options.container),g=function(a){var g={};e.$bsContainer.addClass(a.attr("class").replace(/form-control|fit-width/gi,"")).toggleClass(u.DROPUP,a.hasClass(u.DROPUP)),b=a.offset(),f.is("body")?c={top:0,left:0}:(c=f.offset(),c.top+=parseInt(f.css("borderTopWidth"))-f.scrollTop(),c.left+=parseInt(f.css("borderLeftWidth"))-f.scrollLeft()),d=a.hasClass(u.DROPUP)?0:a[0].offsetHeight,t.major<4&&(g.top=b.top-c.top+d,g.left=b.left-c.left),g.width=a[0].offsetWidth,e.$bsContainer.css(g)};this.$button.on("click.bs.dropdown.data-api",function(){e.isDisabled()||(g(e.$newElement),e.$bsContainer.appendTo(e.options.container).toggleClass(u.SHOW,!e.$button.hasClass(u.SHOW)).append(e.$menu))}),a(window).on("resize scroll",function(){g(e.$newElement)}),this.$element.on("hide.bs.select",function(){e.$menu.data("height",e.$menu.height()),e.$bsContainer.detach()})},setOptionStatus:function(){var a=this,b=this.$element.find("option");if(a.noScroll=!1,a.selectpicker.view.visibleElements&&a.selectpicker.view.visibleElements.length)for(var c=0;c3&&!b.dropdown&&(b.dropdown=b.$button.data("bs.dropdown"),b.dropdown._menu=b.$menu[0])}),this.$button.on("click.bs.dropdown.data-api",function(){b.$newElement.hasClass(u.SHOW)||b.setSize()}),this.$element.on("shown.bs.select",function(){b.$menuInner[0].scrollTop!==b.selectpicker.view.scrollTop&&(b.$menuInner[0].scrollTop=b.selectpicker.view.scrollTop),b.options.liveSearch?b.$searchbox.focus():b.$menuInner.focus()}),this.$menuInner.on("click","li a",function(d,e){var f=a(this),g=b.isVirtual()?b.selectpicker.view.position0:0,h=b.selectpicker.current.map.originalIndex[f.parent().index()+g],i=c(b.$element[0]),j=b.$element.prop("selectedIndex"),l=!0;if(b.multiple&&1!==b.options.maxOptions&&d.stopPropagation(),d.preventDefault(),!b.isDisabled()&&!f.parent().hasClass(u.DISABLED)){var m=b.$element.find("option"),n=m.eq(h),o=n.prop("selected"),p=n.parent("optgroup"),q=b.options.maxOptions,r=p.data("maxOptions")||!1;if(h===b.activeIndex&&(e=!0),e||(b.prevActiveIndex=b.activeIndex,b.activeIndex=void 0),b.multiple){if(n.prop("selected",!o),b.setSelected(h,!o),f.blur(),!1!==q||!1!==r){var s=q
    ');x[2]&&(y=y.replace("{var}",x[2][q>1?0:1]),z=z.replace("{var}",x[2][r>1?0:1])),n.prop("selected",!1),b.$menu.append(A),q&&s&&(A.append(a("
    "+y+"
    ")),l=!1,b.$element.trigger("maxReached.bs.select")),r&&t&&(A.append(a("
    "+z+"
    ")),l=!1,b.$element.trigger("maxReachedGrp.bs.select")),setTimeout(function(){b.setSelected(h,!1)},10),A.delay(750).fadeOut(300,function(){a(this).remove()})}}}else m.prop("selected",!1),n.prop("selected",!0),b.setSelected(h,!0);!b.multiple||b.multiple&&1===b.options.maxOptions?b.$button.focus():b.options.liveSearch&&b.$searchbox.focus(),l&&(i!=c(b.$element[0])&&b.multiple||j!=b.$element.prop("selectedIndex")&&!b.multiple)&&(k=[h,n.prop("selected"),i],b.$element.triggerNative("change"))}}),this.$menu.on("click","li."+u.DISABLED+" a, ."+u.POPOVERHEADER+", ."+u.POPOVERHEADER+" :not(.close)",function(c){c.currentTarget==this&&(c.preventDefault(),c.stopPropagation(),b.options.liveSearch&&!a(c.target).hasClass("close")?b.$searchbox.focus():b.$button.focus())}),this.$menuInner.on("click",".divider, .dropdown-header",function(a){a.preventDefault(),a.stopPropagation(),b.options.liveSearch?b.$searchbox.focus():b.$button.focus()}),this.$menu.on("click","."+u.POPOVERHEADER+" .close",function(){b.$button.click()}),this.$searchbox.on("click",function(a){a.stopPropagation()}),this.$menu.on("click",".actions-btn",function(c){b.options.liveSearch?b.$searchbox.focus():b.$button.focus(),c.preventDefault(),c.stopPropagation(),a(this).hasClass("bs-select-all")?b.selectAll():b.deselectAll()}),this.$element.on({change:function(){b.render(),b.$element.trigger("changed.bs.select",k),k=null},focus:function(){b.$button.focus()}})},liveSearchListener:function(){var a=this,b=document.createElement("li");this.$button.on("click.bs.dropdown.data-api",function(){a.$searchbox.val()&&a.$searchbox.val("")}),this.$searchbox.on("click.bs.dropdown.data-api focus.bs.dropdown.data-api touchend.bs.dropdown.data-api",function(a){a.stopPropagation()}),this.$searchbox.on("input propertychange",function(){var c=a.$searchbox.val();if(a.selectpicker.search.map.newIndex={},a.selectpicker.search.map.originalIndex={},a.selectpicker.search.elements=[],a.selectpicker.search.data=[],c){var e,f=[],g=c.toUpperCase(),h={},i=[],j=a._searchStyle(),k=a.options.liveSearchNormalize;a._$lisSelected=a.$menuInner.find(".selected");for(var e=0;e0&&(h[l.headerIndex-1]=!0,i.push(l.headerIndex-1)),h[l.headerIndex]=!0,i.push(l.headerIndex),h[l.lastIndex+1]=!0),h[e]&&"optgroup-label"!==l.type&&i.push(e)}for(var e=0,m=i.length;e=48&&b.which<=57||b.which>=96&&b.which<=105||b.which>=65&&b.which<=90)&&k.$button.trigger("click.bs.dropdown.data-api"),b.which===s.ESCAPE&&e&&(b.preventDefault(),k.$button.trigger("click.bs.dropdown.data-api").focus()),o){if(!l.length)return;c=!0===q?l.index(l.filter(".active")):k.selectpicker.current.map.newIndex[k.activeIndex],void 0===c&&(c=-1),-1!==c&&(f=k.selectpicker.current.elements[c+t],f.classList.remove("active"),f.firstChild&&f.firstChild.classList.remove("active")),b.which===s.ARROW_UP?(-1!==c&&c--,c+t<0&&(c+=l.length),k.selectpicker.view.canHighlight[c+t]||-1===(c=k.selectpicker.view.canHighlight.slice(0,c+t).lastIndexOf(!0)-t)&&(c=l.length-1)):(b.which===s.ARROW_DOWN||n)&&(c++,c+t>=k.selectpicker.view.canHighlight.length&&(c=0),k.selectpicker.view.canHighlight[c+t]||(c=c+1+k.selectpicker.view.canHighlight.slice(c+t+1).indexOf(!0))),b.preventDefault();var x=t+c;b.which===s.ARROW_UP?0===t&&c===l.length-1?(k.$menuInner[0].scrollTop=k.$menuInner[0].scrollHeight,x=k.selectpicker.current.elements.length-1):(g=k.selectpicker.current.data[x],h=g.position-g.height,m=hp)),f=k.selectpicker.current.elements[x],f.classList.add("active"),f.firstChild&&f.firstChild.classList.add("active"),k.activeIndex=k.selectpicker.current.map.originalIndex[x],k.selectpicker.view.currentActive=f,m&&(k.$menuInner[0].scrollTop=h),k.options.liveSearch?k.$searchbox.focus():i.focus()}else if(!i.is("input")&&!w.test(b.which)||b.which===s.SPACE&&k.selectpicker.keydown.keyHistory){var y,z,A=[];b.preventDefault(),k.selectpicker.keydown.keyHistory+=r[b.which],k.selectpicker.keydown.resetKeyHistory.cancel&&clearTimeout(k.selectpicker.keydown.resetKeyHistory.cancel),k.selectpicker.keydown.resetKeyHistory.cancel=k.selectpicker.keydown.resetKeyHistory.start(),z=k.selectpicker.keydown.keyHistory,/^(.)\1+$/.test(z)&&(z=z.charAt(0));for(var B=0;B0?(h=g.position-g.height,m=!0):(h=g.position-k.sizeInfo.menuInnerHeight,m=g.position>p+k.sizeInfo.menuInnerHeight),f=k.selectpicker.current.elements[y],f.classList.add("active"),f.firstChild&&f.firstChild.classList.add("active"),k.activeIndex=A[E],f.firstChild.focus(),m&&(k.$menuInner[0].scrollTop=h),i.focus()}}e&&(b.which===s.SPACE&&!k.selectpicker.keydown.keyHistory||b.which===s.ENTER||b.which===s.TAB&&k.options.selectOnTab)&&(b.which!==s.SPACE&&b.preventDefault(),k.options.liveSearch&&b.which===s.SPACE||(k.$menuInner.find(".active a").trigger("click",!0),i.focus(),k.options.liveSearch||(b.preventDefault(),a(document).data("spaceSelect",!0))))},mobile:function(){this.$element.addClass("mobile-device")},refresh:function(){var b=a.extend({},this.options,this.$element.data());this.options=b,this.selectpicker.main.map.newIndex={},this.selectpicker.main.map.originalIndex={},this.createLi(),this.checkDisabled(),this.render(),this.setStyle(),this.setWidth(),this.setSize(!0),this.$element.trigger("refreshed.bs.select")},hide:function(){this.$newElement.hide()},show:function(){this.$newElement.show()},remove:function(){this.$newElement.remove(),this.$element.remove()},destroy:function(){this.$newElement.before(this.$element).remove(),this.$bsContainer?this.$bsContainer.remove():this.$menu.remove(),this.$element.off(".bs.select").removeData("selectpicker").removeClass("bs-select-hidden selectpicker")}};var y=a.fn.selectpicker;a.fn.selectpicker=g,a.fn.selectpicker.Constructor=x,a.fn.selectpicker.noConflict=function(){return a.fn.selectpicker=y,this},a(document).off("keydown.bs.dropdown.data-api").on("keydown.bs.select",'.bootstrap-select [data-toggle="dropdown"], .bootstrap-select [role="listbox"], .bs-searchbox input',x.prototype.keydown).on("focusin.modal",'.bootstrap-select [data-toggle="dropdown"], .bootstrap-select [role="listbox"], .bs-searchbox input',function(a){a.stopPropagation()}),a(window).on("load.bs.select.data-api",function(){a(".selectpicker").each(function(){var b=a(this);g.call(b,b.data())})})}(a)}); -//# sourceMappingURL=bootstrap-select.js.map \ No newline at end of file From b281971c96a3d7822d816b8de0120fb8ab3bd516 Mon Sep 17 00:00:00 2001 From: jh-RLI Date: Tue, 23 Aug 2022 11:46:55 +0200 Subject: [PATCH 64/79] add grouping to CATEGORY_OPTIONS to make overview categrory more visible and separate it from the general tutorial categories --- tutorials/models.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/tutorials/models.py b/tutorials/models.py index b6cddeebf..95e297c10 100644 --- a/tutorials/models.py +++ b/tutorials/models.py @@ -3,13 +3,17 @@ # add options if needed CATEGORY_OPTIONS = [ - ("general", "General"), - ("publication", "Publication/Licensing"), - ("io", "Upload/Download"), - ("data_structure", "Data Structure"), - ("ontology", "Ontology"), - ("other", "Other Topics"), - ("overview", "Overview"), # TODO: limit access / number + ("Training", [ + ("overview", "Overview"), # TODO: limit access / number + ]), + ("Tutorial", [ + ("general", "General"), + ("publication", "Publication/Licensing"), + ("io", "Upload/Download"), + ("data_structure", "Data Structure"), + ("ontology", "Ontology"), + ("other", "Other Topics"), + ]) ] LEVEL_OPTIONS = [(1, "Beginner"), (2, "Intermediate"), (3, "Expert")] From e0f50f5d0e2ce643c1b63a23a2e095f0a29bfbf2 Mon Sep 17 00:00:00 2001 From: jh-RLI Date: Tue, 23 Aug 2022 11:51:43 +0200 Subject: [PATCH 65/79] add migration: alter tutorial category options --- .../migrations/0011_alter_tutorial_category.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 tutorials/migrations/0011_alter_tutorial_category.py diff --git a/tutorials/migrations/0011_alter_tutorial_category.py b/tutorials/migrations/0011_alter_tutorial_category.py new file mode 100644 index 000000000..a775bf106 --- /dev/null +++ b/tutorials/migrations/0011_alter_tutorial_category.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.13 on 2022-08-23 09:50 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('tutorials', '0010_alter_tutorial_category'), + ] + + operations = [ + migrations.AlterField( + model_name='tutorial', + name='category', + field=models.CharField(blank=True, choices=[('Training', [('overview', 'Overview')]), ('Tutorial', [('general', 'General'), ('publication', 'Publication/Licensing'), ('io', 'Upload/Download'), ('data_structure', 'Data Structure'), ('ontology', 'Ontology'), ('other', 'Other Topics')])], max_length=15), + ), + ] From abe91f5617038e193fc67da88f702ba3b0fc5b0a Mon Sep 17 00:00:00 2001 From: Christian Winger Date: Tue, 23 Aug 2022 13:13:04 +0100 Subject: [PATCH 66/79] update filter only when closing tags select box --- dataedit/templates/dataedit/filter.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/dataedit/templates/dataedit/filter.html b/dataedit/templates/dataedit/filter.html index 1e6a93c8f..fb508fbb2 100644 --- a/dataedit/templates/dataedit/filter.html +++ b/dataedit/templates/dataedit/filter.html @@ -80,10 +80,16 @@
    Tags
    }) }) - /* update filter when closing tag select dropdown */ + /* update filter when changing selection */ + /* $('#tag-select').on('change', function (e) { $("#form-filter").submit(); }); + */ + /* update filter when closing tag select dropdown */ + $('#tag-select').on('hide.bs.select', function (e) { + $("#form-filter").submit(); + }); /* also update filter if leave search field */ $('#search-filter').on('blur', function (e) { $("#form-filter").submit(); From 6b44592f6098d35ee7eea6013768f7b03abc0674 Mon Sep 17 00:00:00 2001 From: jh-RLI Date: Tue, 23 Aug 2022 20:17:19 +0200 Subject: [PATCH 67/79] remove deprecated settings file for a external markdown editor that is not used anymore --- oeplatform/martor_settings.py | 42 ----------------------------------- 1 file changed, 42 deletions(-) delete mode 100644 oeplatform/martor_settings.py diff --git a/oeplatform/martor_settings.py b/oeplatform/martor_settings.py deleted file mode 100644 index 613bb4b74..000000000 --- a/oeplatform/martor_settings.py +++ /dev/null @@ -1,42 +0,0 @@ -# Global martor settings - -# Input: string boolean, `true/false` -MARTOR_ENABLE_CONFIGS = { - 'emoji': 'true', # to enable/disable emoji icons. - 'imgur': 'true', # to enable/disable imgur/custom uploader. - 'mention': 'false', # to enable/disable mention - 'jquery': 'true', # to include/revoke jquery (require for admin default django) - 'living': 'false', # to enable/disable live updates in preview - 'spellcheck': 'false', # to enable/disable spellcheck in form textareas - 'hljs': 'true', # to enable/disable hljs highlighting in preview -} - -# To setup the martor editor with label or not (default is False) -MARTOR_ENABLE_LABEL = False - -# Imgur API Keys -MARTOR_IMGUR_CLIENT_ID = 'your-client-id' -MARTOR_IMGUR_API_KEY = 'your-api-key' - -# Safe Mode -MARTOR_MARKDOWN_SAFE_MODE = True # default - -# Markdownify -MARTOR_MARKDOWNIFY_FUNCTION = 'martor.utils.markdownify' # default -MARTOR_MARKDOWNIFY_URL = '/martor/markdownify/' # default - -# Upload to locale storage -import time -MARTOR_UPLOAD_PATH = 'images/uploads/{}'.format(time.strftime("%Y/%m/%d/")) -MARTOR_UPLOAD_URL = '/tutorials/uploader/' # change to local uploader - -# Maximum Upload Image -# 2.5MB - 2621440 -# 5MB - 5242880 -# 10MB - 10485760 -# 20MB - 20971520 -# 50MB - 5242880 -# 100MB 104857600 -# 250MB - 214958080 -# 500MB - 429916160 -MAX_IMAGE_UPLOAD_SIZE = 5242880 # 5MB \ No newline at end of file From 9ea3aa2ce1602b16720e0a14006a8418fedfb2b1 Mon Sep 17 00:00:00 2001 From: jh-RLI Date: Tue, 23 Aug 2022 23:37:35 +0200 Subject: [PATCH 68/79] global function to check the page the user was at before navigating to the standalone or table specific metaEditor and add as cancle url to metaEdit context --- dataedit/views.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dataedit/views.py b/dataedit/views.py index a3484fc69..8a22c2400 100644 --- a/dataedit/views.py +++ b/dataedit/views.py @@ -1725,6 +1725,8 @@ def get(self, request, schema='model_draft', table=None): return render(request, "dataedit/wizard.html", context=context) +def get_cancle_state(request): + return request.META.get('HTTP_REFERER') class MetaEditView(LoginRequiredMixin, View): """Metadata editor (cliet side json forms).""" @@ -1748,7 +1750,7 @@ def get(self, request, schema, table): "url_table_id": url_table_id, "url_api_meta": reverse('api_table_meta', kwargs={"schema": schema, "table": table}), "url_view_table": reverse('view', kwargs={"schema": schema, "table": table}), - "cancle_url": redirect('input', schema), + "cancle_url": get_cancle_state(self.request), "standalone": False }), "can_add": can_add @@ -1763,9 +1765,7 @@ def get(self, request, schema, table): class StandaloneMetaEditView(LoginRequiredMixin, View): def get(self, request): - def get_cancle_state(request): - return request.META.get('HTTP_REFERER') - + context_dict = { "config": json.dumps({ "cancle_url": get_cancle_state(self.request), From 81b488f196ae5bdbdd6bc4c91145150d36b7f9ec Mon Sep 17 00:00:00 2001 From: jh-RLI Date: Tue, 23 Aug 2022 23:52:53 +0200 Subject: [PATCH 69/79] update changelog --- versions/changelogs/current.md | 1 + 1 file changed, 1 insertion(+) diff --git a/versions/changelogs/current.md b/versions/changelogs/current.md index e38ff8af7..bbc07633a 100644 --- a/versions/changelogs/current.md +++ b/versions/changelogs/current.md @@ -1,5 +1,6 @@ ### Changes ### Features +- Add a standalone version of the metaEditor. It is now possible to create and download an oemetadata json file without creating a data-table. PR#1020 ### Bugs \ No newline at end of file From b7d15a6b9f4e1f77ec6e640412e62981548a65ce Mon Sep 17 00:00:00 2001 From: jh-RLI <38939526+jh-RLI@users.noreply.github.com> Date: Wed, 24 Aug 2022 10:33:59 +0200 Subject: [PATCH 70/79] Update Changelog --- versions/changelogs/current.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/versions/changelogs/current.md b/versions/changelogs/current.md index bab317549..a7bf2be33 100644 --- a/versions/changelogs/current.md +++ b/versions/changelogs/current.md @@ -3,7 +3,8 @@ - Add the OEPlatypus to 404 page (PR #999) - Update UI and description text for dataedit search and filter funtionality (PR#1007) +- Add exception and test for invalid tags, make tag usage count more robust (PR#1035) ### Features -### Bugs \ No newline at end of file +### Bugs From 632f9b7539f8b43f7e274cf86e9c0ceb01504d9b Mon Sep 17 00:00:00 2001 From: jh-RLI Date: Wed, 24 Aug 2022 10:53:24 +0200 Subject: [PATCH 71/79] Update changelog --- versions/changelogs/current.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/versions/changelogs/current.md b/versions/changelogs/current.md index a7bf2be33..5394ba176 100644 --- a/versions/changelogs/current.md +++ b/versions/changelogs/current.md @@ -1,9 +1,9 @@ ### Changes - Add a tag color indicator to the tag filter dropdown (PR#1004) - Add the OEPlatypus to 404 page (PR #999) - -- Update UI and description text for dataedit search and filter funtionality (PR#1007) -- Add exception and test for invalid tags, make tag usage count more robust (PR#1035) +- Update UI and description text for dataedit search and filter funtionality (PR#1007) +- Add exception and test for invalid tags, make tag usage count more robust (PR#1035) +- Add, remove and update static and deprecated files and cleanup cdn links (PR#1030) ### Features From 76649f6d2a20f28a7ba8903cd75d9bafdd4c1621 Mon Sep 17 00:00:00 2001 From: jh-RLI Date: Wed, 24 Aug 2022 10:56:09 +0200 Subject: [PATCH 72/79] Update changelog with missing info from #1032 --- versions/changelogs/current.md | 1 + 1 file changed, 1 insertion(+) diff --git a/versions/changelogs/current.md b/versions/changelogs/current.md index 5394ba176..377737a75 100644 --- a/versions/changelogs/current.md +++ b/versions/changelogs/current.md @@ -4,6 +4,7 @@ - Update UI and description text for dataedit search and filter funtionality (PR#1007) - Add exception and test for invalid tags, make tag usage count more robust (PR#1035) - Add, remove and update static and deprecated files and cleanup cdn links (PR#1030) +- Check for existance of ID column and if duplicated column names exist when creating a table (PR#1032) ### Features From 4606e5ae603774151b10e773ddb060253b350149 Mon Sep 17 00:00:00 2001 From: jh-RLI Date: Wed, 24 Aug 2022 11:05:34 +0200 Subject: [PATCH 73/79] Update changelog --- versions/changelogs/current.md | 1 + 1 file changed, 1 insertion(+) diff --git a/versions/changelogs/current.md b/versions/changelogs/current.md index 377737a75..8e47a065f 100644 --- a/versions/changelogs/current.md +++ b/versions/changelogs/current.md @@ -5,6 +5,7 @@ - Add exception and test for invalid tags, make tag usage count more robust (PR#1035) - Add, remove and update static and deprecated files and cleanup cdn links (PR#1030) - Check for existance of ID column and if duplicated column names exist when creating a table (PR#1032) +- Remove unused code: django apps like literature and the old oep tags system (PR#994) ### Features From fa4127dcd3ba2f10e5ba605bb811807f221b321d Mon Sep 17 00:00:00 2001 From: jh-RLI Date: Wed, 24 Aug 2022 11:06:28 +0200 Subject: [PATCH 74/79] Fix linter error in changelog md --- versions/changelogs/current.md | 1 + 1 file changed, 1 insertion(+) diff --git a/versions/changelogs/current.md b/versions/changelogs/current.md index 8e47a065f..be9ee2422 100644 --- a/versions/changelogs/current.md +++ b/versions/changelogs/current.md @@ -1,4 +1,5 @@ ### Changes + - Add a tag color indicator to the tag filter dropdown (PR#1004) - Add the OEPlatypus to 404 page (PR #999) - Update UI and description text for dataedit search and filter funtionality (PR#1007) From 76949ec4fa33fd4376e3eeba5dc09d028f31082c Mon Sep 17 00:00:00 2001 From: jh-RLI Date: Wed, 24 Aug 2022 14:12:33 +0200 Subject: [PATCH 75/79] empty current and add changelog for new release --- versions/changelogs/0_10_2.md | 17 +++++++++++++++++ versions/changelogs/current.md | 11 +---------- 2 files changed, 18 insertions(+), 10 deletions(-) create mode 100644 versions/changelogs/0_10_2.md diff --git a/versions/changelogs/0_10_2.md b/versions/changelogs/0_10_2.md new file mode 100644 index 000000000..fdb6041d8 --- /dev/null +++ b/versions/changelogs/0_10_2.md @@ -0,0 +1,17 @@ +### Changes + +- Add a tag color indicator to the tag filter dropdown (PR#1004) +- Add the OEPlatypus to 404 page (PR #999) +- Update UI and description text for dataedit search and filter funtionality (PR#1007) +- Add exception and test for invalid tags, make tag usage count more robust (PR#1035) +- Add, remove and update static and deprecated files and cleanup cdn links (PR#1030) +- Check for existance of ID column and if duplicated column names exist when creating a table (PR#1032) +- Remove unused code: django apps like literature and the old oep tags system (PR#994) +- Improve oep-tag and oem-keywords synchronization, also check permission if user wants to add tags to table (PR#1029) + +### Features +- Add a standalone version of the metaEditor. It is now possible to create and download an oemetadata json file without creating a data-table. PR#1020 +- Add first implementaion of CBM to tutorials (PR#1023) +- MedaEdit is now also included in the tag and keywords synchronization (PR#1029) + +### Bugs diff --git a/versions/changelogs/current.md b/versions/changelogs/current.md index 95e5cf445..6634918ea 100644 --- a/versions/changelogs/current.md +++ b/versions/changelogs/current.md @@ -1,14 +1,5 @@ -### Changes - -- Add a tag color indicator to the tag filter dropdown (PR#1004) -- Add the OEPlatypus to 404 page (PR #999) -- Update UI and description text for dataedit search and filter funtionality (PR#1007) -- Add exception and test for invalid tags, make tag usage count more robust (PR#1035) -- Add, remove and update static and deprecated files and cleanup cdn links (PR#1030) -- Check for existance of ID column and if duplicated column names exist when creating a table (PR#1032) -- Remove unused code: django apps like literature and the old oep tags system (PR#994) +### Changes ### Features -- Add a standalone version of the metaEditor. It is now possible to create and download an oemetadata json file without creating a data-table. PR#1020 ### Bugs From 5c499623d819236b315ace0250e51c62bbf554f3 Mon Sep 17 00:00:00 2001 From: jh-RLI Date: Wed, 24 Aug 2022 14:25:08 +0200 Subject: [PATCH 76/79] update release procedure --- RELEASE_PROCEDURE.md | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE_PROCEDURE.md b/RELEASE_PROCEDURE.md index e8082f811..0f991f6eb 100644 --- a/RELEASE_PROCEDURE.md +++ b/RELEASE_PROCEDURE.md @@ -35,6 +35,7 @@ Before see How to [Contribute](https://github.com/OpenEnergyPlatform/oeplatform/ 1. Update the oeplatform/versions/changelogs/ [`current.md`](https://github.com/OpenEnergyPlatform/oeplatform/blob/develop/versions/changelogs/current.md) (see the examples of previous releases) - Change filename to release version (x_x_x.md) - Copy template to `current.md` + - Update `VERSION` with lastest version number 1. merge release branch into `master` and `develop` - make sure to pull before merge 1. Tag the release number: `git tag v`, e.g., `git tag v1.2.0` From 48cdc3d0c786717744ec7807cbf2d4542ac042a5 Mon Sep 17 00:00:00 2001 From: jh-RLI Date: Wed, 24 Aug 2022 14:26:55 +0200 Subject: [PATCH 77/79] update version --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 571215736..5eef0f10e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.10.1 +0.10.2 From 1ac6beb3cb1436278c3a2e45dfddbd5d639230fc Mon Sep 17 00:00:00 2001 From: jh-RLI Date: Wed, 24 Aug 2022 14:43:21 +0200 Subject: [PATCH 78/79] Update release procedure --- RELEASE_PROCEDURE.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/RELEASE_PROCEDURE.md b/RELEASE_PROCEDURE.md index 0f991f6eb..cb11604ba 100644 --- a/RELEASE_PROCEDURE.md +++ b/RELEASE_PROCEDURE.md @@ -36,8 +36,12 @@ Before see How to [Contribute](https://github.com/OpenEnergyPlatform/oeplatform/ - Change filename to release version (x_x_x.md) - Copy template to `current.md` - Update `VERSION` with lastest version number +1. Deploy release branch on TEOP. + - Test the changes + - Create a hotfix and merge changes into the release branch 1. merge release branch into `master` and `develop` - make sure to pull before merge +1. Deploy the master branch on production OEP 1. Tag the release number: `git tag v`, e.g., `git tag v1.2.0` - `versioneer` automatically updates the version number based on the tag - this is now the official tagged commit From e3ee49f8ea6b604d63f14c67b6976ba04718522e Mon Sep 17 00:00:00 2001 From: jh-RLI Date: Wed, 24 Aug 2022 15:33:25 +0200 Subject: [PATCH 79/79] update changelog --- versions/changelogs/0_10_2.md | 1 + 1 file changed, 1 insertion(+) diff --git a/versions/changelogs/0_10_2.md b/versions/changelogs/0_10_2.md index fdb6041d8..e5fec4132 100644 --- a/versions/changelogs/0_10_2.md +++ b/versions/changelogs/0_10_2.md @@ -13,5 +13,6 @@ - Add a standalone version of the metaEditor. It is now possible to create and download an oemetadata json file without creating a data-table. PR#1020 - Add first implementaion of CBM to tutorials (PR#1023) - MedaEdit is now also included in the tag and keywords synchronization (PR#1029) +- Management command to check urls for dead links `.. manage.py check_links` (PR#1034) ### Bugs